![]() |
TImage erzeugen
Hallo Leute,
Ich versuche mich gerade an einem Spiel und brauche dafür Massen an Images, die auch transparent sein sollen. Mit jedem Bild wird Delphi aber spürbar langsamer. Deshalb denke ich, dass sich die Compile-Zeit wesentlich verkürzen lässt, wenn ich die Images erst während des Programmstarts des Spiels erstellen lasse. Ich hab dann so ein bißchen im "Web gebrowsed" und bin auf den Ausdruck TImage.Create gestoßen. Ich würde gerne wissen, wie das so funktioniert. Muss ich vorher noch irgendwas deklarieren oder so, weil mit den Beispielen in diesem Forum bin ich nicht weit gekommen. Ich habs so probiert: procedure TForm1.Button1Click(Sender: TObject); var Bild: TImage; begin Bild:=TImage.Create(Form1); end; Beim Punkt zwischen "TImage" und "Create" bringt Delphi unten allerdings schon eine Fehlermeldung. Was mach ich falsch? Meine Frage nochmal im Kurzen: Ich möchte meinem Programm sinngemäß sagen: -Erstelle ein TImage -Setze es an die Position(x,y) -Lade die Bilddatei "DATEINAME.BMP" |
Re: TImage erzeugen
Delphi-Quellcode:
und wenn die bilder nicht mehr benötigt werden natürlich noch
[...]
private fImages: Array[0..5] of TImage; [...] var LCount: Integer; begin for LCount := 0 to length(fImages) - 1 do begin fImages[LCount] := TImage.Create(nil); fImages[LCount].Parent := Self; //Self also das Form fImages[LCount].SetBounds(Links, Oben, Bildbreite, Bildhöhe); fImages[LCount].LoadFromFile('Dateiname.bmp'); end;
Delphi-Quellcode:
also das für jedes bild (bilder müssen ja wieder freigegeben werden
fImages[LCount].Free;
|
Re: TImage erzeugen
Warum machst du das mit Images?? Das ist doch Sinnlos, ich würde es entweder mit Canvas machen oder mit OpenGL, Canvas bietet sich dafür eigentlich geradezu an!
|
Re: TImage erzeugen
Naja, ich bin halt noch Delphi Anfänger.
Mit Canvas haben wir im Wahlfach schon etwas gearbeitet, aber ich weiß nicht, wie ich das in dem Projekt gebrauchen könnte. Mit OpenGL kenn ich mich überhaupt nicht aus. |
Re: TImage erzeugen
Also den Quelltext von SirThornberry hab ich schon ungefähr verstanden.
Bloß was bedeutet das nil,self oder Form1 in der Klammer hinter Image.Create? Ich hab alle Varianten schon gesehen. |
Re: TImage erzeugen
das nil ist als owner. du kannst natürlich da auch self angeben (fürs form) oder direkt form1 oder eben keinen owner (nil)
|
Re: TImage erzeugen
Zitat:
Falls du weiter bist empfehle ich dir ![]() |
Re: TImage erzeugen
Ich hab mir gedacht, das wär die einfachste Möglichkeit, bilder ins Spiel zu bringen:
Image ins Fenster Bild reinladen Position bestimmen Im Spiel dann nur noch ein- und ausblenden. Aber das werden dann zu viel Images, die er alle Compilieren muss und dafür is er einfach zu langsam. Wie meinst du, dass es besser wär. Das mit dem Canvas versteh ich nich ganz. In der Schule haben wir das Canvas benutzt, um darauf mit nem Stift zu malen. |
Re: TImage erzeugen
Zitat:
|
Re: TImage erzeugen
Heißt das, ich brauche dann nur ein Image, in das ich dann an verschiedenen Stellen der Form ein Bild zeichnen kann?
Ich glaub, ich versteh das noch nicht ganz, wie du das mit dem überschreiben meinst... |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Neuen Beitrag zur Code-Library hinzufügen" nach "VCL-Komponenten und Controls" verschoben.
In der Sparte "Neue Beiträge zur Code...." bitte keine Fragen posten. Danke |
Re: TImage erzeugen
Ich hab gerade den obigen Quelltext in eine Neue Anwendung übernommen und hab den ".Create" Teil in eine ButtonClick-Prozedur gesetzt. Beim Compilieren bekomme ich aber die Meldung: "Undefinierter Bezeichner: 'TImage'
Was mach ich denn falsch? |
Re: TImage erzeugen
Zitat:
|
Re: TImage erzeugen
Moin!
Nix, es fehlt nur was. Delphi sagt zu dir, das er TImage nicht kennt. Wenn du dann in die Hilfe schaust und nach TImage suchst, dann siehst du dort, das TImage in der Unit ExtCtrls definiert ist. Daher müsstest du die Unit ExtCtrls in die Uses Liste einfügen, danach kennt Delphi den Typ auch... MfG Muetze1 |
Re: TImage erzeugen
Zur Vorgehensweise ohne massenhaft Images:
Du lädst deine einzelnen Bilder in TBitmaps und kopierst deren Inhalt z.B. durch ![]() Such auch mal nach ![]() |
Re: TImage erzeugen
Danke Vielmals
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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