Einsteigerfragen zur PROFAN Programmierung
  Suchen
 Zurück zur Übersicht
 AutorThema: nichtmodale Dialogfenster
B.Schäfer
Datum:01.08.02 16:05 Antwortenals Email verschicken (bup.schaefer@freenet.de) 


Wie kann man nichtmodale Dialogfenster erzeugen, d.h. man kann in meinem Hauptfenster operieren während mein Dialog geöffnet ist und auch in dem geöffneten untergeordneten Dialogfenster ?

Geht das überhaupt, da man mit der While-Schleife und WaitInput ja sozusagen im Dialog gefangen ist?

Vielen Dank und viele Grüsse,

Bruno


Rolf Koch
Datum:01.08.02 18:28 Antwortenals Email verschicken (webmaster@rokosoft.de) 


Hi,
ganz einfach:
1.)Rufe den Dialog auf.
dingsbums&=createdialog......
button1&=........
2.)dann setze ein Dialogexistenzschlüssel
dialogda%=1
3.)Frage im Hauptprogramm auf dialogda% ab
if equ(dialogda%,1)
***********
else...

endif

4.)Dort wo ***** steht, kannste bei vorhandensein
nun die normalen Objekte auf dem Dialog abfragen.
Ausserdem kannst Du dort auch den Schlüssel dialogda%
nach Schliessen des Dialogs (destroywindow(dingsbums&))
wieder auf 0 setzen, sodaß nur die Abfrage
der Dialogelemente bei dialogda%=1 gilt.

Rolf





Rolf Koch
Datum: 01.08.02 18:57 Antwortenals Email verschicken (webmaster@rokosoft.de) 


Hab noch schnell mal ein Beispiel geschrieben:
' CODE ERZEUGT MIT ROKO'S OBJECT CREATOR V 2.5
' DATUM  01.08.2002    um  18:37 Uhr
' VERWENDETE PROFANVERSION IST 7.0 ODER HÖHER

PROC DIALOG
DLG&=CREATE("DIALOG",%HWND,"Unabhängiges Dialogfenster",173,187,303,113)
BUTTON1% =@CREATE("BUTTON",DLG&,"Drück mich",0024,0012,0070,0030)
BUTTON2% =@CREATE("BUTTON",DLG&,"schliessen",0096,0012,0070,0030)
DIALOGDA%=1
ENDPROC
PROC DIALOGABFRAGE
IF EQU(dialogda%,1)
   IF GETFOCUS(BUTTON1%) 'BUTTON
      print ""  
      print "DANKE FÜRS KLICKEN"
      print "SAGT DER DIALOG ;)"
   ELSEIF GETFOCUS(BUTTON2%) 'BUTTON
      destroywindow(DLG&)
      dialogda%=0
   ENDIF
Endif
ENDPROC

SETTRUECOLOR 1
DECLARE ENDE%
DECLARE DLG&,DIALOGDA%
DECLARE BUTTON1%
DECLARE BUTTON2%
DECLARE BUTTON3%
DECLARE BUTTON4%
WINDOW 0,0-500,500
WINDOWTITLE "Unabhängiges Dialogverhalten"
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
BUTTON3% =@CREATE("BUTTON",%HWND,"DIALOG ÖFFNEN",0224,0012,0200,0030)
BUTTON4% =@CREATE("BUTTON",%HWND,"TESTE MICH WENN DIALOG OFFEN",0224,0062,0200,0030)
WHILENOT ENDE%
WAITINPUT
DIALOGABFRAGE
   If EQU(%KEY,2)
      LET ENDE%= 1

   ELSEIF getfocus(BUTTON3%)
      if equ(dialogda%,0)
         DIALOGDA%=1
         DIALOG
      endif

   ELSEIF getfocus(BUTTON4%)
         ifnot equ(%message,32) 'DIES NUR UM NICHT ZWEIMAL PRINT ANZUZEIGEN!
           print ""
           PRINT "JA, NUN KANN MAN BEIDES"
           PRINT "HWND und DIALOG ABFRAGEN"
           PRINT "VOM HAUPTFENSTER" 
         endif
   ENDIF
WEND

Hoffe dies ist es was Du suchst ;)
Rolf


 Zurück zur Übersicht
 

 Ein kostenloses WebMart Forum
WebMart Homepage Tools kostenlos
Shortwin - denn Glück ist kein Zufall!