Witam, mam pytanie co do ComboBox'a.
Muszę zrobić program " Kantor " ( liczenie walut itp. )
Sam program nie jest dla mnie problemem, lecz ten przeklęty ComboBox.
Pytanie1: Jak mam napisać polecenie wpisujące do ComboBox'a, np. Dolar, (niżej) Jen, (niżej) Euro.
Pytanie2: Jak mam napisać polecenie które wybraną wartość ( w tym przypadku, np. " Dolar " ) z ComboBox'a wprowadzi do Edita?
Proszę o szybką pomoc...
Ad 1. Właściwość Items
Ad 2. Edit1.Text:=ComboBox1.Text;
Dodam, że Ad 2. dodajesz w OnSelect właściwości Comboboxa.
Dobra, albo ze mną coś nie tak albo nie wiem. Wpisuję:
ComboBox1.Items.AddObject('Euro');
to mi wyskakuje błąd, że mało realne parametry.
Jak chcesz dodać coś do Comboboxa to wpisujesz
Combobox1.Items.Add('Euro');
Bo metoda AddObject
przyjmuje dwa parametry - łańcuch znaków oraz referencję do obiektu dziedziczącego z klasy TObject
; Do dodawania tylko łańcucha znaków służy metoda Add
;
A wątek przenoszę do działu dla początkujących, bo problem związany jest z podstawowymi zagadnieniami.
Rozumiem, że wątek zostaje przeniesiony i przepraszam, że go wcześniej do złego działu dałem. Jestem nowy..
A co do combo..
Wpisuję: ComboBox1.Items.Add('Euro'+'Jen'+'Dolar'); , odpalam program i gdy próbuję rozsunąć Combo to jest puste...
No ale gdzie to wpisujesz?
Czy nie prościej zrobić to w inspektorze?
Jak chcesz razem i w kodzie to: ComboBox1.Items.Text:='Euro'#13#10'Jen'#13#10'Dolar';
Jak chcesz aby od razu był wybrany Jen
to dodajesz: ComboBox1.ItemIndex:=1;
Wpisuję to w procedurach Combo..
Program na tak działać, że jak z Combo wybiorę np. " Jen " to wpisuje automatycznie " Jen " do notatnika i liczy.
Z liczeniem dam radę tylko to Combo..
No to znajdź w Object Inspectorze Comboboxa (prawdopodobnie po lewej stronie ekranu) pole Items, kliknij na nie 2x i dodaj te wszystkie Euro, Jeny, Marki, Funty, Szylingi itp :-)
A potem dodaj pod OnSelect Comboboxa te procedury przeliczające.
Dziękuję bardzo! Teraz mam inne pytanie, jak napisać polecenie żeby wybór z Combo automatycznie został wpisany do Edita? ;)
Hmm, czyli? Chyba nie rozumiem.
W drugim poście _13th_Dragon ci napisał. Ale do trzeciego posta też zajrzyj.
Już mam, dziękuję wszystkim serdecznie za pomoc. ;)
Mam jeszcze jeden drobny problem... Po wybraniu parametru z ComboBoxa zostaje on wyświetlony w Edit1, ale po wpisaniu licz program w miejscach przeznaczonych na wynikach wpisuje same zera..
To ten program:
var
kod :integer;
id,ie,ids,ij :real;
xe,xd,xj,xds,xpln :real;
kd,ke,kj,kds,kpln,pln :real;
kdt,ket,kjt,kdst,kplnt :string;
xet,xdt,xdst,xplnt,xjt :string;
begin
if(Edit1.text='Jen') then
begin
xjt:=Edit2.Text;
val(kjt,kj,kod);
kdt:=Edit3.Text;
val(kdt,kd,kod);
ket:=Edit4.Text;
val(ket,ke,kod);
kjt:=Edit5.Text;
val(kjt,kj,kod);
kdst:=Edit6.Text;
val(kdst,kds,kod);
pln:=xj/kj;
id:=pln/kd;
ie:=pln/ke;
ij:=xj;
ids:=pln/kds;
Edit7.Text:=Format('%3.2f',[pln]);
Edit8.Text:=Format('%3.2f',[id]);
Edit9.Text:=Format('%3.2f',[ie]);
Edit10.Text:=Format('%3.2f',[ij]);
Edit11.Text:=Format('%3.2f',[ids]);
end;
end;
dodanie znacznika <code class="delphi">
- @furious programming
Więc prześledź debuggerem czemu tak się dzieje.
Jaka jest wartość xj
?
Weź zrób sobie tablicę, tak aby cały kod wyglądał następująco:
val:=StrToFloat(SrcValue.Text);
for I:=0 to Length(Tb)-1 do tb[I].ValueEdit.Text:=FormatFloat('#.00',val*StrToFloat(tb[SrcValut.ItemIndex].RateEdit.Text)/StrToFloat(tb[I].RateEdit.Text));
Do tego potrzebujesz jedynie deklaracji tej tb
w klasie oraz jej wypełnienia w konstruktorze.
Naprawdę to cały kod - nie żartuję.