Autor | Thema: Page-Control und Tabulatortaste |
| Datum:03.07.01 20:54 
(hoefener@web.de) | |
Hallo Profaner,
was mache ich falsch, wenn der Beenden-Button durch durch das Betätigen der Tabtaste die Anweisung ( nicht erst durch enter oder mouse ) aufgerufen wird ? Folgenden Code verwende ich auf einem Page-Control aus Prfellow/Winfellow:
WhileNot ma1_ende%
waitinput
WMNotifyHandler
If TAB_CHANGE(PageControl1&)
PageControl1_OnChange
elseif @GetFocus(abbrechen%)
MessageBox "Wollen Sie die Eingabe wirklich ohne Speichern abbrechen?",\
"FRAGE:",36+256
if @Equ(%Button,6)
@DestroyWindow(tab_dlg%)
Let ma1_ende% = 1
ShowWindow(ma_dlg%,5)
endif
EndIF
EndWhile
Irgendwie muß ich wahrscheinlich getfocus umgehen ?
Grüße Lars
|
|
| Datum:03.07.01 21:20 
(webmaster@rokosoft.de) | |
Leider kennen wir den ganzen Code ja nicht.
Normalerweise würde ich die Abfrage so gestalten (konnte leider nicht testen)
If TAB_CHANGE(PageControl1&)
PageControl1_OnChange
if @GetFocus(abbrechen%)
MessageBox "Wollen Sie die Eingabe wirklich ohne Speichern abbrechen?",\
"FRAGE:",292
if @Equ(%Button,6)
@DestroyWindow(tab_dlg%)
Let ma1_ende% = 1
ShowWindow(ma_dlg%,5)
endif
endif
EndIF
EndWhile
Aber nur, wenn sich @getfocus(abbrechen%) auf das Tabctrl bezieht.
Achso, kleiner Tip am Rande: Bei Deiner Messagebox kannst Du den letzten Parameter direkt zusammenrechnen ;)
Rolf
|
|
| Datum:03.07.01 22:48 
(hoefener@web.de) | |
Hallo Rolf,
danke für Deine schnelle Antwort...
Aufgrund der Größe des Programmes mit ca. 2000 Zeilen möchte ich nicht das Forum sinnlos belasten und schicke nur einen Bruchteil.
Bei der Messagebox hast Du mich wohl erwischt - Faulheit lass los.
So richtig kann ich mich mit Deiner Antwort aber nicht anfreunden. Ich schätze das If TAB_CHANGE(PageControl1&) steht nur für einen Wechsel der Blätter und das elseif muß damit bleiben ... oder ????
Danke Lars
|
|
| Datum:03.07.01 23:07 
(webmaster@rokosoft.de) | |
Hi Lars - neee um Gottes Willen nur keine 2000 Zeilen hierhin kopieren :)
Deswegen habe ich ja geschrieben, wir kennen Deinen Code ja nicht ;)
Aber irgendwie kommt mir Deine If Elseif Abfrage komisch vor.
Normalerweise sollte die Abfrage, welche Du hier stellst aufgrund der Aktivität des Tabcontrols aufbauen.
Bedeutet:
Tabcontrol angeklickt (also Reiter)?
Ja?
Dann Abfrage auf abbrechen%
und gefolgt auf dies die Abfrage auf die Messagebox.
Ich versuchs hier mal auf Deutsch als Code zu formulieren:
Wenn Tabcontrol(aktiv)
---> Frage auf Abbrechen 'Ist hoffentlich auf Tab
---> Messagebox welcher Knopf
---> wenn Button6 = Beenden
Bei Dir sieht das so aus:
Wenn Tabcontrol (aktiv)
---> Frage auf Abbrechen
Wenn aber Abbrechen
---> Messagebox welcher Knopf
---> wenn Button6 = Beenden
siehe in Deinem Code
entweder Tabctrl oder Abbrechen kommt da raus.
Vielleicht täusche ich mich auch aufgrund der vorhergehenden fehlenden Informationen, aber hier deutet es sich so ab.
Rolf
|
|
| Datum:03.07.01 23:25 
(webmaster@rokosoft.de) | |
Ja, ich habe mir den Rest mal bildlich vorgestellt.
Da hast Du auch wieder recht.
Dann versuchs mal so ;):
If TAB_CHANGE(PageControl1&)
PageControl1_OnChange
Endif
if @GetFocus(abbrechen%)
MessageBox "Wollen Sie die Eingabe wirklich ohne Speichern abbrechen?",\
"FRAGE:",36+256
if @Equ(%Button,6)
@DestroyWindow(tab_dlg%)
Let ma1_ende% = 1
ShowWindow(ma_dlg%,5)
endif
EndIF
Ist wirklich schwierig ohne zu testen :))))
Aber ja - stimmt Dein letztes Argument war sehr überzeugend, so daß ich den Sinn erst jetzt kapiert habe
Rolf
und....?
|
|
| Datum:03.07.01 23:45 
(hoefener@web.de) | |
Leider klappt es immer noch nicht ! Irgendwie kann man den getfocus - Befehl im 7.0 - Profan ersetzen - ich habe es leider aber noch nicht gefunden.
Grüße Lars
|
|
| Datum:03.07.01 23:53 
(webmaster@rokosoft.de) | |
Aha, meinst Du evtl. %message oder %lastmessage
stehen beide in der Profanhilfe.
Rolf
|
|
| Datum:04.07.01 00:57 
(rgh-soft@t-online.de) | |
Manchmal hilft auch (ab PROFAN 7.0e) die Zeile SET("Messagemode",0) am Anfang des Programmes. Damit wird das Messagehandling wieder kompatibel zu PROFAN 6.x und GetFocus reagiert wie gewohnt. Wenn das Programm an anderer Stelle das erweiterte Messagehandling von PROFAN 7 nutzt, kann das aber zu anderen Problemen führen.
|
|
| Datum: 05.07.01 19:17 
(hoefener@web.de) | |
Hallo Roland,
leider klappt der Befehl SET("Messagemode",0) nicht so richtig !?
Wie muß er lauten ?
Danke !
Grüße Lars
|
|