Avatar billede sk-man Nybegynder
13. maj 2003 - 22:58 Der er 1 kommentar og
1 løsning

Dragging Label

Jeg har placeret en label i en form. Kan man lave den "drag-able"? Dvs. Hvis man klikker og holder musen nede, så kan man flytte den til et andet sted?
Avatar billede stone Forsker
13. maj 2003 - 23:49 #1
joda... med det her eksempel:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
const
Traekker:Boolean=False;
var
Sidste_x, Sidste_y:Integer;

procedure TForm1.Label1MouseDown(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;

procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
mx,my:Integer;
begin
if (traekker)and( ssleft in shift) then
begin
mx:=Label1.Left;
Label1.Left:=Label1.Left-(sidste_x-x);
mx:=Label1.Left-mx;
my:=Label1.Top;
Label1.top:=Label1.top-(Sidste_y-y);
my:=Label1.Top-my;
sidste_y:=Y-my;
sidste_x:=x-mx;
end
else
traekker:= false;
end;


end.

Samme kode kan bruges til andre ting som buttons, panel osv. bare udskift label1 med f.eks button1.
Avatar billede sk-man Nybegynder
14. maj 2003 - 09:56 #2
Fint!
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