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

نام تاپیک: رسم شکل دایره بجای مربع فرم

  1. #1
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Iran
    پست
    1,035

    رسم شکل دایره بجای مربع فرم

    سلام

    چطور می توانم بجای شکل مربع یا مستطیل فرم شکل دایره داشته باشم و کلید روی فرم کار کند مثل برنامه کتاب اول

    با تشکر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    Earth
    پست
    200
    سوال شما چندان واضح نیست
    اما اگر منظورتان خود فرم است برای اینکه به شکل دایره نمایش داده شود
    (یا بیضی و چند ظلعی و ..) باید از RGN ها استفاده کنی
    مثلا برای دایره ای با قطر 180 :

    [code]
    در قسمت Public فرم :
    RGN:HRGN

    در رویداد ONCreate فرم :
    (RGN:=CreateellipticRGN(0,0,90,90

    (Setwindowrgn(handle,rgn,true



    در رویداد OnClose فرم :
    (DeleteObject(RGN




    در ضمن دستورات دیگر ساخت RGN هم هستند :

    Createroundrectrgn

    createrectrgn
    createpolygonrgn


    در ضمن BorderStyle فرم رو هم بذار bsnone

  3. #3
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Iran
    پست
    1,035
    سلام

    این RGN کدام کامپیونت است و کجا می توانم دایره رسم کنم آیا از Image استفاده کنم و تصویر دایره از کجا و چه جوری روی فرم بگذارم

    با تشکر

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Iran
    پست
    1,035
    سلام

    این دستورات توی Help دلفی نیست از کجا می توانم اطلاعات بیشتری پیدا کنم

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    Earth
    پست
    200
    این RGN یک کامپوننت نیست !
    RGN مخفف Region به معنای ناحیه است.
    دستورات بالا را اگر بنویسی جواب میده نیاز به اضافه کردن هیچ یونیتی
    به قسمت Uses هم نداره

    با دستور Setwindowrgn فرم شما برش می خورد .
    و میتوانید یک Image هم روی فرم داشته باشید (ویا هر شیئ دیگر ) وربطی به این تابع ندارد

    برای مشاهده Help هم برو تو منوی Help دلفی و روی Windows SDK کلیک کن



    برای اینکه به راحتی نتیجه برنامه رو ببینی خط زیر رو تو On create فرم کپی کن
    خودت متوجه میشی چجوری کار میکنه :


    SetWindowRgn(Handle,CreateEllipticRgn(0,0, 270,140),True);

  6. #6
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    381
    آیا می دانید کامپوننتهایی که تصویری به همراه چند Color می گیرند و فرم را به شکل آن تصویر یا ماسک در می آورند به چه شکل و چه دستوراتی می توان آنها را ساخت. :?:

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    Earth
    پست
    200
    اگر بخواهی یه همچین چیزی بنویسی دو راه داری :
    1 - باید بتوانی مختصات تمام نقاط دور تا دور محیط شکل مورد نظر رو بدست بیاری
    سپس اونهارو در یک ارایه بریزی وبعدش هم اون آرایه رو به عنوان پارامتر بدی به
    تابع CreatePolygonrgn
    تا rgn شما ساخته شود دقیقا مانند تصویر مورد نظر

    2- میتوانی تمام پیکسلهای موجود در تصویر را اسکن کنی هر نقطه ای که رنگ مخالف
    رنگ زمینه را داشت انرا با دستور زیر با یک RGN کلی And کنی
    سپس در اخر کار همان Rgn کلی همان چیزی است که دنبالش بودید.


    البته نوشتن یک برنامه برای بدست اوردن اطراف یک شکل چندان هم ساده نیست
    من که پوستم کنده شد تا یه همچین چیزی بنویسم البته بعضی از مواقع جواب نمیده.

    ولی روش دوم خیلی بهتره

    اینهم تابعی جهت اجتماع دو rgn :



    Combinergn(Rgn1,Rgn2,Rgn3,RGN_COPY);

    اجتماع Rgn1 و Rgn2 در Rgn3 قرار میگیرد.



    راستی اگر برای روش اول یه برنامه ای چیزی نوشتی یه خبری هم به ما بدی خوشحال میشیم. :wink: :wink:

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

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