Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   C++ Events zuweisen [Delphi und C++] (https://www.delphipraxis.net/104911-events-zuweisen-%5Bdelphi-und-c-%5D.html)

Mark90 12. Dez 2007 18:34


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!

OregonGhost 12. Dez 2007 18:44

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? :)

DeddyH 12. Dez 2007 19:24

Re: Events zuweisen [Delphi und C++]
 
Nett ausgedrückt :thumb:

ste_ett 12. Dez 2007 19:27

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.

Mark90 13. Dez 2007 13:33

Re: Events zuweisen [Delphi und C++]
 
Hi,

vielen dank für die antworten! hat mir weitergeholfen! :-D

Luckie 13. Dez 2007 13:41

Re: Events zuweisen [Delphi und C++]
 
Und was hat das jetzt mit C++ zu tun?


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