Seite 2 von 2

Verfasst: 06.01.2007 11:03
von MVXA
Gar nicht. Konsole rockt ^_^.

Verfasst: 06.01.2007 11:08
von DarkDragon
Bei modalen Dialogen würde ich sie dann über eine Prozedur während der Laufzeit erstellen. Bei nichtmodalen Unterfenstern der Anwendung eben nicht während der Laufzeit, sondern am Start versteckt öffnen(NICHT HideWindow benutzen sondern das #PB_Window_Invisible Flag! Dann sieht man es bei langsamen Computern auch erst garnicht beim Start).

Verfasst: 06.01.2007 11:17
von Vallan
ICh erstelle immer erst ein fenster fertig, die gadgets mit Hand un kofrechnenpositionieren, Die konstanten Werden bei mir fensterübergreifend durchnummerirt,

ich habe 1 hauptschleife mit select für alle fenster,

Wenn ich mehrere fenster habe mache ich die entweder mit #PB_Any und einer LL() oder mit konstantendie vorher definirt wurden.

Die Fenster erstelle ich immer erst dann wenn sie gebraucht werden ( ICh weiß zu beginn des Proggens meist garnicht wiefiele fesnter ich brauche, und da schreibe ich sie halt rein wenn sie sichtbar werden sollen,)

Früher hab ich NIE Prozeduren verwendet, heute mache ich das manchmal, aber für Fenster eigentlich nicht.

Verfasst: 09.01.2007 19:53
von Programie
Ich mach es so (Ohne Komentare):

Code: Alles auswählen

Enumeration
 #Window
 #Menu; Wenn ein Menu verwendet wird
 #ToolBar; Wenn eine ToolBar verwendet wird
 ; Menukonstanten
 ; Gadgetkontanten
 #StatusBar; Wenn eine Statusleiste verwendet wird
EndEnumeration

Structure Config; Einstellungen speichere ich in einer Structure (Wenn nötig)
 MainPath.s; Programmverzeichnis
 PrefsFile.s; Einstellungsdatei (z.B. Settings.ini)
 Parameter.s; Wenn ich einen Parameter für das Programm benötige
 ; Sonstige Einstellungsvaluen
EndStructure

Global Config.Config; Die Einstellungsstructure mach ich IMMER Global

; Proceduren

Config\MainPath=GetPathPart(ProgramFilename()); Programmverzeichnis
Config\PrefsFile=Config\MainPath+"Settings.ini"; Einstellungsdatei
; Sonstige "Festwerte"

; Hier die Einstellungen mit OpenPreferences(Config\PrefsFile) oder ReadFile() in die Config-Structure laden (1. Möglichkeit)

If OpenWindow(#Window,100,100,500,300,"Fenstertitel",#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_ScreenCentered); Ist irgendwie eine Angewohnheit mit der Größe 100x100x500x300 :-)
 If CreateMenu(#Menu,WindowID(#Window))
  ; Menu-Items
 EndIf
 If CreateToolBar(#ToolBar,WindowID(#Window))
  ; ToolBar Einträge
 EndIf
 If CreateGadgetList(WindowID(#Window))
  ; Gadgets
 EndIf
 If CreateStatusBar(#StatusBar,WindowID(#Window))
  ; StatusBar "Flächen"
 EndIf
  ; Einstellungen Laden (2. Möglichkeit)
  ; Sonstige Funktionen (z.B. SmartWindowRefresh() oder StickyWindow())
  Repeat
   Select WaitWindowEvent()
    Case #PB_Event_Menu
     Select EventMenu()
      ; MenuItems
     EndSelect
    Case #PB_Event_Gadget
     Select EventGadget()
      ; Gadgets
     EndSelect
    Case #PB_Event_SizeWindow
     Select EventWindow()
      Case #Window
       ; Gadgets, ... im #Window resizen
      ; Sonstige Fenster
     EndSelect
    Case #PB_Event_CloseWindow
     ; Mehrere Fenster:
;      Select EventWindow()
;       Case #Window
;        Quit=#True
;       ; Sonstige Fenster
;      EndSelect
     ; Wenn nur ein Fenster da ist:
     Quit=#True
   EndSelect
  Until Quit=#True
 ; Einstellungen mit CreatePreferences(Config\PrefsFile) oder CreateFile() speichern (auslesen aus Config-Structure)
EndIf