Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mehrere dateien ansprechen (https://www.delphipraxis.net/63207-mehrere-dateien-ansprechen.html)

Chibi 15. Feb 2006 13:00


mehrere dateien ansprechen
 
Hi
Bin neu hier und hab da eine Frage zu einem Problem bei Delphi...

Ich hab mehrere Bilder, die ich alle über eine Variable ansprechen möchte... d.h.:
die Bilder hab ich in Delphi eingefügt und sie heißen Image1, Image2, Image3 ,... etc.

wollte Fragen, ob ich die nicht alle über ne Variable wie

var i : integer;

ansprechen kann ...

doch wie mache ich das?

so nach dem Prinzip

for i := 1 to 10 do
image[i].hide (oder änliches)

hilfe

:coder2:

jfheins 15. Feb 2006 13:02

Re: mehrere dateien ansprechen
 
Erstelle dir einen Array of TImage und füge die Bilder in das Array ein.

Grund:

Die Variablennamen sind nicht im Compilat enthalten, deshalb kannst du auch keine Variable zusammensetzen Nach dem Motto Memo{i} oder so.

;)

malo 15. Feb 2006 13:53

Re: mehrere dateien ansprechen
 
Zitat:

Zitat von jfheins
Die Variablennamen sind nicht im Compilat enthalten, deshalb kannst du auch keine Variable zusammensetzen Nach dem Motto Memo{i} oder so.

Delphi-Quellcode:
for i := 1 to 10 do
begin
  (FindComponent('Image' + IntToStr(i)) as TImage).Hide;
end;
Seltsam... :gruebel:



edit: Klammern falsch gesetzt, nun korrigiert.

Khabarakh 15. Feb 2006 14:07

Re: mehrere dateien ansprechen
 
Ist das ernst gemeint :gruebel: ?

malo 15. Feb 2006 14:26

Re: mehrere dateien ansprechen
 
Zitat:

Zitat von Khabarakh
Ist das ernst gemeint :gruebel: ?

Was meinst du? :gruebel:

Khabarakh 15. Feb 2006 19:32

Re: mehrere dateien ansprechen
 
Zitat:

Zitat von malo
Zitat:

Zitat von Khabarakh
Ist das ernst gemeint :gruebel: ?

Was meinst du? :gruebel:

Deinen gesamten Post :stupid: .
Oder hast du jfheins' Begriff "Variablennamen" einfach mal um "Komponentenhilfsproperty" erweitert? Gut, das ginge noch :wink: .

malo 16. Feb 2006 14:41

Re: mehrere dateien ansprechen
 
Ich verstehe nicht was du meinst.
jfheins hat geschrieben, es sei nicht möglich, einen Komponentennamen mit einer Variablen zu verknüpfen (wenn ich es richtig verstanden hab), und da hab ich wiedersprochen. Der von mir gepostete Quelltext funktioniert, wenn es min. 10 Images gibt, die die Namen "Image1", "Image2",..., "Image10" haben. Oder hab ich irgendetwas falsch verstanden? :gruebel:

edit: :wall: Jetzt hab ich verstanden was du meintest.
jfheins scheint da einen kleinen Denkfehler gehabt zu haben. Man muss nämlich nicht die Variablennamen beeinflussen, sondern nur die Eigenschaft "name", welche in der IDE den Variablennamen automatisch ändert.
Man kann Komponentennamen allerdings ganz einfach abfragen. Dazu wird, wie du (khabarakh) schon richtig erkannt hast. Ich hab wohl auch jhfeins' Posting nicht gründlich genug gelesen...

Khabarakh 16. Feb 2006 14:57

Re: mehrere dateien ansprechen
 
Zitat:

Zitat von malo
edit: :wall: Jetzt hab ich verstanden was du meintest.
jfheins scheint da einen kleinen Denkfehler gehabt zu haben. Man muss nämlich nicht die Variablennamen beeinflussen, sondern nur die Eigenschaft "name", welche in der IDE den Variablennamen automatisch ändert.
Man kann Komponentennamen allerdings ganz einfach abfragen. Dazu wird, wie du (khabarakh) schon richtig erkannt hast. Ich hab wohl auch jhfeins' Posting nicht gründlich genug gelesen...

jfheins' Beitrag ist total richtig, aber es gibt einfach noch ein Hintertürchen :wink: . Dein Beitrag sah so aus, als ob du das eine für das andere halten würdest. Aber in meinem letzten Post habe ich mir dann schon gedacht, dass du jfheins eigentlich gar nicht widerlegen wolltest / etwas falsch verstanden hast.

H4ndy 16. Feb 2006 15:13

Re: mehrere dateien ansprechen
 
Zitat:

Zitat von malo
jfheins hat geschrieben, es sei nicht möglich, einen Komponentennamen mit einer Variablen zu verknüpfen

Es ist möglich uns zwar mit
Delphi-Quellcode:
function FindComponent(const AName: string): TComponent;
Damit kannst du einfach nach vorhandenen Komponenten suchen.

In deinem Fall etwa so:
Delphi-Quellcode:
var AComponent: TComponent;
for i:=1 to 10 do begin
  AComponent := FindComponent('Image'+IntToStr(i));
  if AComponent <> nil then begin
    // Komponente gefunden - nur noch Typecasten und benutzen =)
    (AComponent as TImage).Picture.LoadFromFile('bla_blubb'+IntToStr(i)+'.bmp');
  end;
end;
Ich hoffe das ist, was du gesucht hast.
(Hiermit kannst du durchnummerierte, ähnliche Komponenten der Reihe nach ansprechen)

malo 16. Feb 2006 15:25

Re: mehrere dateien ansprechen
 
Zitat:

Zitat von H4ndy
Es ist möglich uns zwar mit
Delphi-Quellcode:
function FindComponent(const AName: string): TComponent;

Vielleicht solltest du mal alles lesen, bevor du irgendwas erzählst :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 Uhr.
Seite 1 von 2  1 2      

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