![]() |
AW: Für CopyRect passendes Ereignis?
Zitat:
|
AW: Für CopyRect passendes Ereignis?
Zitat:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var Quelle, Ziel: TRect; begin Image1.Picture.LoadFromLazarusResource('bg'); Image2.Picture.LoadFromLazarusResource('5ge'); Quelle := Rect(0, 0, 100, 100); Ziel := Rect(0, 0, 100, 100); Image2.Canvas.CopyRect(Ziel, Image1.Canvas, Quelle); end; procedure TForm1.Button2Click(Sender: TObject); var Quelle, Ziel: TRect; begin Quelle := Rect(0, 0, 100, 100); Ziel := Rect(0, 0, 100, 100); Image2.Canvas.CopyRect(Ziel, Image1.Canvas, Quelle); end; |
AW: Für CopyRect passendes Ereignis?
Was passiert denn, wenn Du auf den Button klickst und anschließend mal ein anderes Fenster über Deins legst?
|
AW: Für CopyRect passendes Ereignis?
Zitat:
Delphi-Quellcode:
.
OnShow
|
AW: Für CopyRect passendes Ereignis?
Zitat:
|
AW: Für CopyRect passendes Ereignis?
Zitat:
|
AW: Für CopyRect passendes Ereignis?
Im oder nach OnPaint?
|
AW: Für CopyRect passendes Ereignis?
Zitat:
|
AW: Für CopyRect passendes Ereignis?
Guck mal hier
![]() |
AW: Für CopyRect passendes Ereignis?
Oben hatte SirRufo doch einen Hinweis auf OnIdle geliefert:
Die VCL-Form ist gesichert komplett gezeichnet beim ersten Application.OnIdle Event nach dem Form.OnShow Event. Ist dieser Hinweis denn nicht brauchbar? Könnte man denn nicht einfach in der OnIdle-Ereignisbehandlung eine globale Boolean-Variable, die als Schalter fungiert, abfragen, so daß die Anweisungen nur dieses eine Mal ausgeführt werden? Z.B. so:
Delphi-Quellcode:
Nachtrag:
...
private Var FirstIdlePassed : Boolean; public procedure MyOnIdleHandler(Sender: TObject; var Done: Boolean); end; procedure TForm1.MyOnIdleHandler(Sender: TObject; var Done: Boolean); begin Done := False; If FirstIdlePassed Then Exit; FirstIdlePassed := True; ShowMessage('Das erste OnIdle-Event!'); ... end; procedure TForm1.FormCreate(Sender: TObject); begin FirstIdlePassed := False; Application.OnIdle := MyOnIdleHandler; end; Ob das dann auch in Lazarus funktioniert, muß man gegebenenfalls ausprobieren ... Ach ja, bei Lazarus muß man das @ davor setzen:
Delphi-Quellcode:
Application.OnIdle := @MyOnIdleHandler;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:11 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