![]() |
Form1 vibrien lassen
Mal ne dumme Frage...
Wie kann ich eine Form oder ein Frame viebrieren lassen... Das Gibt es bei Messengern ... Um auf das Fenster aufmerksam zu machen.... |
Re: Form1 vibrien lassen
Mach doch nen Timer, der meinetwegen zufällig bei *.Left oder *.Top eben 1 dazutut oder abzieht ;)
(Iss jetzt ne billige Lösung :roll: ) Wenn du auf deine Form aufmerksam machen willst, könntest du auch unten in der Windohf-Leiste deine Applikation "blinken" lassen ;) |
Re: Form1 vibrien lassen
hallo, da ich für mein Programm
![]()
Delphi-Quellcode:
Der Aufruf erfolgt z. B. via ShakeWindow(3, 25). Du kannst das "for I := 1 to 10" natürlich auch noch durch einen variablen Wert ersetzen.
procedure TMainForm.ShakeWindow(const aAmount, aLevel: Integer);
var hWindow: HWnd; R: TRect; E, I, WindowWidth, WindowHeight: Integer; begin hWindow := GetForeGroundWindow; // Get metrics GetWindowRect(hWindow, R); WindowWidth := R.Right - R.Left; WindowHeight := R.Bottom - R.Top; // big earthquake for E := 1 to aAmount do begin // small quick shaking for I := 1 to 10 do begin MoveWindow(hWindow, R.Left + Random(aLevel), R.Top + Random(aLevel), WindowWidth, WindowHeight, True); Application.ProcessMessages; Sleep(50 + Random(30)); end; Sleep(300 + Random(500)); end; // Restore old position MoveWindow(hWindow, R.Left, R.Top, WindowWidth, WindowHeight, True); end; Falls dir was besseres/schöneres einfällt, wäre ich natürlich auch interessiert. Achja, wg. Taskbar blinken lassen gibt es das hier:
Delphi-Quellcode:
procedure TMainForm.FlashAppWindow;
var FWI: FlashWInfo; begin with FWI do begin cbSize := SizeOf(FWI); hwnd := Application.Handle; dwFlags := FLASHW_ALL; // and FLASHW_TIMERNOFG; //FLASHW_CAPTION; SystemParametersInfo(SPI_GETFOREGROUNDFLASHCOUNT, 0, @FWI.uCount, 0); dwTimeout := GetCaretBlinkTime; // div 8; end; FlashWindowEx(FWI); end; |
Re: Form1 vibrien lassen
Delphi-Quellcode:
type
TForm1 = class(TForm) Button1: TButton; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); public count:integer; n:integer; x,y:Integer; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := True; n := 0; x := left; y := top; end; procedure TForm1.Timer1Timer(Sender: TObject); var dx, dy :Integer; begin if n<=count then begin dx := random(50); dy := random(50); left := x + dx; top := y + dy; inc(n); end else begin Timer1.Enabled := False; left := x; top := y; end; end; procedure TForm1.FormCreate(Sender: TObject); begin randomize(); count := 50; Timer1.Enabled := false; Timer1.Interval := 10; end; |
Re: Form1 vibrien lassen
Danke Leute!!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 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-2025 by Thomas Breitkreuz