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/)
-   -   Delphi "Eigene" Fenster (https://www.delphipraxis.net/87602-eigene-fenster.html)

hedie 2. Mär 2007 20:20


"Eigene" Fenster
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

Ich möchte ein Panel das sich in einem weiteren Panel befindet wie ein Fenster verschieben können also mit klick auf zb. ein weiteres Panel innerhalb des Panels das das Fenster Darstellt :mrgreen:


Zur unterstützung ein bild :D


Einen Code zur verschiebung wie ein Fenster habe ich bereits selber geschrieben

Delphi-Quellcode:
procedure TMultiForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
  var
  left:integer;
  top:integer;
  begin

       if (key = 68) then begin
       Panel2.Cursor := crCross;
       mousep := mouse.CursorPos;
       left := mousep.X;
       top := mousep.Y;
       left := (left - MultiForm.Left)-10;
       top := (top - MultiForm.Top)-27;
       Panel3.Left := Left;
       Panel3.Top := top;
       Panel2.Cursor := crDefault;
       end;
end;
Das Problem ist, das ich dazu e drücken muss.

Wie kann ich es machen das ich zb. auf eben ein Panel klicken kann.



danke grüsschen
Claudio

bitsetter 2. Mär 2007 21:36

Re: "Eigene" Fenster
 
Hallo,

meinst du das so?
Delphi-Quellcode:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   if ssLeft in Shift then
   begin

   end;
end;

hedie 2. Mär 2007 21:38

Re: "Eigene" Fenster
 
Hmmm...

Was macht dieser Code?

Weil wenn ich das gemeint habe, dan würde ich hier ja nicht fragen ;-)

Mazel 2. Mär 2007 21:44

Re: "Eigene" Fenster
 
Einfach geht es so:
Delphi-Quellcode:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  // Mausereignisse abfangen
  ReleaseCapture;
  // mit TWinCotrol verschieben, $F012 verschiebt den Button
  TWinControl(Sender).Perform(WM_SYSCOMMAND, $F012, 0);
end;
Glaube das meinst du.

Gruß
Mazel

hedie 2. Mär 2007 21:48

Re: "Eigene" Fenster
 
Also ich möchte ganz einfach ein Panel mit der Maus verschieben können

Mit dem Obigen Code gehtes wenn er immer wieder aufgerufen wird, und das wird er auch wenn ich immer auf e drücke aber..
wen ich das on Click event nehme, dan wird er einmalige aufgerufen also ich müsste quasi ein onclick event haben das sich solange die taste "gecklickt" ist sich immer wieder aufruft,
bis die taste nimmer "gecklickt" wird

Mazel 2. Mär 2007 21:54

Re: "Eigene" Fenster
 
Wenn du meinen Code mal anwendest, dann brauchst du nur einmal auf das Panel klicken und mit der Maus verschieben und wieder loslassen, da es nicht im OnClick sondern OnMouseDown passiert.

hedie 2. Mär 2007 22:24

Re: "Eigene" Fenster
 
perfekt vielen dank


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