Kütüphane: Forms
Orjinal Function:
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
function TApplication.MessageBox(const Text, Caption: PChar; Flags: Longint): Integer;
var
ActiveWindow, TaskActiveWindow: HWnd;
WindowList: Pointer;
MBMonitor, AppMonitor: HMonitor;
MonInfo: TMonitorInfo;
Rect: TRect;
FocusState: TFocusState;
begin
ActiveWindow := ActiveFormHandle;
if ActiveWindow = 0 then
TaskActiveWindow := Handle
else
TaskActiveWindow := ActiveWindow;
MBMonitor := MonitorFromWindow(ActiveWindow, MONITOR_DEFAULTTONEAREST);
AppMonitor := MonitorFromWindow(Handle, MONITOR_DEFAULTTONEAREST);
if MBMonitor <> AppMonitor then
begin
MonInfo.cbSize := Sizeof(TMonitorInfo);
GetMonitorInfo(MBMonitor, @MonInfo);
GetWindowRect(Handle, Rect);
SetWindowPos(Handle, 0,
MonInfo.rcMonitor.Left + ((MonInfo.rcMonitor.Right - MonInfo.rcMonitor.Left) div 2),
MonInfo.rcMonitor.Top + ((MonInfo.rcMonitor.Bottom - MonInfo.rcMonitor.Top) div 2),
0, 0, SWP_NOACTIVATE or SWP_NOREDRAW or SWP_NOSIZE or SWP_NOZORDER);
end;
WindowList := DisableTaskWindows(ActiveWindow);
FocusState := SaveFocusState;
if UseRightToLeftReading then Flags := Flags or MB_RTLREADING;
try
Result := Windows.MessageBox(TaskActiveWindow, Text, Caption, Flags);
finally
if MBMonitor <> AppMonitor then
SetWindowPos(Handle, 0,
Rect.Left + ((Rect.Right - Rect.Left) div 2),
Rect.Top + ((Rect.Bottom - Rect.Top) div 2),
0, 0, SWP_NOACTIVATE or SWP_NOREDRAW or SWP_NOSIZE or SWP_NOZORDER);
EnableTaskWindows(WindowList);
SetActiveWindow(ActiveWindow);
RestoreFocusState(FocusState);
end;
end;
Parametreleri [Buttonlar]
-> MB_OK => Tamam
-> MB_OKCANCEL => Tamam - İptal
-> MB_ABORTRETRYIGNORE => Bitir - Tekrar Dene - Yoksay
-> MB_YESNOCANCEL => Evet - Hayır - İptal
-> MB_YESNO => Evet - Hayır
-> MB_RETRYCANCEL => Tekar Dene - iptal
Parametreleri [Iconlar]
Delphi 2007'deki sıraya göre arkadaşlar, Delphi 7'de sanırım daha azdı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. MB_ICONHAND
Önizleme:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. MB_ICONQUESTION
Önizleme:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
MB_ICONEXCLAMATION
Önizleme:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. MB_ICONASTERISK
Önizleme:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
MB_ICONWARNING
Önizleme:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. MB_ICONERROR
Önizleme:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. MB_ICONINFORMATION
Önizleme:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. MB_ICONSTOP
Önizleme:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. MB_ICONMASK
Kendi Seçtiğiniz bi icon
Kullanımı :
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
Application.MessageBox('MESAJ' , 'BAŞLIK', BUTTONLAR or DİALOG ICONU);
öRNEK:
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
Application.MessageBox('Değişiklikleri Kaydetmek İstiyormusunuz?','abc v1.0', MB_OKCANCEL or MB_ICONQUESTION);
Tıklanan Buttona Göre İşlem Yapmak:
Örnek:
Bir editör yaptınız ve editörde memo kullandığımızı varsayıyoruz.. ve diyoruz ki benim memo düzenlendiyse form kapanırken bana kaydetmek isteyip istemediğimi sorsun...
formun onCloseQuery olayına aşağıdaki kodu yazmamız yeterli olucak...
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
if Memo1.Modified then // memo düzenlendiyse ...
begin
// değişikliklerin kaydedilim kaydedilmeyeceğini sorsun
case Application.MessageBox('Değişiklikleri Kaydetmek İstiyormusunuz?','abc v1.0', MB_YESNO or MB_ICONQUESTION) of
IDYES: // cevap evetse
begin
if SaveDialog1.Execute then // save dialog penceresini çalıştırsın (çalıştırdıysa)
memo1.Lines.SaveToFile(SaveDialog1.FileName); // memo nun içindeki veriyi save dialogda seçilen yer ve isme kaydetsin
end;
IDNO : // hayır seçilirse ( kaydedilmesin )
// programın kapatılıp kapatılıcağını sorsun
CASE Application.MessageBox('Programı Kapatmak İstediğinizden Eminmisiniz?','ABC V1.0', MB_YESNO or MB_ICONQUESTION) OF
IDYES : Application.Terminate; // cevap evetse programı sonlandırsın
IDNO : abort; // hayır sa işlemi durdursun...
end;
end;
end;
Yazar: Ali Yeşiloğlu