Einsteigerfragen zur PROFAN Programmierung

| Suchen
| Zurück zur Übersicht

Autor | Thema: nichtmodale Dialogfenster
B.Schäfer
| Datum:01.08.02 16:05 (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 (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 (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 |