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
Edit nesnesi borderstyle özelliği
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
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.
- 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.
- Ondan sonra Private kısmına gelip bu message procedure tanımını yapıcaz..
- Bunun üzerinde CTRL+ALT+C tuş kombinasyonlarına basarak veya manuel elle oluşturacağın procedure'u ekliyoruz.
- Geriye ne kaldı, Edit'e yazacakların. OnExit olayında yine aynı işlemi yapacaksın.
- Ama OnEnter olayında bu işi Delphi'nin mesajlarına bırakıp kendiliğinden yapılmasını sağlayacaksın.
- Başarılar...
- 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.

- 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;
Kod: Tümünü seç
private
procedure UMChangeBorder(var Msg: TMessage); message UM_CHANGEBORDER;
{ Private declarations }
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;
Kod: Tümünü seç
procedure TForm1.Edit1Exit(Sender: TObject);
begin
Edit1.BorderStyle := bsNone;
end;
Kod: Tümünü seç
procedure TForm1.Edit1Enter(Sender: TObject);
begin
PostMessage(Handle, UM_CHANGEBORDER, 0, LPARAM(Edit1));
end;
-
- Üye
- Mesajlar: 18
- Kayıt: 26 Eki 2006 01:56
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?
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?
-
- Üye
- Mesajlar: 18
- Kayıt: 26 Eki 2006 01:56