Verlorener Form-Fokus leert Variablen-Felder

17. November 2008 13:51

Bin ratlos :-(

Ich habe eine neue Form mit SourceTable = Contact und SourceTableTemporary = Yes.
Auf dieser Form befindet oben ein Frame mit Feldern aus einer globalen Contact-Record-Variablen. Diese Felder dienen der Eingabe von Suchkriterien.
Nach Aufruf von F8 werden die Kontakte entsprechend gesucht und unten in einer TableBox in Form von temporären Records angezeigt - funktioniert alles einwandfrei.
Mit F3 (ja ...) führe ich ein ACTIVATE auf das 1. Suchfeld aus (damit der Benutzer sofort neue Kriterien eingeben kann).
Zur Verdeutlichung: dort steht nur das hier drin:
Code:
CurrForm.BoxContactNoSearch.ACTIVATE;


Wurden bei F8 Datensätze gefunden, ich öffne eine andere Form und gebe meiner neuen Form wieder den Fokus, dann sieht meine neue Form genauso aus wie zu dem Zeitpunkt, als ich die Kontaktkarte aufgerufen habe, also auch mit allen Suchkriterien.

Wenn F8 jedoch keine Datensätze lieferte (der temp. Record also leer ist), die Form den Fokus verliert und wieder erhält, scheinen die Suchfelder plötzlich leer zu sein.
Klicke ich jedoch in die Suchfelder hinein, steht der alte Wert dort noch immer drin (so wie es ja sein soll). Sofort beim Verlassen des Feldes wird der Inhalt aber wieder ausgeblendet.
Bei F3 werden alle Suchfelder auf Dauer wieder sichtbar. Außerdem wird der (nicht vorhandene) temp. Record intialisiert (sehe ich daran, dass im Feld Art plötzlich wieder "Unternehmen" drin steht).
Ich habe alles mögliche ausprobiert, z.B. im OnActivateForm-Trigger dies hier:

Code:
IF ISEMPTY THEN BEGIN
  CurrForm.BoxContactNoSearch.ACTIVATE; // Entspricht F3
END;


Aber der Benutzer muss noch immer F3 drücken ... Der Debugger meldet mir, dass der Code aber erwartungsgemäß durchlaufen wird. Außerdem steht danach der Cursor im richtigen Feld.

Kann jemand verstehen, was hier schiefläuft?
Wie kann ich dafür sorgen, dass die Suchfelder nicht einfach so verschwinden?

Re: Verlorener Form-Fokus leert Variablen-Felder

17. November 2008 16:15

Wie schaut´s denn aus, wenn du anstelle einer der Contact-Variablen für die Suchfelder mal testweise eine Text30-Variable (oä) nimmst?

Re: Verlorener Form-Fokus leert Variablen-Felder

17. November 2008 16:22

McClane hat geschrieben:Wie schaut´s denn aus, wenn du anstelle einer der Contact-Variablen für die Suchfelder mal testweise eine Text30-Variable (oä) nimmst?

Leider ohne Änderung.

Re: Verlorener Form-Fokus leert Variablen-Felder

17. November 2008 16:35

Wie hast du denn das Activate auf F3 gelegt?

Nicht, dass du mit dem F3 doch noch vorher einen neuen Datensatz anlegst. Dadurch habe ich mal ähnliche Effekte in einer Form gehabt, meine ich mich zu erinnern :-?

Re: Verlorener Form-Fokus leert Variablen-Felder

17. November 2008 16:52

McClane hat geschrieben:Wie hast du denn das Activate auf F3 gelegt?

Neues MenuItem erstellen, OnPush-Trigger ausprogrammieren und ShortCutKey auf F3 stellen, fertig :-)

Nicht, dass du mit dem F3 doch noch vorher einen neuen Datensatz anlegst. Dadurch habe ich mal ähnliche Effekte in einer Form gehabt, meine ich mich zu erinnern :-?

