PDA

View Full Version : نمایش یپام : لطفا منتظر بمانید در دلفی



afshinrz
پنج شنبه 16 دی 1400, 19:55 عصر
دوستان چجوری میتونم توی دلفی 7 به کاربر پیام بدم : لطفا منتظر بمانید
به صورتی که یس یا نو یا کنسل نداشته باشه پیام ظاهر بشه و بدون اینکه کاربر کاری بکنه اتومات بعد از یک ثانیه پیام از صفهه پاک بشه

یوسف زالی
پنج شنبه 16 دی 1400, 20:24 عصر
سلام.
یکی از راههای خوبش اینه که یک فرم برای این کار درست کنید و اون رو شومودال کنید.
در فرم هم از یک تایمر استفاده کنید برای بسته شدن.

afshinrz
جمعه 08 بهمن 1400, 18:54 عصر
فرض کن برنامه قراره یک پردتزش انجام بده که چند دقیقه زمان بره و هنگام پردازش میخام پیام منتظر بمانید نمایش داده بشه
با شومودال و اجرای فرم جدید فرم قبلی پردازش استپ میشه و بعد از بسته شدن فرم جدید و بازگشت به فرم قبلی پردازش تازه شروع میشه
این راهکاری که شما گفتین مناسب این نیست

دلفــي
سه شنبه 12 بهمن 1400, 11:58 صبح
procedure CloseMessageBox(AWnd: HWND; AMsg: UINT; AIDEvent: UINT_PTR;
ATicks: DWORD); stdcall;
var
Wnd: HWND;
begin
KillTimer(AWnd, AIDEvent);
Wnd := GetActiveWindow;
if IsWindow(Wnd) then
PostMessage(Wnd, WM_CLOSE, 0, 0);
end;



procedure TForm1.BitBtn1Click(Sender: TObject);
var
TimerId: UINT_PTR;
begin
TimerId := SetTimer(0, 0, 3 * 1000, @CloseMessageBox); // زمان مورد نظر را اینجا تنظیم کنید
Application.MessageBox('... نرم افزار در حال پرداش درخواست می باشد','اخطار', 0);
KillTimer(0, TimerId);
end;

afshinrz
سه شنبه 12 بهمن 1400, 19:47 عصر
متاسفانه خطا میده در دلفی 7
153673

دلفــي
چهارشنبه 13 بهمن 1400, 07:27 صبح
متاسفانه خطا میده در دلفی 7



procedure CloseMessageBox(AWnd: HWND; AMsg: UINT; AIDEvent: DWORD;
ATicks: DWORD); stdcall;
var
Wnd: HWND;
begin
KillTimer(AWnd, AIDEvent);
Wnd := GetActiveWindow;
if IsWindow(Wnd) then
PostMessage(Wnd, WM_CLOSE, 0, 0);
end;



procedure TForm1.Button1Click(Sender: TObject);
var
TimerId: UINT_PTR;
begin
TimerId := SetTimer(0, 0, 3 * 1000, @CloseMessageBox); // زمان مورد نظر را اینجا تنظیم کنید
Application.MessageBox('... نرم افزار در حال پرداش درخواست می باشد','اخطار', 0);
KillTimer(0, TimerId);
end;

afshinrz
چهارشنبه 13 بهمن 1400, 12:57 عصر
TimerId: UINT_PTR;
از این خطا میگیره و نوعشو کردم اینتیجر جواب داد
فقط یه باتن اوکی زیر پیام نمایش میده اونو چجوری میشه حذف کرد که فقط پیام و نشون بده و بعد چند ثانیه بسته بشه و باتنی برای بستن وجود نداشته باشه

Touska
شنبه 16 بهمن 1400, 13:37 عصر
به این شکل تعریف اش کنید : در دلفی 7 مشکل حل خواهد شد.


type
UINT_PTR = Cardinal;


procedure CloseMessageBox(AWnd: HWND; AMsg: UINT; AIDEvent: DWORD;
ATicks: DWORD); stdcall;
var
Wnd: HWND;
begin
KillTimer(AWnd, AIDEvent);
Wnd := GetActiveWindow;
if IsWindow(Wnd) then
PostMessage(Wnd, WM_CLOSE, 0, 0);
end;



procedure TForm1.Button1Click(Sender: TObject);
var
TimerId: UINT_PTR;
begin
TimerId := SetTimer(0, 0, 3 * 1000, @CloseMessageBox); // زمان مورد نظر را اینجا تنظیم کنید
Application.MessageBox('... نرم افزار در حال پرداش درخواست می باشد','اخطار', 0);
KillTimer(0, TimerId);
end;

mbshareat
پنج شنبه 12 خرداد 1401, 22:23 عصر
من باشم راحت از یک پنل استفاده می کنم