Dilaold | 16 Nisan 2010 12:59 | Application.Messagebox Kullanımı Kütüphane: Forms
Orjinal Function: PHP- Kodu: 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ı :) MB_ICONHAND
Önizleme: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] MB_ICONQUESTION
Önizleme: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
MB_ICONEXCLAMATION
Önizleme: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] MB_ICONASTERISK
Önizleme: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
MB_ICONWARNING
Önizleme: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] MB_ICONERROR
Önizleme: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] MB_ICONINFORMATION
Önizleme: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] MB_ICONSTOP
Önizleme: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] MB_ICONMASK
Kendi Seçtiğiniz bi icon
Kullanımı : PHP- Kodu: Application.MessageBox('MESAJ' , 'BAŞLIK', BUTTONLAR or DİALOG ICONU);
öRNEK: PHP- Kodu: 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- Kodu: 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 |