Fórum Arrastando um SubItem de um TreeView para um RichEdit #585350
28/08/2017
0
Boa tarde,
Estou criando uma aplicação em que o usuário irá arrastar (drag-drop) um SubItem de um TreeView e o caption do SubItem arrastado poderá ser adicionado em um RichEdit (para o local do texto onde ele quiser - cursor).
Como eu poderia fazer isso?
Há algum artigo onde explique melhor como fazer Drag-Drop?
Desde já agradeço.
Estou criando uma aplicação em que o usuário irá arrastar (drag-drop) um SubItem de um TreeView e o caption do SubItem arrastado poderá ser adicionado em um RichEdit (para o local do texto onde ele quiser - cursor).
Como eu poderia fazer isso?
Há algum artigo onde explique melhor como fazer Drag-Drop?
Desde já agradeço.
Lucas Bernieri
Curtir tópico
+ 0
Responder
Post mais votado
28/08/2017
Veja se este exemplo ajuda:
Altere a propriedade do Treeview e RichEdit chamada DragMode para dmAutomatic:
Altere a propriedade do Treeview e RichEdit chamada DragMode para dmAutomatic:
function RECharIndexByPos(RichEdit: TRichEdit; X, Y: Integer): Integer; var P: TPoint; begin P := Point(X, Y); Result := SendMessage(RichEdit.Handle, EM_CHARFROMPOS, 0, Longint(@P)); end;
procedure Tform1.RichEdit1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
P: TPoint;
begin
// verifica se a origem é um Treeview
Accept := Source = TTreeView(Source);
if GetCursorPos(P) then
with RichEdit1 do
begin
// Pega o índice da posição do mouse non RichEdit
P := ScreenToClient(P);
SelStart := RECharIndexByPos(RichEdit1, P.X, P.Y);
SetFocus;
end;
end;procedure Tform1.RichEdit1DragDrop(Sender, Source: TObject; X, Y: Integer); begin // Finalmente insere o texto na posição do mouse RichEdit1.SelText := TTreeView(Source).Selected.Text; end;
Natanael Ferreira
Responder
Gostei + 1
Mais Posts
31/08/2017
Lucas Bernieri
Muito obrigado Natanael, funcionou perfeitamente. :)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)