Autor Beitrag
Sapphire
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 25.12.07 19:30 
Hy Leute,

ich habe folgendes Problem:

Ich habe eine Reihe TImages (insgesammt 35). Wenn ich auf eines klicke soll sich das Bild verändern. Soweit kein Problem. Jetzt soll das aber mit jedem Bild geschehen auf das ich klicke.
Gibt es da eine Möglichkeit, damit ich mir die ganze Schreibarbeit spare??

Bei Visual Basic gäbe es ja die Controlarrays, die sind mir bei Delphi aber noch nicht begegnet...

MFG + Frohe Weihnachten. Sapphire

PS: Hier nocheinmal der Code von einem Image:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.image1Click(Sender: TObject);
begin
  if activeplace <> 1 then begin
    activeplace := 1;
    image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\bilder\bauplatzact.bmp');
  end
  else begin
    activeplace := 0;
    image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\bilder\bauplatz.bmp');
  end;
end;


Zuletzt bearbeitet von Sapphire am Di 25.12.07 19:40, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 25.12.07 19:36 
Hallo und :welcome:!

Zuerst einmal: Ändere doch bitte den Titel Deines Threads, sodass er etwas über den tatsächlichen Inhalt aussagt. Dein Titel passt wahrscheinlich auf die meisten Threads hier ;-)

Zu Deiner Frage: Du kannst den Sender-Parameter auswerten:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.image1Click(Sender: TObject);
var
  theImage : TImage;
begin
  theImage := TImage(Sender);
  if activeplace <> 1 then begin
    activeplace := 1;
    theImage.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\bilder\bauplatzact.bmp');
  end
  else begin
    activeplace := 0;
    theImage.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\bilder\bauplatz.bmp');
  end;
end;


Ich nehme an, dass auch activeplace für jedes Image gespeichert werden muss? Dann kannst Du das in der Tag-Eigenschaft jedes Image tun.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Sapphire Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 25.12.07 19:40 
erstmal Danke

aber auch das muss ich doch in die clickprozedur von jedem image schreiben...
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 25.12.07 19:41 
Ach so, stimmt. Dann guck mal hier: www.delphi-library.d...verwalten_43052.html

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Zorro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Win 2000, Win XP Pro
Delphi 7 Architect
BeitragVerfasst: Mi 26.12.07 00:10 
user profile iconSapphire hat folgendes geschrieben:

Bei Visual Basic gäbe es ja die Controlarrays, die sind mir bei Delphi aber noch nicht begegnet...


Automatisch (wie in VB) gibts das nicht, aber du kannst die selbstverständlich nachbilden:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
Var arrImg: Array[1..10Of TImage;

procedure TForm1.Create(Sender: TOBject);
begin
  arrImg[1] := Image1;
  arrImg[2] := Image2;
  arrImg[3] := Image3;
  ...
  arrImg[10] := Image10;
end;

procedure TForm1.Button1Click(Sender:TObject);
var z:Integer;
begin
  for z := 1 To 10 Do arrImg[z].Left := 100;
end;


Greetz
Zorro
Sapphire Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 28.12.07 02:30 
so weit war ich schon

mein problem liegt darin, das ich nicht auf buttons, sondern auf die images klicke...
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Fr 28.12.07 11:03 
user profile iconSapphire hat folgendes geschrieben:
mein problem liegt darin, das ich nicht auf buttons, sondern auf die images klicke...

Buttons? Ich les' immer Buttons? Da sind doch Images im Beispielcode...

_________________
Na denn, dann. Bis dann, denn.
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 764
Erhaltene Danke: 127



BeitragVerfasst: Fr 28.12.07 12:48 
user profile iconSapphire hat folgendes geschrieben:
aber auch das muss ich doch in die clickprozedur von jedem image schreiben...

Alle Images markieren, dann die OnClick-Prozedur des 1. Images im Objektinspektor anklicken (die den Sender auswertet), fertig. Damit haben alle Images die gleiche OnClick-Prozedur.

ub60
Sapphire Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 31.12.07 15:21 
da hätte ich aber immernoch ein problem mit...

schreibt mir bitte mal einen Beispielcode

ich habe 35 images, die das bild wechseln, wenn man auf eines klickt (nur dieses wechselt das bild), klickt man nochmal, dann kommt das alte bild wieder

das soll auf allen images liegen