![]() |
Events zuweisen [Delphi und C++]
Hi leute,
ich stehe gerade mal wieder vor einem kleinen Problem. Ich erzeuge eine theoretisch unbegrenzte anzahl von TImages auf meiner form. diese werden mit bilder und showhints versehen. Jetzt die frage. wie ist es möglich, dass wenn ich ein TImage anklicke, der ShowHint in einer Messagebox angezeigt wird. Bisher ist es mir nur gelungen, dass bei allen Timages der gleiche text angezeigt wird. danke schon mal im vorraus! |
Re: Events zuweisen [Delphi und C++]
Du kannst doch einfach im Eventhandler mithilfe der Sender-Referenz auf die Hint-Eigenschaft desjenigen TImage, das das Event auslöst, zugreifen, oder hab ich was übersehen? :)
|
Re: Events zuweisen [Delphi und C++]
Nett ausgedrückt :thumb:
|
Re: Events zuweisen [Delphi und C++]
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); private ImageArray: array of TImage; procedure OnImageClick(Sender: TObject); procedure CreateAnTImageInstance; public end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormDestroy(Sender: TObject); var i: Integer; begin for i := Low(ImageArray) to High(ImageArray) do ImageArray[i].Free; Finalize(ImageArray); end; procedure TForm1.Button1Click(Sender: TObject); begin CreateAnTImageInstance; end; procedure TForm1.CreateAnTImageInstance; begin SetLength(ImageArray, Length(ImageArray) +1); ImageArray[High(ImageArray)] := TImage.Create(nil); ImageArray[High(ImageArray)].ShowHint := True; ImageArray[High(ImageArray)].Hint := Format('Hint %d', [Length(ImageArray)]); ImageArray[High(ImageArray)].Top := Random(Height); ImageArray[High(ImageArray)].Left := Random(Width); ImageArray[High(ImageArray)].Parent := Self; ImageArray[High(ImageArray)].OnClick := OnImageClick; ImageArray[High(ImageArray)].Picture.LoadFromFile('C:\Windows\Angler.bmp'); end; procedure TForm1.OnImageClick(Sender: TObject); begin if (Sender is TImage) then ShowMessage((Sender as TImage).Hint); end; procedure TForm1.FormCreate(Sender: TObject); begin Randomize; end; end. |
Re: Events zuweisen [Delphi und C++]
Hi,
vielen dank für die antworten! hat mir weitergeholfen! :-D |
Re: Events zuweisen [Delphi und C++]
Und was hat das jetzt mit C++ zu tun?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz