Hi,
Ich habe dir mal ein Beispiel für einen Button geschrieben:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
// Das Event definieren
TVisibleEvent =
procedure(Sender: TObject; Visible: Boolean)
of object;
// Button neu definieren
TButton =
class(StdCtrls.TButton)
private
FOnVis: TVisibleEvent;
function GetVis: Boolean;
procedure SetVis(
const Value: Boolean);
public
property Visible: Boolean
read GetVis
write SetVis;
// Alte Visible Property überschreiben
property OnVisible: TVisibleEvent
read FOnVis
write FOnVis;
// Die Event-Property
end;
TForm1 =
class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
procedure Test(Sender: TObject; Visible: Boolean);
// Die procedure für das Event
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TButton }
function TButton.GetVis: Boolean;
begin
Result :=
inherited Visible;
end;
procedure TButton.SetVis(
const Value: Boolean);
begin
inherited Visible := Value;
if Assigned(FOnVis)
then // Wenn Event gesetzt dann
FOnVis(Self,Value);
// ausführen
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.OnVisible := Test;
// Event zuweisen
end;
procedure TForm1.Test(Sender: TObject; Visible: Boolean);
begin
ShowMessage('
ALARM!');
// Alarm anzeigen wenn Sichtbarkeit geändert wurde
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Button1.Visible := false;
// zum testen
end;
end.
Ich hoffe das erklärt sich von selbst ansonsten frag ruhig. Aber ich hab ab 22 Uhr kein Internet mehr das heißt du musst dich eventuell gedulden
PS: Das sollte für Images analog funktionieren.
Der Vorteil ist hierbei das die
VCL Komponenten aus der
IDE direkt diese neuen Properties haben und du nicht alles zur Runtime erstellen musst nur wegen dem Event.
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."