Monster Notebook
 
Şimdi Üye Ol | Şifremi Unuttum
Ana SayfaSanalkurs.netProgramlarSanalkurs.netÖnemli SitelerSanalkurs.netYazarlarSanalkurs.netDers EkleSanalkurs.netE-DergiSanalkurs.netBlog Sanalkurs.netİletişimSanalkurs.netForum
 
Anasayfa » Delphi (78 ders)
 
Application.Messagebox Kullanımı

Yazar: Ali Yeşiloğlu  
Eklenme: 01.07.2009   Okunma: 1299  
 
Application.Messagebox Kullanımını işleyelim.

Kütüphane: Forms

Orjinal Function:



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:

http://img218.imageshack.us/img218/1852/handd.jpg



MB_ICONQUESTION
Önizleme:
http://img199.imageshack.us/img199/32/quese.jpg



MB_ICONEXCLAMATION

Önizleme:
http://img268.imageshack.us/img268/5739/66137971.jpg



MB_ICONASTERISK
Önizleme:
http://img269.imageshack.us/img269/8186/ast.jpg



MB_ICONWARNING

Önizleme:
http://img268.imageshack.us/img268/5739/66137971.jpg



MB_ICONERROR
Önizleme:
http://img218.imageshack.us/img218/1852/handd.jpg



MB_ICONINFORMATION
Önizleme:
http://img269.imageshack.us/img269/8186/ast.jpg



MB_ICONSTOP
Önizleme:
http://img218.imageshack.us/img218/1852/handd.jpg



MB_ICONMASK
Kendi Seçtiğiniz bi icon



Kullanımı :

 

 Application.MessageBox('MESAJ' , 'BAŞLIK', BUTTONLAR or DİALOG ICONU);



öRNEK:



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...



 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;



Ders bana aittir.
 

 

Application.Messagebox Kullanımı Dersini Yazdirin YAZDIR

"Application.Messagebox Kullanımı" dersi için 2 yorum var

20.08.2009 yastem diyor ki:
emeğe saygı çok güzel yapmışsınız teşekkürler

27.09.2009 snuray diyor ki:
Süperrrrr
Ellerinize Sağlık

  BU DERSE YORUM EKLEYİN

Üye olmadan yorum ekleyemezsiniz !


UYARI: SANALKURS.net'te yer alan materyaller ile ilgili her türlü sorumluluk hazırlayan veya gönderene aittir. Yazarlar, gönderdikleri makale ve derslerle başkalarını yanıltıcı bilgi veremezler. SANALKURS.net bilgilerin kullanımı sonucunda doğacak hata ve zararlardan sorumlu tutulamaz. SANALKURS.net'te yer alan bir makale link vermek ve kaynak göstermek şartıyla başka bir sitede yayınlanabilir. SANALKURS.net kullanıcıları ve üyeleri, üçüncü kişilerin telif hakkı sahibi bulunduğu hiçbir yazı, fotoğraf, resim vb. materyal ve ürünü kullanamazlar. SANALKURS.net kullanıcı ve yazarlarının, üçüncü kişilerin telif hakkı sahibi olduğu yazı, resim vb. ürünleri izinsiz kullanması durumunda, her türlü hukuki ve cezai sorumluluk kendilerine aittir.
 İSTATİSTİKLER
XML Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz
ÇEVRİMİÇİ 176 Ziyaretçi, 8 Üye
Charisma_47, siracel, Bym.ülkü, Gervinho, bozoklar, O-Lee, Keremel, NaRe_TuRKeY
Bugün: 844, Dün: 10154, Bu Ay: 21211, Toplam Ziyaret: 7227023, Toplam Üye: 216260, Son Üye: nur_cihan
Yazılı Dersler: 2460, Video Dersler: 408, Toplam Yazar: 64, Toplam Dosya: 53, Toplam Link: 26
   
RSS Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz