Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

TTreeView.OnChange - Edit.SetFocus wird nicht ausgeführt

  Alt 2. Dez 2009, 10:15
Hallo #,

ich komme nicht weiter ;(

Ich habe einen normalen TTreeView.
Im OnChange wird je nach Knoten unterhalb des Tree ein Edit eingeblendet
(Visible:= True).
edit und TreeView liegen auf getrennten Panels.

Der Edit soll danach den Focus haben, hat er aber nicht !!!

Der folgende Code geht gar nicht,
Focus wird nicht gesetzt.
Delphi-Quellcode:
  Application.ProcessMessages;

  if NodeData.Tag=C_Tag_Customer then
  begin
    Edit_Filter.SetFocus;
    Application.ProcessMessages;
  end;
Mit folgenden Code wird der Editor fokussiert,
ich kann aber nichts eingeben, jeglicher Tastendruck wird ignoriert,
erst wenn ich per Maus was aus der Zwischenablage hole,
geht es komischerweise wieder.

Delphi-Quellcode:
  Application.ProcessMessages;

  if NodeData.Tag=C_Tag_Customer then
  begin
    PostMessage(Edit_Filter.Handle, WM_SETFOCUS, 0, 0);
   // SendMessage ebenso
    Application.ProcessMessages;
  end;
KeyPreview ist aus.

Was ist hier los *grummel*


#Update:#
Es sieht so aus, als ob der TreeView immer noch den Focus hat
(Pos1-Taste nimmt der dem Editor weg".


#Update2:#
Meine Lösung ist finster, geht aber
Ich habe einen Timer (Intervall 300) genommen,
der setzt den Focus und "beendet" sich danach wieder (Enabled:= False)




Heiko
Heiko
  Mit Zitat antworten Zitat