AGB  ·  Datenschutz  ·  Impressum  







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

ComboBox Item-Auswahl mit Enter

Offene Frage von "WorstNightmare"
Ein Thema von WorstNightmare · begonnen am 16. Mai 2010 · letzter Beitrag vom 16. Mai 2010
Antwort Antwort
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#1

ComboBox Item-Auswahl mit Enter

  Alt 16. Mai 2010, 19:04
Hallo,

ich nutze eine ComboBox im Style "csDropDown" um eine große Zahl an Daten darzustellen (ca. 10000 Items).
Mein Problem ist:
Wenn ich ein Item mit Enter auswähle wird zwar OnChange aufgerufen und erweiterte Daten (aus Objects[]) werden angezeigt, wenn ich dann aber einen Button drücke der ItemIndex abfragt, ist er -1. Ich glaube das Item wird gar nicht richtig ausgewählt wenn ich Enter benutze (mit der Maus geht es einwandfrei) oder der Index ändert sich wenn die Box den Fokus verliert (denn für kurze Zeit ist der Index ja richtig, wenn OnChange aufgerufen wird).

Weiß jemand wie ich erreichen kann, dass der Index auch richtig gesetzt wird wenn ich mit Enter auswähle?

Ich möchte nicht den Style der ComboBox ändern, denn AutoComplete erleichtert das Finden von Einträgen bei einer solchen Menge schon sehr.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: ComboBox Item-Auswahl mit Enter

  Alt 16. Mai 2010, 19:11
Moin,

Zeig mal den genauen Code. Ich kann das Problem so anhand der Beschreibung nicht reproduzieren (D2010 Professional auf Windows 7).

Habe eine ComboBox mit ein paar Items auf das Form gezogen. Dazu zwei Labels, wovon das eine im OnChange der ComboBox und das andere beim Klick auf einen zusätzlichen Button den Wert von ItemIndex erhält. Kam kein mal -1 vor bei mir.

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#3

Re: ComboBox Item-Auswahl mit Enter

  Alt 16. Mai 2010, 19:28
Meine ComboBox hat AutoDropDown und Sorted aktiviert, sonst alles Standardwerte. Items werden zur Laufzeit aus Datei geladen und eingefügt.

Delphi-Quellcode:
type
  TItemEntry = class
  public
    ID, Desc: string;
    constructor Create(AID, ADesc: string);
  end;

  TIDEntry = class
  public
    ID: string;
    constructor Create(AID: string);
  end;

...

procedure TfrmMain.cbItemsChange(Sender: TObject);
begin
  if cbItems.ItemIndex > -1 then
  begin
    lblID.Caption := TItemEntry(cbItems.Items.Objects[cbItems.ItemIndex]).ID;
    lblDesc.Caption := TItemEntry(cbItems.Items.Objects[cbItems.ItemIndex]).Desc;
  end;
end;

procedure TfrmMain.btnAddClick(Sender: TObject);
begin
  Showmessage(inttostr(cbItems.ItemIndex)); // <-- da -1
  mmSQL.Lines.Add(Format(' (%s, %s, %d, %d),',
    [TIDEntry(cbMobs.Items.Objects[cbMobs.ItemIndex]).ID,
     TItemEntry(cbItems.Items.Objects[cbItems.ItemIndex]).ID,
     seQuest.Value,
     seChance.Value]));
end;

procedure TfrmMain.cbItemsKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
    Showmessage(IntToStr(cbItems.ItemIndex)); // <-- hier ist er noch normal. Allerdings scheint die Box direkt danach auf -1 zu gehen, das ist nur so wenn hier ShowMessage ist.
end;
Ich wähle das Item aus indem ich in die Box z.B. "Silver Ore" eingebe und dann Enter drücke.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: ComboBox Item-Auswahl mit Enter

  Alt 16. Mai 2010, 20:05
Stimmt, mit AutoDropDown = TRUE habe ich diesen Effekt auch. Scheint ein "Problem" der VCL zu sein. Jedoch war ich in der Lage, dieses Verhalten durch Verwendung einer Delphi-Referenz durchsuchenComboBoxEx (mit zusätzlich Delphi-Referenz durchsuchenaoAutoSuggest) zu umgehen. Vielleicht ist die ja für Dich in diesem Fall auch passend...

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#5

Re: ComboBox Item-Auswahl mit Enter

  Alt 16. Mai 2010, 20:47
Na gut, habe jetzt auf ComboBoxEx umgestellt und da besteht das Problem in der Tat nicht.
Da es kein Sorted gibt benutze ich auch ItemsEx, allerdings habe ich festgestellt, dass wenn man den Pfeil mit der Maus drückt das normale, unsortierte Items Menü kommt und nur wenn man auf der Tastatur die nach unten Taste benutzt kommt das sortierte ItemsEx Menü. Kann man irgendwie erreichen dass er immer ItemsEx benutzt?
  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 23:59 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