Delphi İçin Buton Efektleri (Web Türü Buton)
Delphinin standart buttonları genellikle klasik programlar için kullanılır daha farklı görünümde programlar yapmak isterseniz web türü butonları kullanabilirsiniz. Şimdi yapacağımız button kendi çizdiğimiz 3 resimden oluşuyor. Öncelikle 3 adet aynı boyda aynı textli button çizin. 1. Resim ; buttonun Sabit yani Form üzerindeki duruşudur 2. Resim ; Programımız çalışırken mouse ile aynı buttonun üzerine geldiğimize buttonun alacağı şekil olacaktır. 3.Resim ; Programımız çalışırken yaptığımız button tıklanınca alacağı şekildir.
Dikkat ettiyseniz bu taktik HTLM (Web ) için button hazırlanması taktiği ile aynıdır. Şimdi bu taktiği kullanmaya başlayalım . Öncelikle Form üzerine Image kontrolünü ekleyelim ve resim olarak yaptığımız 1. resmi ekleyelim. Şımdi sıra Programımıza değişken tanımlayalım;
SetMouse : boolean;
Değişken tanımlama işimiz bitince Image Mouse Down olayına aşağıdaki kodları yazınız
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SetMouse := true; //Mouse Resmin üzerinde Basık olduğunu anlamamız için
image1.Picture.LoadFromFile('start-3.bmp'); //Mouse Click Durumunda
end;
Daha Sonra image Mouse Move Olayına aşağıdaki kodları yazınız
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
image1.Picture.LoadFromFile('start-2.bmp'); //Mouse Buttonun üzerine gelince buttonun alacağı şekil
if SetMouse then
image1.Picture.LoadFromFile('start-3.bmp'); //Mouse Click Durumunda Buttonun üzerindeki şekil
end;
Mouse button üzerinde click vaziyetinde olup olmadığını değişkene aktarmak için Image Mouse up olayına aşağıdaki kodu yazınız
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
begin
SetMouse := false; //Mouse Click Durumunda Değil
end;
Button Görüntüleri Tamamlandı şimdi Click Yordamını yapalım. Image Click olayına aşağıdaki kodu yazınız .
procedure TForm1.Image1OnClick(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
image1.Picture.LoadFromFile('start-3.jpg');
ShowMessage('Button Tıklandı ');
end;
Buttonla olan işimiz bitti Mouse buttonumuzun üzerinde olmadığı zaman için mouse şeklini yapalım bunun için Form Mouse Move Olayına Aşağıdaki kodları yazınız.
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
image1.Picture.LoadFromFile('start-1.jpg');
end;
Ve işlemimiz bitti. Programınızda birden fazla Bu tür button koymanız için Bütün buttonlar için aynı işlemi yapınız. Form Mouse Move olayına her button için yukarıdaki program satırını yazınız.
Örnek:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
image1.Picture.LoadFromFile('Connect-1.jpg');
image2.Picture.LoadFromFile('DeConnect-1.jpg');
image3.Picture.LoadFromFile('Atack-1.jpg');
image4.Picture.LoadFromFile('Exit-1.jpg');
end;
şeklinde yapınız .
Bildiğiniz gibi Web' de bu taktiği kullanmamız için Button için yaptığımız resimlerin HTLM de belirtilen Dizinde olması gerekir .Yani Bizim yukarıda yaptığımız olayda resim dosyalarının yerini belirtmememizin amacı resim Button Resim Dosyalarının Program ile aynı dizinde olmasıdır. Bu yüzden sorunun ne olduğunu anladınız galiba yani program bu açıktan dolayı kullanıcı tarıfından değiştirilebilir. Winamp MP3 çalıcıyı bilirsiniz . Winamp SKIN'nin ne olduğunu da biliyorsunuz sanırım , Yani demek istediğim Winamp SKIN'de de bu taktik kullanılmıştır .
Aslında bu sorun değil , çünkü bu olayı IMAGE LIST Kontrolü de yapar. IMAGE LIST bir Olay için kullanılan birden fazla resim için kullanılan resim dosyaları olmadan programın bağımsız çalışması için kullanılır. IMAGE LIST Delphinin Win32 sekmesinde bulunur . Gif taktiğine benzer bir taktikle çalışır, biraz incelerseniz kolaylıkla kullanabilirsiniz. Bu arada Delphinin Additional sekmesinde bulunan BitBTN kontrolüyle de buna benzer ama kolay Button kullanabilirsiniz.
Delphinin standart buttonları genellikle klasik programlar için kullanılır daha farklı görünümde programlar yapmak isterseniz web türü butonları kullanabilirsiniz. Şimdi yapacağımız button kendi çizdiğimiz 3 resimden oluşuyor. Öncelikle 3 adet aynı boyda aynı textli button çizin. 1. Resim ; buttonun Sabit yani Form üzerindeki duruşudur 2. Resim ; Programımız çalışırken mouse ile aynı buttonun üzerine geldiğimize buttonun alacağı şekil olacaktır. 3.Resim ; Programımız çalışırken yaptığımız button tıklanınca alacağı şekildir.
Dikkat ettiyseniz bu taktik HTLM (Web ) için button hazırlanması taktiği ile aynıdır. Şimdi bu taktiği kullanmaya başlayalım . Öncelikle Form üzerine Image kontrolünü ekleyelim ve resim olarak yaptığımız 1. resmi ekleyelim. Şımdi sıra Programımıza değişken tanımlayalım;
SetMouse : boolean;
Değişken tanımlama işimiz bitince Image Mouse Down olayına aşağıdaki kodları yazınız
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SetMouse := true; //Mouse Resmin üzerinde Basık olduğunu anlamamız için
image1.Picture.LoadFromFile('start-3.bmp'); //Mouse Click Durumunda
end;
Daha Sonra image Mouse Move Olayına aşağıdaki kodları yazınız
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
image1.Picture.LoadFromFile('start-2.bmp'); //Mouse Buttonun üzerine gelince buttonun alacağı şekil
if SetMouse then
image1.Picture.LoadFromFile('start-3.bmp'); //Mouse Click Durumunda Buttonun üzerindeki şekil
end;
Mouse button üzerinde click vaziyetinde olup olmadığını değişkene aktarmak için Image Mouse up olayına aşağıdaki kodu yazınız
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
begin
SetMouse := false; //Mouse Click Durumunda Değil
end;
Button Görüntüleri Tamamlandı şimdi Click Yordamını yapalım. Image Click olayına aşağıdaki kodu yazınız .
procedure TForm1.Image1OnClick(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
image1.Picture.LoadFromFile('start-3.jpg');
ShowMessage('Button Tıklandı ');
end;
Buttonla olan işimiz bitti Mouse buttonumuzun üzerinde olmadığı zaman için mouse şeklini yapalım bunun için Form Mouse Move Olayına Aşağıdaki kodları yazınız.
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
image1.Picture.LoadFromFile('start-1.jpg');
end;
Ve işlemimiz bitti. Programınızda birden fazla Bu tür button koymanız için Bütün buttonlar için aynı işlemi yapınız. Form Mouse Move olayına her button için yukarıdaki program satırını yazınız.
Örnek:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
image1.Picture.LoadFromFile('Connect-1.jpg');
image2.Picture.LoadFromFile('DeConnect-1.jpg');
image3.Picture.LoadFromFile('Atack-1.jpg');
image4.Picture.LoadFromFile('Exit-1.jpg');
end;
şeklinde yapınız .
Bildiğiniz gibi Web' de bu taktiği kullanmamız için Button için yaptığımız resimlerin HTLM de belirtilen Dizinde olması gerekir .Yani Bizim yukarıda yaptığımız olayda resim dosyalarının yerini belirtmememizin amacı resim Button Resim Dosyalarının Program ile aynı dizinde olmasıdır. Bu yüzden sorunun ne olduğunu anladınız galiba yani program bu açıktan dolayı kullanıcı tarıfından değiştirilebilir. Winamp MP3 çalıcıyı bilirsiniz . Winamp SKIN'nin ne olduğunu da biliyorsunuz sanırım , Yani demek istediğim Winamp SKIN'de de bu taktik kullanılmıştır .
Aslında bu sorun değil , çünkü bu olayı IMAGE LIST Kontrolü de yapar. IMAGE LIST bir Olay için kullanılan birden fazla resim için kullanılan resim dosyaları olmadan programın bağımsız çalışması için kullanılır. IMAGE LIST Delphinin Win32 sekmesinde bulunur . Gif taktiğine benzer bir taktikle çalışır, biraz incelerseniz kolaylıkla kullanabilirsiniz. Bu arada Delphinin Additional sekmesinde bulunan BitBTN kontrolüyle de buna benzer ama kolay Button kullanabilirsiniz.