Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Dynamisch erzeugtes TImage nicht sichtbar (https://www.delphipraxis.net/9647-dynamisch-erzeugtes-timage-nicht-sichtbar.html)

flomei 30. Sep 2003 20:39


Dynamisch erzeugtes TImage nicht sichtbar
 
Hallo! :hi:

Mit folgendem Code im OnTimerEvent möchte ich gerne Images dynamisch zur Laufzeit erstellen...
Delphi-Quellcode:
procedure TMainForm.CreateNewEnemyTimer(Sender: TObject);
  var i:integer;
    Gegner : Array of Timage;
  begin
    setlength(Gegner,5);
  for i := 0 to high(Gegner) do
    begin
      Gegner[i] := Timage.Create(self);
      with Gegner[i] do
        begin
          Picture.LoadFromFile(ExtractFilePath(paramstr(0))+'ships\blue.ico');
          left := random(MainForm.Width);
          height := 32;
          width:= 32;
          Visible := true;
          Show;
        end;
    end;
  end;
Er kompiliert auch ganz brav und das Programm läuft dann auch aber ich sehe kein Image. Ich weiss nicht warum und wäre für jeden Lösungsansatz dankbar.

Dank im Vorraus!

MfG Florian :hi: :dp:

Gandalfus 30. Sep 2003 21:16

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Zitat:

Zitat von flomei
Ich weiss nicht warum und wäre für jeden Lösungsansatz dankbar.

Timage wegschmeissen. TImage sollte man nur benutzen um mal schnell eine statisches Bild anzeigen. Bei bewegung und soweiter Canvas.draw (TBitmap usw) benutzen

flomei 30. Sep 2003 21:20

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Naja, aber es müsste ja trotzdem funktionieren... oder?

MfG Florian :hi:

Christian Seehase 30. Sep 2003 22:29

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Moin Florian,

die Eigenschaft Parent des Images muss noch gesetzt werden.

flomei 1. Okt 2003 11:16

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Vor Show; noch Parent; einfügen???

MfG Florian :hi:

flomei 1. Okt 2003 13:25

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Aha!
Delphi-Quellcode:
Parent := self;
hab ich jetzt noch drangehangen vor Show;
Die Images sind trotzdem noch nicht sichtbar? Warum nicht?

MfG Florian :hi:

Christian Seehase 1. Okt 2003 13:59

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Moin Florian,

warum es bei Dir jetzt nicht geht kann ich Dir leider auch nicht verraten. Bei mir geht's so.
BTW: Du kannst das Visible := true, und das Show weglassen.

Hast Du vielleicht noch ein Panel oder ähnliches auf dem Formular?
Das würde die Images nämlich überdecken.

flomei 1. Okt 2003 14:01

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Zitat:

Zitat von Christian Seehase
Hast Du vielleicht noch ein Panel oder ähnliches auf dem Formular?
Das würde die Images nämlich überdecken.

:idea: Es könnte sein, dass die Images unter einem anderen Image verschwunden sind. Werde das gleich überprüfen...

Danke!

MfG Florian :hi:

flomei 1. Okt 2003 14:06

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Hab noch ein BringToFront mit eingebaut. Es werden trotzdem keine Images sichtbar... :cry: Hat noch irgendjemand ne Idee oder einen Tipp?

MfG Florian :hi:

Christian Seehase 1. Okt 2003 14:11

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Moin Florian,

nimm doch als Parent die Kompo, auf der die Images sichtbar sein sollen.
Dann müsstest Du ggf. noch die Position ändern, da die Kompos immer relativ zum Parent angezeigt werden.

flomei 1. Okt 2003 15:35

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Habe schon
Delphi-Quellcode:
Parent := BackGroundImage.Parent
und
Parent := MainForm.Parent
ausprobiert aber es geht immer noch nicht. Ich verzweifel hier bald...

MfG Florian :hi:

P.S.: Hier könnt ihr zum letzten Mal sehen wie flomei den DP rules Smilie einfügt! Achtung!
:dp:

DataCool 1. Okt 2003 15:44

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Hi,

Christian meinte :

Parent := BackGroundImage;

So wie Du das gemacht hast, wird dem Parent ja wieder das Parent Deines Hintergrundbildes zugewiesen, damit liegt es wieder dahinter.

Gruß Data

axelf98 1. Okt 2003 16:21

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
Delphi-Quellcode:
      with Gegner[i] do
        begin
          Picture.LoadFromFile('C:\Bild.bmp');
          left := random(Form1.Width);
          top := random (form1.Height);
          height := 32;
          width:= 32;
          Visible := true;
          Show;
          Parent := form1;  //Bzw Mainform
        end;
Das klappt bei mir wunderbar....

Gandalfus 1. Okt 2003 17:12

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
warumm willst du den TImage überhaupt benutzen?
Versuch doch mal was mit TGraphicControl
oder einem Record(oder Object)
Delphi-Quellcode:
  TGegner = record
    bild: TBitmap;
    left,top: integer;
    visible: boolean;
  end;

Minz 7. Nov 2003 14:30

Re: Dynamisch erzeugtes TImage nicht sichtbar
 
vielleicht hilft noch ein Refresh oder sowas...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 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