AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TImage erzeugen

Ein Thema von Speedy123 · begonnen am 6. Apr 2005 · letzter Beitrag vom 10. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Speedy123

Registriert seit: 5. Apr 2005
12 Beiträge
 
#1

TImage erzeugen

  Alt 6. Apr 2005, 21:55
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"
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TImage erzeugen

  Alt 6. Apr 2005, 22:08
Delphi-Quellcode:
[...]
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;
und wenn die bilder nicht mehr benötigt werden natürlich noch
fImages[LCount].Free; also das für jedes bild (bilder müssen ja wieder freigegeben werden
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#3

Re: TImage erzeugen

  Alt 6. Apr 2005, 22:17
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!
Felix K.
  Mit Zitat antworten Zitat
Speedy123

Registriert seit: 5. Apr 2005
12 Beiträge
 
#4

Re: TImage erzeugen

  Alt 6. Apr 2005, 22:20
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.
  Mit Zitat antworten Zitat
Speedy123

Registriert seit: 5. Apr 2005
12 Beiträge
 
#5

Re: TImage erzeugen

  Alt 6. Apr 2005, 22:22
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.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: TImage erzeugen

  Alt 6. Apr 2005, 22:24
das nil ist als owner. du kannst natürlich da auch self angeben (fürs form) oder direkt form1 oder eben keinen owner (nil)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#7

Re: TImage erzeugen

  Alt 6. Apr 2005, 22:26
Zitat von Speedy123:
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.
Entschuldige die Frage, aber warum zeichnest du die Bilder dann nicht mit Canvas??

Falls du weiter bist empfehle ich dir www.delphigl.com !!
Felix K.
  Mit Zitat antworten Zitat
Speedy123

Registriert seit: 5. Apr 2005
12 Beiträge
 
#8

Re: TImage erzeugen

  Alt 6. Apr 2005, 22:36
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.
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#9

Re: TImage erzeugen

  Alt 6. Apr 2005, 22:39
Zitat von Speedy123:
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.
Du kannst mit Canvas einzelne Bilder Zeichnen ohne die anderen zu überschreiben, und dann kannst du anhand der größe des Bildes und der Anfänglichen Zeichenposition Feststellen ob jemand auf das Bild geklickt hat(TImage.OnClick oder so wobei TImage natürlich die Variable deines Images sein muss).
Felix K.
  Mit Zitat antworten Zitat
Speedy123

Registriert seit: 5. Apr 2005
12 Beiträge
 
#10

Re: TImage erzeugen

  Alt 6. Apr 2005, 22:46
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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz