Edit nesnesi borderstyle özelliği

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
pandora303
Üye
Mesajlar: 18
Kayıt: 26 Eki 2006 01:56

Edit nesnesi borderstyle özelliği

Mesaj gönderen pandora303 »

Form daki edit1 nesnesinin borderstyle özelliğini bsnone olarak ayarladım ve Edit1 in Enter event ına edit1.borderstyle:=bsSingle,
Exit event ına da Edit1.bordestyle:=bsNone yazdım ancak çalışma anında Edit1 nesnesi seçiliyken cursor görünmüyor ve text i seçemiyorum. Çözüm yolu nedir bilen var mı?
VB 6.0 ın gözünü seveyim :) orda ne kolay oluyordu
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

OnEnter değilde OnKeyPress Event'ına yazsan hocam istediğin olacak galiba
Bu muazzam programın içinde ben neyim?, sadece bir label..
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

- OnKeyPress olmaz çünkü buradaki kontrol TEdit'e giriş ve çıkış anlarındaki değişimle tetileniyor.

- Bunu yapmak Delphi'de biraz sancılı olabilir ama VB ile karşılaştırıldığında münferit bir durum seçiciliğini etkilememeli. 8)

- Aşağıdaki sayacaklarımı sırasıyla yaparsan istediğin olacaktır.

- Öncelikle en tepedeki interface ve uses satırlarını takiben aşağıdaki mesaj tanımını ekleyeceksin.

Kod: Tümünü seç

const
  UM_CHANGEBORDER = WM_USER + 42;
- Ondan sonra Private kısmına gelip bu message procedure tanımını yapıcaz..

Kod: Tümünü seç

  private
    procedure UMChangeBorder(var Msg: TMessage); message UM_CHANGEBORDER;
    { Private declarations }
- Bunun üzerinde CTRL+ALT+C tuş kombinasyonlarına basarak veya manuel elle oluşturacağın procedure'u ekliyoruz.

Kod: Tümünü seç

procedure TForm1.UMChangeBorder(var Msg: TMessage);
var
  Edit:  TEdit;
begin
  Edit := TEdit(Msg.lparam);
  with Edit do begin
    BorderStyle := bsSingle;
    Color       := clWindow;
    SelStart    := Length(Text);
  end;
end;
- Geriye ne kaldı, Edit'e yazacakların. OnExit olayında yine aynı işlemi yapacaksın.

Kod: Tümünü seç

procedure TForm1.Edit1Exit(Sender: TObject);
begin
  Edit1.BorderStyle := bsNone;
end;
- Ama OnEnter olayında bu işi Delphi'nin mesajlarına bırakıp kendiliğinden yapılmasını sağlayacaksın.

Kod: Tümünü seç

procedure TForm1.Edit1Enter(Sender: TObject);
begin
  PostMessage(Handle, UM_CHANGEBORDER, 0, LPARAM(Edit1));
end;
- Başarılar...
Resim
Resim ....Resim
pandora303
Üye
Mesajlar: 18
Kayıt: 26 Eki 2006 01:56

Mesaj gönderen pandora303 »

onkeypress event ına yazarsam da olmaz ki ben mouse ile tıklandığında da tab la seçildiğinde de borderstyle değişsin istiyorum.
ama şöyle yapılabilir sanıyorum Edit1 in mouse click event ına yazarım ayrıca form1 in onkeypress event ına da basılan key in Tab olup olmadığını ve Edit1 in focused özelliğini kontrol edebilirim. True ise borderstyle bsSingle yapılabilir de...
Diğeri neden çalışmıyor?
pandora303
Üye
Mesajlar: 18
Kayıt: 26 Eki 2006 01:56

Mesaj gönderen pandora303 »

Üstad sağolasın dediklerini yaptım çalışıyor
Cevapla