Entwickler-Ecke
Sonstiges (Delphi) - Fehler im Programmtext?? Wer kann helfen?
Matclou - Mo 05.01.09 15:45
Titel: Fehler im Programmtext?? Wer kann helfen?
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: 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:
| unit mCatchtheprisoners;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, DdeMan;
type TFormular = class(TForm) ImGitter1: TImage; ImGitter2: TImage; LbTitel: TLabel; BtStart: TButton; BtStop: TButton; BtLeicht: TButton; BtMittel: TButton; BtSchwer: TButton; LbSchwierigkeitsgrad: TLabel; TiGitter2OffaL: TTimer; TiGitter2OffbL: TTimer; ImFigur1R: TImage; ImFigur2R: TImage; ImFigur3L: TImage; ImFigur4L: TImage; ImFigur5L: TImage; ImFigur6R: TImage; ImFigur7R: TImage; TiRechtsF1: TTimer; TiAuswahlRF1: TTimer; TiAuswahlRF2: TTimer; TiAuswahlRF3: TTimer; TiAuswahlRF4: TTimer; TiAuswahlRF5: TTimer; TiAuswahlRF6: TTimer; TiAuswahlRF7: TTimer; TiRechtsF2: TTimer; TiRechtsF3: TTimer; TiLinksF4: TTimer; TiAuswahlUF7: TTimer; TiUntenF1: TTimer; TiObenF2: TTimer; TiLinksF1: TTimer; TiRechtsF7: TTimer; TiRechtsF6: TTimer; TiRechtsF5: TTimer; TiRechtsF4: TTimer; TiAuswahlLF1: TTimer; TiAuswahlLF2: TTimer; TiAuswahlLF3: TTimer; TiAuswahlLF4: TTimer; TiAuswahlLF5: TTimer; TiAuswahlLF6: TTimer; TiAuswahlLF7: TTimer; TiLinksF2: TTimer; TiLinksF3: TTimer; TiLinksF5: TTimer; TiLinksF6: TTimer; TiLinksF7: TTimer; TiObenF1: TTimer; TiAuswahlUF1: TTimer; TiAuswahlUF2: TTimer; TiAuswahlUF3: TTimer; TiAuswahlUF4: TTimer; TiAuswahlUF5: TTimer; TiAuswahlUF6: TTimer; TiUntenF7: TTimer; TiAuswahlOF1: TTimer; TiAuswahlOF2: TTimer; TiAuswahlOF3: TTimer; TiAuswahlOF4: TTimer; TiUntenF6: TTimer; TiUntenF5: TTimer; TiUntenF4: TTimer; TiUntenF3: TTimer; TiUntenF2: TTimer; TiObenF7: TTimer; TiObenF6: TTimer; TiObenF5: TTimer; TiObenF4: TTimer; TiObenF3: TTimer; TiAuswahlOF5: TTimer; TiAuswahlOF6: TTimer; TiAuswahlOF7: TTimer; ImFigur1L: TImage; ImFigur1O: TImage; ImFigur1U: TImage; TiRandom: TTimer; procedure BtStartClick(Sender: TObject); procedure BtLeichtClick(Sender: TObject); procedure TiGitter2OffaLTimer(Sender: TObject); procedure TiGitter2OffbLTimer(Sender: TObject); procedure BtMittelClick(Sender: TObject); procedure BtSchwerClick(Sender: TObject); procedure BtStopClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TiRechtsF1Timer(Sender: TObject); procedure TiRandomTimer(Sender: TObject); procedure TiAuswahlRF1Timer(Sender: TObject); procedure TiLinksF1Timer(Sender: TObject); private r:Integer; public end;
var Formular: TFormular;
implementation
{$R *.dfm}
procedure TFormular.BtStartClick(Sender: TObject); begin BtStart.Visible:=false; BtStop.Visible:=false; BtLeicht.Visible:=true; BtMittel.Visible:=true; BtSchwer.Visible:=true; LbSchwierigkeitsgrad.Visible:=true; end;
procedure TFormular.BtLeichtClick(Sender: TObject); begin BtLeicht.Visible:=false; BtMittel.Visible:=false; BtSchwer.Visible:=false; LbTitel.Visible:=false; LbSchwierigkeitsgrad.Visible:=false; TiGitter2OffaL.Enabled:=true; end;
procedure TFormular.TiGitter2OffaLTimer(Sender: TObject); begin ImGitter2.Left:=ImGitter2.Left+2; If ImGitter2.Left>=1017 then begin TiGitter2OffaL.Enabled:=false; TiGitter2OffbL.Enabled:=true; end;
end;
procedure TFormular.TiGitter2OffbLTimer(Sender: TObject); begin ImGitter2.Visible:=false; TiGitter2OffbL.Enabled:=false; TiRechtsF1.Enabled:=true; TiRandom.Enabled:=true; end;
procedure TFormular.BtMittelClick(Sender: TObject); begin BtLeicht.Visible:=false; BtMittel.Visible:=false; BtSchwer.Visible:=false; LbTitel.Visible:=false; LbSchwierigkeitsgrad.Visible:=false; TiGitter2OffaL.Enabled:=true; end;
procedure TFormular.BtSchwerClick(Sender: TObject); begin BtLeicht.Visible:=false; BtMittel.Visible:=false; BtSchwer.Visible:=false; LbTitel.Visible:=false; LbSchwierigkeitsgrad.Visible:=false; TiGitter2OffaL.Enabled:=true; end;
procedure TFormular.BtStopClick(Sender: TObject); begin Formular.Close; end;
procedure TFormular.FormCreate(Sender: TObject); begin randomize; end;
procedure TFormular.TiLinksF1Timer(Sender: TObject); begin ImFigur1L.visible:=true; if r=0 then begin TiAuswahlLF1.enabled:=true; TiLinksF1.enabled:=false; ImFigur1L.visible:=false; ImFigur1R.left:=ImFigur1R.Left; ImFigur1O.left:=ImFigur1R.Left; ImFigur1U.left:=ImFigur1R.Left; ImFigur1R.top:=ImFigur1R.top; ImFigur1O.top:=ImFigur1R.top; ImFigur1U.top:=ImFigur1R.top;
end else begin ImFigur1L.Left:=ImFigur1L.Left-2; r:=r-1 end; if ImFigur1L.Left<=0 then begin TiAuswahlLF1.enabled:=true; TiLinksF1.enabled:=false; ImFigur1L.visible:=false; ImFigur1R.left:=ImFigur1R.Left; ImFigur1O.left:=ImFigur1R.Left; ImFigur1U.left:=ImFigur1R.Left; ImFigur1R.top:=ImFigur1R.top; ImFigur1O.top:=ImFigur1R.top; ImFigur1U.top:=ImFigur1R.top;
end;
end;
procedure TFormular.TiRechtsF1Timer(Sender: TObject); begin ImFigur1R.visible:=true; if r=0 then begin TiAuswahlRF1.enabled:=true; TiRechtsF1.enabled:=false; ImFigur1R.visible:=false; ImFigur1L.left:=ImFigur1R.Left; ImFigur1O.left:=ImFigur1R.Left; ImFigur1U.left:=ImFigur1R.Left; ImFigur1L.top:=ImFigur1R.top; ImFigur1O.top:=ImFigur1R.top; ImFigur1U.top:=ImFigur1R.top;
end else begin ImFigur1R.Left:=ImFigur1R.Left+2; r:=r-1 end; if ImFigur1R.Left>=900 then begin TiAuswahlRF1.enabled:=true; TiRechtsF1.enabled:=false; ImFigur1R.visible:=false; ImFigur1L.left:=ImFigur1R.Left; ImFigur1O.left:=ImFigur1R.Left; ImFigur1U.left:=ImFigur1R.Left; ImFigur1L.top:=ImFigur1R.top; ImFigur1O.top:=ImFigur1R.top; ImFigur1U.top:=ImFigur1R.top;
end;
end;
procedure TFormular.TiRandomTimer(Sender: TObject); begin r:=random(100)+20; TiRandom.Enabled:=false end;
procedure TFormular.TiAuswahlRF1Timer(Sender: TObject); var ri:Integer; begin ri:=random(3)+1; case ri of 1: begin TiLinksF1.enabled:=true; TiRandom.enabled:=true; TiAuswahlRF1.enabled:=false; end; case ri of 2: begin TiObenF1.enabled:=true; TiRandom.enabled:=true; TiAuswahlRF1.enabled:=false; end; case ri of 3: begin TiUntenF1.enabled:=true; TiRandom.enabled:=true; TiAuswahlRF1.enabled:=false; end; end; end. |
Folgende Fehlermeldungen kommen:
Quelltext
1: 2: 3: 4:
| [Fehler] mCatchtheprisoners.pas(284): Konstantenausdruck erwartet [Fehler] mCatchtheprisoners.pas(285): Record, Objekt oder Klassentyp erforderlich [Fehler] mCatchtheprisoners.pas(300): ',' oder ':' erwartet, aber Dateiende gefunden [Fataler Fehler] pCatchtheprisoners.dpr(5): Verwendete Unit 'mCatchtheprisoners.pas' kann nicht compiliert werden |
Die ersten drei Fehler drehen sich alle um die letzten zwei Ends, der letzte scheint ein allgemeiner Fehler zu sein.
Ich bin noch unerfahren mit Delphi, kann mir jmd. helfen?
Für weitere Fragen stehe ich immer offen natürlich...
Danke schon mal im Voraus... ;)
Moderiert von
Narses: Quote- durch Delphi-Tags ersetzt
Matclou - Mo 05.01.09 15:57
Ach ja zu dem:
| Zitat: |
| [Fehler] mCatchtheprisoners.pas(285): Record, Objekt oder Klassentyp erforderlich |
noch was:
| Zitat: |
| Für diesen Fehler gibt es zwei mögliche Ursachen: zum einen die Anwendung von "." auf ein Objekt, das kein Datensatz ist, und zum anderen die Verwendung einer Variable in einer WITH-Anweisung, die nicht den korrekten Typ aufweist. |
Zum fettmakierten:
Da genau die Zeile makiert ist, in der ich einen Punkt hinter das End gesetzt habe, denke ich mir das ist die Ursache.
Wodurch aber zeichnet sich ein Datensatz aus, das heißt was muss ich da noch ändern?
jaenicke - Mo 05.01.09 16:13
Hallo und :welcome: im Forum!
Du solltest Delphi-Tags verwenden statt den Quelltext zu zitieren. Dann sieht man auch welche Zeile die angegebene Zeile ist...
Dann zu deinem case ganz unten: Du solltest dir einmal anschauen wie case richtig aussieht...
Zum Beispiel hier:
http://crashkurs.christian-stelzmann.de
Da fehlt nämlich je ein end zu jedem case, aber anders als in anderen Sprachen schreibt man in Delphi nur einmal das "case ... of". ;-)
Deshalb der Fehler.
Delete - Mo 05.01.09 16:16
55 Timer! Du solltest dein Konzept noch mal überdenken.
Matclou - Mo 05.01.09 16:16
Ah vielen Dank, ich bin aber auch blöd - das zweite und das dritte case waren ja völlig unnötig^^
jaenicke - Mo 05.01.09 17:46
Trotzdem gilt natürlich auch das was
Luckie geschrieben hat:
Derart viele Timer sind keine gute Idee. Das macht das nur unnötig kompliziert. Sinnvoller wäre eine ordentliche Logik mit sehr wenigen Timern.
Eigentlich reicht auch einer, wenn man alles sich überlegt und entsprechend programmiert. Aber der Einfachheit halber mag es schon mal sinnvoll sein ein oder zwei mehr zu benutzen. Aber 55?!?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!