Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Timage + 1 wie??? (https://www.delphipraxis.net/131422-timage-1-wie.html)

foerster7892 24. Mär 2009 18:15


Timage + 1 wie???
 
Hi@all,
also das wollte ich machen aber ich weiß nicht genau wie:

Delphi-Quellcode:
(FindComponent('image' + IntToStr(Name))).Picture.clear //<--- auf Name liegt eine Zahl und clear hab ich geraten kann falsch sein zum leeren einer Timagecomponente
kann auch sein das ich den Befehl FindComponent falsch verstanden habe.

Hoffe ihr könnt mir helfen

Danke im Vorraus

mfg
foerster7892

mkinzler 24. Mär 2009 18:18

Re: Timage + 1 wie???
 
.FindComponent() liefert dir ein TComponent zurück. Die Rückgabe musst du in einen passenden Tap casten:

Delphi-Quellcode:
(FindComponent('image' + IntToStr(Name)) as TImage).<Eigenschaft> bzw. <Methode>

nuclearping 24. Mär 2009 18:27

Re: Timage + 1 wie???
 
Und statt .Picture.Clear -> .Picture.Assign (nil)

foerster7892 24. Mär 2009 18:31

Re: Timage + 1 wie???
 
thx schonmal aber da kommt immer noch ein fehler

Delphi-Quellcode:
(FindComponent('Image' + IntToStr(Name)) as TImage).Picture := nil;
bzw
Delphi-Quellcode:
(FindComponent('Image' + IntToStr(Name)) as TImage).Picture.Assign(nil);
und zwar: es gibt keine überladene Version von 'IntToStr' die man mit diesem Argumenten aufrufen kann

mkinzler 24. Mär 2009 18:35

Re: Timage + 1 wie???
 
Name ist vielleicht auch ein ungeeigneter Variablenname

himitsu 24. Mär 2009 18:38

Re: Timage + 1 wie???
 
Zitat:

auf Name liegt eine Zahl
damit ist aber nicht gesagt, daß Name wirklich ein Integer ist.

foerster7892 24. Mär 2009 18:39

Re: Timage + 1 wie???
 
@mkinzler: lol simmt garnicht gemerkt
thx dann an alle und :dp:

Cyf 24. Mär 2009 19:19

Re: Timage + 1 wie???
 
Zitat:

Zitat von nuclearping
Und statt .Picture.Clear -> .Picture.Assign (nil)

Wow, man lernt nie aus, hätte nicht gedacht, das das geht.

Alternativ kannst du, wenn du eine neue Hintergrundfarbe brauchst auch

Delphi-Quellcode:
Image1.Canvas.Brush.Color:= clDeineHintergrundfarbe;
Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
verwenden, oder einfach Visible auf false setzen, falls du das Bild behalten willst, aber für einen Moment nicht anzeigen.
Die Assign-Variante, ist falls das Bild komplett weg haben willst, ohne einen neuen Hintergrund zu benötigen, aber schneller.

[Edit]Du könntest für den Zugriff auf deine Bilder auch alle Bildreferenzen in einem Array speichern.


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