| |
|
|
Alfred Wagner | Hallo Profaner Folgendes Problem
Zuerst der Code
$P+ SET(ERRORLEVEL,0) DEF GETSYSCOLOR(1) !USER32,GetSysColor DECLARE Ende&,Übernehmen&,CHECKBOX1&
PROC Ende_ONCLICK GETMESSAGE If Übernehmen& = 1 @Messagebox(Du hast den Übernehmen Button nicht gedrückt!,Meldung,64) Else @Messagebox(Du hast den Übernehmen Button gedrückt!,Meldung,64) EndIf
ENDE%=1 ENDPROC
PROC Übernehmen_ONCLICK GETMESSAGE ENDPROC
PROC CHECKBOX1_ONCLICK GETMESSAGE ENDPROC
WINDOWSTYLE 31 WINDOWTITLE Neues Fenster WINDOW (%maxx/2 - 380/2),(%maxy/2 - 180/2) - 380,180 SET(TRUECOLOR,1) DECLARE ENDE% CLS GETSYSCOLOR(15) USEFONT MS Sans Serif,13,0,0,0,0 SETDIALOGFONT 1
Ende& = CREATE(BUTTON,%HWND,Ende,0275,0100,0070,0022) Übernehmen& = CREATE(BUTTON,%HWND,Übernehmen,0175,0100,0080,0022) EnableWindow Übernehmen&,0
CHECKBOX1& = CREATE(CHECKBOX,%HWND,CHECKBOX,0021,0034,0227,0015)
SETFOCUS(%HWND) WHILENOT ENDE% WAITINPUT If %KEY=2 ENDE%= 1 ELSEIF %KEY=4
ELSEIF GETFOCUS(Ende&) Ende Ende_ONCLICK
ELSEIF GETFOCUS(Übernehmen&) BUTTON Übernehmen_ONCLICK ELSEIF GETFOCUS(CHECKBOX1&) CHECKBOX EnableWindow Übernehmen&,1 ENDIF ENDWHILE
Hat jemand einen Tip ob der Beenden Button weiß ob der Übernehmen Buttonbetätigt worden ist oder nicht.
Danke schon mal im vorhinein für euere Hilfe
Grüße Alfred mit Familie |
|
|
| |
|
|
|
Rolf Koch | Hi Alfred, zuerst einmal, wäre lesbarer, wenn Du hier vorgestellten Code in lesbare Form bringst, Code einfügen, markieren und den Rautebutton über dem Eingabefenster hier klicken. Du hast Übernehmen geschrieben, dies ist in der Programmierung nicht so angebracht, nutze besser Uebernehmen. Ich hab hier einfach ne neue Variable eingebaut. Wird der Button angeklickt, so wird diese Variable auf 1 gesetzt und dies bei Beenden abgefragt. KompilierenMarkierenSeparieren $P+
SET("ERRORLEVEL",0)
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
DECLARE Ende&,Übernehmen&,CHECKBOX1&
Neue Variable
Declare ch_ueber%
PROC Ende_ONCLICK
GETMESSAGE
If ch_ueber% = 0
@Messagebox("Du hast den Übernehmen Button nicht gedrückt!","Meldung",64)
Else
@Messagebox("Du hast den Übernehmen Button gedrückt!","Meldung",64)
EndIf
ENDE%=1
ENDPROC
PROC Übernehmen_ONCLICK
GETMESSAGE
ch_ueber%=1
ENDPROC
PROC CHECKBOX1_ONCLICK
GETMESSAGE
ENDPROC
WINDOWSTYLE 31
WINDOWTITLE "Neues Fenster"
WINDOW (%maxx/2 - 380/2),(%maxy/2 - 180/2) - 380,180
SET("TRUECOLOR",1)
DECLARE ENDE%
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
Ende& = CREATE("BUTTON",%HWND,"Ende",0275,0100,0070,0022)
Übernehmen& = CREATE("BUTTON",%HWND,"Übernehmen",0175,0100,0080,0022)
EnableWindow Übernehmen&,0
CHECKBOX1& = CREATE("CHECKBOX",%HWND,"CHECKBOX",0021,0034,0227,0015)
SETFOCUS(%HWND)
WHILENOT ENDE%
WAITINPUT
If %KEY=2
ENDE%= 1
ELSEIF %KEY=4
ELSEIF GETFOCUS(Ende&) Ende
Ende_ONCLICK
ELSEIF GETFOCUS(Übernehmen&) BUTTON
Übernehmen_ONCLICK
ELSEIF GETFOCUS(CHECKBOX1&) CHECKBOX
EnableWindow Übernehmen&,1
ENDIF
ENDWHILE
|
|
|
| |
|
|
|
| @Alfred: Man merkt sich einfach ob er gedrückt wurde. Wenn er gedrückt wird setzt man eine beliebige Variable auf einen beliebigen Wert. Diese Variable kann man später abprüfen.
Auch Rolfs Tipp das man Codes in Foren mit ... KompilierenMarkierenSeparieren ...ummantelt ist ebenso Gold wert. ;)
Umlaute in Quelltexten find ich auch übel. |
|
|
| |
|
|
|
Alfred Wagner | Danke Rolf haut hin hier mal ein test mit dem rautebutton,habs bisher noch nicht so richtig kapiert,danke KompilierenMarkierenSeparieren $P+
SET("ERRORLEVEL",0)
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
DECLARE Ende&,Übernehmen&,CHECKBOX1&
Neue Variable
Declare ch_ueber%
PROC Ende_ONCLICK
GETMESSAGE
If ch_ueber% = 0
@Messagebox("Du hast den Übernehmen Button nicht gedrückt!","Meldung",64)
Else
@Messagebox("Du hast den Übernehmen Button gedrückt!","Meldung",64)
EndIf
ENDE%=1
ENDPROC
PROC Übernehmen_ONCLICK
GETMESSAGE
ch_ueber%=1
ENDPROC
PROC CHECKBOX1_ONCLICK
GETMESSAGE
ENDPROC
WINDOWSTYLE 31
WINDOWTITLE "Neues Fenster"
WINDOW (%maxx/2 - 380/2),(%maxy/2 - 180/2) - 380,180
SET("TRUECOLOR",1)
DECLARE ENDE%
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
Ende& = CREATE("BUTTON",%HWND,"Ende",0275,0100,0070,0022)
Übernehmen& = CREATE("BUTTON",%HWND,"Übernehmen",0175,0100,0080,0022)
EnableWindow Übernehmen&,0
CHECKBOX1& = CREATE("CHECKBOX",%HWND,"CHECKBOX",0021,0034,0227,0015)
SETFOCUS(%HWND)
WHILENOT ENDE%
WAITINPUT
If %KEY=2
ENDE%= 1
ELSEIF %KEY=4
ELSEIF GETFOCUS(Ende&)Ende
Ende_ONCLICK
ELSEIF GETFOCUS(Übernehmen&)BUTTON
Übernehmen_ONCLICK
ELSEIF GETFOCUS(CHECKBOX1&)CHECKBOX
EnableWindow Übernehmen&,1
ENDIF
ENDWHILE
hoffe hat geklappt
noch eine Frage wieso sollte mann nicht übernehmen nehmen im code ?
Grüße Alfred mit Familie |
|
|
| |
|
|
|
| Ich hab Dein Posting mal überarbeitet - klicke einfach auf Editieren unter Deinem Posting dann siehst Du was ich geändert habe. |
|
|
| |
|
|
|
| Umlaute sind ganz einfach Sonderzeichen, Roland erlaubt diese - aber empfohlen sind sie nicht.
Natürlich betrifft das keine Stringinhalte!
Ein S$=Hallo hier rüber ist natürlich ok!
Ein VieleÄpfel&=50 wird aber nicht empfohlen.
Du kannst auch später mal Probleme deshalb bekommen - z.B. wenn Du die IDE wechselst. Je nach dem in welchem Format Du die Textdatei abspeicherst können Umlaute auf einmal andere Bytewerte bekommen. Das wiederum könnte dazu führen das der XProfankompiler auf einmal doch nicht mehr damit klar kommt. |
|
|
| |
|
|
|
Alfred Wagner | danke euch beiden
noch mal ein test für den nächsten code KompilierenMarkierenSeparieren habe immer gedacht der quelltext gehört zwischen den klammern von code! aber code bedeutet anfang und /codeende.
na ja bis man mals kapiert hat,dauerts eben ein wenig
danke nochmal
Güße Alfred mit Familie |
|
|
| |
|
|
|
| Klar gerne geschehen, Du kannst übrigens *reusper* Dein obiges Posting editieren und nachträglich das Code setzen - damits nicht so schlimm aussieht. |
|
|
| |
|
|