UPPERCASE DELPHI VE FIREBIRD
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
UPPERCASE DELPHI VE FIREBIRD
Herkese iyi geceler. Veri tabanında vachar tipindeki field charset = win1254 collate = pxw_turk olan bi field ım var. Bu field a bağlı cxdbtextedit var. editin charcase i ise ecUpperCase veri girilirken capslock kapalı ise ı harfine bastığımda küçük ı yazıyor i harfine bastığımda ise büyük I yazıyor. bu sorunu nasıl çözebilirim şimdididen teşekkürler.
Re: UPPERCASE DELPHI VE FIREBIRD
merhaba
örnek olarak bir edit kutusunun on keypress olayı aşağıdaki gibi yapılınca "ı" harfine basıldığında "I" şekliinde kutuya yazılıyor.
örnek olarak bir edit kutusunun on keypress olayı aşağıdaki gibi yapılınca "ı" harfine basıldığında "I" şekliinde kutuya yazılıyor.
Kod: Tümünü seç
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key='ı' then Key:='I';
end;
Re: UPPERCASE DELPHI VE FIREBIRD
akdatilla üstat cevabınız için çoook teşekkür ederim fakat bunu bi çoook forma uygulamak gerekiyor daha etkin bi çözüm yolu bulursam daha iyi olcak. mesela program başlat başlamaz capslock ı kodla açmayı düşündüm fakat oda tam çözüm değil bence.
Re: UPPERCASE DELPHI VE FIREBIRD
Bir programcı olarak sorunu maskelemek yerine sorunun kaynağını merak etmiyor musunuz?akdatilla yazdı:merhaba
örnek olarak bir edit kutusunun on keypress olayı aşağıdaki gibi yapılınca "ı" harfine basıldığında "I" şekliinde kutuya yazılıyor.Kod: Tümünü seç
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key='ı' then Key:='I'; end;
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Re: UPPERCASE DELPHI VE FIREBIRD
tabiki sorunun kaynağına inmek istiyorum o nedenle kodunu uygun bulmuyorum. Tamam buda bi çözüm yolu uzun da olsa ama dediğiniz gibi sorunun asıl nedeni ve asıl çözüm yolunu arıyorum.
Kod: Tümünü seç
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key='ı' then Key:='I';
end;
Re: UPPERCASE DELPHI VE FIREBIRD
Merhaba bu sorun bende de vardı bende şöyle bir çözüm üretmiştim.
ana forma bir ApplicationEvents nesnesi koyup, OnMessage olayına
yazmanız yeterli oluyor, tabi bu tüm projede basılan key leri upper olarak veriyor.
yalnız capslock tuşuna hızlıca 2 kez basıp aç/kapa yaparsanız kod yanlış çalışır dikkat etmek lazım.
Kod: Tümünü seç
procedure SetVKeyState(vkey: Byte; down: Boolean);
// This is a routine to help doing a key change
var
keys: TKeyboardState;
begin
GetKeyboardState(keys);
if Down then
keys[vkey] := keys[vkey] or $80
else
keys[vkey] := keys[vkey] and $7F;
SetKeyboardState(keys);
end;
Kod: Tümünü seç
if (Msg.message =WM_KEYDOWN) then begin
SetvKeyState(VK_CAPITAL, (Msg.Message = WM_KEYDOWN));
end;
yalnız capslock tuşuna hızlıca 2 kez basıp aç/kapa yaparsanız kod yanlış çalışır dikkat etmek lazım.
Re: UPPERCASE DELPHI VE FIREBIRD
Aslında sorunun kaynağı benim için dert değil, sadece basit bir çözüm yolu göstermek istedim. Vermiş olduğum örnek kullanılarak edit bileşenine biraz çalışma ile monte edilebilir.csunguray yazdı:Bir programcı olarak sorunu maskelemek yerine sorunun kaynağını merak etmiyor musunuz?akdatilla yazdı:merhaba
örnek olarak bir edit kutusunun on keypress olayı aşağıdaki gibi yapılınca "ı" harfine basıldığında "I" şekliinde kutuya yazılıyor.Kod: Tümünü seç
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key='ı' then Key:='I'; end;
Ancak bunu anlatmayı o kadar kolay bulmuyorum, fazla vaktim de yok.
Re: UPPERCASE DELPHI VE FIREBIRD
abiler yokmu bi çözüm yolu.
Re: UPPERCASE DELPHI VE FIREBIRD
merhaba
cxTextEdit.pas dosyasında DoEditKeyPress prosedürü var.
o prosedürün içerisinde satırının altına
şeklinde kodları yerleştirirsen sorunun çözülür sanıyorum.
cxTextEdit.pas dosyasında DoEditKeyPress prosedürü var.
o prosedürün içerisinde
Kod: Tümünü seç
inherited DoEditKeyPress(Key);
Kod: Tümünü seç
if Properties.CharCase=ecUpperCase then
begin
if Key='ı' then Key:='I';
end;