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?
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.