Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Fenster wackeln lassen (https://www.delphipraxis.net/104998-fenster-wackeln-lassen.html)

PatrickB 13. Dez 2007 21:29


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

k4ni 13. Dez 2007 21:36

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);
...

Ultimator 13. Dez 2007 21:37

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.

PatrickB 13. Dez 2007 21:39

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 :)

DeddyH 13. Dez 2007 21:50

Re: Fenster wackeln lassen
 
Wieso sollte es für so einen Quatsch (sorry) eine Funktion geben?

SirThornberry 14. Dez 2007 06:49

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 14. Dez 2007 13:25

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 ;-)

turboPASCAL 14. Dez 2007 16:48

Re: Fenster wackeln lassen
 
Delphi-Quellcode:
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.
:zwinker:

Luckie 14. Dez 2007 16:56

Re: Fenster wackeln lassen
 
Warum einen try-except-Block, wenn er doch leer ist? Und welche Methode sollte was für eine Exception werfen?

turboPASCAL 14. Dez 2007 17:04

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 08:26 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz