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

نام تاپیک: کمپوننت کار با ClipBoard

  1. #1
    کاربر دائمی آواتار Mohammadi_F
    تاریخ عضویت
    دی 1385
    محل زندگی
    تهران
    پست
    115

    کمپوننت کار با ClipBoard

    سلام
    من به کمپوننتی نیاز دارم که با تغییر مقادیر داخل Clipboard برنامه رو مطلع کنه.

  2. #2
    کاربر دائمی آواتار Mahyaa
    تاریخ عضویت
    آذر 1384
    محل زندگی
    UAE
    سن
    45
    پست
    517
    پیاده سازیش کار مشکلی نیست .

    اول باید با استفاده از تابع SetClipboardViewer کلیپ بورد رو به برنامه وصل کنید .یعنی این تابع یک THandle برمیگردونه .

    اگر میخواهید محتویات ائن رو هم نمایش بدید ،
    در طول برنامه از Message های WM_DRAWCLIPBOARD و WM_CHANGECBCHAIN استفاده کنید . که اولی برای اینه که هروقت محتوای کلیپ بورد تغییر کرد ، صادر میشه . دومی هم برای اینه که اگر به از طریق زنجیره کلیپ بورد تغییری کرد و پنجره ای که ما میخواهیم در اون محتویات رو نمایش بدیم از زنجیره خارج شد ، اون رو اصلاح کنیم و ما اطلاعات رو از دست ندیم .

    در آخر برنامه هم لازمه که تابع ChangeClipboardChain رو صدا بزنید تا پنجره خودمون رو از زنجیره کلیپ بورد ، خارج کنیم .

    البته اگر قصد نمایش اون رو ندارید فقط تابعی که اول گفتم و مسج WM_DRAWCLIPBOARD کفایت میکنه .

    ClipBrd رو هم باید به لیست uses اضافه کنید .

    .

    موفق باشید

  3. #3
    کاربر دائمی آواتار Mohammadi_F
    تاریخ عضویت
    دی 1385
    محل زندگی
    تهران
    پست
    115
    از جوابتون ممنونم .
    ولی مطمئن نیستم بتونم پیادش کنم ، اگه موفق نشدم باز باهاتون تماس می گیرم.

  4. #4
    کاربر دائمی آواتار Mahyaa
    تاریخ عضویت
    آذر 1384
    محل زندگی
    UAE
    سن
    45
    پست
    517
    میخواهید نمایش هم بدید یا فقط اطلاع از تغییر براتون مهمه ؟

  5. #5
    کاربر دائمی آواتار Mohammadi_F
    تاریخ عضویت
    دی 1385
    محل زندگی
    تهران
    پست
    115
    نمایش اون هم برم مهمه یعنی می خوام از ش استفاده کنم .
    با توجه به راهنماییهای Mahyaa من دستوراتی به این شکل نوشتم ولی جواب نمی ده.
    private
    { Private declarations }
    ClipBoardHandle:THandle;
    Procedure WM_DRAWCLIPBOARD(var Msg: TMessage);message WM_DRAWCLIPBOARD;
    _____________
    Procedure TFormMain.WM_DRAWCLIPBOARD(var Msg: TMessage);
    begin
    ShowMessage('Clipboard.AsTex'););
    end;

  6. #6
    کاربر دائمی آواتار Mahyaa
    تاریخ عضویت
    آذر 1384
    محل زندگی
    UAE
    سن
    45
    پست
    517
    در اول اجرای برنامه یا هنگام Create شدن فرم ، باید تابع SetClipboardViewer رو صدا بزنید تا هندل فرمی رو که میخواهید محتوای کلیپ بورد رو در اون نمایش بدید ، وارد زنجیره کلیپ بورد کنید. اینطوری :

      ClpChain : THandel; //--> Delclare this as Global var
    .
    .
    .
    ClpChain := SetClipboardViewer(Handle); //-->Hnadle is the Handle of the form

    و در آخر کار هم (مثلا در Destroy فرم) این کار رو میکنیم تا پنجره رو از زنجیره خارج کنیم :

    ChangeClipboardChain(Handle, ClpChain);

    حالا اون Procedure که خودتون نوشتید ، باید کار بکنه .

    فقط برای نمایش اون باید به دوتا مساله دقت کنید .
    1- هنگام نمایش باید مطمئن بشید که محتوای کلیپ بورد Text هستش که بخواهید به صورت متنی نمایشش بدید . این کمک میکنه :

      if Clipboard.HasFormat(cf_text) then
    begin
    ShowMessage('Clipboard.AsTex');
    end;


    2- از مسج WM_CHANGECBCHAIN باید استفاده کنید و یک Procedure بنویسید که در صورتی که تغییری در زنجیره کلیپ بورد بوجود اومد و فرم نمایش دهنده شما از زنجیر خارج شد ، خودش اصلاحش کنه .


    .

  7. #7
    کاربر دائمی آواتار Mohammadi_F
    تاریخ عضویت
    دی 1385
    محل زندگی
    تهران
    پست
    115
    با تشکر از توجهتون ولی من تمام کارهایی رو که گفته بودید انجام دادم ولی جواب نداد یعنی موقع اجرای برنامه وقتی محتویات کلیپ برد رو تغییر میدم برنامه متوجه نمی شده و هیچ پیامی رو نشون نمی ده البته تو اینترنت سرچ کردم و مثل اینکه کمپوننت RubIcon یک چنین ابزاری رو برای کنترل کلیپ برد داره ولی نتونستم خود کمپوننت رو پیدا کنم.

  8. #8
    کاربر دائمی آواتار Mahyaa
    تاریخ عضویت
    آذر 1384
    محل زندگی
    UAE
    سن
    45
    پست
    517
    من نمونه اش رو براتون میگذارم
    یک Clipboard viewer خیلی ساده که فقط به محض تغییر در محتویات کلیپ بورد اون رو در یک Memo نشون میده :
    فایل های ضمیمه فایل های ضمیمه

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

  1. ClipBoard
    نوشته شده توسط SSP_Software_team در بخش C#‎‎
    پاسخ: 2
    آخرین پست: یک شنبه 07 بهمن 1386, 21:52 عصر
  2. نمایش تصویر موجود در ClipBoard
    نوشته شده توسط Hadizadeh در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: یک شنبه 21 مرداد 1386, 19:36 عصر
  3. clipboard
    نوشته شده توسط benyamin_pc در بخش C#‎‎
    پاسخ: 3
    آخرین پست: چهارشنبه 13 دی 1385, 09:35 صبح
  4. کپی کردن یک متن های لایت شده در clipboard
    نوشته شده توسط حبیب در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: چهارشنبه 13 اردیبهشت 1385, 09:52 صبح
  5. Clipboard
    نوشته شده توسط فریدی در بخش برنامه نویسی در Delphi
    پاسخ: 8
    آخرین پست: چهارشنبه 15 تیر 1384, 23:02 عصر

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

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