Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];




Вниз

Drag n Drop в элементы TEdit 


Grim Rider   (2002-02-01 11:08) [0]

Подскажите плз, как организовывается drag n"drop в элементы TEdit? Т.е. пользователь хватает мышкой файл и тянет его в TEdit, а в нем появляется имя файла (путь к файлу и т.д.)

В продуктах мелкомягких это просто, в Delphi я что-то не пойму как....

Спасибо.



DenK_vrtz   (2002-02-01 11:36) [1]

1.Свойство DragMode в dmAutomatic
2.У компонента, в который перетаскиваются данные должено быть описано событие OnDragOvner, типа Accept:=Source is T...,
и событие OnGragDrop - возникает во время перетаскиваня при отпускании левой кнопки мыши над элементом готовым к приему, т.е.
в твоем случее Edit1.text:=...

Попробуй!!!



yaJohn   (2002-02-01 13:04) [2]

2 DenK_vrtz
Ne vse tak prosto.... Eto dlia taskania vnutri svoego prilojenia. A chelovek hochet poluchit" fail kotoriy user iz Explorera vkidivaet.
Luchsee (IMHO) chto videl -
TagDropFileTarget, TagDropTextTarget
eto iz Alex Ghost Copyright (c) 1999,2000 Alexey Popov

Esli nado - mogu namilit".



DenK_vrtz   (2002-02-01 13:16) [3]

2 yaJohn. Я не понял проблемы. Извини!
Кинь пример на мыло, pl. Спасибо!!!



Набережных С.   (2002-02-01 21:40) [4]

DragAcceptFiles регистрирует окно как получателя WM_DROPFILES.
WM_DROPFILES оповещает, что что-то сброшено
DragQueryFile - выборка имен из полученного списка
DragFinish - оповещает систему, что операция закончена и можно освободить память.



Grim Rider   (2002-02-09 06:00) [5]

2 Набережных С.:
а чуть поподробнее не расскажете как это все использовать?



Набережных С.   (2002-02-09 12:16) [6]


uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
StdCtrls, ShellAPI;

type
TForm1 = class(TForm)
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
procedure AppMsg(var Msg:TMsg; var Handled: boolean);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

{ TForm7 }

procedure TForm1.AppMsg(var Msg: TMsg; var Handled: boolean);
var
s:string;
begin
if (Msg.message = WM_DROPFILES)and(Msg.hwnd = Edit1.Handle) then
begin
SetLength(s,MAX_PATH);
Handled:=true;
DragQueryFile(Msg.wParam,0,PChar(s),MAX_PATH);
Edit1.Text:=PChar(s);
DragFinish(Msg.wParam);
Handled:=true;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Edit1.Handle,true);
Application.OnMessage:=AppMsg;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
DragAcceptFiles(Edit1.Handle,false);
end;

end.



Grim Rider   (2002-02-09 12:19) [7]

Спасибо




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.048 c
3-79300           Dmitry Alferev        2002-01-27 00:05  2002.02.25  
Добавление записей в IB6


3-79263           serjant               2002-01-30 09:32  2002.02.25  
не удаляются записи из базы


1-79312           dimich                2002-02-07 14:22  2002.02.25  
И еще раз про UnregisterHotKey


3-79256           ruslan_as             2002-01-28 10:35  2002.02.25  
InterBase не работает пока не перезапустиш программу


3-79294           Максимка              2002-01-28 21:35  2002.02.25  
Как лучше всего автонумеровать добавляемые записи?