Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Ersatz für Timer (https://www.delphipraxis.net/78630-ersatz-fuer-timer.html)

EWeiss 8. Okt 2006 12:58


Ersatz für Timer
 
Ich möchte wie in meinen Projekt die Form beim resitz
ruckweise bewegen. Ala Winamp.

Mein code...

Delphi-Quellcode:
procedure Tfrm_Gen.picFormResizeMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
      If FormFlag = False Then
        begin
        FX := picFormResize.Left + (picFormResize.Width div 2);
        FY := picFormResize.Top + (picFormResize.Height div 2);
        AX := x;
        AY := y;
        FormFlag := True;
        FormFirst := True;
        fTimer := GetTickCount + 0.2; //GetTickCount kein ersatz für Timer(VB)
        end;

end;
Delphi-Quellcode:
procedure Tfrm_Gen.picFormResizeMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  posW  : Dword;
  posH  : Dword;
  formW : Dword;
  formH : Dword;
begin

    If FormFlag = True Then
    begin
        If GetTickCount < fTimer Then Exit;
          fTimer := GetTickCount + 0.2; //GetTickCount kein ersatz für Timer(VB)

        if FormFirst = True then
         begin
         posW := (FX + x) - x;
         end
         else
         posW := (FX + x) - AX;

        if FormFirst = True then
         begin
         posH := (FY + y) - y;
         end
         else
         posH := (FY + y) - AY;

        If posW < 261 Then
          posW := 261;

        If posH < 99 Then posH := 99;
         if FormFirst = True then
          begin
           FX := FX;
          end
          else
           FX := posW;

         if FormFirst = True then
          begin
           FY := FY;
          end
          else
           FY := posH;

        If FormFirst = False Then
        begin
            picFormResize.Left := FX;
            picFormResize.Top := FY;
            formW := FX + 14;
            formH := FY + 14;
            frm_Gen.Width := formW;
            frm_Gen.Height := formH;
        End;
        FormFirst := False
    End;
end;
GetTickCount bringt nicht das gewünschte Resultat!
In VB benutze ich dafür Timer .. was aber nicht mit TTimer gleichzusetzen ist!
Die Form soll also verzögert abhängig vom Timer + 0.2 neu positioniert werden.

Hoffe ihr versteht was ich meine ;)

gruß

mkinzler 8. Okt 2006 21:18

Re: Ersatz für Timer
 
delay()
sleep()

CalganX 8. Okt 2006 21:40

Re: Ersatz für Timer
 
Hi,
dazu muss man aber sagen, dass das bei Winamp nicht über Zeit geht, sondern dass du immer nur um eine bestimmte Anzahl an Pixeln vergrößern kannst. Egal wie schnell oder langsam du ziehst, du wirst immer nur 20px oder so größer oder kleiner machen. ;)

Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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