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

نام تاپیک: مشکل در استفاده از Fram

  1. #1

    Arrow مشکل در استفاده از Fram

    با سلام
    یک شی sFrameBar مجموعه آلفا کنترل روی فرم گزاشتم.
    سپس یک Frame به برنامه add کردم .
    درون این Frame یک باتن قرار دادم.
    چطوری باید کپشن این دکمه که درون این Frame هست رو مثلا از Form Show مقدار دهی کرد.؟
    ممنون.کارم گیر کرده.!!


  2. #2

    نقل قول: مشکل در استفاده از Fram

    از طریق همون شی frame ایی که در فرم ایجاد کردید؛ فرضا:

    Form1.MyFrame.MyButton.Caption := 'Test';


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

  3. #3

    Arrow نقل قول: مشکل در استفاده از Fram

    ممنون از استاد بزرگوارم.
    نمیدونم چرا اصلا Frame رو نمیشناسه با اینکه یونیتش رو هم use کردم.
    اگه محبت کنید نمونه زیر رو یه نگاه بکنید.
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, sScrollBox, sFrameBar, sSkinProvider, sSkinManager, StdCtrls;

    type
    TForm1 = class(TForm)
    sFrameBar1: TsFrameBar;
    sSkinManager1: TsSkinManager;
    sSkinProvider1: TsSkinProvider;
    Button1: TButton;
    procedure sFrameBar1Items0CreateFrame(Sender: TObject;
    var Frame: TCustomFrame);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    uses Unit2;

    {$R *.dfm}

    procedure TForm1.sFrameBar1Items0CreateFrame(Sender: TObject;
    var Frame: TCustomFrame);
    begin
    Frame := TFrame2.Create(nil);
    end;

    end.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Mask : یک شنبه 04 دی 1390 در 19:19 عصر


  4. #4

    نقل قول: مشکل در استفاده از Fram

    نمیدونم چرا اصلا Frame رو نمیشناسه با اینکه یونیتش رو هم use کردم.
    من با اون کامپوننت Alpha کار نکردم و نمیدونم دقیقا قراره با این فریمی که ساختید چیکار کنه، اما کدی که اینجا گذاشتید، از نظر Syntax درست هست؛ و قاعدتا باید یک نمونه از کلاس TFrame2 که در Unit2 تعریف شده را بسازه، و به پارامتر Frame در متد sFrameBar1Items0CreateFrame اختصاص بده. حالا نمیدونم منظورتون از نشناختن Frame دقیقا چی هست؟


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

  5. #5

    نقل قول: مشکل در استفاده از Fram

    ممنونم از استاد عزیز
    منظورتون از نشناختن Frame دقیقا چی هست
    ببینید : با دستوری که نوشتم
    Frame := TFrame2.Create(nil);

    دقیقا Tframe2 در اولین ایندکس Framebar ساخته میشه.
    اما مشکل اصلی من اینه که وقتی روی فرم اصلی برنامم یه دکمه میزارم و میخام دکمه ای که روی Frame هست رو تغییر کپشن بدم.اصلا دلفی میگه من توی فرم اصلی چیزی به نام Frame نمیشناسم .چه برسه که بخام اجازه بدم که دکمه رو تغییر کپشن بدید.
    چرا اینطوریه؟
    از روی فرم اصلی به ایونتها و خصوصیات کنترلهای موجود روی Frame دسترسی ندارم.
    ممنون از اینکه جواب میدید.
    راستی پس خود شما برای زیبا سازی برنامتون مگه از چی استفاده میکنید؟


  6. #6
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: مشکل در استفاده از Fram

    سلام
    اول اینکه دلفی دم دست ندارم الان ولی به نظر من و احتمالا دلفی بعد از ساختن فریم باید Frame.Parent:=Form1; رو بنویسی یعنی انکه حتمن پرنت می خواد.
    دوم اینکه فریمت تو تابع sFrameBar1Items0CreateFrame تعریف شده و دلفی خارج از اون معلومه که نمیشناستش باید ببینی اسمش قبل از اینکه به تابع پاس بشه چی بوده

  7. #7

    نقل قول: مشکل در استفاده از Fram

    و تابع sFrameBar1Items0CreateFrame تعریف شده و دلفی خارج از اون معلومه که نمیشناستش
    ممنون از شما.
    چون ما یونیت مربوط به فریم رو یوز میکنیم در یونیت فرم اصلی . پس باید این فریم و کنترلهاش قابل دسترس باشند.
    چرا نیستند رو نمیدونم.دارم دنباله راهه حل میگردم.
    در ضمن حتی اگه پرنت فریم رو بزاریم رو Form1 بازم مشکل باقیست.چون ما در حالت دیزاین میخواهیم به مقادیر فریم دسترسی پیدا کنیم.اما نمیشه.
    آخرین ویرایش به وسیله Mask : دوشنبه 05 دی 1390 در 14:03 عصر


  8. #8

    نقل قول: مشکل در استفاده از Fram

    ممنوا زدو دوست عزیز
    مشکلم حل شد.
    گفتم بزارم اینجا دوستان استفاده کنند.
    تنها جایی که ما دسترسی به مقادیر فرمها داریم همون sFrameBar1Items0CreateFrame هست . که به راحتی با یه هارد کست میشه این تغییر رو ایجاد کرد.
    procedure TForm1.sFrameBar1Items0CreateFrame(Sender: TObject;
    var Frame: TCustomFrame);
    begin
    Frame := TFrame2.Create(nil);
    TFrame2(Frame).Button1.Caption:='New Caption';
    end;


  9. #9
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: مشکل در استفاده از Fram

    این هم یه نمونه
    توجه کن که دکمه اول پرنت نداره و کار نمی کنه

    دوم وقتی فورمت از کاستوم فریم مشتق شده نه TFrame2
    فایل های ضمیمه فایل های ضمیمه

  10. #10

    نقل قول: مشکل در استفاده از Fram

    نقل قول نوشته شده توسط gbg مشاهده تاپیک
    این هم یه نمونه
    توجه کن که دکمه اول پرنت نداره و کار نمی کنه

    دوم وقتی فورمت از کاستوم فریم مشتق شده نه TFrame2
    ممنون از وقتی که گزاشتید.
    با روش شما با در نظر نگرفتن اهداف دیگه نمونه برنامه ،میشه نسبتا به جواب رسید.
    اما بعد از استفاده نمونه کد شما در برنامه ، برنامه روال اصلیش از بین میره و فریم بر روی فرم اصلی ساخته میشه. و کلا SFramebar از بین میره.
    اما در کل ازتون ممنونم.


  11. #11

    نقل قول: مشکل در استفاده از Fram

    وای
    چقدر گیر داره این فریم.
    مشکل اولیه پا برجاست.
    با اینکه حین ساخت فریم در فریم بار میشه مقادیر کنترلها رو تغییر داد اما مشکل اصلی میمونه و اونم اینه که الان با یه تایمر میخام مقدار یه لیبل روی فریم رو یکی یکی اضافه کنم.
    بازم نمیشه.
    چی پیشنهاد میکنید.؟
    فقط حین ساخت فریم میشه به کنترلها مقدار داد.
    آخرین ویرایش به وسیله Mask : دوشنبه 05 دی 1390 در 18:12 عصر


  12. #12
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: مشکل در استفاده از Fram

    عزیزم اگه کد من رو دیده بودی می دیدی که کپشن رو در زمان اجرا تغییر دادم

  13. #13

    نقل قول: مشکل در استفاده از Fram

    عزیز دل برادر کدتون رو دیدم. کلی هم ازش ایده گرفتم.
    اما داستان اینه که چون ما در حالت run time یک نمونه از Frame رو بر روی Frame bare میسازیم. نمیتونیم مقدارش رو بعد از create شدن تغییر بدیم.
    منم به خاطر این محدودیت مجبور شدم با یه ترفند مقادیرم رو در یک متغیرکه در فرم اصلی هست، حساب کتاب کنم و با یه تایمر که درون Frame استارت میشه مقدار متغیر رو از فرم اصلی واکشی کنم و درون کنترلهای Frame جاسازی کنم.
    فعلا با این روش مشکلم حل شده.جالا اینکه فنی هست و یا بعدا به مشکل بر نخورم.دیگه نمیدونم.


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

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