Başlat Menüsü gibi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Başlat Menüsü gibi

Mesaj gönderen abdulkadir »

Windows ta başlat a tıklıyoruz ve menu acılıyor.
Siz menuden bir secim yapana kadar veya masa üstunde herhangi bir yere tıkladıgınız zaman menu kayboluyor.

Bu işlemi projemde yapmak istedim
menu yerine FormMesaj acılacak.
timer ile bir süre ayarlayarak yaptım ama orjinal omadı
MouseDown olayı ile de biraz denedim ama form dısında da kontrol lazım

bu işlem için yardım edebilecek ip ucu verebilecek arkadaslara tesekkür ederim.

allaha emanet olun
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

ToolBar kullan buna Menu veya button koy Fakat ben yerinde olsam Timer kullanmazdım Sleep fonksiyonuyla biraz uğraşırdım. Forum un kaybolma olayınıda Active olaup olmadığına bakarak uyuturdum ;)


Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

ben timer a +1 veriyom ama başka bi yöntem olarakta mouse u takip edebilrisiniz. örnek kodlar için ekran koruyucu diye aratın çıkan kodlarda

Kod: Tümünü seç

procedure TScrnFrm.DeactivateScrnSaver(var Msg : TMsg; var Handled : boolean);
var
  done : boolean;
begin
  if Msg.message = WM_MOUSEMOVE then
    done := (Abs(LOWORD(Msg.lParam) - crs.x) > 15) or
            (Abs(HIWORD(Msg.lParam) - crs.y) > 15)
  else
    done := (Msg.message = WM_KEYDOWN)     or (Msg.message = WM_KEYUP)       or
            (Msg.message = WM_SYSKEYDOWN)  or (Msg.message = WM_SYSKEYUP)    or
            (Msg.message = WM_ACTIVATE)    or (Msg.message = WM_NCACTIVATE)  or
            (Msg.message = WM_ACTIVATEAPP) or (Msg.message = WM_LBUTTONDOWN) or
            (Msg.message = WM_RBUTTONDOWN) or (Msg.message = WM_MBUTTONDOWN);
  if done then
    Close;
end; {TScrnFrm.DeactivateScrnSaver} 
kaynak
mesela burda 15 i ben yaptım mouse 15 piksel hareket edince programı kapat gibi.. bunu büyültürsen veya kaldırıp sadece clik ini takip ederrsen belki iş istediğiniz gibi olabilr.

hade kolay gelsin
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Evet @Mege bravo bence Sleep çok kötü bir yöntem olur düşündümde Programı kesmek mantıklı değil Mouse Takip olayı en iyi yöntem olur bencede.


Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

bu kadar üstadımın arasında bu husust abir sey söylemek istedim kusurumuz için afola

bu hususta bence indowsun çalışma mantığı su
windows başlat butonuna tıklanınca bir panel açıyor...panelin boyutu ve içeriği ise panelin içerisinde listelemiş olduğu klasör var bu standart klasörden bilgileri alıyor...içerisindeki kısayol bilgilerini orada listeledikten sonra eğer yolun içinde bir yol varsa onun iinde bir panel oluşturuyor...
bu arada paneller içinde buyonlarla gösteriyor...ve etkinlik gibi işlemleri control için kullanılan bileşenin buton veya nesnenin on mouse move olayı kullanılabilir...gibi geliyor...bana ...yorumlarınızı bekliyorum

şimditakrar baktım panellerde main menüler listeleniyor...ama her menü için bir panel açılıyor...ve her panel için mainmenü oluşturuluyor...
Siz hayal edin...Biz yapalım TuannaSoft...
Cevapla