Autor |
Beitrag |
masterofswim
Hält's aus hier
Beiträge: 14
|
Verfasst: Mi 23.02.11 16:57
Hallo alle zusammen.
Ich möchte Bälle auf den Formular darstellen.
Habe jetzt auch schon Debugt aber finde den Fehler einfach nicht, die Bälle werden nicht angezeigt.
Könnt ihr mir helfen?
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:
| unit ULevel1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, UAuto, UCar, ExtCtrls, UBall;
type TFLevel1 = class(TForm) Fahren: TTimer; warten: TTimer; procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormActivate(Sender: TObject); procedure FormKeyPress(Sender: TObject; var Key: Char); procedure FahrenTimer(Sender: TObject); procedure wartenTimer(Sender: TObject); procedure FormCreate(Sender: TObject); private public zwarte:integer; procedure ballerstellen(x,y:integer;nummer:byte); procedure frei(nummer:byte); end;
var FLevel1: TFLevel1; Ball : array [1..20] of TBall; Auto: TCar; ZBallnummer:byte; i:integer; implementation
{$R *.dfm}
procedure TFLevel1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin
end;
procedure TFLevel1.FormActivate(Sender: TObject); var ballnummer:byte; i:integer; begin FLevel1.Left:=0; FLevel1.Top:=0; FLevel1.Width:=Screen.WorkAreaWidth; FLevel1.Height:=Screen.WorkAreaHeight;
Auto:= TCar.create(Self); Auto.Top:=clientheight div 2; Auto.left:=clientwidth div 2; Fahren.Enabled:=true;
for ballnummer:=1 to 10 do ballerstellen(500*20+i*100,200,ballnummer);
end;
procedure TFLevel1.FormCreate(Sender: TObject);
begin i:=0; end;
procedure TFLevel1.FormKeyPress(Sender: TObject; var Key: Char); begin if Auto<>nil then Auto.setRichtung(Key); If Key = 'q' then close; end;
procedure TFLevel1.FahrenTimer(Sender: TObject); var nummer:byte; begin warten.Enabled:=false; case auto.getrichtung of 'w' : auto.Top:=auto.Top-4; 'a' : auto.left:=auto.left-4; 's' : auto.Top:=auto.Top+4; 'd' : auto.left:=auto.left+4; end; if Ball[nummer] <> nil then Ball[nummer].setAutoPos(Auto.Left,auto.Top);
end;
procedure TFLevel1.ballerstellen(x, y : integer;nummer:byte); begin Ball[nummer] := TBall.create(self,auto, x, y, nummer); Ball[nummer].Left:=x; Ball[nummer].Top:=y; end;
procedure TFLevel1.frei(nummer:byte); begin Ball[nummer]:=nil;
end;
procedure TFLevel1.wartenTimer(Sender: TObject);
begin zwarte:=zwarte+1; if zwarte = 2 then fahren.Enabled:=true; end;
end. |
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 23.02.11 17:12
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 23.02.11 17:12
Da du nicht sagst, wie du die Bälle genau erzeugst, noch was das für Dinger sind (Shapes?), rate ich mal ins blaue hinein und tippe darauf, dass du kein Parent angibst (sollte die Form sein, also der erste Parameter in TBall.Create).
Edit: Oh, jaenickes Erklärung dürfte besser sein. 
_________________ We are, we were and will not be.
|
|
masterofswim 
Hält's aus hier
Beiträge: 14
|
Verfasst: Mi 23.02.11 17:16
Und was meinst du wie die Parameter sonst stehen müssten?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 23.02.11 19:58
Woher soll ich das wissen? Ich weiß ja nicht wo du deine Bälle hinsetzen möchtest.
Hast du ein Problem mit der Rechnung an sich? Also ist das Problem die Grundschulmathematik, die du dafür brauchst?
Was möchtest du denn mit der Rechnung erreichen, also wo sollen die Bälle liegen?
|
|
|