Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Komponente ansprechen, aber wie? (https://www.delphipraxis.net/24633-komponente-ansprechen-aber-wie.html)

jAcK oRsEn 23. Jun 2004 18:52


Komponente ansprechen, aber wie?
 
Hi,


ich habe folgendes Problem, ich habe eine Zahl in einem String, sagen wir mal 3.

Jetzt möchte ich, das mein Programm das Image3 anspricht...Sobald in dem String eine 2 steht Image2 u.s.w.

Wie kann ich das machen?

Nicodius 23. Jun 2004 18:57

Re: Komponente ansprechen, aber wie?
 
mit findcomponent :)

Delphi-Quellcode:
TLabel(FindComponent('Label' + IntToStr(deineZahl))).methode

jAcK oRsEn 23. Jun 2004 19:15

Re: Komponente ansprechen, aber wie?
 
Danke, aber ich bekomme jetzt hier eine Fehlermeldung...

Zugriffsverletzung!

Delphi-Quellcode:
procedure TForm1.schiebe(Sender:TObject;oben,unten,links,rechts:string);
begin
if oben = '' then
begin
end
else
begin
if tImage(FindComponent('image'+oben)).Picture.Graphic<>nil then
begin
end
{Ein Bild ist drin} else
begin
tImage(FindComponent('image'+oben)).Picture := (sender as TImage).picture;
(sender as TImage).picture := nil;
end;
end;

if unten = '' then
begin
end
else
begin
if tImage(FindComponent('image'+unten)).Picture.Graphic<>nil then
begin
end
{Ein Bild ist drin} else
begin
tImage(FindComponent('image'+unten)).Picture := (sender as TImage).picture;
(sender as TImage).picture := nil;
end;
end;

if links = '' then
begin
end
else
begin
if tImage(FindComponent('image'+links)).Picture.Graphic<>nil then
begin
end
{Ein Bild ist drin} else
begin
tImage(FindComponent('image'+links)).Picture := (sender as TImage).picture;
(sender as TImage).picture := nil;
end;
end;

if rechts = '' then
begin
end
else
begin
if tImage(FindComponent('image'+rechts)).Picture.Graphic<>nil then
begin
end
{Ein Bild ist drin} else
begin
tImage(FindComponent('image'+rechts)).Picture := (sender as TImage).picture;
(sender as TImage).picture := nil;
end;
end;
end;

...

procedure TForm1.Image30Click(Sender: TObject);
begin
schiebe(nil,'24','','29','');
end;
Woran kann es liegen?

jAcK oRsEn 23. Jun 2004 19:23

Re: Komponente ansprechen, aber wie?
 
Der Fehler kommt bei einer Aussage die Wahr ist, und zwar hier:
Delphi-Quellcode:
begin
tImage(FindComponent('image'+rechts)).Picture := (sender as TImage).picture;
(sender as TImage).picture := nil;
end;


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