Die Form basiert auf Temporären Records (SourceTableTemporary = Yes). Bei denen kann ich mittels F3 (Datensatz einfügen) gar nichts anrichten, obwohl die Eigenschaft InsertAllowed auf Standard-<Yes> steht.

Habe zum Test F3 auf F6 umgelegt - keine Änderung ...

Re: Verlorener Form-Fokus leert Variablen-Felder

17. November 2008 17:23

Krieg ich nicht nachvollzogen ...

zum Einen nicht, dass der Inhalt des Controls verschwindet und zum Anderen nicht, dass F3 kein Insert in meiner temp. Tabelle bewirkt :-?

Aber wenn ich InsertAllowed auf No stelle, kann ich mit F8 super suchen lassen und mit F3 den Focus auf mein Suchfeld legen.

Re: Verlorener Form-Fokus leert Variablen-Felder

17. November 2008 18:06

McClane hat geschrieben:Aber wenn ich InsertAllowed auf No stelle, kann ich mit F8 super suchen lassen und mit F3 den Focus auf mein Suchfeld legen.

Der Fokus (auf das erste Feld) funktioniert wunderbar. Nur die anderen Suchfelder bleiben leer, solange der Cursor nicht draufsteht ...
Wenn der gleiche Fokus vom Benutzer statt vom Quelltext ausgeführt wird, klappts wie gesagt wunderbar.

Re: Verlorener Form-Fokus leert Variablen-Felder

17. November 2008 18:39

Jetzt kriege ich das wenigstens nachvollzogen ;)

Re: Verlorener Form-Fokus leert Variablen-Felder

17. November 2008 19:17

McClane hat geschrieben:Jetzt kriege ich das wenigstens nachvollzogen ;)

Juhu! Ich bin nicht verrückt! :-) ;-)

Re: Verlorener Form-Fokus leert Variablen-Felder

18. November 2008 12:33

Juhu! Ich bin nicht verrückt!


Irgendwie überlese ich da ständig das "noch nicht" ;)

Ich habe keinen Weg gefunden, der Form dieses Verhalten abzugewöhnen. Oder doch: ich habe es geschafft, dass sich gleich mehrere Textfelder leeren, wenn die Form deaktiviert und reaktiviert wird :cry:

Bist du bei der Sache weiter gekommen?

Re: Verlorener Form-Fokus leert Variablen-Felder

18. November 2008 12:48

McClane hat geschrieben:Bist du bei der Sache weiter gekommen?

Nee, sonst hätt' ich das Problem hier erst gar nicht veröffentlicht.
Habe alle möglichen Form-Eigenschaften ausprobiert (z.B. beim UpdateOnActivate usw.), aber ohne Änderung.

Re: Verlorener Form-Fokus leert Variablen-Felder

18. November 2008 13:18

Mir fällt nur noch die unschöne Lösung mit SendKeys im OnActivate ein. Funktioniert zwar, aber naja.

Re: Verlorener Form-Fokus leert Variablen-Felder

18. November 2008 14:21

McClane hat geschrieben:Mir fällt nur noch die unschöne Lösung mit SendKeys im OnActivate ein. Funktioniert zwar, aber naja.

lol
Hilft auch nicht .... Ehrenwort ...

Scheint so, als wäre der OnActivate einen Ticken zu früh?

Re: Verlorener Form-Fokus leert Variablen-Felder

18. November 2008 14:50

Scheint so, als wäre der OnActivate einen Ticken zu früh?


Habe ich mir auch schon überlegt ...

Bei mir ist es so, dass es mit 2 Textfeldern "funktioniert". Und zwar derart, dass ein F3+Return per SendKeys im OnActivate den Inhalt beider Textfelder sichtbar macht, das Focus-Setzen (welches F3 per Hand bewirkt) aber nicht passiert.

Würde also ausreichen, klappt aber trotzdem nicht wirklich richtig ...