Autor |
Beitrag |
Delphi-Zone
Beiträge: 45
Win 7
Delphi 7.0 Prof
|
Verfasst: So 26.09.10 17:17
Hallo,
ich bin mittlerweile sehr weit mit meinem spiel.
Er zieht rohstoffe ab, und mann kann auch welche abbauen.
Aber wenn man jetzt ein bisschen mehr sachen gebaut hat, denn kommt er mit den rohstoffen ins " - "
Wie verhinder ich das?
gruß
--- Moderiert von Narses: Beiträge zusammengefasst---
STOPPPPPP nichts schreiben! hat sich erledigt!!!
habs selber hinbekommen!
danke , tom
--- Moderiert von Narses: Beiträge zusammengefasst---
AHH doch nicht gelöst SRY!!!
thread ist wieder offen!!!
tom
|
|
elundril
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: So 26.09.10 17:30
ne if-abfrage vor dem bauen. einfach mal testweise die kosten von den ressourcen abziehen, wenn es >=0 dann bauen, wenn nicht, dann nicht.
na, war doch gar nicht so schwer?
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Delphi-Zone
Beiträge: 45
Win 7
Delphi 7.0 Prof
|
Verfasst: So 26.09.10 17:43
Wenn ich schreibe:
Delphi-Quelltext 1:
| IF label6.Caption <0 then showmessage ('Nicht genügend Resourcen für den Bau'); |
würft er mir den Fehler : [Fehler] Unit1.pas(201): Inkompatible Typen: 'String' und 'Integer'
danke tom.
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
elundril
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: So 26.09.10 17:50
-.- liest du eigentlich das was man dir in anderen Threads sagt? Das gilt nämlich für jedes Programm und jedes Problem nicht nur für eines...
Also nochmal: Caption ist ein String (Zeichenkette) und 0 ist eine Zahl (integer) du kannst Zeichenketten und Zahlen nicht vergleichen. Deswegen musst du den String in ein Integer umwandeln. Mit StrToInt. Dann kannst du es vergleichen. Aber du solltest da schon die Kosten abziehen. also:
Delphi-Quelltext 1: 2: 3:
| if StrToInt(Label6.Caption) - Ressourcenkosten < 0 then Showmessage('geht ned') else |
Außerdem solltest du dir die Tutorials mal durchlesen:
Delphi-Wikibook
Christian's Crashkurs
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Delphi-Zone
Beiträge: 45
Win 7
Delphi 7.0 Prof
|
Verfasst: So 26.09.10 18:21
|
|
elundril
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: So 26.09.10 18:23
Bitte, bitte, biiiiiiiiiiiiiiitte! Bitte, lies die Tutorials! Und überleg genau anweisung pro anweisung was überhaupt in dem programm passiert. Formuliere es dir in natürliche sprache um. Also:
"Wenn die Ressource X weniger als 0 ist, dann passiert das, wenn nicht dann das."
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Metschu
Beiträge: 135
Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
|
Verfasst: So 26.09.10 18:27
Vielleicht hilft die schonmal erwähnte Formatierung weiter...
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.Button9Click(Sender: TObject); begin if StrToInt(Label5.Caption) < 0 then Showmessage('geht ned');
if StrToInt(Label6.Caption) < 0 then Showmessage('geht ned');
if StrToInt(Label7.Caption) < 0 then Showmessage('geht ned') else timer2.Enabled:=true;
button9.Visible:=false;
kosten1 := strtoInt(label6.caption); kosten1 := strtoInt(label6.caption); summe := -30;
begin summe := summe+kosten1; end; label6.caption := ' '+ floattostr(summe); end; |
Gleicher Quelltext, nur Formatiert
Findest Du den Fehler selbst ? ?
|
|
Delphi-Zone
Beiträge: 45
Win 7
Delphi 7.0 Prof
|
Verfasst: So 26.09.10 19:02
ich hab mir das jetzt n halbe stunde angeguckt, und die tutorials gelesen, ich komm einfach nicht weiter....
|
|
Metschu
Beiträge: 135
Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
|
Verfasst: So 26.09.10 19:18
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| procedure TForm1.Button9Click(Sender: TObject); begin if StrToInt(Label5.Caption) < 0 then Showmessage('geht ned');
if StrToInt(Label6.Caption) < 0 then Showmessage('geht ned'); if StrToInt(Label7.Caption) < 0 then Showmessage('geht ned') else timer2.Enabled:=true;
button9.Visible:=false; kosten1 := strtoInt(label6.caption); kosten1 := strtoInt(label6.caption); summe := -30; begin summe := summe+kosten1; end; label6.caption := ' '+ floattostr(summe); end; |
Was Verstehst Du denn nicht?
|
|
BenBE
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 26.09.10 19:28
Die 3 Stufen des Tutorial-Genusses:
1. Angucken
2. Lesen
3. Verstehen
Bliebe noch die Geschichte mit dem Arbeiten mit Daten: VCL-Komponenten sind zur Darstellung, nicht zum Arbeiten. Zu Arbeiten mit Daten, holt man sich diese, konvertiert diese und arbeitet auf den passend konvertierten Daten. Und für den Rest schließe ich mich den Vorpostern an.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Delphi-Zone
Beiträge: 45
Win 7
Delphi 7.0 Prof
|
Verfasst: So 26.09.10 19:29
Ja!?
ist doch alles richtig was ich gemacht habe.
außer das begin (hab ich weggemacht)
und passiert immernoch nichts!
ja, er schreibt "geht ned" aber die gebaüde baut er trotzdem...
|
|
Metschu
Beiträge: 135
Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
|
Verfasst: So 26.09.10 19:47
|
|
Delphi-Zone
Beiträge: 45
Win 7
Delphi 7.0 Prof
|
Verfasst: So 26.09.10 21:14
SO jetzt hab ich kein Bock mehr.... 4 Stunden dran gessesen und alles durch probiert... klappt nichts, erhält einfach nicht auf...
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336: 337: 338: 339: 340: 341: 342: 343: 344: 345: 346: 347: 348: 349: 350: 351: 352: 353: 354: 355: 356: 357: 358: 359: 360: 361: 362: 363: 364: 365: 366: 367: 368: 369: 370: 371: 372: 373: 374: 375: 376: 377: 378: 379: 380: 381: 382: 383: 384: 385: 386: 387: 388: 389: 390: 391: 392: 393: 394: 395: 396: 397: 398: 399: 400: 401: 402: 403: 404: 405: 406: 407: 408: 409: 410: 411:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ComCtrls, StdCtrls, Buttons, jpeg;
type TForm1 = class(TForm) Panel1: TPanel; Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Timer1: TTimer; BitBtn1: TBitBtn; Panel2: TPanel; Image5: TImage; Image6: TImage; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Panel3: TPanel; Image7: TImage; Button6: TButton; Button7: TButton; Panel4: TPanel; Image8: TImage; Image9: TImage; Image10: TImage; Image11: TImage; Image12: TImage; Image13: TImage; Image14: TImage; GroupBox1: TGroupBox; Button8: TButton; GroupBox2: TGroupBox; Button9: TButton; Button10: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Image15: TImage; Timer2: TTimer; Image16: TImage; Button11: TButton; Timer3: TTimer; Image17: TImage; Timer4: TTimer; Timer5: TTimer; Button12: TButton; Image18: TImage; Timer6: TTimer; Button13: TButton; Timer7: TTimer; BitBtn2: TBitBtn; Button14: TButton; Button15: TButton; Panel5: TPanel; Image19: TImage; Image20: TImage; Image21: TImage; Image22: TImage; Image23: TImage; Image24: TImage; Image25: TImage; Image26: TImage; Button16: TButton; Image27: TImage; Timer8: TTimer; GroupBox3: TGroupBox; Button17: TButton; GroupBox4: TGroupBox; Button18: TButton; Button19: TButton; Image28: TImage; Image29: TImage; Button20: TButton; Timer9: TTimer; Timer10: TTimer; Timer11: TTimer; Timer12: TTimer; procedure Timer1Timer(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Image5Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure Timer4Timer(Sender: TObject); procedure Timer5Timer(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Timer6Timer(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Timer7Timer(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure Button15Click(Sender: TObject); procedure Button16Click(Sender: TObject); procedure Button14Click(Sender: TObject); procedure Timer8Timer(Sender: TObject); procedure Button17Click(Sender: TObject); procedure Button19Click(Sender: TObject); procedure Image27Click(Sender: TObject); procedure Button18Click(Sender: TObject); procedure Timer9Timer(Sender: TObject); procedure Timer10Timer(Sender: TObject); procedure Timer11Timer(Sender: TObject); procedure Timer12Timer(Sender: TObject); private public end;
var Form1: TForm1; VAR kosten1,kosten2: longint; summe,summe1 : real;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject); begin BitBtn1.visible:=true; end;
procedure TForm1.BitBtn1Click(Sender: TObject); begin panel1.Visible:=false; panel2.Visible:=true; end;
procedure TForm1.Image5Click(Sender: TObject); begin application.Terminate; end;
procedure TForm1.Button1Click(Sender: TObject); begin panel3.Visible:=true; end;
procedure TForm1.Button7Click(Sender: TObject); begin panel3.Visible:=false; panel2.Visible:=true; end;
procedure TForm1.Button2Click(Sender: TObject); begin showmessage ('Diese Funktion, ist in der Version noch nicht Verfügbar. Melden sie sich bei ihrem Anbieter!'); end;
procedure TForm1.Button3Click(Sender: TObject); begin showmessage ('Diese Funktion, ist in der Version noch nicht Verfügbar. Melden sie sich bei ihrem Anbieter!'); end;
procedure TForm1.Button4Click(Sender: TObject); begin showmessage ('Diese Funktion, ist in der Version noch nicht Verfügbar. Melden sie sich bei ihrem Anbieter!'); end;
procedure TForm1.Button5Click(Sender: TObject); begin application.Terminate; end;
procedure TForm1.Button6Click(Sender: TObject); begin panel4.Visible:=true; end;
procedure TForm1.Button8Click(Sender: TObject); begin groupbox2.Visible:=true; groupbox1.Visible:=false; end;
procedure TForm1.Button10Click(Sender: TObject); begin groupbox1.Visible:=true; groupbox2.Visible:=false; end;
procedure TForm1.Button9Click(Sender: TObject); begin if StrToInt(Label5.Caption) < 0 then Showmessage('geht ned');
if StrToInt(Label6.Caption) < 0 then Showmessage('geht ned'); if StrToInt(Label7.Caption) < 0 then Showmessage('geht ned') else timer2.Enabled:=true; end; procedure TForm1.Timer2Timer(Sender: TObject); begin timer10.Enabled:=true; image15.Visible:=true; button9.Visible:=false; begin kosten1 := strtoInt(label6.caption); kosten1 := strtoInt(label6.caption); summe := -30; end; summe := summe+kosten1;
label6.caption := ' '+ floattostr(summe); image15.Visible:=true;
end;
procedure TForm1.Button11Click(Sender: TObject); begin button11.Visible:=false; timer3.enabled:=true;
kosten1 := strtoInt(label6.caption); summe := +30; begin summe := summe+kosten1;
end; label6.caption := ' '+ floattostr(summe); end;
procedure TForm1.Timer3Timer(Sender: TObject); begin image16.Visible:=false; image17.Visible:=true; timer4.enabled:=true; end;
procedure TForm1.Timer4Timer(Sender: TObject); begin timer3.enabled:=false; image17.Visible:=false; timer5.Enabled:=true; end;
procedure TForm1.Timer5Timer(Sender: TObject); begin timer4.enabled:=false; image16.Visible:=true; button11.Visible:=true; end;
procedure TForm1.Button12Click(Sender: TObject); begin if StrToInt(Label5.Caption) < 0 then Showmessage('geht ned');
if StrToInt(Label6.Caption) < 0 then Showmessage('geht ned'); if StrToInt(Label7.Caption) < 0 then Showmessage('geht ned') else timer8.Enabled:=true; end;
procedure TForm1.Timer6Timer(Sender: TObject); begin timer12.enabled:=true; image27.Visible:=true; button14.Visible:=false; kosten1 := strtoInt(label6.caption); kosten2 := strtoInt(label5.caption); summe := -70; summe1 := -70;
summe := summe+kosten1; summe1 := summe1+kosten2;
label6.caption := ' '+ floattostr(summe); label5.caption := ' '+ floattostr(summe1); end;
procedure TForm1.Button13Click(Sender: TObject); begin timer6.Enabled:=false; button13.Visible:=false; kosten1 := strtoInt(label7.caption); summe := +25; begin summe := summe+kosten1; timer7.enabled:=true;
end; label7.caption := ' '+ floattostr(summe); end; procedure TForm1.Timer7Timer(Sender: TObject); begin button13.Visible:=true; end;
procedure TForm1.BitBtn2Click(Sender: TObject); begin panel2.Visible:=true; panel4.Visible:=false; end;
procedure TForm1.Button15Click(Sender: TObject); begin panel5.Visible:=true; end;
procedure TForm1.Button16Click(Sender: TObject); begin panel4.Visible:=true; panel5.visible:=false; end;
procedure TForm1.Button14Click(Sender: TObject); begin if StrToInt(Label5.Caption) < 0 then Showmessage('geht ned');
if StrToInt(Label6.Caption) < 0 then Showmessage('geht ned'); if StrToInt(Label7.Caption) < 0 then Showmessage('geht ned') else timer6.Enabled:=true; end;
procedure TForm1.Timer8Timer(Sender: TObject); begin timer11.Enabled:=true; image18.Visible:=true; button12.Visible:=false; begin kosten1 := strtoInt(label6.caption); kosten1 := strtoInt(label6.caption); summe := -30; end; summe := summe+kosten1;
label6.caption := ' '+ floattostr(summe); image18.Visible:=true;
end; procedure TForm1.Button17Click(Sender: TObject); begin groupbox4.Visible:=true;
end;
procedure TForm1.Button19Click(Sender: TObject); begin groupbox3.Visible:=true; groupbox4.Visible:=false; end;
procedure TForm1.Image27Click(Sender: TObject); begin groupbox3.Visible:=true; end;
procedure TForm1.Button18Click(Sender: TObject); begin timer9.enabled:=true; end;
procedure TForm1.Timer9Timer(Sender: TObject); begin image29.visible:=true; end;
procedure TForm1.Timer10Timer(Sender: TObject); begin timer2.enabled:=false; end;
procedure TForm1.Timer11Timer(Sender: TObject); begin timer8.enabled:=false; end;
procedure TForm1.Timer12Timer(Sender: TObject); begin timer6.enabled:=false; end;
end. |
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
platzwart
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: So 26.09.10 21:21
Du gibst zwar eine Meldung aus, wenn die Rohstoffe weg sind, aber du sagst ihm, er solle trotzdem bauen! Der PC führt alle Anweisungen unterhalb der If-Abfrage aus, und da steht eben, dass er bauen soll...
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 26.09.10 21:59
Wie schon oft erwähnt, solltest du dir endlich mal die Grundlagen-Tutorials angucken! Mache es ruhig so, dass du liest und gleichzeitig das grade erlernte in deinem Spiel umsetzt. Ich finde, man sollte dir nicht den Wind aus den Segeln nehmen und sagen, dass du es sowieso nicht schaffen wirst wegen fehlender Kenntnisse, aber Learning-By-Doing ist sehr effektiv und Erfahrungen unbezahlbar.
MfG, Jesse
|
|