Avatar billede valbjorn Nybegynder
11. november 2001 - 18:52 Der er 1 kommentar og
1 løsning

Drag and drop/dock

Jeg sidder og skal lave en lille opgave, hvor jeg gerne vil kunne trække nogen paneler rundt på et stort panel. Men hvis man trækker et panel uden for det store panel og slipper det bliver det til et window.

- Kan man slå dette fra så den bare hopper tilbage på  sin plads??

- eller kan man skrive noget kode et sted i en event og låse det sådan??

håber der er nogen der kan hjælpe mig...
NIKOLAJ
Avatar billede stone Forsker
12. november 2001 - 10:32 #1
prøv det her, hvis man med musen trækker panelet
uden for, vil den gå under formen, og ikke uden for

implementation

{$R *.DFM}
const
Traekker:Boolean=False;
var
Sidste_x, Sidste_y:Integer;
procedure TForm1.Panel2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
mx,my:Integer;
begin
if (traekker)and( ssleft in shift) then
begin
mx:=Panel2.Left;
Panel2.Left:=Panel2.Left-(sidste_x-x);
mx:=Panel2.Left-mx;
my:=Panel2.Top;
Panel2.top:=Panel2.top-(Sidste_y-y);
my:=Panel2.Top-my;
sidste_y:=Y-my;
sidste_x:=x-mx;
end
else
traekker:= false;
end;

procedure TForm1.Panel2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if (SSleft in shift) then begin
Traekker:= True;
Sidste_x:=x;
Sidste_y:=y;
end;
end;
end.
Avatar billede valbjorn Nybegynder
13. november 2001 - 13:23 #2
>stone
Er det mig der er helt galt på den eller er det ikke en konstant du laver her:

const
Traekker:Boolean=False;

og dem kan man da ikke ændre?? eller nå jeg har ikke prøvet det endnu men det ser meget rigtigt ud. så tak for det...

Nikolaj
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester