![]() |
Fenster wackeln lassen
Hi,
ich habe einen Wecker programmiert in Delphi. Wenn nun die eingestellte Zeit ist, so "switcht" er in den Vordergrund. Kann ich das Fenster dabei auch noch so wackeln bzw. zittern lassen? Mfg Patrick |
Re: Fenster wackeln lassen
Wenn du die Position des fensters ein bisschen veränderst und das öfter wiederholst wäre eine möglichkeit.
Delphi-Quellcode:
...
Form1.Position := (100, 199); ... |
Re: Fenster wackeln lassen
Ja, z.B. mit der Funktion SetWindowPos. Musst eben kleine Zufallswerte zur aktuellen Position addieren bzw. davon subtrahieren.
Wegen dem roten Kasten: Oder eben auch mit k4nis Vorschlag über die Property. |
Re: Fenster wackeln lassen
Ok, das hab ich mir auch schon gedacht. Wusste nur nicht ob es vielleicht ne Funktion dafür gibt.
Dann probier ich das mal :) |
Re: Fenster wackeln lassen
Wieso sollte es für so einen Quatsch (sorry) eine Funktion geben?
|
Re: Fenster wackeln lassen
naja, aus dem gleichen Grund warum es die Animation beim Maximieren/Minimieren gibt, es Alphablend gibt, es AnimateWindow gibt :mrgreen:
|
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Die Delphi-IDE" nach "VCL / WinForms / Controls" verschoben.
Das hat alles nichts mit der IDE zu tun ;-) |
Re: Fenster wackeln lassen
Delphi-Quellcode:
:zwinker:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } procedure ShakeWindow(Value, Delay, Duration: Integer); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ShakeWindow(Value, Delay, Duration: Integer); var OldPos: TPoint; i, Start, Stop: Integer; begin OldPos := Point(Self.Top, Self.Left); try for i := 0 to Duration - 1 do begin Self.Left := Self.Left + round(sin(i) * Value) * (random(2) -1 ); Self.Top := Self.Top + round(sin(i) * Value * 0.5); Start := gettickcount; Stop := 0; while (stop - start ) < Delay div 10 do begin Stop := GettickCount; Application.ProcessMessages; end; end; except // none end; Self.Top := OldPos.X; Self.Left := OldPos.Y; end; procedure TForm1.Button1Click(Sender: TObject); begin Form1.Enabled := False; ShakeWindow(10, 50, 255); Form1.Enabled := True; end; end. |
Re: Fenster wackeln lassen
Warum einen try-except-Block, wenn er doch leer ist? Und welche Methode sollte was für eine Exception werfen?
|
Re: Fenster wackeln lassen
:gruebel: Keinen, habe es ja auch nur mal so aus den Gedächtnis gebastelt. (Vorsorge od so)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 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