drag drop

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

drag drop

Mesaj gönderen tayc »

merhabalar,

sürükle bırak hakkında bir şey sormak istiyorum, aşağıdaki kodlar winxp çalışırken win7 çalışmıyor, iki windowsda nasıl çalıştırabilirim...

unit Unit1;

interface

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

type
TForm1 = class(TForm)
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
protected
procedure WMDropFiles(var Msg: TMessage); message WM_DROPFILES;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

uses ShellAPI;

procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, True);
end;

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

procedure TForm1.WMDropFiles(var Msg: TMessage);
var
hDrop: THandle;
FileCount: Integer;
NameLen: Integer;
I: Integer;
S: string;

begin
hDrop:= Msg.wParam;
FileCount:= DragQueryFile (hDrop , $FFFFFFFF, nil, 0);

for I:= 0 to FileCount - 1 do begin
NameLen:= DragQueryFile(hDrop, I, nil, 0) + 1;
SetLength(S, NameLen);
DragQueryFile(hDrop, I, Pointer(S), NameLen);

Listbox1.Items.Add (S);
end;

DragFinish(hDrop);
end;

end.
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: drag drop

Mesaj gönderen hi_selamlar »

Herkes cahildir, bazi konularda.
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Re: drag drop

Mesaj gönderen tayc »

tekrardan merhabalar...

sayfadaki kodları denedim ama onlarda olmuyor. ingilizcemde zayıf olduğundan tam olarak sorunun ne olduğunu anlayamadım maalesef.
:N(
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: drag drop

Mesaj gönderen csunguray »

Olmuyor derken?
1. Dosyaları sürükleyip bıraktıktan sonra kodlar hiç çalışmıyor?
2. Kodlar çalışıyor ama dosya sayısı sıfır geliyor?
3. Dosya sayısı doğru geliyor ama dosya adları gelmiyor?
4. Dosya adları geliyor ama dosyaları alamıyorm?
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Re: drag drop

Mesaj gönderen tayc »

merhabalar..
aslında yapmak istediğim, form üzerine sürükledim '.bmp,jpg' vs. resim uzantılarını imageye yüklemek. bu konuda sizden yardım istiyordum.

iyi çalışmalar........
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: drag drop

Mesaj gönderen ertank »

Merhaba,

Karşılaştığınız sorunu detaylı olarak belirtebilir misiniz?

@csunguray sizden bazı sorulara cevap istemiş ancak verdiğiniz cevap içinde bu bilgiler yok. Bu soruların cevapları olmadan yardımcı olmak çok kolay değil.

Bu sorulara ek olarak aşağıdaki soruları da ben sormuş olayım:
- Kullandığınız Delphi sürümünü nedir? Her ne kadar gönderilen kod örneğiniz Delphi 7 gibi gözüküyor olsa da kod örneğinin kendi sisteminizden mi? Yoksa başka bir yerden kopyala/yapıştır şeklinde mi olduğunu bilmek mümkün değil.
- Karşınıza gelen bir hata mesajı var mı? Varsa nedir?
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Re: drag drop

Mesaj gönderen tayc »

merhabalar,

delphi 7 kullanıyorum, kodları başka siteden bulup üzerinde birkaç gün uğraştım,olmadı. forma taşıdığım zaman dosyalar listeye ekleniyor, ama '.bmp,.jpg' vs. gibi uzantıları imagede görüntülemek istiyorum ama olmuyor ve sadece listeye ekleme kısmı winxp oluyor win7 olmuyor,hata mesajıda vermiyor.
bu konuda sizlerden yardım rica ediyordum.....

iyi çalışmalar
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: drag drop

Mesaj gönderen csunguray »

Bu sayfadaki örneği deneyebilirsiniz.
How to Drag and Drop Image Files to a Timage Delphi control (from Windows Explorer)

Kod: Tümünü seç

unit Unit1;

interface

uses
    Windows, Messages, SysUtils, Variants, Classes,
    Graphics, Controls, Forms, Dialogs, ExtCtrls;

type
    TForm1 = class(TForm)
      Panel1: TPanel;
      Image1: TImage;
      procedure FormCreate(Sender: TObject) ;
    private
      originalPanelWindowProc : TWndMethod;
      procedure PanelWindowProc (var Msg : TMessage) ;
      procedure PanelImageDrop (var Msg : TWMDROPFILES) ;
    public
      { Public declarations }
    end;

var
    Form1: TForm1;

implementation
{$R *.dfm}

uses ShellApi;

procedure TForm1.FormCreate(Sender: TObject) ;
begin
    originalPanelWindowProc := Panel1.WindowProc;
    Panel1.WindowProc := PanelWindowProc;

    DragAcceptFiles(Panel1.Handle,true) ;
end; (*FormCreate*)

procedure TForm1.PanelWindowProc(var Msg: TMessage) ;
begin
    if Msg.Msg = WM_DROPFILES then
      PanelImageDrop(TWMDROPFILES(Msg))
    else
      originalPanelWindowProc(Msg) ;
end; (*PanelWindowProc*)

procedure TForm1.PanelImageDrop(var Msg: TWMDROPFILES) ;
var
    numFiles : longInt;
    buffer : array[0..MAX_PATH] of char;
begin
    numFiles := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0) ;
    if numFiles  1 then
    begin
      ShowMessage('Bir kerede sadece 1 dosya sürükleyebilirsiniz!') ;
    end else
    begin
      DragQueryFile(Msg.Drop, 0, @buffer, sizeof(buffer)) ;
      try
        Image1.Picture.LoadFromFile(buffer) ;
      except
        on EInvalidGraphic do ShowMessage('Desteklenmeyen resim dosyası veya sürüklenen dosya bir resim dosyası değil!') ;
      end;
    end;
