Kontrolle bei mehreren Fenstern - Tutorial

Für allgemeine Fragen zur Programmierung mit PureBasic.
JKG
Beiträge: 69
Registriert: 02.01.2005 11:53

Kontrolle bei mehreren Fenstern - Tutorial

Beitrag von JKG »

Hallo und guten Abend an alle !

Ich habe eine Verwaltungssoftware geschrieben, die verschiedene Datensätze einer Datenbank in einem ListIconGadget anzeigt/verwaltet.

Jetzt wird es notwendig, zu den Datensätzen eine zusätzliche Information einzugeben. Dazu soll ein zweites Fenster eingeblendet werden, das zwei Werte abfragen soll.

Wie kann man bewerkstelligen, dass das Main-Window (also das Fenster eins) nicht mehr bedient werden kann (klicks werden ignoriert) und das neu geöffnete Fenster soll/muss so lange aktiv sein, bis die entsprechenden Werte eingegeben sind.

Kennt jemand dazu ein Tutorial?

Danke für eure Hilfe und noch einen schönen Abend !

:D JKG
Benutzeravatar
Kiffi
Beiträge: 10713
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Kontrolle bei mehreren Fenstern - Tutorial

Beitrag von Kiffi »

Code: Alles auswählen

DisableWindow(DeinHauptFenster, #True)

OpenWindow(DeinZweitesFenster, ...
Als letzten Parameter im obigen OpenWindow (ParentID) kannst Du die ID Deines Hauptfensters angeben. Das verhindert, dass beide Fenster in der Taskleiste angezeigt werden.

Nachdem dann Dein zweites Fenster geschlossen wurde:

Code: Alles auswählen

DisableWindow(DeinHauptFenster, #False)
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Kontrolle bei mehreren Fenstern - Tutorial

Beitrag von ts-soft »

Ergänzend:
DisableWindow erst, nachdem das andere Fenster erstellt wurde, ansonsten verliert Deine Anwendung den Fokus.
Vor dem Schliessen des neuen Fensters, das alte wieder aktivieren.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
JKG
Beiträge: 69
Registriert: 02.01.2005 11:53

Re: Kontrolle bei mehreren Fenstern - Tutorial

Beitrag von JKG »

:D

Wooow - super Jungs ! Vielen, vielen Dank!


Gruß JKG :allright:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Kontrolle bei mehreren Fenstern - Tutorial

Beitrag von ts-soft »

Hab Dir auf die schnelle noch ein Beispiel gemacht, somit sollte dann wirklich alles klar sein :wink:

Code: Alles auswählen

OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "Hauptfenster")
ButtonGadget(0, 10, 10, 100, 20, "Dialog")

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case 0
          Break
        Default
          DisableWindow(0, #False)
          CloseWindow(EventWindow())
      EndSelect
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 0
          OpenWindow(#PB_Any, #PB_Ignore, #PB_Ignore, 400, 200, "Dialog", #PB_Window_SystemMenu | #PB_Window_WindowCentered, WindowID(0))
          DisableWindow(0, #True)
      EndSelect
  EndSelect
ForEver
Wenn der Dialog öfters benötigt wird, ist es besser diesen gleich am Anfang mit zu erstellen und nur noch mit
HideWindow an oder auszuschalten, wobei das händling für DisableWindow aber eingehalten werden sollte.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
JKG
Beiträge: 69
Registriert: 02.01.2005 11:53

Re: Kontrolle bei mehreren Fenstern - Tutorial

Beitrag von JKG »

Hallo ts-soft,

Ich dank dir herzlich - wirklich sehr nett.

Gruß JKG
:D
Antworten