Hallo Uwe.
Ich hatte gerade das Minimal-Beispiel gebaut -- und wie der berühmte Vorführeffekt: Ich konnte es nicht mehr nachvollziehen. Also habe ich das Beispiel immer mehr erweitert, und nun habe ich das Problem eingrenzen können:
Delphi-Quellcode:
procedure TMain_Form.AdvDetailDropDown2Change(Sender: TObject);
VAR
SucheKnoten : TTreeNode;
KnotenLbl : String;
begin
KnotenLbl := '';
CASE AdvDetailDropDown2.ItemIndex OF
0 : KnotenLbl := 'Audi';
1 : KnotenLbl := 'BMW';
2 : KnotenLbl := 'Chrysler';
3 : KnotenLbl := 'Daimler';
END;
SucheKnoten := SearchNodeByText(TreeView, KnotenLbl);
IF SucheKnoten = NIL THEN
ShowMessage('Node not found!')
ELSE
BEGIN
//TreeView.SetFocus; <== Das verursacht, dass die DropDown-Liste nicht das ausgewählte Item anzeigt
SucheKnoten.Selected := True;
TreeView.TopItem := SucheKnoten;
SucheKnoten.MakeVisible;
END;
end;
D.h. das explizite Setzen des Focus auf ein anderes Control, verursacht das Problem.
Ich habe die Zeile wie oben nun auskommentiert, da ich erstmal ohne sie leben kann, aber merkwürdig ist schon, oder?
Vielen Dank & Gruß
Jazzman