AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TMS TAdvDetailDropDown: SelectFirst will nicht

Ein Thema von Jazzman_Marburg · begonnen am 22. Jun 2011 · letzter Beitrag vom 23. Jun 2011
Antwort Antwort
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

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

TMS TAdvDetailDropDown: SelectFirst will nicht

  Alt 22. Jun 2011, 20:26
Hallo Leute!
Ich benutze von TMS die DropDown-Komponente vom Typ TAdvDetailDropDown und wundere mich gerade darüber, dass das SelectFirst (oder SelectLast, SelectNext, SelectPrevious) nicht funktioniert. Konkret befülle ich die DropDown-Liste und möchte anschließend, dass das erste (oder ein beliebiges) Item selektiert wird: stattdessen bleibt die Zeile leer. Wenn man die DropDown aufklappt, sieht man, dass alle Items exsitieren -- nur ist eben keines selektiert. So gehe ich vor:
Delphi-Quellcode:
  DropDown: TAdvDetailDropDown;
  ...

  DropDown.Items.Clear;
  DropDown.Clear;

  FOR i := 0 TO myContainer.Count -1 DO
  BEGIN

    WITH DropDown.Items.Add DO
    BEGIN
      Caption := TParameters(myContainer.Items[i]).Name;
      ImageIndex := 24;
    END;

  END;

  DropDown.Refresh; // egal welche Kombination:
  DropDown.SelectPrevious; // SelectFirst, SelectNext etc.
  DropDown.Refresh; // diese Zeilen zeigen keine Wirkung

  DropDown.ItemIndex := 0; // Auch keine Wirkung
Mache ich da was falsch -- oder eher ein Bug bei TMS?

Lieben Dank & Gruß
Jazzman_Marburg
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: TMS TAdvDetailDropDown: SelectFirst will nicht

  Alt 23. Jun 2011, 13:50
Hallo,

Ich habe es gerade mal ausprobiert, dein Code funktioniert soweit. Das Select... ist nicht nötig, es reicht das ItemIndex := ... .

Wenn ich den Code allerdings ein zweites Mal aufrufe wird zwar das Item in der Liste selektiert aber nicht mehr im Textteil der Komponente dargestellt.

Die Lösung ist, vor dem befüllen der Items den Itemindex auf -1 zu setzen.

Hier mal der Code der funktioniert:

Delphi-Quellcode:
procedure TForm20.InitDropDown;
var
  DropDown: TAdvDetailDropDown;
  i: Integer;
begin
  DropDown := advdtldrpdwn1;
  DropDown.ItemIndex := -1;
  DropDown.Items.Clear;
  for i := 0 to 20 - 1 do begin
    with DropDown.Items.Add do begin
      Caption := 'Item: ' + IntToStr(i)
    end;
  end;
  DropDown.ItemIndex := 4;
end;
Ich habe hier das zur Zeit neuste Update des TMS Component Packs (V6.1.1.0) installiert.

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

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

AW: TMS TAdvDetailDropDown: SelectFirst will nicht

  Alt 23. Jun 2011, 16:04
Das Select... ist nicht nötig, es reicht das ItemIndex := ... .
Aha!

Ich habe es gerade probiert -- es funktionert so wie Du es sagst. Dankeschön für den Hinweis.
Wundere mich dann nur über:
a) warum/oder wozu dann das Select da ist
b) wozu das DropDown.Clear; da ist: Ich hätte ja erwartet, dass nach dem Clear die Liste leer ist, aber tatsächlich ist sie es erst nach einem Items.Clear;

Naja -- wie dem aus sei: Vielen Dank für Deinen hilfreichen Tipp!

Schönen Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz