Benutzer-Werkzeuge

Webseiten-Werkzeuge


k18:k18.7:k18.7.2:start

18.7.2 Beispiel 2 – GBTT

Das folgende Beispiel stellt Ihnen ein Programm zur Verfügung, mit dem Sie auf individuelle Art Ihr Wissen zu Gambas übersichtlich festhalten und pflegen können. Es nutzt neben den vorgestellten Komponenten HSplit und VSplit auch weitere Struktur bestimmende Container und Komponenten. Die folgenden 2 Abbildungen zeigen die Anordnung der einzelnen Komponenten auf dem Formular zur Entwicklungszeit und zur Laufzeit:

GBTT- IDE

Abbildung 18.7.2.1: Anordnung der Komponenten in mehreren Containern (Entwurfzeit)

GBTT - Laufzeit

Abbildung 18.7.2.2: Programm GBTT (Gambas-ToolTipp) zur Laufzeit

Die Komponente HSplit1 vergibt zwei horizontal geteilte Bereiche – links DirView1 und rechts VBox1 – mit einstellbarer Breite durch den senkrechten Teiler. Die Komponente VBox1 musste eingefügt werden, da das Panel mit den 7 Button eine feste Höhe und Lage hat und nur die beiden Komponenten TextArea1 (oben mit der grünen Schreibfläche) sowie die Komponente FileView1 im Container VSplit1 durch einen waagerechten Teiler in 2 unterschiedlich große Bereiche geteilt werden.

In den weiteren Abschnitten wird nur auf einige Besonderheiten des Projekts GBTT eingegangen und der entsprechende Quelltext kommentiert.

(1)PUBLIC SUB Form_Open()  
(2)  
(3)  gbttSettings = NEW Settings(User.Home &/ "GBTTT" &/ "gbtt.conf")  
(4)  HSplit1.Layout = gbttSettings["HSplit/HSplitLayout", "20,80"] 
(5)  VSplit1.Layout = gbttSettings["VSplit/VSplitLayout", "70,30"] 
(6)  gbttSettings.Read(ME, "Form") 

Mit den Vorgaben „20,80“ = „20%,80%“ für den horizontalen Splitter und „70,30“ als Teilungsverhältnis für den vertikalen Splitter startet das Programm, da ja beim ersten Start noch keine Konfigurationsdatei existiert. Alle Vorgabe-Werte können als Teilungsverhältnis angegeben werden. Später werden die (absoluten) Werte für das Teilungsverhältnis in Pixeln in die Konfigurationsdatei eingetragen und auch so ausgelesen.

(7)  IF FMain.W <= 863 OR FMain.H < 512 THEN 
(8)     IF FMain.W < 863 THEN FMain.W = 863 
(9)     IF FMain.H < 512 THEN FMain.H = 512 
(10)     FMain.Center 
(11)  ENDIF ' FMain.W FMain.H?    

Wenn das Programm mit sehr kleinen Werten für die Breite oder Höhe geschlossen wird, dann werden diese unpraktischen Werte auch in der Ereignisbehandlungsroutine von Form_Close gespeichert und ergeben zum Beispiel folgenden Inhalt der Konfigurationsdatei gbtt.conf :

[FMain/Form] 
Geometry=[408,269,377,251] 

[HSplit] 
HSplitLayout="89,282" 

[VSplit] 
VSplitLayout="134,45"

Beim Auslesen der Formulargrößen nach dem Programmstart – sehen Sie bitte in die Zeile 6 – werden nach einer Werte-Prüfung vernünftige Startwerte zugewiesen.

(12)  FMain.Center 
(13)  FMain.Arrangement = Arrange.Fill ' HSplit1 füllt das Formular im Container Formular vollständig aus
(14)  VBox1.Ignore = FALSE 
(15)  HSplit1.Ignore = FALSE 
(16)  VSplit1.Ignore = FALSE 
(17)  VSplit1.Expand = TRUE ' VSplit1 füllt den verbleibenden Raum in VBox1, den Panel1 nicht belegt
(18)  Panel1.Arrangement = Arrange.Horizontal ' Horizontale Ausrichtung der Button auf dem Panel1
(19)  Panel1.Padding = 10 ' Abstand der 7 Button zum Panel1-Rand
(20)  Panel1.Spacing = 5  ' (Horizontaler) Abstand zwischen den 7 Button
(21)  Panel1.Height = 41 ' (Original-)Höhe 21 + 2x Panel1.Padding = 10
(22)  Panel1.Border = Border.Sunken ' ... weil es gut ausschaut

