GRY-Online.pl --> Archiwum Forum

Stało się.. mam problem w Delphi7...

01.11.2005
11:33
smile
[1]

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.

01.11.2005
11:44
[2]

DEXiu [ Konsul ]

Eee. Nie wiem czy czegoś nie przeoczyłem, ale dalej nie wiem w czym tkwi problem? :/

01.11.2005
12:01
[3]

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.

01.11.2005
12:04
smile
[4]

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 ?

01.11.2005
12:20
[5]

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 :)

01.11.2005
12:29
[6]

Dexter666 [ aka Harnaś, aka eiP ]

Daro2k --> poszło.

01.11.2005
12:42
[7]

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.

01.11.2005
12:43
[8]

Daro2k [ Pretorianin ]

...Liczbe ujemna w polu Edit1. No chyba, że ustalisz inną wartość Label1.Caption

01.11.2005
12:47
[9]

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?

01.11.2005
13:01
[10]

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.

01.11.2005
13:12
smile
[11]

Dexter666 [ aka Harnaś, aka eiP ]

Daro2k --> jesteś........ zajebisty:D Działa!! dziekuje Ci ślicznie!

01.11.2005
13:31
[12]

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 :)

01.11.2005
13:38
smile
[13]

Dexter666 [ aka Harnaś, aka eiP ]

rozumiem rozumiem, ale na jaka tu zmienic wartosc? co zrobic aby tak nie bylo....

01.11.2005
13:42
[14]

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 :>

01.11.2005
13:59
smile
[15]

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

01.11.2005
14:07
[16]

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.

© 2000-2024 GRY-OnLine S.A.