![]() |
TImage erzeugen
Hallo Leute,
ich hab da ein Problem, das für erfahrenere Delphi Programmierer eigentlich kein Problem sein dürfte. Ich versuche gerade ein Spiel zu programmieren. Dafür brauch ich allerdings Massen an Images. Ich hab jetzt auch schon ein Paar eingefügt und gemerkt, dass mein Rechner beim Compilieren mit jedem Bild spürbar langsamer wird. Da ich die Bilder aber teilweise transparent möchte, bleibt mir wohl nichts anders, als doch mit BMPs zu arbeiten. Ich hab mir jetz überlegt, dass das erstellen der EXE doch viel schneller von statten geht, wenn sich die Images erst beim Starten des Programmes laden würden. Ich hab dann ein bißchen im "Web gebrowsed" und bin auf den Ausdruck TImage.Create gestoßen. Kann es sein, dass das der Schlüssel für mein Problem ist? Wenn ja würde ich gerne wissen, wie man das dann richtig programmiert (vielleicht mit nem kleinen Beispielquelltext), weils bei mir irgendwie nich so hinhaut. Also nochmal konkret meine Frage: Wie sage ich dem Programm sinngemäß: - Erstelle ein Image mit dem Namen 'IMAGENAME' - Lade in das Image das Bild... - Setze das Image an die Stelle(x,y) Bin um Antwort furchtbar dankbar. |
Re: TImage erzeugen
Hi,
was du willst ist das dynamische Erstellen von Komponenten. Das geht ungefähr so:
Delphi-Quellcode:
So in etwa sollte das Ganze funktionieren. :)
var
NewImage: TImage; begin // Komponente erstellen NewImage := TImage.Create(Form1); // Wichtige Komponenten-Eigenschaften setzen NewImage.Name := 'NewImageName'; {Namen} NewImage.Parent := Form1; {Formular, oder übergeordnete Komponente} NewImage.Top := 10; {Abstand in Pixeln von oben} NewImage.Left := 20; {Abstand in Pixeln von links} NewImage.Picture.LoadFromFile('yourpicture.jpeg'); {Bild aus Datei laden} NewImage.Visible := true; {TImage anzeigen} end; Hope that helps, Chris |
Re: TImage erzeugen
etwa so:
Delphi-Quellcode:
List: array of Timage; // Du wirst viele brauchen...
begin List[o].create:= TImage.Create; List[o].parent:= DeinForm; List[o].Name := ImageFuenf; List[o].x := 3; List[o].y := 7; List[o].loadfromfile(bla.bmp); //<- da bin ich mir nicht ganz so sicher, frag mal F1 |
Re: TImage erzeugen
Hast du mal überlegt die ganzen Bilder vielleicht in einzelne TBitmaps zu speichern und dann auf ein TBitmap zu vereinen, welches du im TImage anzeigst? Oder direkt DelphiX zu nutzen, je nachdem was du machen willst?
MfG Pr0g |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Neuen Beitrag zur Code-Library hinzufügen" nach "VCL-Komponenten und Controls" verschoben.
In "Neue Beitrag zur Code-Library..." bitte keine Fragen posten. Danke |
Re: TImage erzeugen
Wenn du die Mengen von Bildern nicht direkt in nem Verzeichnis bei deinem Programm bunkern willst würde ich dir noch vorschlagen dir mal Resources anzusehn und evtl die ganzen bilder entweder über Resources in deine Exe einzubinden oder eine Resource-DLL zu verwenden.
Allerdings wenn es wirklich so viele sind mach dir schon mal gedanken ob das Spiel nachher wirklich flüssig läuft... Greetz Boombuler |
Re: TImage erzeugen
Vielleicht noch ne Alternative: DirectX oder Delphi. Für ein Spiel ideal. Mit normalen TImage oder TBitmap wirst du keine Freude haben, weil es viel zu langsam ist. Allerdings ist es natürlich etwas schwieriger mit DirectX (oder alternativ natürlich auch OpenGL). Aber dafür ist die Geschwindkeit nicht zu schlagen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 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