Türkçe Karakter Problemi I ve İ harfleri.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Gk_imptob
Üye
Mesajlar: 84
Kayıt: 01 Kas 2005 12:34

Türkçe Karakter Problemi I ve İ harfleri.

Mesaj gönderen Gk_imptob »

Öncelikle herkese merhaba. Yaşadığım sorunu formda arattım fakat netice alamadım.Problemim büyük I ve İ harfiyle ilgili. Hazırladığım programda Adı ve soyadı kısımlarını büyük harflerle girilmesini istiyorum.Kullandığım database ise Firebird.Programımda Adı ve Soyadıyla ilgili TDBedit'in CharCase'ni UpperCase yaptım ve Capslock kapalı veya açık olsun büyük harf girişi yapılıyor.Yalnız sıkıntı Capslock kapalıyken i ve ı harflerini büyük yazmıyor.Bu iki harfin büyük yazması için capslock'ı açmam gerekiyor.Takıldığım nokta burası.Bütün font ayarlarını tukish_caracterset yaptım databasede gerekli türkçeleştirme ayarlarını yaptım fakat hala sorunum gideremedim ve en son çare olarak siz değerli forum üyelerine danışmak geldi.Birileri böyle bir sorunla karşılaştımı acaba.

Saygılarımla...

Herkese çok teşekkürler.
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Kod: Tümünü seç

function Upper(str : string) : string;
var
  i : Integer;
begin
  for i := 1 to length(str) do
    case str[i] of
      'i' : str[i] := 'İ';
      'ı' : str[i] := 'I';
      'ş' : str[i] := 'Ş';
      'ğ' : str[i] := 'Ğ';
      'ü' : str[i] := 'Ü';
      'ö' : str[i] := 'Ö';
      'ç' : str[i] := 'Ç';
    else
      str[i] := UpCase(str[i]);
    end;
  Result := str;
end;
edit in onExit inden bu fonksiyon u çağırabilirsin..
DeveloperToolKit

..::|YeşilMavi|::..
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

hocam bu fonksiyon ı karakterini güzelce I karakterine çeviriyor

ama editte uppercase açık olduğu için kullanıcı zaten i giremiyor bu otomatik olarak I karakterine dönüyor
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

uppercase in kapalı olduğunu varsaymıştım..
DeveloperToolKit

..::|YeşilMavi|::..
Gk_imptob
Üye
Mesajlar: 84
Kayıt: 01 Kas 2005 12:34

Mesaj gönderen Gk_imptob »

Yardımcı olmaya çalışan arkadaşlara teşekkür ediyorum. Lazio arkadaşımın dediği gibi edit'in onExit'ine verdiği komut satırını yazıp çalıştırdığım zaman aşağıdaki hata mesajını alıyorum.Bir yerde hata yapıyor gibiyim fakat nerde olduğunu bulamadım.Teşekkürler.

[Fatal Error] PROJE.dpr(6): Could not compile used unit 'PROJE.pas'
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Benzer olmakla birlikte farklı bir çözümde benden

Kod: Tümünü seç

Function BuyukHarf(Harf: Char): Char;
begin
     case Harf of
          'ı': Result:='I';
          'ğ': Result:='Ğ';
          'ü': Result:='Ü';
          'ş': Result:='Ş';
          'i': Result:='İ';
          'ö': Result:='Ö';
          'ç': Result:='Ç';
     else
         Result:=UpCase(Harf);
     end;
end;
yukarıdaki functionu editın onkeypress yordamına

Kod: Tümünü seç

Key:=BuyukHarf(Key);
şeklinde yazarsanız problem çıkmayacakdır.
Yukarıdaki çözümle arasındaki fark ise klavyeden tuşa basıldığı anda harfinizi büyük harfe çevirecekdir.
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Cevapla