end; (*PanelImageDrop*)

end.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Re: drag drop

Mesaj gönderen tayc »

merhabalar,

kodlar için teşekkür ederim. kodları daha önceden denemiştim, maalesef sadece .bmp uzantılı dosyaları kabul ediyor .jpeg,.png,.gif gibi uzantıları kabul etmiyor.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: drag drop

Mesaj gönderen csunguray »

Kabul etmiyor derken:
1. Sürükleyip bırakıyorum ama yüklemiyor.
2. Bir hata mesajı veriyor.
3. uses kısmına jpeg eklediniz mi?
4. Bilgisayardan duman çıkıyor.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Re: drag drop

Mesaj gönderen tayc »

merhabalar...

1.sadece .bmp formatını yüklüyor
2.bilgi mesajı olarak, '.bmp' dışındaki formatları desteklemiyor mesajı veriyor.
3.ekledim.

iyi çalışmalar...
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: drag drop

Mesaj gönderen csunguray »

Verilen mesaj kodlarda yer alan "'Desteklenmeyen resim dosyası veya sürüklenen dosya bir resim dosyası değil!'" mesajı mı yoksa sizin yazdığınız " '.bmp' dışındaki formatları desteklemiyor" mesajı mı?

Uses içerisine Jpeg unit'ini eklerseniz Jepg'i de kabul etmeye başlar ama GIF ve PNG desteği nasıl olur bilmiyorum.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Re: drag drop

Mesaj gönderen tayc »

winxp'de çalışıyor, tek sorun şu anda win7 çalışmıyor olması, sürükleme işlemini yapıyor,ama hiç bir dosyayı imageye yüklemiyor, hiç bir hata veya bilgi mesajıda vermiyor.

iyi çalışmalar......
muratarslan2008
Üye
Mesajlar: 1
Kayıt: 25 Nis 2022 10:32

Re: drag drop

Mesaj gönderen muratarslan2008 »

Listbox1.Items.Add (S);

yerine

Listbox1.Items.LoadFromFile (S);

şeklinde olmalıdır.
Cevapla