Für eine fehlerfreie Funktion der Anordnung der Container und der Anordnung ausgewählter Komponenten im Container sind alle Zeilen wichtig! Durchdenken Sie in aller Ruhe die Wirkung jeder einzelnen der 10 Zeilen!

(23)  IF NOT Exist(User.Home &/ "GBTTT") THEN 
(24)    TRY MKDIR User.Home &/ "GBTTT" 
(25)    IF ERROR THEN 
(26)       Message.Error("Das Verzeichnis ../GBTTT konnte nicht angelegt werden!") 
(27)       RETURN 
(28)    ENDIF ' ERROR 
(29)  ENDIF ' Exist? 
(30)
(31)' ACHTUNG: Das O im Wort 0riginal ist eine Null wegen der Sortierung 
(32)  IF NOT Exist(User.Home &/ "GBTTT/0riginalSearch") THEN 
(33)    TRY MKDIR User.Home &/ "GBTTT/0riginalSearch" 
(34)    IF ERROR THEN 
(35)       Message.Error("Das Verzeichnis ../GBTTT/0riginalSearch konnte nicht angelegt werden!") 
(36)       RETURN 
(37)    ENDIF ' ERROR 
(38)  ENDIF ' NOT Exist?   

Das Verzeichnis GBTTT sowie die Konfigurationsdatei gbtt.conf werden im Home-Verzeichnis beim ersten Programmstart angelegt, wenn sie nicht existieren.

(39)  DirView1.Root = User.Home &/ "GBTTT" 
(40)  FileView1.Dir = DirView1.Root 
(41)  FileView1.Filter = ["*.tip", "GAMBAS-Tool-Tipp-Dateien"] 
(42)  
(43)  curZeiger1 = NEW Cursor(Picture["Icon/vonrechts.png"]) 
(44)  FileView1.Mouse = Mouse.Custom 
(45)  FileView1.Cursor = curZeiger1 

Nur für die Dateiansicht wird ein neuer, benutzer-spezifischer Maus-Zeiger in der IDE als Bild im PNG-Format entworfen, gespeichert und in das Programm eingebunden.

(46)  btnTTSuchen.Enabled = FALSE 
(47)  TextArea1.Wrap = FALSE 
(48)  bModifiziert = FALSE 
(49)  
(50)END ' Form_Open

Das Word-Wrapping kann ein- und ausgeschaltet werden und ermöglicht eine bessere Lesbarkeit, vor allem bei Tipps, die Sie aus anderen Quellen übernehmen.

(1)PUBLIC SUB Form_Close() 
(2)  DIM sToolTippDatei AS String 
(3)  
(4)  gbttSettings["HSplit/HSplitLayout"] = HSplit1.Layout 
(5)  gbttSettings["VSplit/VSplitLayout"] = VSplit1.Layout 
(6)  gbttSettings.Write(ME, "Form") 
(7)  gbttSettings.Save 
(8) 
(9)  FOR EACH sToolTippDatei IN Dir(User.Home & "/GBTTT/0riginalSearch", "*.*") 
(10)      TRY KILL User.Home & "/GBTTT/0riginalSearch/" & sToolTippDatei 
(11)  NEXT ' File 
(12)
(13)END ' FormClose

Hier ist das .Save in der Zeile 7 NICHT zwingend erforderlich, weil beim Programmende die Settings-Einstellungen automatisch in der Konfigurationsdatei gespeichert werden. Dazu gehören die Werte der aktuellen Teilungsverhältnisse des horizontalen und vertikalen Splitters genauso wie die Formulargröße und dessen Lage-Koordinaten.

Das Programm GBTT verfügt neben einem Menü auch über eine kurze Hilfe im PDF-Format. Über die Suche können Sie gezielt nach Tipps suchen, in denen ein bestimmtes Wort vorkommt. Dazu müssen Sie den Ordner 0riginalSearch anklicken, damit die Suche über den dann freigegebenen Button mit der kleinen Lupe möglich wird. Alle (temporären) Suchergebnisse finden Sie in der Dateiansicht.

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k18/k18.7/k18.7.2/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge