webForumDet fria alternativet

Combobox

5 svar · 394 visningar · startad av AG

AGMedlem sedan mars 20001 266 inlägg
#1

Är som sagt ny med delphi.
Fattar dock inte hur man lägger in värden i en combobox, hur gör man?

Sen vill jag skriva ut ett tal med två decimaler, avrundat rätt. Som jag har nu blir det såhär "102,40-100 = 2,44".

Tack
Andreas

agneta_rungMedlem sedan juli 2002145 inlägg
#2

Hej Andreas!

Lägga till värden i en combobox kan du göra via propertyn Items i design-läget. Klicka på den lilla knappen med de tre prickarna vid Items så kommer du in i String List Editor. Där skriver du bara in alternativen rad för rad.

Vill du göra det kodmässigt skriver du så här i exempelvis formulärets FormCreate-event:

ComboBox1.Items.Add('Alternativ 1');
ComboBox1.Items.Add('Alternativ 2');
ComboBox1.Items.Add('Alternativ 3');

Ett tips är också att kolla på propertyn Style för comboboxen. Den styr beteendet. csDropDown ger t ex användaren möjlighet att skriva fritt i comboboxen. Jag brukar oftast inte tillåta det utan välja csDropDownList i stället. Då tvingas användaren välja ett av alternativen i listan.
För att formatera ett flyttal kan du göra så här:

edit1.Text := FloatToStrF(102.4 - 100, ffFixed, 7, 2);

Första parametern är förstås själva talet som ska formateras, sedan kommer formatet, därefter precisionen och sist antal decimaler. Det finns förstås andra format än ffFixed att välja på... Läs hjälpen!

AGMedlem sedan mars 20001 266 inlägg
#3

Ok, tack för hjälpen.
Dock vill jag ha ett värde tilldelat comboboxens alla alternativ.
Väljer jag tex "Alternativ 1" kanske värdet är "15". Hur gör man då?

Andreas

agneta_rungMedlem sedan juli 2002145 inlägg
#4

Det enklaste sättet är väl att tolka texten för det alternativ användaren valt:

if ComboBox1.Items[ComboBox1.ItemIndex] = 'Alternativ 1' then
  value := 15
else if ComboBox1.Items[ComboBox1.ItemIndex] = 'Alternativ 2' then
  value := 23
else if ComboBox1.Items[ComboBox1.ItemIndex] = 'Alternativ 3' then
  value := 35;
AGMedlem sedan mars 20001 266 inlägg
#5

Tyvärr inte, blir väldigt lång kod.
Skall ha det som olika listor, födelsedata, landprefix, land etc.
Behöver tilldela varje fält ett värde direkt.

Förresten hur kan man öppna en textfil, typ ett anrop så anteckningar öppnar en fil?

Andreas

agneta_rungMedlem sedan juli 2002145 inlägg
#6

Varifrån kommer datat du ska lägga i comboboxarna? Du kanske kan ha kvar de "listorna" och adressera dig i dem med hjälp av comboboxarnas ItemIndex?! Annars får du väl göra en hjälpklass med exempelvis värde och presentationssträng, skapa en instans för varje Item i comboboxen och hålla dem i en lista som du matchar användarens val mot med hjälp av comboboxens ItemIndex.

Öppna en fil kan du göra så här:

ShellExecute(0, 'open', PChar('notepad.exe'), pchar('c:\filnamn.txt'), '', SW_SHOWNORMAL);

Du måste lägga till ShellAPI i uses-klausulen.

127 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)