Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage zur Combobox (csdropdownlist) (https://www.delphipraxis.net/75910-frage-zur-combobox-csdropdownlist.html)

polondo 27. Aug 2006 06:26


Frage zur Combobox (csdropdownlist)
 
hallo ich habe eine Frage zu den gewöhnlichen Comboboxen in Delphi 2005.
In meinem Programm ist es manchmal notwendig das ich meine Comboboxen editierbar habe und manchmal nicht.
Ich habe schon herausgefunden das ich dazu im "Style" der Combobox entweder "csdropdown" oder "csdropdownlist" nehmen muss.
Allerdings scheint das Ganze bei mir nicht wirklich zu funktionieren. Ich stelle die Combobx von Anfang an auf csdropdownlist(also nicht editierbar)
und starte dann das programm. Immer wenn ich etwas vom Programm aus in die Combobox füllem möchte stelle ich die Combobox per Programmcode auf
"csdropdown" und wenn ich fertig bin mit beschreiben der Combobox dann wieder zurück auf csdropdownlist. bei mir bleibt er aber irgendwie immer auf
"csdropdownlist" und lässt sich nicht editieren. kann es sein das ich da noch etwas anderes machen muss außer das "style" umzustellen?

danke schonmal für alle Antworten

mfg R.

Sharky 27. Aug 2006 07:33

Re: Frage zur Combobox (csdropdownlist)
 
Zitat:

Zitat von polondo
....Immer wenn ich etwas vom Programm aus in die Combobox füllem möchte ...

Hai polondo,

was verstehst Du denn unter "vom Programm aus"?
Wenn Du etwas zur Leufzeit zu der ComboBox hinzufügen möchtest musst Du den Style ja nicht ändern.
Oder möchtest Du wirklich den Text in der ComboBox ändern? Wenn ja: Möchtest Du diese Änderung dann auch als Eintrag in der ComboBox haben?

Wenn ich auf der Form eine TComboBox, ein TEdit, eine TCheckBox und einen TButton habe kann ich das zum Beispiel so machen:
Delphi-Quellcode:
// Beim klick auf den Button wir der Eintrag aus dem Edit1 zur ComboBox hinzugefügt.
// Unabhängig davon welchen "Style" sie ha
procedure TDemo_Form.btn_AddEdit2ComboBoxClick(Sender: TObject);
begin
  ComboBox1.Items.Add(Edit1.Text);
end;

// Über die CheckBox wird der "Style" der ComboBox geändert.
procedure TDemo_Form.CheckB_ComboBoxStyleClick(Sender: TObject);
begin
  if ((Sender as TCheckBox).Checked) then
  begin
    ComboBox1.Style := csDropDown;
  end
  else
  begin
    ComboBox1.Style := csDropDownList;
  end;
end;

// Wenn die ComboBox editierbar ist (Style = csDropDown) kann der Text geändert werden.
// Beim verlassen der CB wird ein neuer Text zu den Items hinzugefügt.
procedure TDemo_Form.ComboBox1Exit(Sender: TObject);
begin
  with (Sender as TComboBox) do
  begin
    if (Style = csDropDown) then
    begin
      if (Items.IndexOf(Text) = -1) then
      begin
        Items.Add(Text);
      end;
    end;
  end;
end;

polondo 27. Aug 2006 13:15

Re: Frage zur Combobox (csdropdownlist)
 
danke erstmal für deine antwort!

was ich damit meinte ist das ich es zur laufzeit ändern möchte bzw. bereits bestehende einträge anwählen.
habe herausgefunden das es zu meinem problem folgende lösung gibt:

Delphi-Quellcode:
combobox.itemindex := combobox.items.indexof('text');
damit hab ichs gelöst :thumb:


mfg R.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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