onmousemove,onmouseleave

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

onmousemove,onmouseleave

Mesaj gönderen tayc »

mrh, bir konuda yardım etmenizi rica edecektim,
mouse button üzerinde geldiğinde ve ayrıldığında durumlarını gösteren bir kod var mı?
yani onmousemove ve onmouseleave gibi birşey...

iyi çalışmalar.......
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: onmousemove,onmouseleave

Mesaj gönderen sabanakman »

Kulağı biraz tersten tutar gibi olsa da aşağıdaki yöntemle yapılabilir...

Kod: Tümünü seç

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Enter(Sender: TObject);
    procedure Button1Leave(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
type
 TControlCrack=class(TControl)
 published
   property OnMouseEnter;
   property OnMouseLeave;
 end;

procedure TForm1.Button1Enter(Sender: TObject);
begin
  Button1.Font.Style:=Button1.Font.Style+(.fsBold.);
end;

procedure TForm1.Button1Leave(Sender: TObject);
begin
  Button1.Font.Style:=Button1.Font.Style-[fsBold];
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TControlCrack(Button1).OnMouseEnter:=Button1Enter;
  TControlCrack(Button1).OnMouseLeave:=Button1Leave;
end;

end.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Re: onmousemove,onmouseleave

Mesaj gönderen tayc »

merhabalar,
gönderdiğin kodları denedim ama

[Error] Unit1.pas(31): Property 'OnMouseEnter' does not exist in base class
[Error] Unit1.pas(32): Property 'OnMouseLeave' does not exist in base class
[Error] Unit1.pas(46): Cannot assign to a read-only property
[Error] Unit1.pas(46): Not enough actual parameters
[Error] Unit1.pas(47): Cannot assign to a read-only property
[Error] Unit1.pas(47): Not enough actual parameters
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

gibi hatalar veriyor..
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: onmousemove,onmouseleave

Mesaj gönderen ertank »

Merhaba,

Alternatif yöntem TButton üzerinden yeni bir bileşen oluşturmak olabilir. Böylece daha rahat kullanılabilir. Ancak, büyük projelerde mümkün mertebe standart dışı bileşen kullanılmak istenilmediği için örnek standart bileşen üzerine kod kullanılarak oluşturulmuştur.

Kullandığınız Delphi sürümünü belirtmemişsiniz. Örnek Delphi 10.1 Update 2 ile hazırlanmıştır. Eski sürümlerde de normal koşullarda unit isimleri düzeltilerek çalışacaktır.
Dosya ekleri
button_onmouseenter-leave.rar
(1.27 KiB) 53 kere indirildi
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Re: onmousemove,onmouseleave

Mesaj gönderen tayc »

merhabalar arkadaşım, ben delphi 7 kullanıyorum, gönderdiğin örneği indirdim ama çalışmadı form hatası veriyor,
bu hata ile ilgili olarak ne yapabilirim, yardımcı olursan sevinirim.

iyi çalışmalar.......
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: onmousemove,onmouseleave

Mesaj gönderen ertank »

Form üzerinde tek bir buton var. Başka birşey yok.

- Yeni bir proje oluşturun.
- Form üzerine TButton cinsinden bir buton yerleştirin. Nerede durduğu önemli değil.
- Projeyi kaydedin.
- Delphi'yi kapatın.
- Kaydettiğiniz projenin Unit1.pas dosyasını silin.
- Yukarıda göndermiş olduğum örnekteki Unit1.pas dosyasını kaydettiğiniz proje dizinine kopyalayın.
- Delphi'yi açıp aynı projeyi tekrar açın.
- Unit1.pas dosyası içinde uses kısmında bulunan ünite isimlerini Delphi 7 şekillerine değiştirerek kaydedin.

Yukarıdaki işlemlerden sonra örneği çalıştırabiliyor olmanız gerekli.
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

onmousemove,onmouseleave

Mesaj gönderen tayc »

Yardımların için teşekkür ederim arkadaşım.

İyi çalışmalar.
Cevapla