// Nachrichten an untergeordnete Komponenten werden "mitgehört"
// und darauf reagiert. Im Beispiel geht es um die Farbänderung eines TPanel.
// Getestet mit D4 unter XP
 
type 
  TForm1 = class(TForm) 
    Panel1: TPanel; 
    Label1: TLabel; 
    Button1: TButton; 
    procedure FormCreate(Sender: TObject); 
    procedure Button1Click(Sender: TObject); 
  private 
    { Private-Deklarationen } 
  public 
    OldProc: TWndMethod; 
    procedure NewProc(var M: TMessage); 
    procedure Anzeige; 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
 
{$R *.DFM} 
 
procedure TForm1.Anzeige; 
begin 
  label1.caption := 'Farbe = ' + ColorToString(Panel1.Color); 
end; 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  OldProc := Panel1.WindowProc; 
  Panel1.WindowProc := NewProc; 
  anzeige; 
end; 
 
procedure TForm1.NewProc(var M: TMessage); 
begin 
  OldProc(M); 
  if M.Msg = CM_COLORCHANGED then anzeige; 
end; 
 
// Beispiel 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Panel1.Color := clRed; 
  application.processmessages; 
  sleep(1250); 
  Panel1.Color := clWindow; 
  application.processmessages; 
  sleep(1250); 
  Panel1.Color := $80FF; 
  application.processmessages; 
  sleep(1250); 
  Panel1.Color := $8000FF; 
  application.processmessages; 
  sleep(1250); 
  Panel1.Color := clBtnFace; 
end;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke