Tekil Mesaj gösterimi
Alt 16 Nisan 2010, 12:59   #1
Çevrimdışı
Dilaold
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Application.Messagebox Kullanımı




Kütüphane: Forms

Orjinal Function:

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
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ı
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_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

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet