Speichern mit F12
Moderator: Moderatoren
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Speichern mit F12
Ich möchte gerne in allen Dialogen (oGet, Memoedit) mit F12 anstelle mit PgDn speichern. Was ist hier der beste/einfachste Weg?
Gruß
Markus
Gruß
Markus
Gruß
Markus
Markus
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Speichern mit F12
Wo ist denn PgDn als Speichern-Aufruf hinterlegt?
Ich würde das in der Event-Schleife machen. Das könnte dann z. B. so aussehen:
Da wird dann z. B. mit Enter der Pushbutton ausgelöst, was normalerweise durch die Leertaste passiert.
Jan
Ich würde das in der Event-Schleife machen. Das könnte dann z. B. so aussehen:
Code: Alles auswählen
DO WHILE .T.
nEvent := AppEvent(@mp1, @mp2, @oEventXbp)
// Für einige XBase-Parts ein anderes Tastaturverhalten einsetzen
IF nEvent == xbeP_Keyboard //Ist das überhaupt ein Tastaturevent? Ansonsten aus Performancegründen die ganze Schleife überspringen
IF mp1 = xbeK_ENTER // Ist das ein Enter? Darum geht es schließlich.
IF oEventXbp:isDerivedFrom("XBPPUSHBUTTON") // Ist das ein Pushbutton?
PostAppEvent(xbeP_Activate, NIL, NIL, oEventXbp) // Dann auslösen, wie mit Leertaste
ELSEIF oEventXbp:isDerivedFrom("XbpBrowse") // Ist das eine Browse-Spalte?
PostAppEvent(xbeK_RIGHT, NIL, NIL, oEventXbp) // Dann in die nächste Spalte springen, wie mit PfeilRechts
ELSEIF oEventXbp:isDerivedFrom("XbpCheckBox") // Ist das eine Checkbox?
PostAppEvent(xbeK_TAB, NIL, NIL, oEventXbp) // Dann verlasse, wie mit Tab
ELSEIF oEventXbp:isDerivedFrom("XbpComboBox") // Ist das eine Combobox?
PostAppEvent(xbeK_TAB, NIL, NIL, oEventXbp) // Dann verlasse, wie mit Tab
ELSEIF oEventXbp:isDerivedFrom("XbpSle") // Ist das ein SLE?
mp1 := xbeK_TAB // Dann verlasse, wie mit Tab
ENDIF
ELSEIF mp1 == xbeK_ESC
IF oEventXbp:isDerivedFrom("XbpListBox")
mp1 := xbeK_LEFT // Dann nicht reagieren
ENDIF
ELSEIF mp1 == xbeK_TAB
IF oEventXbp:isDerivedFrom("XbpListBox")
mp1 := xbeK_LEFT // Dann nicht reagieren
ENDIF
ELSEIF mp1 = xbeK_ALT_F4 // Möchte jemand das Programm mit Alt F4 beenden?
mp1 := xbeK_ALT // Das Menü aktivieren
ENDIF
ENDIF
oEventXbp:handleEvent(nEvent, mp1, mp2)
ENDDO
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Speichern mit F12
Ich hatte leider nicht erwähnt das ich TopDown verwende. Ich habe aber eine einfache Lösung:
Source "tdcDEget.prg":
aus ELSEIF nKey == xbeK_PGDN
wurde ELSEIF nKey == xbeK_PGDN .OR. nKey == xbeK_F12
das ganze zwei mal, funktioniert nun super und man kann mit PgDn oder F12 speichern.
Übrigens finde ich TD ist eine Spitzen Erweiterung. Ich bin total begeistert was in den paar Tagen bereits möglich war. Da mein altes Clipperprogramm bereits mit Fenster- und Eventtechnik ausgestattet war, habe ich mich entschlossen gleich alles sauber mit GUI zu programmieren. Ich habe schon mehrer komplette Dialoge (alle in eigene Treads) laufen, klappt schon sehr gut!
Gruß
Markus
Source "tdcDEget.prg":
aus ELSEIF nKey == xbeK_PGDN
wurde ELSEIF nKey == xbeK_PGDN .OR. nKey == xbeK_F12
das ganze zwei mal, funktioniert nun super und man kann mit PgDn oder F12 speichern.
Übrigens finde ich TD ist eine Spitzen Erweiterung. Ich bin total begeistert was in den paar Tagen bereits möglich war. Da mein altes Clipperprogramm bereits mit Fenster- und Eventtechnik ausgestattet war, habe ich mich entschlossen gleich alles sauber mit GUI zu programmieren. Ich habe schon mehrer komplette Dialoge (alle in eigene Treads) laufen, klappt schon sehr gut!
Gruß
Markus
Gruß
Markus
Markus
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Speichern mit F12
Hallo Markus,
und TopDown hat keine Event-Schleife? Kann ich garnicht glauben.
Der Vorteil, das dorthin zu legen ist, daß das dann allgemein gültig ist. Du mußt nicht bei jedem entsprechenden GUI-Element daran denken, das dort einzubauen.
Jan
und TopDown hat keine Event-Schleife? Kann ich garnicht glauben.
Der Vorteil, das dorthin zu legen ist, daß das dann allgemein gültig ist. Du mußt nicht bei jedem entsprechenden GUI-Element daran denken, das dort einzubauen.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Speichern mit F12
Das passt schon, das ist ja der Vorteil, "tdcDEget.prg" ist von TopDown, einmal geändert und es gilt im ganzen Programm. Da ich mehrer Threads habe, habe ich auch mehrer Event-Schleifen die ich alle extra behandeln müsste.
Kunden -> eigener Tread, mehrer Instanzen möglich
Lieferanten -> eigener Tread, mehrer Instanzen möglich
Adressen -> eigener Tread, mehrer Instanzen möglich
Auftrag -> eigener Tread, mehrer Instanzen möglich
....
Kunden -> eigener Tread, mehrer Instanzen möglich
Lieferanten -> eigener Tread, mehrer Instanzen möglich
Adressen -> eigener Tread, mehrer Instanzen möglich
Auftrag -> eigener Tread, mehrer Instanzen möglich
....
Gruß
Markus
Markus
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Speichern mit F12
Ich habe es jetzt etwas anders gelöst:
CLASS myDEget FROM tdcDEget
Ich habe mir eine Subclasse angelegt und die
METHOD Keyboard
überschrieben. Das ist IMHO einfacher upzudaten.
CLASS myDEget FROM tdcDEget
Ich habe mir eine Subclasse angelegt und die
METHOD Keyboard
überschrieben. Das ist IMHO einfacher upzudaten.
Gruß
Markus
Markus
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Speichern mit F12
Sehr gute Lösungsatmax hat geschrieben:...Ich habe mir eine Subclasse angelegt und dieüberschrieben. Das ist IMHO einfacher upzudaten.Code: Alles auswählen
METHOD Keyboard
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Speichern mit F12
Kann man so oder so sehen.Sehr gute Lösung
Ich hätte den KEYBOARD-Callback des MLE bzw. der, falls vorhanden, abgeleiteten Basisklasse verwendet. Das ist auch übersichtlicher und flexibler.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Speichern mit F12
satmax (?) verwendet doch TopDownTom hat geschrieben:Kann man so oder so sehen.
Code: Alles auswählen
CLASS myDEget FROM tdcDEget
ich staune wie schnell satmax sich in Xbase++ eingearbeitet hat, weiter so
gruss by OHR
Jimmy
Jimmy
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Speichern mit F12
Ja, natürlich ist da mehr drinn, Daher habe ich ja nur eine Methode überschrieben, copy & past und 2 Zeilen geändert.AUGE_OHR hat geschrieben:satmax (?) verwendet doch TopDownTom hat geschrieben:Kann man so oder so sehen.ich denke das Clayton da "mehr" drin hat als die Basis Class besitzt und das über das ganze System "wirkt".Code: Alles auswählen
CLASS myDEget FROM tdcDEget
ich staune wie schnell satmax sich in Xbase++ eingearbeitet hat, weiter so
Clayton hat aber das als Anregung für TD V9 aufgenommen und wird mir den entsprechenden Source in den nächsten Tagen zur Verfügung stellen. Dann geht das alles ohne Subclassing: "I will be happy to send you the code in case you want to use it (it would save you from doing all the subclassing),..."
Naja, von eingearbeitet bin ich schon noch ein Stück entfernt... Ist halt wie mit dem Radfahren.
Das schöne an TopDown ist, das der komplette Source mit dabei ist (super zu debuggen) sowie auch fertige "Source Templates". Damit sind auch komplexere Stammdaten in kürzester Zeit realisiert und es ist ein perfektes "learning by doing"!
Wo es mir noch etwas fehlt ist bei den Codeblöcken, Das mit den "When Clauseln" und "Picture Mask" (in Verbindung mit den oGet Objekten), da muss ich mich erst noch etwas tiefer einarbeiten.
Was in Clipper
Code: Alles auswählen
@ 13,55 GET mkue PICT "!" VALID mkue$ "JN"
war, wird jetzt
Code: Alles auswählen
#DEFINE validJN {|o| o:editbuffer() $ "JN" }
...
oGet := myDEget(nR,nGet2,fieldblock("KUE"),oDlg,oDa,;
1,"!",validJN,,,,,,,,,,,,,,aViewClr,,,,aHiLiteClr,aEditClr)
...
Achja, bisher habe ich alle Bildschirmmaksen mit Hand gemacht. IMHO taugen die Designer alle nicht...
Gruß
Markus
Gruß
Markus
Markus
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Speichern mit F12
Clayton hat mir eine Anpassung (Vorabversion) geschickt. Jetzt genügt folgendes:
oDlg:nSaveKey := xbeK_F12
oDlg:nMleSaveKey := xbeK_F12
oDlg:nSaveKey := xbeK_F12
oDlg:nMleSaveKey := xbeK_F12
Gruß
Markus
Markus