دوستان چجوری میتونم توی دلفی 7 به کاربر پیام بدم : لطفا منتظر بمانید
به صورتی که یس یا نو یا کنسل نداشته باشه پیام ظاهر بشه و بدون اینکه کاربر کاری بکنه اتومات بعد از یک ثانیه پیام از صفهه پاک بشه
Printable View
دوستان چجوری میتونم توی دلفی 7 به کاربر پیام بدم : لطفا منتظر بمانید
به صورتی که یس یا نو یا کنسل نداشته باشه پیام ظاهر بشه و بدون اینکه کاربر کاری بکنه اتومات بعد از یک ثانیه پیام از صفهه پاک بشه
سلام.
یکی از راههای خوبش اینه که یک فرم برای این کار درست کنید و اون رو شومودال کنید.
در فرم هم از یک تایمر استفاده کنید برای بسته شدن.
فرض کن برنامه قراره یک پردتزش انجام بده که چند دقیقه زمان بره و هنگام پردازش میخام پیام منتظر بمانید نمایش داده بشه
با شومودال و اجرای فرم جدید فرم قبلی پردازش استپ میشه و بعد از بسته شدن فرم جدید و بازگشت به فرم قبلی پردازش تازه شروع میشه
این راهکاری که شما گفتین مناسب این نیست
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;
متاسفانه خطا میده در دلفی 7
ضمیمه 153673
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;
TimerId: UINT_PTR;
از این خطا میگیره و نوعشو کردم اینتیجر جواب داد
فقط یه باتن اوکی زیر پیام نمایش میده اونو چجوری میشه حذف کرد که فقط پیام و نشون بده و بعد چند ثانیه بسته بشه و باتنی برای بستن وجود نداشته باشه
به این شکل تعریف اش کنید : در دلفی 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;
من باشم راحت از یک پنل استفاده می کنم