نمایش نتایج 1 تا 4 از 4

نام تاپیک: روشی ساده برای Drag Drop کردن

  1. #1
    کاربر دائمی آواتار idehrayan
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    نیشابور
    پست
    103

    روشی ساده برای Drag Drop کردن

    سلام
    یه روش ساده برای درگ کردن اشیا برای دوستانی که دنبال این قضیه هستن:
    ابتدا عنصری که قراره درگ بشه خصوصیت dragmode=dmAutomatic بعد هم اگه اشیا روی فرم قرار دارن کدهای زیر رو در خصوصیت
    DragDrop وDragover
    فرم قرار میدم
    توجه: اگه اشیا روی مثلا تصویر قرار دارن باید کدها زیر رو توی
    خصوصیت
    DragDrop وDragover
    تصویر قرار بدیم

    procedure Tform1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);begin
    tform(Source).Left:=x;
    tform(Source).Top:=y;
    end;


    procedure Tform1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
    State: TDragState; var Accept: Boolean);
    begin
    Accept:=true;
    end;


    یه روش اسونتر و با عملکرد بهتر کد زیر هستش که البته بر روی همه عناصر عمل نمیکنه


    procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
    begin
    ReleaseCapture;
    SendMessage(Button1.Handle , $A1, 2, 0);
    end;

    اینم یک روشی که دوست عزیزم دلفی پیشنهاد داده


    procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    var
    Dummy:TPanel;
    begin
    with TLabel(Sender) do begin
    Dummy:=TPanel.Create(Owner);
    Dummy.Parent:=Parent;
    Dummy.BevelOuter:=bvNone;
    Dummy.Alignment:=Alignment;
    Dummy.Caption:=Caption;
    Dummy.SetBounds(Left, Top, Width, Height);
    Parent.Update;
    end;
    ReleaseCapture;
    Dummy.Perform(WM_SysCommand,$F012,0);
    with Dummy do Label1.SetBounds(Left, Top, Width, Height);
    Dummy.Free;
    end;


    آخرین ویرایش به وسیله idehrayan : چهارشنبه 01 بهمن 1393 در 19:20 عصر

  2. #2

    نقل قول: روشی ساده برای Drag Drop کردن

    علت اینکه روی همه عناصر کار نمیکنه اینه که ، یکسری از اشیایی که ما در حال استفاده هستیم از TWinControl مشتق شده اند که دارای هندل هستند،مانند دکمه. اما یکسری هم از TControl و یا TComponent مشتق شدند که هندلی ندارند(البته نه اینکه نشه باهاشون کارکرد. منظور اینه که به راحتی بدست اوردن هندل گروه اول نیستند).البته برای حل این مشکل از یک روش دیگه استفاده کردم ، که همه گروهها رو در بر میگیره.در درجه اول باید نوع روش رو تغییر داد.


  3. #3

    Lightbulb نقل قول: روشی ساده برای Drag Drop کردن

    اينم روي خيلي از كنترلها جواب ميده :


    procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
    begin
    ReleaseCapture;
    BitBtn1.Perform(WM_SysCommand,$F012,0);
    end;

  4. #4
    کاربر دائمی آواتار idehrayan
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    نیشابور
    پست
    103

    نقل قول: روشی ساده برای Drag Drop کردن

    نقل قول نوشته شده توسط دلفــي مشاهده تاپیک
    اينم روي خيلي از كنترلها جواب ميده :


    procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
    begin
    ReleaseCapture;
    BitBtn1.Perform(WM_SysCommand,$F012,0);
    end;
    متاسفانه این روش روی لیبل جواب نمیده به نظر میاد روشی قبلی شما کد زیر (البته با یه کچولو اصلاح) از همه روش ها بهتر باشه

    with TLabel(Sender) do
    begin
    Dummy:=TPanel.Create(Owner);
    Dummy.Parent:=Parent;
    Dummy.BevelOuter:=bvNone;
    Dummy.Alignment:=Alignment;
    Dummy.font:=font;
    Dummy.Caption:=Caption;
    Dummy.SetBounds(Left, Top, Width, Height);
    Parent.Update;
    end;
    ReleaseCapture;
    Dummy.Perform(WM_SysCommand,$F012,0);
    with Dummy do
    Lbl23.SetBounds(Left, Top, Width, Height);
    Dummy.Free;


    آخرین ویرایش به وسیله idehrayan : چهارشنبه 01 بهمن 1393 در 19:55 عصر

تاپیک های مشابه

  1. drag drop کردن آیتم های TreeView
    نوشته شده توسط hamidkh در بخش WPF
    پاسخ: 3
    آخرین پست: چهارشنبه 01 آبان 1392, 10:51 صبح
  2. مبتدی: ساخت یه برنامه ساده برای آن کد کردن یک کد
    نوشته شده توسط mahdy_system در بخش C#‎‎
    پاسخ: 0
    آخرین پست: سه شنبه 22 اسفند 1391, 15:53 عصر
  3. مبتدی: معرفی نرم افزار یا روشی ساده برای قفل گذاری رایگان
    نوشته شده توسط sara_aryanfar در بخش C#‎‎
    پاسخ: 2
    آخرین پست: سه شنبه 30 فروردین 1390, 22:37 عصر
  4. drag and drop کردن کامپوننت ها در زمان که برنامه اجرا شده ؟؟
    نوشته شده توسط mahdi939 در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: شنبه 31 اردیبهشت 1384, 23:52 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •