Apua!

Pieni pulma minulla..

kun Labelissa lukee 100 ja ListBoxin palkissa lukee 500 ja buttonissa on tämä koodi:

Label1.Caption := (Label1.Caption ListBox1.Items.Strings[ListBox1.ItemIndex]);

ja kun buttonista painaa niin labeliin tulee 100500..
millä koodilla labeliin saisi 100500 sijasta 600? :P
3339
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Eli tilanne nyt

Label:n Caption ominaisuus(property) palauttaa merkkijonon (string) jonka lisätään ohjelman käyttäjän valitsemaan ListBox-komponentissa olevaan merkkijonoon. Kun kaksi merkkijonoa lisätään toisiinsa niin syntyy tämä tilanne.


Ilmeisesti haluat laskea kaksi kokonaislukua yhteen joista toinen on Label-komponentissa ja toisen voi ohjelman käyttäjä valita ListBox-komponentissa olevista
luivuista.

Mitä voisi tehdä?

Vastaus olisi että muunnetaan merkkijonot kokonaisluvuiksi. Lasketaan kokonaisluvut yhteen. Muutetan yhteenlaskussa saatu summa takaisin merkkijonoksi.
Merkkijono voidaan muuntaa kokonaisluvuksi (esim.) StrToInt -funktiolla.
Vastaavasti kokonaisluku voidaan muuttaa merkkijonoksi IntToStr -funktiolla.

Eli näppäimen painamista vastaavaan tapahtumaan voisi täydentää vaikka tälläiseksi:
(oletuksena on eka oletus Form ja Button)


procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer ;
begin
   i := StrToInt( Label1.Caption );
   j := StrToInt( ListBox1.Items.Strings[ListBox1.ItemIndex] );
   i := j i;
   Label1.Caption := IntToStr(i);
end;

Äänestä

Ihan vain vinkkinä kannattaa tutustua myös SpinEdit-komponenttiin.
SpinEdit-komponentin Value ominaisuudesta saadaan suoraan integer arvo.
Sillähän on muitakin ominaisuuksia kuten arvon lisäys ja vähennys (hiirtä klikkaamalla).

Äänestä

Välttämättä aivan kaikki ei heti huomaa että myös numeroiden yhteenliittäminen on hyvä asia.

Tätä merkkijonojen lisäystä voi käyttää esim kun valitaan sopivaa teleoperaattoria esim. ulkomaan liikenteessä. Ulkomaan soitoissa puhelinnumeron eteen laitetaan 999 jos operaattoriksi valitaan Elisa, 990 = Sonera, 994=TDC song, 996 = DNA. Sen jälkeen tulee maan numero jne.

Äänestä

Kommentoi aloitusta


uuppi kirjoitti:

Pieni pulma minulla..

kun Labelissa lukee 100 ja ListBoxin palkissa lukee 500 ja buttonissa on tämä koodi:

Label1.Caption := (Label1.Caption ListBox1.Items.Strings[ListBox1.ItemIndex]);

ja kun buttonista painaa niin labeliin tulee 100500..
millä koodilla labeliin saisi 100500 sijasta 600? :P

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu