Results 1 to 4 of 4

Thread: TPanel Drag & Drop mogelijkheid

  1. #1
    Win32.Trojan.Heur.Herby
    Join Date
    Dec 2003
    Location
    Nuenen of all places
    Posts
    285

    TPanel Drag & Drop mogelijkheid

    Hoi

    Ik probeer het volgende te realiseren maar weet niet of het mogelijk is.
    IK heb een panel en daarin zitten een aantal andere panels.

    De bedoeling is dat ik deze panels moet kunnen verplaatsen binnen het hoofdpanel (droppanel genoemd) maar ze mogen er niet uit (ook niet floating)

    Click image for larger version. 

Name:	TPanels.png 
Views:	4 
Size:	4.1 KB 
ID:	8327

    Ben er een beetje mee aan het stoeien maar tot op heden lukt het me niet eens ze op te pakken, laat staan ergens neer te zetten.

    Kan dit uberhaupt wat ik wil?

    Alvast bedankt
    Herby
    Attached Thumbnails Attached Thumbnails Click image for larger version. 

Name:	TPanels.png 
Views:	6 
Size:	4.5 KB 
ID:	8326  

  2. #2
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,070
    panelmove.zip

    Ik heb ooit iets geprobeerd in die richting (meer dan 10 jaar gelden :-)

    Gr. Peter
    10.4.2, Delphi2010, of Lazarus 2.2.0

  3. #3
    Win32.Trojan.Heur.Herby
    Join Date
    Dec 2003
    Location
    Nuenen of all places
    Posts
    285
    Quote Originally Posted by Wok View Post
    panelmove.zip

    Ik heb ooit iets geprobeerd in die richting (meer dan 10 jaar gelden :-)

    Gr. Peter
    Hoi Peter,

    Ik had al een soortgelijk voorbeeld gevonden maar loop tegen de nodige issues aan.
    Grootste probleem waar ik tegenaan loop is dat de panels (ben ook al met frames bezig geweest) een alignment alTop hebben en dan niet meer op te pakken zijn.

  4. #4
    Deze source werkt iets beter en krijg je het alTop idee. Mooiste zou zijn dat realtime visueel de overige panels ook mee schuiven.
    Kijk maar... Had er ook een keer mee gespeeld.
    Form zelf kan je zelf even maken. Lijkt mij niet zo lastig met vier panels.
    Gewoon panel 3 t/m 5 slepen naar andere positie.

    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ExtCtrls, StdCtrls, ImgList, ActnList;
    
    type
      TForm1 = class(TForm)
        Panel3: TPanel; // alTop
        Panel4: TPanel; // alTop
        Panel5: TPanel; // alTop
        PanelClient: TPanel; // alClient
        procedure PanelTopMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
        procedure PanelTopMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
        procedure PanelTopMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
      StartX: Integer;
      StartY: Integer;
    
    implementation
    
    {$R *.DFM}
    
    procedure TForm1.PanelTopMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      DisableAlign;
      StartX := X;
      StartY := Y;
      (Sender as TPanel).Align := alNone;
      (Sender as TPanel).BringToFront;
    end;
    
    procedure TForm1.PanelTopMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      with Sender as TPanel do
        if ssLeft in Shift then { make sure button is down }
        begin
          left := left - StartX + X;
          top := top - StartY + Y;
        end;
    end;
    
    procedure TForm1.PanelTopMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      (Sender as TPanel).Align := alTop;
      EnableAlign;
    end;
    
    end.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •