![]() |
Planeten drehen
Hi ich programmier schon so seit einen Jahr delphi habe die 2005er personal edition und mach hin und wieder kleine Programme
jetzt wollte ich mich mal aber an etwas großes wagen: Ein Spiel. Es ist ein Weltraumspiel Grafiken habe ich schon gemacht nun ist aber ein Problem aufgetreten ich wollte das sich der Planet um seine eigene Achse dreht und habe dann deshalb 240 einzel Bilder entworfen die immer in eine TImage datei geladen werden das durch diverse Schleifen geregelt wird nur gibt er mir beim starten des Programmes eine Fehler Meldung manchmal nicht aber dann verschwindet einfach meine TImage Dateei bzw picture wird auf ohne gesetzt warum auch immer naja lange rede kurzer Sinn hier ist mein Code kann mir jmd sagen wo der Fehler liegt
Delphi-Quellcode:
für weitere Anregungen bin ich gerne offen :D
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Image1,Image2: TImage; procedure Image1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } Planet:array[1..240] of tpicture; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var i,x:integer; dateiname:string; begin for i:=1 to 240 do begin dateiname:='p'+ inttostr(i); planet[i]:= Tpicture.Create; planet[i].loadfromfile('Planet1/' + dateiname +'.jpg') ; end; end; procedure TForm1.Image1Click(Sender: TObject); var x:integer; begin for x:=1 to 240 do begin Image1.Picture:=Planet[x]; sleep(20); end end; end. |
Re: Planeten drehen
Relative Pfadnamen sind immer ein Glücksspiel. Probier es stattdessen mal mit absoluten:
Delphi-Quellcode:
Edit: Was auch noch wichtig zu wissen wäre, wäre WELCHE Fehlermeldung dir angezeigt wird. So können wir nämlich nur rumraten.
var
BaseDir: string; begin // ParamStr(0) enthält den gesamten "Aufrufnamen" des Programms // z.B. "C:\Program files\dingsbums\programm.exe -parameter1 -parameter2" BaseDir := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))); // In BaseDir steht jetzt ausgehend von obigem Beispiel // "C:\Program files\dingsbums\" {...} planet[i].loadfromfile(BaseDir + 'Planet1\' + dateiname + '.jpg'); |
Re: Planeten drehen
hmmm kommich jetzt wollte ichs noch mal starten um die fehler meldung zu lesen aber jetzt kommt keine aber beim onklick auf die image passiert auch nix grad -.-
hmm naja egal wo wird den der pfad von parameter(0) festegelegt? |
Re: Planeten drehen
ParamStr wird automatisch von Delphi bzw. Windows beim Programmstart mit dem richtigen Wert gefüllt.
|
Re: Planeten drehen
also brauch ich quasi nur
Delphi-Quellcode:
durch
procedure TForm1.FormCreate(Sender: TObject);
var i,x:integer; dateiname:string; begin for i:=1 to 240 do begin dateiname:='p'+ inttostr(i); planet[i]:= Tpicture.Create; planet[i].loadfromfile('Planet1/' + dateiname +'.jpg') ; end; end;
Delphi-Quellcode:
zu ersetzen und dann funktionier das also dann auch die schlleife die in TImage1 onclick stehent?
var
dateiname, BaseDir: string; i:integer; begin for i:=1 to 240 do begin dateiname:='p'+ inttostr(i); BaseDir := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))); planet[i].loadfromfile(BaseDir + 'Planet1\' + dateiname + '.jpg'); end end; |
Re: Planeten drehen
Das sollte so sein, dort wird ja nicht mehr auf die Festplatte, sondern auf das Array zugegriffen.
|
Re: Planeten drehen
funktioniert immer noch nicht beim klicken auf die image datei rechnet er kurz iwas und dann verschwindet die Image datei ohne sich geändert zu haben
|
Re: Planeten drehen
Was soll dort eigentlich passieren? Du gehst das ganze Array durch und lädst jede Bitmap einmal in das Image. Wozu soll das gut sein?
|
Re: Planeten drehen
Mal mit Application.ProcessMessages probiert?
Delphi-Quellcode:
for x := 1 to 240 do
begin Image1.Picture := Planet[x]; Application.ProcessMessages; sleep(20); end; |
Re: Planeten drehen
Achso, das soll eine Animation werden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz