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

نام تاپیک: نحوه ساخت پیغام های "لطفا منتظر بمانید"

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    104

    نحوه ساخت پیغام های "لطفا منتظر بمانید"

    با سلام خدمت دوستان

    اگه امکان داره
    نحوه ایجاد و ساخت پیغام های "لطفا منتظر بمانید..... " را توضیح بدید.
    اگر دوستان محبت کنند به صورت یک مثال کامل ارائه کنند ممنون می شوم.


    با تشکر از همه

  2. #2
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    بستگی دارد آن را چطور بخواهید
    بعضی از وقتها ما آن را در StatusBar قرار می دهید و موقعی دیگر در یک Lableساده.
    قبل از شروع دستورات این کد را می نویسیم.

    StatusBar1.Panels[0].Text := 'لطفا منتظر بمانید';
    StatusBar1.Refresh;

    و سپس دستورات برنامه را بعد ازآن می نویسیم و در پایان دستورات مقدار را پاک می کنیم.

    StatusBar1.Panels[0].Text := '';
    StatusBar1.Refresh;

    این یک مثال خیلی خیلی ساده بود.
    در کنار این شما می توانید از Animate نیز استفاده کنید.
    این چیزی که شما می خواهید بیشتراز اینکه برنامه نوبسی بخواهد خلاقیت می خواهد.

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    71
    فکر کنم بهتره از یک فرم مخصوص این پیغام استفاده کنی و هروقت میخوای کار زمان گیری انجام بدی اون فرم رو show (و نه showmodal) کنی و در انتهای اون متد (پیشنهاد میدم از try... finally استفاده کنی و در قسمت finally) اون فرم رو ببندی
    و برای هر متد هم میتونی پیغام مناسب رو توش بارگذاری کنی
    فقط یادت نره حتما بعد show شدن اون فرم یکبار اون رو repaint کنی

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    104
    با سلام
    با تشکر از راهنمائی های شما دوستان
    هدف من از پرسیدن این سئوال این بود که چطور میشه این پیغام را به صورت یک فرم صدا زد که تا موقعی که عملیات پشت پرده ما در حال اجرا هست این فرم نمایش داده بشه و بعد از اتمام عملیات بسته بشه ومثلا در برنامه های حسابداری وقتی می خواهیم محاسباتی مثل تراز گرفتن از حساب ها را انجام بدیدم نیاز به یک سری عملیات پشت پرده داریم حالا چطوری این پیغام نمایش داده شود ........
    به عنوان مثال :

    procedure TReport_HD.Button1Click(Sender: TObject);
    begin
    messageForm.showmodal.... or Show;
    messageform.repaint;
    .
    .
    .
    .
    messageform.close;
    Reportform.showmodal;
    end;
    اما من با این روش جواب نگرفتم،امکان داره ربطی به روش مالتی ترد داشته باشه.
    حالا تصور کنید که بخواهیم روند اجرای این عملیات را د داخل این فرم با progressbar بخواهیم نمایش دهیم........



    باتشکر لطفا بیشتر توضیح دهید.

  5. #5
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    شما می توانید یک فرم بسازید و ProgressBarخود را روی آن قرار دهید.
    سپس فرم خود را show کنید.
    و هر جا که نیاز بود به ProgressBar خود یک واحد اضافه کنید.
    و در آخر آن را Close کنید.

    // شروع برنامه
    Form1.Show
    ProgressBar1.Max := 100;
    While i < 100 Do
    Begin
    Inc(i);
    From1.ProgressBar1.Position := ProgressBar1.Position + 1;
    End;
    Form1.Close;

    در مثال بالا بنده یک حلقه ایجاد کردم که 100 بار تکرار می شود و هر بار یک واحد به ProgresBar اضافه کرده و در آخر پنجره فوق را می بندد.

  6. #6
    مسئله دیگر این است که بخواهید شما همگام با فعالیتی که در پشت پرده انجام می دهید progresbar نیز به صورت واقعی جلو برود برای این کار من دو راه به ذهنم می رسد
    1- یک متغییر سراسری گذاشته سپس در فرم منتظر بمانید هر چند ثانیه یک بار اون رو پک کنید اگر تغییر نموده به پروگرس یک .احد اضافه نمایید (البته روش دلچسبی نیست)
    2- یه تابع بنویسید که با صدا زدن اون فرم منتظر بمانید رو فعال کنه
    procedure showwait(var progr:Tguge // or progres)
    Form1:=Form.create(application);
    progr:=form1.progres1;
    form1.show; //hatman show basheh na showmodal
    end;
    بعد در بدنه فعالیت پشت صحنه ات به progr یک واحد اضافه کن

  7. #7
    قبل از شروع محاسبات فرم ProgressBar که ساخته شده رو باز کن و بعد
    ProgressBar1.Position را در حلقه محاسبات خود نسبت به تعداد رکوردهای محاسباتی افزایش دهید و بعد از اتمام کار ProgressBar را ببندید

  8. #8
    کاربر دائمی
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    آنجا سرای ابدی است
    پست
    2,011
    محاسباتی که در ان از ترد استفاده شده انجام این کار ساده تر و معقول تر است.
    در غیر این صورت مثلا در هنگامی که حلقه ای محاسبه ای را انجام می دهد یک دیالوگ را نشون بده تا حلقه به پایان برسد(برای راحتی از فرم دوم استفاده کن.)

  9. #9
    کاربر تازه وارد آواتار ahmadbh
    تاریخ عضویت
    مهر 1383
    محل زندگی
    شيراز
    پست
    96

    نقل قول: نحوه ساخت پیغام های "لطفا منتظر بمانید"

    نقل قول نوشته شده توسط SYNDROME مشاهده تاپیک
    با سلام
    شما می توانید یک فرم بسازید و ProgressBarخود را روی آن قرار دهید.
    سپس فرم خود را show کنید.
    و هر جا که نیاز بود به ProgressBar خود یک واحد اضافه کنید.
    و در آخر آن را Close کنید.

    // شروع برنامه
    Form1.Show
    ProgressBar1.Max := 100;
    While i < 100 Do
    Begin
    Inc(i);
    From1.ProgressBar1.Position := ProgressBar1.Position + 1;
    End;
    Form1.Close;

    در مثال بالا بنده یک حلقه ایجاد کردم که 100 بار تکرار می شود و هر بار یک واحد به ProgresBar اضافه کرده و در آخر پنجره فوق را می بندد.
    من آزمایش کردم جواب نمیده

  10. #10
    کاربر دائمی آواتار me.enik
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    تهران
    پست
    309

    نقل قول: نحوه ساخت پیغام های "لطفا منتظر بمانید"

    نقل قول نوشته شده توسط ahmadbh مشاهده تاپیک
    من آزمایش کردم جواب نمیده
    خب یعنی چی جواب نمیده ... !؟
    منطق صحبت ایشون که درسته و روش کلی انجام میتونه همون باشه.
    حالا اگر سورس کد مشکل داره که بعید میدونم, باید سورس رو اصلاح کرد و به راحتی هم میشه این کار رو انجام داد.

    میشه واضح تر بگید که منظورتون از جواب نمیده دقیقا چیه !؟

  11. #11
    کاربر دائمی آواتار gholami146
    تاریخ عضویت
    آبان 1388
    محل زندگی
    مشهد مقدس
    پست
    374

    نقل قول: نحوه ساخت پیغام های "لطفا منتظر بمانید"

    فقط یاد تون رفته فرم رو بعد از عملیاد مرتب update کنید

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

  1. str_replace , ereg_replace برای "n\" و "r\" و " "
    نوشته شده توسط sweb در بخش PHP
    پاسخ: 1
    آخرین پست: یک شنبه 29 بهمن 1385, 17:30 عصر

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

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