Achso! Dann war ich ja vollkommen falsch...
Dann probier mal folgendes:
Delphi-Quellcode:
var IsMouseDown : Boolean;
PanelNr : Integer = 0;
xk,yk : Integer;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
xk := x;
yk := y;
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
IF IsMouseDown = true THEN
begin
Inc(PanelNr);
With TPanel.Create(Form1) do
begin
Parent := Form1;
Name := 'Panel' + IntToSTr(PanelNr);
Left := xk;
Top := yk;
Width := x-xk;
Height := y-yk;
end;
IsMouseDown := False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
IsMouseDown := true;
end;
Wenn du auf Button1 klickst, wird eine Variable auf True gesetzt, die dem programm sagt, dass es beim nächsten aufziehen (Rahmenziehen) der Maus ein Panel zeichnen soll. Bei einem MouseDown werden die aktuellen Koordinaten gemerkt und bei MouseUp wird mit den gemerkten und den aktuellen Koordinaten ein Panel gezeichnet. (dynamisch erstellt)
Hattest du das so gemeint?
[EDIT] Das macht natürlich noch keinen visuellen Rahmen
[/EDIT]