Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Werte in Combobox einfügen klappt so nicht (https://www.delphipraxis.net/185288-werte-combobox-einfuegen-klappt-so-nicht.html)

khh 28. Mai 2015 10:40

Delphi-Version: 5

Werte in Combobox einfügen klappt so nicht
 
Hallo zusammen,
ich habe eine Combobox mit diversen Items als Vorgabe.
Nun möchte ich per Zuweisung als Beispiel
Delphi-Quellcode:
Combobox3.Text:= '37';
einfügen.
37 ist aber nicht in der Itemliste.
Das funktioniert aber leider nur wenn der Style auf csDropDown gesetzt ist.


Ich brauche aber als Style csdropdownList, damit sich auf dem Touchscreen per "FingerKlick" ins Feld die Liste öffnet.
Gibts dazu ne Alternative?

Ich danke euch

DeddyH 28. Mai 2015 10:48

AW: Werte in Combobox einfügen klappt so nicht
 
Delphi-Quellcode:
Combobox3.Items.Add('37');

khh 28. Mai 2015 10:56

AW: Werte in Combobox einfügen klappt so nicht
 
Zitat:

Zitat von DeddyH (Beitrag 1303364)
Delphi-Quellcode:
Combobox3.Items.Add('37');

so hab ich die '37' zwar in der Liste, aber nicht als selektierten Wert :-(

Neutral General 28. Mai 2015 10:59

AW: Werte in Combobox einfügen klappt so nicht
 
Delphi-Quellcode:
ComboBox3.Items.Add('37');
ComboBox3.ItemIndex := Combobox3.Items.Count-1;

Perlsau 28. Mai 2015 11:03

AW: Werte in Combobox einfügen klappt so nicht
 
Zitat:

Zitat von khh (Beitrag 1303360)
Combobox mit diversen Items als Vorgabe. Nun möchte ich per Zuweisung als Beispiel
Delphi-Quellcode:
Combobox3.Text:= '37';
einfügen.
37 ist aber nicht in der Itemliste. Das funktioniert aber leider nur wenn der Style auf csDropDown gesetzt ist.

Irritierend ist, daß du erst schreibst, '37' sei nicht in er Itemliste, "es" dann aber dennoch funktionieren sollte.
Wie DeddyH schon schrieb, weist man eine Stringliste einen neuen Wert mittels Add oder Append zu. Add ist eine Funktion und liefert den Index des neu angefügten Items zurück. Benötigt man den Index nicht, kann man stattdessen die Procedure Append verwenden. Wenn du dagegen dem Property Text einer ComboBox einen String zuweist, änderst du lediglich den angezeigten Text, ohne ein neues Item anzulegen. Über all das gibt die Online-Hilfe deiner Delphi-Version erschöpfend Auskunft.

Zitat:

Zitat von Neutral General (Beitrag 1303366)
Delphi-Quellcode:
ComboBox3.Items.Add('37');
ComboBox3.ItemIndex := Combobox3.Items.Count-1;

Weshalb so umständlich? Add liefert doch bereits den neuen Index zurück, da muß man doch nicht nochmal Count bemühen ... :gruebel:

Popov 28. Mai 2015 11:06

AW: Werte in Combobox einfügen klappt so nicht
 
Delphi-Quellcode:
  Combobox3.Items.Add('37');
  ComboBox3.ItemIndex := Combobox3.Items.IndexOf('37');
oder
Delphi-Quellcode:
  with Combobox3 do
  begin
    Items.Clear;
    Items.Add('37');
    ItemIndex := Items.IndexOf('37');
    //ItemIndex := Items.IndexOf(Trim(Items.Text));
  end;
oder
Delphi-Quellcode:
  with Combobox3 do
  begin
    Items.Clear;
    ItemIndex := Items.Add('37');
  end;

DeddyH 28. Mai 2015 11:08

AW: Werte in Combobox einfügen klappt so nicht
 
Zitat:

Zitat von Neutral General (Beitrag 1303366)
Delphi-Quellcode:
ComboBox3.Items.Add('37');
ComboBox3.ItemIndex := Combobox3.Items.Count-1;

Funktioniert so zwar auch, aber ich persönlich würde IndexOf verwenden, auch wenn es ggf. einen Tick länger dauert.
Delphi-Quellcode:
s := '37';
ComboBox3.Items.Add(s);
ComboBox3.ItemIndex := Combobox3.Items.IndexOf(s);

Perlsau 28. Mai 2015 11:11

AW: Werte in Combobox einfügen klappt so nicht
 
Was spricht eigentlich dagegen, den von Add zurückgelieferten Wert gleich als ItemIndex zu setzen?

Delphi-Quellcode:
Liste.ItemIndex := Liste.Add('Neues Item');

DeddyH 28. Mai 2015 11:28

AW: Werte in Combobox einfügen klappt so nicht
 
Nix, hab ich nur nicht dran gedacht :)

khh 28. Mai 2015 11:57

AW: Werte in Combobox einfügen klappt so nicht
 
>> Irritierend ist, daß du erst schreibst, '37' sei nicht in er Itemliste, "es" dann aber dennoch funktionieren sollte.

war vielleicht etwas schlecht ausgedrückt :-(
Soll heissen es muss auch ein Wert zu übergeben sein, der nicht in der Itemliste steht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr.
Seite 1 von 3  1 23      

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