dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Moderator: Moderatoren
- Martin Altmann
- Foren-Administrator
- Beiträge: 16542
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Moin,
wie kann ich denn erreichen, dass mein dsSLEDate()-Eingabefeld automatisch verlassen wird, sobald ich im Kalender ein Datum ausgewählt habe und dieses in mein Eingabefeld übernommen wurde?
Muss ich mir eine eigene Funktion in den :selectBlock eines einfachen SLEs packen und dort den Kalender aufrufen? Oder geht das auch einfacher? :autoTab funzt nicht, da der Wert mittels :SetData() übergeben wird (vermute ich mal).
Viele Grüße,
Martin
wie kann ich denn erreichen, dass mein dsSLEDate()-Eingabefeld automatisch verlassen wird, sobald ich im Kalender ein Datum ausgewählt habe und dieses in mein Eingabefeld übernommen wurde?
Muss ich mir eine eigene Funktion in den :selectBlock eines einfachen SLEs packen und dort den Kalender aufrufen? Oder geht das auch einfacher? :autoTab funzt nicht, da der Wert mittels :SetData() übergeben wird (vermute ich mal).
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
-
- Rekursionen-Architekt
- Beiträge: 205
- Registriert: Mo, 07. Aug 2006 10:18
- Wohnort: Leipzig
- Danksagung erhalten: 11 Mal
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Hallo Martin,
ich bin ja kein XClassler, aber kannst Du das nicht über den :setInputFocus-Callback lösen?
Wenn ich Dich richtig verstanden habe, ist dieses dsSLEDate ein Datums-Eingabefeld mit einem
Button dahinter bei dessen Betätigen ein Kalender angezeigt wird. Sobald im Kalender ein Datum
ausgewählt wurde, schließt der Kalender sich wieder, das ausgewählte Datum wird ins Eingabefeld
übernommen und das Eingabefeld erhält den Focus.
Wenn dem so ist, könntest Du den Focus-Erhalt mittels des :setInputFocus-Callback umleiten,
indem Du darin den Focus einfach auf ein anderes Control setzt.
Wie gesagt, ich kennt XClass++ nicht. War nur so eine Idee...
ich bin ja kein XClassler, aber kannst Du das nicht über den :setInputFocus-Callback lösen?
Wenn ich Dich richtig verstanden habe, ist dieses dsSLEDate ein Datums-Eingabefeld mit einem
Button dahinter bei dessen Betätigen ein Kalender angezeigt wird. Sobald im Kalender ein Datum
ausgewählt wurde, schließt der Kalender sich wieder, das ausgewählte Datum wird ins Eingabefeld
übernommen und das Eingabefeld erhält den Focus.
Wenn dem so ist, könntest Du den Focus-Erhalt mittels des :setInputFocus-Callback umleiten,
indem Du darin den Focus einfach auf ein anderes Control setzt.
Wie gesagt, ich kennt XClass++ nicht. War nur so eine Idee...
Beste Grüße,
Sören
Sören
- Martin Altmann
- Foren-Administrator
- Beiträge: 16542
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Moin Sören,
die Idee an sich ist nicht schlecht - nur kann dann der Nutzer nie mehr in das Feld klicken, um das darin stehende Datum manuell zu ändern
Viele Grüße,
Martin
die Idee an sich ist nicht schlecht - nur kann dann der Nutzer nie mehr in das Feld klicken, um das darin stehende Datum manuell zu ändern
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
-
- Rekursionen-Architekt
- Beiträge: 205
- Registriert: Mo, 07. Aug 2006 10:18
- Wohnort: Leipzig
- Danksagung erhalten: 11 Mal
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Ach so, ich nahm an, Du wolltest, dass der Nutzer das Datum generell nur via Kalender auswählt.
Du bräuchtest also so etwas wie ein :CalendarDateSelect-Callback, das feuert, sobald der Nutzer ein Datum im Kalender selektiert.
Da es das wohl nicht gibt -- kommst Du vielleicht an das Objekt des Buttons heran, dessen Auslösen den Kalender anzeigt? Du könntest im :Activate-Callback des Buttons einen Schalter (vielleicht im :Cargo des dsSLEDate) einbauen, der bei Button-Betätigung auf .T. gesetzt wird. Dieser wird anschließend im :setInputFocus-Callback geprüft, und so er .T. ist, wird der Focus auf das nächste Control und der Schalter wieder auf .F. gesetzt; ist er .F., bleibt der Focus auf dem Datums-Eingabefeld.
Du bräuchtest also so etwas wie ein :CalendarDateSelect-Callback, das feuert, sobald der Nutzer ein Datum im Kalender selektiert.
Da es das wohl nicht gibt -- kommst Du vielleicht an das Objekt des Buttons heran, dessen Auslösen den Kalender anzeigt? Du könntest im :Activate-Callback des Buttons einen Schalter (vielleicht im :Cargo des dsSLEDate) einbauen, der bei Button-Betätigung auf .T. gesetzt wird. Dieser wird anschließend im :setInputFocus-Callback geprüft, und so er .T. ist, wird der Focus auf das nächste Control und der Schalter wieder auf .F. gesetzt; ist er .F., bleibt der Focus auf dem Datums-Eingabefeld.
Beste Grüße,
Sören
Sören
- Martin Altmann
- Foren-Administrator
- Beiträge: 16542
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Hallo Sören,
leider nicht - das ist eine vollständig eigene, gekapselte Klasse.
Ich könnte das auch komplett selber bauen (händisch, mit den mir durch XClass++ gegebenen Möglichkeiten), aber vielleicht gibt es ja einen Schalter oder eine Einstellung, die ich bisher übersehen habe und die mir die Möglichkeit einfacher bietet.
Viele Grüße,
Martin
leider nicht - das ist eine vollständig eigene, gekapselte Klasse.
Ich könnte das auch komplett selber bauen (händisch, mit den mir durch XClass++ gegebenen Möglichkeiten), aber vielleicht gibt es ja einen Schalter oder eine Einstellung, die ich bisher übersehen habe und die mir die Möglichkeit einfacher bietet.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
-
- Rekursionen-Architekt
- Beiträge: 205
- Registriert: Mo, 07. Aug 2006 10:18
- Wohnort: Leipzig
- Danksagung erhalten: 11 Mal
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Schade! Na ja, dann bin ich mit meiner Weisheit am Ende .
Vielleicht hat ja ein Anderer (XClass-Nutzer) eine zündende Idee!
Vielleicht hat ja ein Anderer (XClass-Nutzer) eine zündende Idee!
Beste Grüße,
Sören
Sören
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Unter eXPress++ wüsste ich ja, wie es geht....
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Ich dachte bei der XClass ist der Quellcode dabei ... oder war das nur früher so ... vielleicht täusche ich mich auch, das ist ja schon JAHRE her
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16542
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Moin Hubert,
es gibt die XClass++ als Developer (mit Quellcode) und als Standard (ohne Quellcode).
Ich könnte also in dem Quellcode rumpfuschen und die Änderungen machen - müsste ich nur jedesmal erneut machen, wenn eine neuere Version rauskommt.
Oder ich könnte die Klasse ableiten und in meiner Kopie die Änderungen machen - wenn die Methode, an der ich ändern müsste, EXPORTED wäre - ist sie aber nicht!
Da wäre es dann wirklich einfacher, mittels :SelectBlock das selber nachzubilden. Will ich aber eigentlich auch nicht, wenn es einfacher gehen sollte!
Olaf ist ja heute noch am feiern, also warte ich mal noch ein wenig...
Viele Grüße,
Martin
es gibt die XClass++ als Developer (mit Quellcode) und als Standard (ohne Quellcode).
Ich könnte also in dem Quellcode rumpfuschen und die Änderungen machen - müsste ich nur jedesmal erneut machen, wenn eine neuere Version rauskommt.
Oder ich könnte die Klasse ableiten und in meiner Kopie die Änderungen machen - wenn die Methode, an der ich ändern müsste, EXPORTED wäre - ist sie aber nicht!
Da wäre es dann wirklich einfacher, mittels :SelectBlock das selber nachzubilden. Will ich aber eigentlich auch nicht, wenn es einfacher gehen sollte!
Olaf ist ja heute noch am feiern, also warte ich mal noch ein wenig...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Hallo Martin,
was hat Olaf damit zu tun, ich würde den Autor fragen
was hat Olaf damit zu tun, ich würde den Autor fragen
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16542
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Moin Hubert
nun ja - ist halt ein Fall von RTFM. Damit will ich Dieter nicht belästigen.
Olaf deswegen, weil er viel mit XClass++ macht und bestimmt eine Antwort weiß
Viele Grüße,
Martin
nun ja - ist halt ein Fall von RTFM. Damit will ich Dieter nicht belästigen.
Olaf deswegen, weil er viel mit XClass++ macht und bestimmt eine Antwort weiß
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Ich benutze den Quellcode zum "lesen". Damit kann ich mir dann schon "vorstellen" wie das ganze funktioniert.Martin Altmann hat geschrieben:es gibt die XClass++ als Developer (mit Quellcode) und als Standard (ohne Quellcode).
mit dem Codeblock bis du doch schon "nahe dran" ... SelectDay() verwendet doch ein "OnAction" ...Martin Altmann hat geschrieben:Da wäre es dann wirklich einfacher, mittels :SelectBlock das selber nachzubilden.
und dann gibt es ja auch noch den :EndDialog() der was macht ...
gruss by OHR
Jimmy
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16542
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Hallo Jimmy,
magst Recht haben - jedoch ist die Methode nicht in der Hilfe erklärt (und somit würde ich die nicht so ohne weiteres nutzen) und zum Anderen bin ich derzeit zu faul, es selber zu bauen, falls es einfacher mit den von mir genutzten dsSLEDate() gehen sollte. Ich habe im Moment zu viel zu tun, als dafür noch Zeit aufzuwenden - so wichtig ist es (bezogen auf das Gesamtprojekt) nicht, als dass ich dafür groß Energie aufwenden würde. Kann auch im Nachhinein erfolgen, sofern der Kunde mosert
Viele Grüße,
Martin
magst Recht haben - jedoch ist die Methode nicht in der Hilfe erklärt (und somit würde ich die nicht so ohne weiteres nutzen) und zum Anderen bin ich derzeit zu faul, es selber zu bauen, falls es einfacher mit den von mir genutzten dsSLEDate() gehen sollte. Ich habe im Moment zu viel zu tun, als dafür noch Zeit aufzuwenden - so wichtig ist es (bezogen auf das Gesamtprojekt) nicht, als dass ich dafür groß Energie aufwenden würde. Kann auch im Nachhinein erfolgen, sofern der Kunde mosert
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
ich spreche doch über den Source.Martin Altmann hat geschrieben:- jedoch ist die Methode nicht in der Hilfe erklärt
Für den dsCalender gibt es doch ein extra Verzeichniss und ein Blick in den Source "sagt" doch alles ...
gruss by OHR
Jimmy
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16542
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Jimmy,
schon klar! Aber dsCalendar ist eine durch DS-Datasoft bereitgestellte Klasse und die Methode ist nicht in der Hilfe beschrieben.
Klar kann ich im source suchen (und habe es auch gemacht) - aber wie bereits geschrieben, ich nutze dsSLEDate() (und nicht dsCalendar()) und hatte gefragt, ob es dort eine entsprechende Möglichkeit gäbe!
Wenn ich das ganze mittels :selectBlock selber bauen müsste, würde ich einen anderen Weg gehen und das alles selber machen.
Bei dem :selectBlock kann man nämlich bequem mitgeben, ob das Eingabefeld nach Auswahl eines Eintrages verlassen werden soll oder nicht!
Viele Grüße,
Martin
schon klar! Aber dsCalendar ist eine durch DS-Datasoft bereitgestellte Klasse und die Methode ist nicht in der Hilfe beschrieben.
Klar kann ich im source suchen (und habe es auch gemacht) - aber wie bereits geschrieben, ich nutze dsSLEDate() (und nicht dsCalendar()) und hatte gefragt, ob es dort eine entsprechende Möglichkeit gäbe!
Wenn ich das ganze mittels :selectBlock selber bauen müsste, würde ich einen anderen Weg gehen und das alles selber machen.
Bei dem :selectBlock kann man nämlich bequem mitgeben, ob das Eingabefeld nach Auswahl eines Eintrages verlassen werden soll oder nicht!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
RTFM
ich konnt jetzt nicht anders ... obs dort steht KEINE Ahnung
ich konnt jetzt nicht anders ... obs dort steht KEINE Ahnung
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16542
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?
Hallo Hubert,
nein - dort steht es ja eben leider nicht.
Aber egal - ich hatte es jetzt auch schon manuell mal kurz versucht (mittels einem normalen dsSLE() und entsprechendem :selectBlock und dsCalendarDialog()) - aber so ganz erfolgreich war es nicht. Im Prinzip zwar schon, aber es ist nicht Modal zum Fenster (obwohl angegeben) und ein <ESC> schließt somit gleich das Hauptfenster (und nicht nur den Kalendar, wie es bei dem dsSLEDate() der Fall ist). Außerdem funktioniert die Berechnung der Position nicht richtig (unter Windows 7 und manifest) - ich hatte die linke obere Ecke auf das dazugehörige dsSLE:currentPos gesetzt, und damit lag es zwar linksbündig zum SLE, aber die obere Kante war in der Mitte des SLE. Auch das konnte ich durch Übergeben der Koordinaten ja umgehen.
Aber wie geschrieben - es ist wesentlich mehr Aufwand, das ganze komplett nachzubilden, als vielleicht eine Option (die ich nicht kenne) bei dem dsSLEDate() zu nutzen.
Viele Grüße,
Martin
nein - dort steht es ja eben leider nicht.
Aber egal - ich hatte es jetzt auch schon manuell mal kurz versucht (mittels einem normalen dsSLE() und entsprechendem :selectBlock und dsCalendarDialog()) - aber so ganz erfolgreich war es nicht. Im Prinzip zwar schon, aber es ist nicht Modal zum Fenster (obwohl angegeben) und ein <ESC> schließt somit gleich das Hauptfenster (und nicht nur den Kalendar, wie es bei dem dsSLEDate() der Fall ist). Außerdem funktioniert die Berechnung der Position nicht richtig (unter Windows 7 und manifest) - ich hatte die linke obere Ecke auf das dazugehörige dsSLE:currentPos gesetzt, und damit lag es zwar linksbündig zum SLE, aber die obere Kante war in der Mitte des SLE. Auch das konnte ich durch Übergeben der Koordinaten ja umgehen.
Aber wie geschrieben - es ist wesentlich mehr Aufwand, das ganze komplett nachzubilden, als vielleicht eine Option (die ich nicht kenne) bei dem dsSLEDate() zu nutzen.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16542
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: dsSLEDate(): Verlassen des Feldes ...[ERLEDIGT]
So,
habe nun doch ein wenig Muße gefunden.
Es gibt die Funktion dsSelectDate(), die das ausgewählte Datum zurück gibt und zusätzlich in das SLE schreibt.
Diese habe ich nun in eine in dem :selectBlock aufgerufene Methode gewrappt und die Rückgabe mittels IsDate(...) geprüft. Wurde ein Datum zurückgegeben (also ausgewählt), so wird nun das SLE verlassen.
Viele Grüße,
Martin
habe nun doch ein wenig Muße gefunden.
Es gibt die Funktion dsSelectDate(), die das ausgewählte Datum zurück gibt und zusätzlich in das SLE schreibt.
Diese habe ich nun in eine in dem :selectBlock aufgerufene Methode gewrappt und die Rückgabe mittels IsDate(...) geprüft. Wurde ein Datum zurückgegeben (also ausgewählt), so wird nun das SLE verlassen.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.