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

نام تاپیک: ایجاد یک فرم و کنترلهای روی آن زمان اجرا

  1. #1

    ایجاد یک فرم و کنترلهای روی آن زمان اجرا

    سلام
    من میخوام یه فرم زمان اجرا ایجاد کنم و بعد کنترل هایی که روی فرم قرا می گیرند رو هم زمان اجرا با توجه به محتویات یه جدول ایجاد کنم .
    حالا سوالی که دارم اینه که بهترین راه برای این کار چیه ؟ منظورم اینه که وقتی می خوام کنترل ها رو ایجاد کنم بهتره اندازه و محل قرار گیری اونها رو چطوری تعیین کنم . البته به نظرم یه راهش اینه که یه جدول بسازم و با توجه به اون مشخص کنم که توی فرم باید چه فیلدهایی قرار بدم ولی نمی دونم راه درستیه یا نه ؟ لطفا اگه قبلا کسی این کار رو کرده منو راهنمایی کنه .

  2. #2
    کاربر دائمی آواتار مصطفی ساتکی
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    www.7khatcode.com
    پست
    1,193
    جهت ایجاد فرم در زمان اجرا

    var form :Tform;
    begin
    form := Tform.createNew(Parent);
    form.show;
    end;

    جت ایجاد کنترل مثلاٌ button

    var Button :TButton;
    begin
    Button := TButton.Create(Form);
    Button.parent :=Form;
    end;

    جهت تنظیم مختصات در دلفی یک فرم جدید ایجاد کنید کنترل های مورد نظر خود را روی آن چیدمان کنید سپس روی فرم کلیک راست کرده از منوی باز شده گزینه View as text را انتخاب کرده که فایل dfm مربوط به فرم ساخته شده را به شما نشان می دهد که کلیه مقادیر property ها در اینجا ذخیره شده اینها را کپی کرده و به کد خود انتقال دهید با کمی دستکاری این کد به نتیجه مطلوبی می رسید.

  3. #3
    از جوابتون ممنون . ولی منظور من چگونگی ساخت فرم و یا کنترلها در زمان اجرا نیست . احتمالا سوالم رو خوب بیان نکردم.
    من می خوام کنترلهایی که روی فرم قرار می دم با توجه به محتویات بانک باشه . مثلا اگه قراره مشخصات کارمندان رو روی فرم نمایش بدم با توجه به جدول Employee یه سری TextBox روی فرم قرار بدم که حالا برنامه نویسی اش هم بعدا زمان اجرا انجام بشه .
    ولی مشکل اینجاست که مسلما اندازه کنترلهایی که روی فرم قرار می گیرن یکسان نیست و مثلا اندازه Text Box فیلد توضیحات و یا آدرس باید بزرگتر از فیلد اسم باشه و با تغییر اندازه این کنترل ها مکان قرار گیری اونها روی فرم هم دیگه قابل پیش بینی نیست چون دیگه نمی تونیم مثلا در هر سطر فرم 2 تا کنترلی رو قرار بدیم که سایز اونا با هم فرق داره .
    به نظر من راه حل اینه که یه جدول بسازم و اسم فرم و اسم فیلد و Visible یا Enable بودن فیلدو... و اندازه اون رو ذخیره کنم و برای اینکه مشخص بشه مکان قرار گیری فیلد کجاست از Tag مربوط به کنترلها استفاده کنم ( مثلا کنترلهایی که Tag یکسانی دارند ٰTop اونها یکی باشه )
    ولی این کار مشکلات زیادی داره . حالا می خوام بدونم کسی راه حل بهتری داره یا نه ؟

  4. #4
    در ضمن جدول مورد استفاده در فرم هم زمان اجرا مشخص می شه و بنابراین زمان طراحی دیگه نمی دونیم چه فیلدهایی داریم تا مکان و اندازه اونا رو بصورت استاتیک مشخص کنیم .

  5. #5
    کاربر دائمی آواتار مصطفی ساتکی
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    www.7khatcode.com
    پست
    1,193
    سوال شما مشکلی نداره لیست فیلدها و سایز اونا که دارید ارتفاع هر editbox و ارتفاع فرم را نیز دارید . به فرض درفرم n ردیف کنترل می توان قرار داد . نمی دونم مشکله شما چیه .مشکلتون واضح تر بیان کنید

  6. #6

    بین از لینک زیر بدردت می خوره

    این ساختن تمام اشیاء رو از روی DBGrid و نوع داده انجام می ده شبیه اون چیزی که می خوای
    Link

  7. #7
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    می توانید فیلدهای داخل بانک را بخوانید و با توجه به نوع و طول آنها Box ها را در صفحه بچینید و سپس برای Labe هر Box از Des مربوط به بانک خود استفاده کنید.

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

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