Dexter666 [ aka Harnaś, aka eiP ]
Stało się.. mam problem w Delphi7...
...i jestem zdesperowany. Bardzo proszę jakiegoś znawcę programowania aby poswięcił mi pare chwil...
O co chodzi? już piszę... Wpisuje liczby do Edita i poprzez nacisniecie guziczka "min&max" w odpowiednich labelach ma mi wyskoczyc najwieksza i najmniejsza liczba jaką wpisałem. Tutaj chodiz o to,że wpisuje liczbe 5 naciskam guzik i 5 ma sie pokazac w labelu1 i w labelu2 , wpisuje 4 to label1(pokazujacy najmniejsza wartosc) zmienia sie na 4 a label2(odp. za najwieksza wartosc) zostaje z 5 i tak cały czas.
co do najwiekszej liczby to zrobiłem tak i działa to:
if strtoint(edit1.Text) > strtoint(label5.Caption) then (label5.Caption:=edit1.Text);
gdzie oczywiscie Caption tego labela5 po uruchomieniu programu ma defaultową wartość 0
Z gory mowie,ze zmiana znaku">" na "<" nie pomaga.
Mam nadzieje,ze wyraziłem się jasno.
DEXiu [ Konsul ]
Eee. Nie wiem czy czegoś nie przeoczyłem, ale dalej nie wiem w czym tkwi problem? :/
Dexter666 [ aka Harnaś, aka eiP ]
W tym, ze... nie wiem jak napisac to aby ta wartosc minimalna sie zmieniala w zaleznosci od tego co wpisze do Edita... jak juz mowilem na max mi działa lecz nei na min :/
Chce porownywac liczbe wpisana do Edita z tą co niby juz tam jest(i jezeli jest mniejsza to zamienic ją) ale na poczatku programu to pole jest puste lub ma wartosc taką jaką jej dałem.
Dexter666 [ aka Harnaś, aka eiP ]
Czy jest taka mozliwosc w delphi ze po nacisnieciu guziczka czynnosc wykonuje sie tylko i wyłącznie 1 raz (pierwszy raz) a pozniej juz sie nie wykonuje ?
Daro2k [ Pretorianin ]
Jeśli wpisałeś to w zdarzeniu OnClick, to musi się wykonywać za każdym razem, kiedy wcisniesz przycisk. Jak chcesz, to wyslij mi zrodlo programu na maila (darrel na wp.pl) zobacze czemu nie gra :)
Dexter666 [ aka Harnaś, aka eiP ]
Daro2k --> poszło.
Daro2k [ Pretorianin ]
W zdarzeniu OnClick jest to:
if strtoint(edit1.Text) > strtoint(label2.Caption)
then (label2.Caption:=edit1.Text);
if strtoint(edit1.Text) < strtoint(label2.Caption)
then (label1.Caption:=edit1.Text);
a powinno być to:
if strtoint(edit1.Text) > strtoint(label2.Caption)
then (label2.Caption:=edit1.Text);
if strtoint(edit1.Text) < strtoint(label1.Caption)
then (label1.Caption:=edit1.Text);
Poza tym, na początku ustalasz Label1.Caption na 0, wiec zeby cos sie zmienilo musisz wpisac liczbe ujemna.
Daro2k [ Pretorianin ]
...Liczbe ujemna w polu Edit1. No chyba, że ustalisz inną wartość Label1.Caption
Dexter666 [ aka Harnaś, aka eiP ]
Daro --> napisales o co ja juz wiem, ale powiedmzy,ze chce wpisac 5 to mi sie nie zmieni w tym labelu1 to wszystko jest uzaleznione od wartosci jaka jest na poczatku w label1. a nie chce zbey było... rozumiesz?
Daro2k [ Pretorianin ]
Czyli chcesz, zeby na samym poczatku, po wcisnieciu przycisku, wartosc Label1 i Label2 przyjely wartosci z Edit1, a dopiero po kolejnym wcisnieciu Label1 zmienial sie, jesli jej wartosc jest mniejsza od Edita?
Jesli tak, to robisz jeszcze jeden warunek:
if (StrToInt(Label1.Caption) = 0) then
Label1.Caption := Edit1.Text;
O ile na poczatku ustaliles, ze Label1.Caption jest rowne 0.
Dexter666 [ aka Harnaś, aka eiP ]
Daro2k --> jesteś........ zajebisty:D Działa!! dziekuje Ci ślicznie!
Daro2k [ Pretorianin ]
Nie ma sprawy :)
Powinienes zmienic wartosc poczatkowa Label1. Zakladajac taka sytuacje, ze na poczatku wpiszesz 10, Label1 zmieni sie na 10, potem wpiszesz 0, Label1 zmieni sie na 0. I cokolwiek teraz wpiszesz, znow sie zmieni, czyli wpiszesz np. 7, to mimo, ze 7 nie jest mniejsze od 0, wartosc Labela zmieni sie na 7. Mam nadzieje, ze rozumiesz, o co mi chodzi :)
Dexter666 [ aka Harnaś, aka eiP ]
rozumiem rozumiem, ale na jaka tu zmienic wartosc? co zrobic aby tak nie bylo....
Dexter666 [ aka Harnaś, aka eiP ]
chyba juz wiem, wprowadizlem na poczatku licnzik:=0 i teraz tak wyglada:
licznik:=licznik+1;
if (licznik=1) then
begin
if (StrToInt(Label4.Caption) = 0) then
(Label4.Caption:=Edit1.Text);
if (StrToInt(Label5.Caption) = 0) then
(Label5.Caption:=Edit1.Text);
end;
moze byc? dobrze by bylo jakbys zaproponował coś innego :>
Dexter666 [ aka Harnaś, aka eiP ]
haaa tez nie do konca bo jak pierwsza liczba bedzie 0 to wtedy leze :] Przy pomocy forum ks-ekspert zrobiłem tak:
if (StrToInt(Label4.Caption) = 0) and (StrToInt(Label5.Caption) = 0) then
begin
Label4.Caption := Edit1.Text;
Label5.Caption := Edit1.text;
end;
Teraz dziala chocby nie wiem co :P
Daro2k [ Pretorianin ]
No fakt, teraz bedzie dzialac.
Jedna uwaga: przy instrukcji warunkowej nie musisz uzywac konwersji, wystarczy, ze wpiszesz
if (Label4.Caption = '0') and (Label5.Caption = '0') then
w sumie nie jest to blad, ale po co wykonywac zbedne konwersje Stringa na Integer.