Delphi-PRAXiS

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)

mirage228 14. Dez 2007 17:04

Re: Fenster wackeln lassen
 
Zitat:

Zitat von Luckie
Warum einen try-except-Block, wenn er doch leer ist?

Naja, könnte eine Methode sein, um eine Exception zu "schlucken"...

mfG
mirage228

Ultimator 14. Dez 2007 17:06

Re: Fenster wackeln lassen
 
Zitat:

Zitat von mirage228
Zitat:

Zitat von Luckie
Warum einen try-except-Block, wenn er doch leer ist?

Naja, könnte eine Methode sein, um eine Exception zu "schlucken"...

Der Nachteil ist dann allerdings, dass man irgendwann nicht mehr durchblickt, wieso das Programm nicht das macht, was es soll. Zumindest, wenn man mehrere Male den Weg geht, Exceptions einfach zu schlucken, anstatt darauf zu reagieren.

Luckie 14. Dez 2007 22:31

Re: Fenster wackeln lassen
 
Zitat:

Zitat von mirage228
Zitat:

Zitat von Luckie
Warum einen try-except-Block, wenn er doch leer ist?

Naja, könnte eine Methode sein, um eine Exception zu "schlucken"...

Dann überklebst du bei deinem Auto auch vorsorglich das rote Lämpchen mit der Ölkanne, es könnt ja mal aufleuchten. ;)

Blackheart 14. Dez 2007 22:39

Re: Fenster wackeln lassen
 
Die Ölkanne gibt es beim BMX Rad schon, nur das sie da noch nicht leuchtet. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr.

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