Selamlar
Yapmak istediğim kısaca windows gezginindeki bir dosyayı sürükle bırak ile programıma almak (dosya yolunu tespit etmek).
Konu hakkında internette ve forumda örnekler var.Fakat bu kodlar adım adım anlatılmasına rağmen nedense çalışmıyor.
Tahminin kodların eski olması ve anlatılanların windows 10 ile uyumlu olmaması.Örneklerin Windows 7 ile denendiği de yazıyor bir kaç yerde.
Windows 10 uyumlu örnek kod ya da component bilgisi olan var ise paylaşır ise sevinirim.
İşin detayında outlook'dan mail dosyasını sürükle bırak ile de almak istiyorum.
Bu ayrı bir yöntem ise bu da ayrıca öğrenmek istediğim bir nokta.
İyi çalışmalar
Windows dosya drag drop ile alma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Windows dosya drag drop ile alma
T.Tolga Özbaltalar - http://www.veridizayn.com
Re: Windows dosya drag drop ile alma
Kod: Tümünü seç
procedure Tfrmexcelgrup.AppMessage(var Msg: Tmsg; var Handled: Boolean);
const
BufferLength : DWORD = 511;
var
DroppedFilename : string;
FileIndex : DWORD;
NumDroppedFiles : DWORD;
pDroppedFilename : array [0..511] of Char;
DroppedFileLength : DWORD;
excel:variant;
i:integer;
begin
if Msg.message = WM_DROPFILES then
begin
FileIndex := $FFFFFFFF;
NumDroppedFiles := DragQueryFile(Msg.WParam, FileIndex,
pDroppedFilename, BufferLength);
for FileIndex := 0 to (NumDroppedFiles - 1) do
begin
DroppedFileLength := DragQueryFile(Msg.WParam, FileIndex,
pDroppedFilename,
BufferLength);
DroppedFilename := StrPas(pDroppedFilename);
exceldosya:=pDroppedFilename; //DOSYA ADINI VE YOLUNU BURADAN ALIYORSUN. BURADAN SONRASINI BEN EXCEL İÇİN KULLANMIŞTIM.
Excel:=CreateOleObject('excel.Application');
Excel.Workbooks.Open(exceldosya);
ComboBox1.Clear;
Label2.Caption:='Excel Dosyası: '+exceldosya;
for i:=1 to Excel.Workbooks[1].Sheets.Count do
begin
ComboBox1.Items.Add(Excel.Workbooks[1].Sheets[i].Name);
end;
Excel.DisplayAlerts := False;
Excel.Quit;
Excel := Unassigned;
cxButton2.Enabled:=false;
end;
DragFinish(Msg.WParam); //BUNU MUTLAKA EKLE
Handled := true; //BUNU MUTLAKA EKLE
end;
end;
Formunun DRAGMODE özelliğini dmManuel yap
Yine formunun DRAKKIND özelliğini dkDrag yap
Kolay gelsin