Einzelnen Beitrag anzeigen

Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#3

AW: TMS TAdvDetailDropDown: ItemIndex wird ignoriert

  Alt 4. Jun 2011, 16:05
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
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat