Código
Declare na clausula
Uses:
Windows, Forms, Dialogs, StdCtrls, Controls, Classes;
Type
private
procedure btnclick(Sender: TObject);
Var:
Form1: TForm1;
down,crt:boolean;
pt:TPoint;
//Procedure que exibe mensagem, usada para colocar nos novos botões
procedure TForm1.btnclick(Sender: TObject);
begin
showmessage('O Botão '+TButton(sender).Caption+' foi clicado!');
end;
//Procedure que cria o button apartir das informações dadas
procedure criarbtn(Caption:string; top,left,height,width:integer; onClick:TNotifyEvent; parent:TWinControl);
var
btn:TButton;
begin
btn:=TButton.Create(parent);
btn.Parent:=parent;
btn.Top:=top;
btn.Left:=left;
btn.Height:=Height;
btn.Width:=Width;
btn.Caption:=caption;
btn.OnClick:=OnClick;
end;
{Chamando a procedure criarbtns, os botões são criados da seguinte maneira:
1 clicar no button1 (criar)
2 clicar e arastar em uma area do form para criar o botão.}
{Insira 2 Buttons:
Button1: caption:=Criar
Button2: caption:=""
Visible:=false}
//Evento on click do Button1
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('clique e araste com o mouse sobre o form para criar um button');
crt:=true;
end;
//Evento onmousedown do form
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
pt.X:=x;
pt.Y:=y;
if crt then
down:=true;
end;
//evento onmousemove do form
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if down then begin
button2.Visible:=true;
button2.Top:=pt.Y;
button2.Left:=pt.X;
button2.Height:=y-pt.Y;
button2.Width:=x-pt.X;
end;
end;
//evento onmouseup do form
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if down then begin
criarbtn(InputBox('Criar Botão','Insira o nome do novo botão','Button'),button2.Top,button2.Left,button2.Height,button2.Width,btnclick,Form1);
end;
button2.Visible:=false;
down:=false;
crt:=false;
end;
{
By Jackson
contato: jackson_eduardo_da_veiga@hotmail.com
}
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009