AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vernünftiges resitzverhalten ala Winamp

Ein Thema von EWeiss · begonnen am 26. Mär 2007 · letzter Beitrag vom 30. Mai 2007
 
EWeiss
(Gast)

n/a Beiträge
 
#1

Vernünftiges resitzverhalten ala Winamp

  Alt 26. Mär 2007, 21:01
Hallo
Ich möchte ein vernünftiges Resitzverhalten wie bei Winamp realisieren.
Also stepweise.
Je nach richtung x,y + 20 Pixel.

So sieht es im moment aus..
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;
  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

    // Maus in picFormResize einfangen.
    MouseTrap(picFormResize, x, y);

    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;
    // Maus wieder freigeben
    MouseTrap_Release;
    FormFirst := False;
  end;
end;

Delphi-Quellcode:
procedure Tfrm_Gen.picFormResizeMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: integer);
begin
  FormFlag := False;

end;

Delphi-Quellcode:
procedure Tfrm_Gen.MouseTrap(Sender: TObject; X, Y: integer);
var
  R: TRECT;
  Image: TImage;
begin
  Image := (Sender as TImage);
  // Image-Koordinaten in Bildschirmkoordinaten umrechnen
  R := Image.ClientRect;
  with Image.ClientOrigin do
    OffsetRect(R, X, Y);
  // Bewegung des Mauszeigers einschränken
  ClipCursor(@R);

end;

Delphi-Quellcode:
procedure Tfrm_Gen.MouseTrap_Release;
begin
  ClipCursor(nil);
end;
Egal wo ich die 20 pixel addiere das resitzverhalten entspricht nicht dem von Winamp...
Wäre schön wenn jemand eine besser lösung kennen würde.

gruss Emil
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 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 by Thomas Breitkreuz