Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249581 (11017)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Page-Control und Tabulatortaste
Lars
| 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
Rolf Koch
| 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
Lars
| 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
Rolf Koch
| 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
Rolf Koch
| 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....?
Lars
| 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
Rolf Koch
| Datum:03.07.01 23:53 (webmaster@rokosoft.de) |
Aha, meinst Du evtl. %message oder %lastmessage stehen beide in der Profanhilfe. Rolf
Roland G. Hülsmann
| 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.
Lars
| 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

| Zurück zur Übersicht