dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Moderator: Moderatoren

Antworten
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von Martin Altmann »

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
:grommit:
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.
Sören
Rekursionen-Architekt
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?

Beitrag von Sören »

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...
Beste Grüße,
Sören
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von Martin Altmann »

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
:grommit:
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.
Sören
Rekursionen-Architekt
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?

Beitrag von Sören »

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.
Beste Grüße,
Sören
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von Martin Altmann »

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
:grommit:
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.
Sören
Rekursionen-Architekt
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?

Beitrag von Sören »

Schade! Na ja, dann bin ich mit meiner Weisheit am Ende :( .
Vielleicht hat ja ein Anderer (XClass-Nutzer) eine zündende Idee!
Beste Grüße,
Sören
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
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?

Beitrag von Wolfgang Ciriack »

Unter eXPress++ wüsste ich ja, wie es geht.... :wink:
Viele Grüße
Wolfgang
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von brandelh »

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 8)
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von brandelh »

Hallo Martin,

was hat Olaf damit zu tun, ich würde den Autor fragen ;-)
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von Martin Altmann »

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ß 8)

Viele Grüße,
Martin
:grommit:
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.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von AUGE_OHR »

Martin Altmann hat geschrieben:es gibt die XClass++ als Developer (mit Quellcode) und als Standard (ohne Quellcode).
Ich benutze den Quellcode zum "lesen". Damit kann ich mir dann schon "vorstellen" wie das ganze funktioniert.
Martin Altmann hat geschrieben:Da wäre es dann wirklich einfacher, mittels :SelectBlock das selber nachzubilden.
mit dem Codeblock bis du doch schon "nahe dran" ... SelectDay() verwendet doch ein "OnAction" ...
und dann gibt es ja auch noch den :EndDialog() der was macht ...
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von AUGE_OHR »

Martin Altmann hat geschrieben:- jedoch ist die Methode nicht in der Hilfe erklärt
ich spreche doch über den Source.
Für den dsCalender gibt es doch ein extra Verzeichniss und ein Blick in den Source "sagt" doch alles ...
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von brandelh »

RTFM :D

ich konnt jetzt nicht anders ... obs dort steht :^o KEINE Ahnung :D
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes nach Auswahl im Kalender?

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: dsSLEDate(): Verlassen des Feldes ...[ERLEDIGT]

Beitrag von Martin Altmann »

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
:grommit:
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.
Antworten