Witam wszystkich Forumowiczów/programistów a więc dzisiaj postanowiłem troszkę odświeżyć swoją lekką wiedzę w delphi 7 i postanowiłem napisać małą gierkę lecz mam problem a więc w oknie jest label w którym mam pokazane ile mam pieniędzy a poniżej skile (siła,poziom,magia...) i miałem fajny plan żeby można było dodawać sobie dany skill za ileś tam $ tylko nie mam pojęcia jak to zrobić że po kliknięciu buttona doda mi +1 skila i odejmnie tam dajmy 100$. Zwracam się tutaj o pomoc ponieważ sam już nie daje rady ^^ może ktoś będzie miał czas i mi pomorze z góry dziękuje.
- Rejestracja:około 16 lat
- Ostatnio:12 miesięcy
- Postów:1398
Przeczytaj cokolwiek o podstawach... hasło klucz: zmienne.

- Rejestracja:około 21 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
Nic z tego. Najpierw uczymy się programować. Potem piszemy gry. W innej kolejności się po prostu nie da i już.
- Rejestracja:około 16 lat
- Ostatnio:12 miesięcy
- Postów:1398
Więc ogólnie robisz tak: zmienna "kasa" typu integer, zainicjowana np. wartością 1000. Zmienna np "poziomSily" typu integer, zainicjowana np. 10. Po kliknięciu przycisku robisz tak:
poziomSily := poziomSily + 1;
kasa := kasa - 100;
odswiezLabele();
a odswiezLabele to procedura, ktora dla kazdego labela, ktory wyswietla skille i kase robi:
silaLabel.caption := 'Sila: ' + inttostr(poziomSily);


- Rejestracja:prawie 14 lat
- Ostatnio:ponad 8 lat
- Postów:133
no to przypisujesz temu buttonowi takie funkcje: po kliknięciu odejmujesz w labelce2 100, a w labelce ze skilem dodajesz 1
proste operacje matematyczne. jeśli np. chcesz żeby wraz ze wzrostem poziomu odejmowało więcej kasy zrób ifami
np.
jeśli skill < 10 to odejmij 100
jeśli skill < 20 i skill > 10 odejmij 200
jeśli skill < 30 i skill > 20 odejmij 300
i tak dalej



Dobra tam ;d i tak tego nie ogarnę... zrobię gre bez tego i dzięki za pomoc.
sory za ten post ale może mi ktoś poda kod na to że jeżeli w label1 będzie większa liczba od 1000 to label2 wykona coś... chodzi o to; if label1.caption = (nie wiem właśnie co tutaj) then label2.caption :=....

- Rejestracja:prawie 15 lat
- Ostatnio:około 4 godziny
- Lokalizacja:Laska, z Polski
- Postów:10056
coś bardziej przystosowanego do twoich potrzeb.
if Label1.Caption = '0' then Label2.Caption := 'nie jest większe';
if Label1.Caption = '1' then Label2.Caption := 'nie jest większe';
if Label1.Caption = '2' then Label2.Caption := 'nie jest większe';
if Label1.Caption = '3' then Label2.Caption := 'nie jest większe';
//i tak jeszcze 995 razy...
if Label1.Caption = '999' then Label2.Caption := 'nie jest większe';
if Label1.Caption = '1000' then Label2.Caption := 'jest równe';
if Label1.Caption = '1001' then Label2.Caption := 'jest większe';
//i tak jeszcze 995 razy
if Label1.Caption = '1997' then Label2.Caption := 'jest większe';
if Label1.Caption = '1998' then Label2.Caption := 'jest większe';
if Label1.Caption = '1999' then Label2.Caption := 'jest większe';




nie wiem dlaczego ale wyskoczył ten błąd:
[Error] Unit1.pas(30): There is no overloaded version of 'IntToStr' that can be called with these arguments

- Rejestracja:około 16 lat
- Ostatnio:12 miesięcy
- Postów:1398
W odpowiedzi na Twoje pytanie:
if (strToInt(label1.caption) > 1000) then
begin
label2.caption := 'Wykonalem cos';
end;
Ale powinienes to zrobic na zmiennych !!!
W kodzie masz taka sekcje "var". Wpisz tam:
var // to juz jest, wiec tego nie wpisuj ;p
sila : integer;
a w kodzie "powiekszania sily" daj:
sila := sila + 100;
label1.caption := intToStr(sila);
I kliknij kilka razy przycisk, ktory to wykonuje i obserwuj, co sie zmienia.

- Rejestracja:około 16 lat
- Ostatnio:12 miesięcy
- Postów:1398
Michał, masz "pełen" kod:
var
kasa : integer;
sila : integer;
// coś tam, coś tam
w onCreate formy daj:
kasa := 1000;
sila := 10;
w kodzie obslugi przycisku:
kasa := kasa - 100;
sila := sila + 10;
labelKasa.caption := intToStr(kasa);
labelSila.caption := intToStr(sila);
- Rejestracja:ponad 13 lat
- Ostatnio:ponad 13 lat
- Postów:1
[losowa nazwa] Dzięki że pomagasz :D Kod działa a jeżeli będę miał jakiś problem to napisze. ^^



- Rejestracja:około 16 lat
- Ostatnio:12 miesięcy
- Postów:1398
Ok, to ja już nie zaglądam do tego tematu. Będziesz miał problem, to daj znać na PM.