Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fernandopiccini

DragDrop

Recommended Posts

Ola Pessoal,

 

Tenho quatro Componetes do Tipo TPanel que efetuo DragDrop entre eles, porém os mesmos também possuem evento DblClick...

 

Se habilito o DragDrop o DblClick não funciona e vice-versa..

 

Alguem pode me ajudar uma vez q preciso destes dois eventos???

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Hugo,

 

Procurei resumir em um pequeno programinha minha rotina, ou seja, tenho dois panels, que o DragDrop funciona mas o DblClick nelas não...

 

 

var

Form1 : TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Panel1DblClick(Sender: TObject);

begin

ShowMessage('Duplo clique no Panel << 1 >>');

end;

 

procedure TForm1.Panel2DblClick(Sender: TObject);

begin

ShowMessage('Duplo clique no Panel << 2 >>');

end;

 

procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;

State: TDragState; var Accept: Boolean);

begin

Accept := (Source is TPanel);

end;

 

procedure TForm1.Panel2DragOver(Sender, Source: TObject; X, Y: Integer;

State: TDragState; var Accept: Boolean);

begin

Accept := (Source is TPanel);

end;

 

procedure TForm1.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);

begin

if (TPanel(Source).Top > TPanel(Sender).Top) then

TPanel(Source).Top := TPanel(Sender).Top - 1

else

TPanel(Source).Top := TPanel(Sender).Top + 1;

end;

 

procedure TForm1.Panel2DragDrop(Sender, Source: TObject; X, Y: Integer);

begin

if (TPanel(Source).Top > TPanel(Sender).Top) then

TPanel(Source).Top := TPanel(Sender).Top - 1

else

TPanel(Source).Top := TPanel(Sender).Top + 1;

end;

 

end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte, coloca o DragMode como dmManual, depois no evento OnClick de cada Panel, faça:

 

procedure TForm1.Panel1Click(Sender: TObject);beginPanel1DragDrop(Panel1,Panel1,Mouse.CursorPos.X,Mouse.CursorPos.Y);end;procedure TForm1.Panel2Click(Sender: TObject);beginPanel2DragDrop(Panel2,Panel2,Mouse.CursorPos.X,Mouse.CursorPos.Y);end;

Ou seja, quando clicar uma vez ele mesmo chama o evento de DragDrop, e se clicar duas, executa o DoubleClick.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Marcio,è necessário tem o evento DragOver implementado para tratar junto com dragdrop???O duplo clique foi, mas gostaria que efetuasse o dragdrop dos panels conforme clicar e arrastar os mesmos, não no evento de clique, porque senão se eu apenas clicar no panel hoje ele ná troca a posição dos mesmos... O ideal é clicar e arrastar o panel, quando soltar o botão do mouse troca as posiçõesvlw marcio

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.