Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OnClick Prozeduren für zur Laufzeit erstellte Bilder (https://www.delphipraxis.net/43364-onclick-prozeduren-fuer-zur-laufzeit-erstellte-bilder.html)

fuisch 2. Apr 2005 19:35


OnClick Prozeduren für zur Laufzeit erstellte Bilder
 
Hallo alle!

Folgendes Problem:
Ich habe mehrere (je nach Benutzereingabe verschieden viele) Bilder, die zur Laufzeit erzeugt werden. Jetzt brauche ich zu jedem dieser Bilder eine Prozedur die beim anklicken vom diesem ausgelöst wird und der gleichzeitig noch der Dateiname des Bildes mitgegeben wird. Die Bilder werden wie folgt erzeugt:

Delphi-Quellcode:
for n:= 0 to Dateien.Count - 1 do begin
  if (n MOD 8 = 0) AND (n<>0) then begin
    reihe:=reihe+1;
    bildnummer:=0;
  end;
  Image[n]             := TImage.Create(Frame21);
  Image[n].Left        := bildnummer*95+8;
  Image[n].Top         := reihe*110+8;
  Image[n].Height      := 72;
  Image[n].width       := 87;
  Image[n].Parent      := Frame21;
  Image[n].Stretch     := true;
  Image[n].Proportional := true;
  Image[n].Picture.LoadFromFile(Dateien[n]);
  bildnummer:=bildnummer+1;
end;
Hoffe es kann jemand helfen und vor allem nicht allzu tiefgehend wenn möglich, hab noch nicht so viel Erfahrung mit Delphi.

Nochmal eine Entschuldigung für den Thread in dem ich wegen den Vorschaubildern gefragt hatte und nimmer geschaut hab. Das Problem war eine verkackte Windows 98 Installation. Hab inzwischen XP drauf und alles klappt einwandfrei.

DGL-luke 2. Apr 2005 19:44

Re: OnClick Prozeduren für zur Laufzeit erstellte Bilder
 
Delphi-Quellcode:

procedure clickcallback(Sender:TObject);
begin
//code...
end;

procedure callbackassign(bitmap:TBitMap);
begin
bitmap.onclick:=clickcallback;
end;
edit: is vielleicht n bisschen wenig für nen anfänger..
im callback kannst du mit (sender as TBitMap) auf dein bitmap zugreifen(z.b. (sender as tbitmap).width ).
und für jedes neu erstellte bitmap halt einmal callbackassgin mit dem bitmap aufrufen.

fuisch 2. Apr 2005 22:38

Re: OnClick Prozeduren für zur Laufzeit erstellte Bilder
 
an der Stelle hier
Delphi-Quellcode:
procedure callbackassign(Bild:TImage);
begin
  Bild.onclick:=clickcallback;
end;
bekomm ich die Fehlermeldung:
Zitat:

Incompatible types: 'method pointer and regular procedure'

malo 2. Apr 2005 22:39

Re: OnClick Prozeduren für zur Laufzeit erstellte Bilder
 
Versuch mal so:

Delphi-Quellcode:
procedure callbackassign(Bild:TImage);
begin
  Bild.click:=clickcallback;
end;

SirThornberry 2. Apr 2005 22:40

Re: OnClick Prozeduren für zur Laufzeit erstellte Bilder
 
liegt daran weil es eine methode sein muss (also TForm1 etc. muss davor stehen), also so:
Delphi-Quellcode:
procedure TForm1.clickcallback(Sender:TObject);
begin
//code...
end;

procedure TForm1.callbackassign(bitmap:TBitMap);
begin
bitmap.onclick:=clickcallback;
end;

fuisch 2. Apr 2005 22:45

Re: OnClick Prozeduren für zur Laufzeit erstellte Bilder
 
Jup, supi jetzt tut's. Danke!
An click statt onclick lag's nicht, da hat er ne Fehlermeldung gebracht:
Undeclared identifier: 'click'


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