IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Delphi (https://www.ircforumlari.net/delphi/)
-   -   Application.Messagebox Kullanımı (https://www.ircforumlari.net/delphi/328494-applicationmessagebox-kullanimi.html)

Dilaold 16 Nisan 2010 12:59

Application.Messagebox Kullanımı
 
Kütüphane: Forms

Orjinal Function:

PHP- Kodu:

function TApplication.MessageBox(const TextCaptionPCharFlagsLongint): Integer;
var
  
ActiveWindowTaskActiveWindowHWnd;
  
WindowListPointer;
  
MBMonitorAppMonitorHMonitor;
  
MonInfoTMonitorInfo;
  
RectTRect;
  
FocusStateTFocusState;
begin
  ActiveWindow 
:= ActiveFormHandle;
  if 
ActiveWindow 0 then
    TaskActiveWindow 
:= Handle
  
else
    
TaskActiveWindow := ActiveWindow;
  
MBMonitor := MonitorFromWindow(ActiveWindowMONITOR_DEFAULTTONEAREST);
  
AppMonitor := MonitorFromWindow(HandleMONITOR_DEFAULTTONEAREST);
  if 
MBMonitor <> AppMonitor then
  begin
    MonInfo
.cbSize := Sizeof(TMonitorInfo);
    
GetMonitorInfo(MBMonitor, @MonInfo);
    
GetWindowRect(HandleRect);
    
SetWindowPos(Handle0,
      
MonInfo.rcMonitor.Left + ((MonInfo.rcMonitor.Right MonInfo.rcMonitor.Leftdiv 2),
      
MonInfo.rcMonitor.Top + ((MonInfo.rcMonitor.Bottom MonInfo.rcMonitor.Topdiv 2),
      
00SWP_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(TaskActiveWindowTextCaptionFlags);
  finally
    if 
MBMonitor <> AppMonitor then
      SetWindowPos
(Handle0,
        
Rect.Left + ((Rect.Right Rect.Leftdiv 2),
        
Rect.Top + ((Rect.Bottom Rect.Topdiv 2),
        
00SWP_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_ICONQUESTIONof
    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_ICONQUESTIONOF
    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


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 09:04.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net