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

نام تاپیک: Components & DFM

  1. #1
    کاربر دائمی آواتار MH2538
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    No Man Land
    پست
    537

    Components & DFM

    سلام
    باز هم فرض کنید در حال طراحی یک کامپننت هستید . این بار تصمیم می گیرید اشیا (دکمه ها ، رادیو باتن ها و ...) را در داخل یک DFM قرار دهید و سپس از طریق این فرم (dfm.*) اشیاء مورد نظر خود را کنترل نمائید . راه حل پیشنهادی شما چیست ؟
    یادآوری . قرار نیست با این کامپننت هیچ فرمی نمایش داده شود.

  2. #2
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    381
    با سلام
    شما می توانید یک فرم ایجاد کنید و سپس کلیه عناصر مورد نیاز خود را در آن قرار دهید مانند یک تصویر به نام Img1 و نام فرم ResFrm سپس یک Pakage ساخته و یونییت کامپوننت و یونیت و فرم را هم در آن قرار دهید و در Constructor کامپوننت خود یا جای مورد نظر دیگر:

    Constructor Create(...);
    begin
    ...
    ResFrm:=TResFrm.creat(nil(;
    FImage:=TImage.Creat(Self);
    FImage.Picture.Assign(ResFrm.Img1.Picture) ;
    ...
    end;


    موفق باشی

    end;

  3. #3
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    من صورت سوال را متوجه نمیشوم.

  4. #4
    کاربر دائمی آواتار MH2538
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    No Man Land
    پست
    537
    سلام
    خدمت مدیر عزیز سایت عرض شود که :
    فرض کنید بجای اینکه تمامی کنترل ها (دکمه ها و لیست باکس ها و ...) را در خود کامپننت مقدار دهی کنید بخواهید آنها را از درون یک DFM کنترل کنید .
    یکی از روش ها که تقریبا کامل هم هست روش Alish است که در بالا توضیح داد.
    با تشکر

  5. #5
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    منظورتون مقداردهی از طریق Object Inspector دلفی است؟

  6. #6
    کاربر دائمی آواتار MH2538
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    No Man Land
    پست
    537
    نه -
    ظاهرا این سئوال من و ضعف من در بیان صحیح آنها داره مشکل ساز می شه .
    به همین دلیل سعی می کنم فردا در اسرع وقت یه sample در همین بخش بذارم . شاید مشکل حل شه
    باز هم معذرت می خوام
    ---------------------------------------------------------------
    اما برای نمونه بیشتر :
    شما معمولا event های object ها رو در زمان کامپننت نویسی از درون خود کامپننت کنترل میکنید . مثلا
    یه object به نام Button1 داریم و تابع کلیک آن رو هم بصورت (...)Button1Click می نویسیم .اما تا حالا (اگه یه کم کنجکاوی کرده باشید ) حتما دیده اید که در DFM مربوط به فرم و این شی این دستورات را خواهید دید :

    object Form1: TForm1
    Left = 192
    Top = 114
    Width = 696
    Height = 480
    Caption = 'Form1'
    Color = clBtnFace
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    OldCreateOrder = False
    PixelsPerInch = 96
    TextHeight = 13
    object Button1: TButton
    Left = 112
    Top = 32
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 0
    OnClick = Button1Click
    end
    end

    وقتی Application می نویسید کنترل و هماهنگی object ها با فرم به عهده برنامه است مثلا در برنامه
    ;( procedure Button1Click(Sender: TObject تابعی برای کنترل Event کلیک است که با DFM بالا کاملا در ارتباط است.
    اما در زمان کامپننت نویسی شرایط کمی فرق خواهد کرد و کمی از بار کنترل این کد به عهده برنامه نویس خواهد بود .
    امیدوارم با این توضیح کمی موضوع رو روشن تر کرده باشم.
    موفق باشید.<span dir=ltr></span><span dir=ltr></span>

  7. #7
    کاربر دائمی آواتار SReza1
    تاریخ عضویت
    تیر 1382
    محل زندگی
    کنار تعدادی تراریوم و کاکتوس!
    پست
    702
    یک کلک جالب برای اینکه شما چیزایی رو از Object ها بدونید اینه که شما مثلا یک دکمه رو انتخاب کنید. روی اون Ctrl +C بزنید . بعد بروید در Source دلفی. Ctrl + V بزنید. ببیندی چی میشه!

  8. #8
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    ببخشید، اما:

    1- من باز هم نمیفهمم صورت مسئله چیه.

    2- کاربرد چنین چیزی چیه؟

  9. #9
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    381
    با سلام
    begin
    بابا خیلی زرنگی به فکر من نرسیده بود بیا درست مانند توضیح بال من است بخوان من برای Font,Onclick با یک ShowMessage در فرم ResFrm امتحان کردم شد مطمئنم برای بقیه هم میشه

    ResFrm&#58;=TResFrm.Create&#40;nil&#41;;
    bb&#58;=TButton.create&#40;Self&#41;;
    bb.Parent&#58;=self;
    bb.Caption&#58;='dfgdfgd';
    bb.Font&#58;=ResFrm.Button1.Font;
    bb.visible&#58;=True;
    bb.BringToFront;
    bb.OnClick&#58;= ResFrm.Button1Click;


    موفق باشی
    end.

  10. #10
    کاربر دائمی آواتار MH2538
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    No Man Land
    پست
    537
    سلام
    جواب همینه که alish نوشته
    اما این که به چه دردی می خوره .
    1-در حالاتی که کنترل های کامپننت شما استاتیک است یا حداقل همیشه از محل ثابتی شروع می شن این روش استفاده داره
    2- تعریف رویه های مربوط به event های کنترل ها در داخل آن می نویسن و از داخل بدنه کامپننت فقط اونها رو اداره می کنن . به عبارتی از شلوغ شدن کد هم جلوگیری می کنه
    سعی می کنم به sample کامل و عملی که کار هم می کنه در این قسمت بذارم . فقط یه کم وقت می خوام که یه نمونه بدرد بخور بنویسم
    موفق باشین.

  11. #11
    در حالاتی که کنترل های کامپننت شما استاتیک است یا حداقل همیشه از محل ثابتی شروع می شن این روش استفاده داره
    اینائی که نوشتید معادل مقدار دهی از طریق Inspector است ، تولید زمان اجرای یک شیء و مقدار دهی ویژگیهای اون هم ربطی به dfm نداره .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  12. #12

    راه من

    یک برنامه کوچولوی فسقلی نوشتم که فکر کنم منظور سوال را برآورده کند...
    و فعلا .......

  13. #13
    آقای عقیلی ؟؟؟؟؟؟؟؟؟؟؟؟؟؟

  14. #14
    برنامه را یادم نرفته بود که آپلود کنم و اتفاقا شش نفر هم آنرا دانلود کرده بودند ولی
    مرشد عزیز از اینکه آن برنامه را در سایت گذاشته بودم دلگیر شده بود که خب
    رسم مرید و مرشدی حکم میکرد که آن برنامه را حذف کنم .....

    :oops:

  15. #15
    کاربر دائمی آواتار MH2538
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    No Man Land
    پست
    537
    سلام
    این برنامه هیچ ربطی به سئوال نداشت . این برنامه چه ربطی به component داشت ؟

  16. #16
    این بار تصمیم می گیرید اشیا (دکمه ها ، رادیو باتن ها و ...) را در داخل یک DFM قرار دهید و سپس از طریق این فرم (dfm.*) اشیاء مورد نظر خود را کنترل نمائید . راه حل پیشنهادی شما چیست ؟
    با استفاده از NoDefault نمیشه این کار رو کرد؟ :roll:


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

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

  1. درخواست components
    نوشته شده توسط j.farazani در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: شنبه 19 خرداد 1386, 20:35 عصر
  2. مشکل در Tnt components(فوری)
    نوشته شده توسط روح الله دلفی در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: چهارشنبه 10 فروردین 1384, 05:54 صبح

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

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