Autor Beitrag
Jazzalex
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25

Fedora Core 3, Winx XP

BeitragVerfasst: Mi 06.09.06 16:20 
Hallo Leute,

ich habe folgende Funktionen :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function TForm1.picload(Img: TImage);
begin
  OpenDialog1.Filter := 'Bitmap|*.bmp|All files|*.*';
  if OpenDialog1.Execute then
  begin
    Img.picture.Bitmap.LoadFromFile(OpenDialog1.FileName);
  end;
end;

procedure TForm1.picload1(Sender: TObject);
begin
  picload(Img1);
end;



Von der letzteren gibt es z.Z. ca. 40 Stück für entsprechend 40 zu landene Bilder (picload2,picload3 mit Aufruf picload(Img2),picload(Img3) u.s.w.). Der Aufruf erfolgt durch den OnClick-Eventhandler für das entsprechende Bild.

Natürlich möchte ich mir die 40 Prozeduren sparen und die picload-Funktion direkt für jedes Image benutzen. Versuch war dieser :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
function TForm1.picload(Sender: TObject) : TImage;
begin
  OpenDialog1.Filter := 'Bitmap|*.bmp|All files|*.*';
  if OpenDialog1.Execute then
  begin
    Sender.picture.Bitmap.LoadFromFile(OpenDialog1.FileName); // geht natürlich nicht
  end;
end;


Jetzt wurde die einzige Picload-Funktion für jedes der 40 Images benutzt.
Wie kann ich nun Sender benutzen, damit ich auf das aufrufende Image zugreifen kann ?

Dank im voraus

-- A l e x
Jazzalex Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25

Fedora Core 3, Winx XP

BeitragVerfasst: Mi 06.09.06 16:29 
schon fündig geworden : die Antwort lautet

(Sender as TImage).picture.Bitmap := xyz;

also ein Typecast.

Danke trotzdem

-- A l e x