Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v18
SDI Modus unter Windows

SDI Modus unter Windows  


 

Unter Windows können 4D Entwickler ihre 4D Anwendungen mit einkompilierter Engine als SDI (Single-Document Interface) Anwendungen einrichten. In SDI Anwendungen ist jedes Fenster von den anderen unabhängig und kann eine eigene Menüleiste haben. SDI Anwendungen sind das Gegenteil von MDI (Multiple Documents Interface) Anwendungen, wo alle enthaltenen Fenster vom Hauptfenster abhängen.

Hinweis für macOS: Das Konzept SDI/MDI gibt es nicht auf macOS. Dieses Feature gilt nur für Windows Anwendungen und auf macOS werden damit zusammenhängende Optionen ignoriert.

Der SDI Modus ist nur in folgender Ausführungsumgebung verfügbar:

  • Windows
  • Eiinzelplatz oder Client, 4D Anwendung mit einkompilierter Engine

Zum Aktivieren und Einsetzen des SDI Modus in Ihrer Anwendung sind folgende Schritte erforderlich:

  1. Markieren Sie auf der Seite Oberfläche des Dialogfensters Datenbank-Eigenschaften die Option Verwende SDI Modus für Windows (siehe Seite Oberfläche).
  2. Erstellen Sie eine doppelklickbare Anwendung (Einzelplatz und/oder Client Anwendung, siehe Eigenständige Anwendung erstellen und weitergeben).

Die doppelklickbare Anwendung läuft dann bei Ausführen im entsprechenden Kontext automatisch im SDI Modus.

Zum Ausführen einer 4D Anwendung im SDI Modus sind keine spezifischen Implementationen erforderlich: Vorhandene Menüleisten werden automatisch in die eigenen SDI Fenster gelegt. Sie müssen jedoch ein paar Eigenheiten beachten, die nachfolgend aufgelistet werden.

Im SDI Modus erscheint die Menüleiste des Prozesses automatisch in jedem Dokument vom Typ Fenster, das während der Lebensdauer des Prozesses geöffnet wird (ausgeschlossen sind beispielsweise Palettenfenster). Ist die Menüleiste des Prozesses nicht sichtbar, bleiben die Tastenkürzel der Menübefehle weiterhin aktiv.

Menüs werden oben im Fenster hinzugefügt, die Größe des Inhalts wird dabei nicht verändert:

Fenster lassen sich also im MDI oder SDI Modus verwenden, es ist keine Neuberechnung die Position der Objekte notwendig.

Hinweis zum Hauptfenster:

  • Ist für die Anwendung die Oberflächenoption Hauptfenster ausgewählt (siehe Seite Oberfläche), enthält das Hauptfenster alle Menüs, die auch im MDI Fenster erscheinen würden. Beachten Sie, dass Schließen des Hauptfensters - analog zum MDI Modus- auch das Verlassen der Anwendung bewirkt.
  • Ist die Option Hauptfenster nicht für die Anwendung ausgewählt, erscheinen die Menüs nur in den geöffneten Fenstern, gemäß der Wahl des Programmierers.

Beim Ausführen im MDI Modus beendet die 4D Anwendung einfach, wenn der Benutzer das Anwendungsfenster (MDI Fenster) schließt. Dagegen haben 4D Anwendungen beim Ausführen im SDI Modus kein Anwendungsfenster und außerdem bedeutet Schließen des zuletzt geöffneten Fenstern nicht unbedingt, dass der Benutzer die Anwendung beenden möchte (beispielsweise können Prozesse ohne Oberfläche laufen) -- obwohl das auch der Fall sein könnte.

Für diesen Fall enthalten 4D Anwendungen, die im SDI Modus ausgeführt werden, einen Mechanismus zum automatischen Beenden (Aufrufen des Befehls QUIT 4D), wenn folgende Bedingungen zutreffen:

  • Der Benutzer kann nicht mehr mit der Anwendung interagieren
  • Es gibt keine laufenden Benutzerprozesse
  • 4D Prozesse oder Worker Prozesse warten auf ein Ereignis
  • Der Web Server ist nicht gestartet

Hinweis: Bei Aufrufen eines Menüs mit einer zugewiesenen Standardaktion Beenden wird die Anwendung beendet und alle Fenster werden geschlossen, egal von wo aus das Menü aufgerufen wird.

Auch wenn 4D den SDI Modus transparent verwaltet, gibt es hier bei der Oberflächenverwaltung der Anwendung ein paar kleinere Abweichungen:

Befehl/FeatureAbweichung im SDI Modus unter Windows
Open form windowEnthält Optionen zur Unterstützung von Palettenfenstern in SDI (Controller form window) und zum Entfernen der Menüleiste (Form has no menu bar)
Der Fenstertyp Toolbar form window wird nicht unterstützt.
Menu bar heightGibt die Höhe einer Zeile der Menüleiste in Pixel zurück, auch wenn die Menüleiste aus mehreren Zeilen besteht. Gibt 0 zurück, wenn der Befehl von einem Prozess ohne Formularfenster aufgerufen wird.
SHOW MENU BAR / HIDE MENU BARGilt nur für das aktuelle Formularfenster, d.h. in dem der Code ausgeführt wird
MAXIMIZE WINDOWDas Fenster wird auf Bildschirmgröße maximiert
CONVERT COORDINATESXY Screen ist das globale Koordinatensystem, bei dem der Hauptbildschirm bei (0,0) liegt. Links davon oder oberhalb liegende Bildschime können negative Koordinaten haben, rechts davon oder unterhalb liegende Bildschirme können Koordinaten haben, die größer sind als die von Screen height oder Screen width zurückgegebenen Werte.
GET MOUSEGlobale Koordinaten sind relativ zum Bildschirm
GET WINDOW RECTWird im Parameter Fenster -1 übergeben, gibt der Befehl 0;0;0;0 zurück
Datenbankmethode On DropWird nicht unterstützt



Siehe auch 

Eigenständige Anwendung erstellen und weitergeben
Seite Oberfläche

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Menüs und Menüleisten

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v16 R4

 
ARTIKELVERWENDUNG

4D Designmodus ( 4D v18)