Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Türkçe karakter
#1
Merhaba;

Kullanıcının Edite girdiği harflerin küçük harf olmasını sağlamak istiyorum, fakat ilk harf büyük olacak anacak ilk harfte şöyle bir sıkıntı çıkıyor "İ" olası gerekirken "ı" olarak yazıyor Türkçe karakter ilgili sorun var utf8 araştırdım fakat firemonkeyde çözüm bulamadım, yardımlarınızı rica ederim.

function degis(Harf: String): String;
const
  Buyuk: String = 'ABCÇDEFGGHIİJKLMNOÖPRSŞTUÜVYZQW';
  Degis: String = 'abcçdefgğhıijklmnoöprsştuüvyzqw';
var
  N: Integer;
begin
  for N := 1 to Length(Buyuk) do
    while Pos(Buyuk[N], Harf) > 0 do
      Harf[Pos(Buyuk[N], Harf)] := Degis[N];
  Result := AnsiUpperCase(Harf[1]) + Copy(Harf, 2, Length(Harf));
end;


procedure TForm1.EditChangeTracking(Sender: TObject);
begin
  if Edit.Text.Length > 0 then
  begin
    Edit1.Text := degis(Edit1.Text);
  end;
end;
Hayat bazen güzel olabiliyor.
Cevapla
#2
Belki daha efektif yazılabilirdi ama şöyle bir fonksiyon işinizi görebilir;

function LowerCaseTR(aString: String; aBuyukBasHarf: Boolean = True): String;
const
  K = 'aeirlıdknmyustboüşzghçğcvpöfjwx';   // Harfleri böyle sıralanmasının sebebi
  B = 'AEİRLIDKNMYUSTBOÜŞZGHÇĞCVPÖFJWX';   // Bunların Türkçedeki kullanım sıklıklarına göredir.
var
  I: Integer;                              // Sayaç, indis değişkeni
  X: Integer;                              // Bulunan harfin alfabedeki indis numarası
begin
  Result := aString;
  for I := 1 to Result.Length do begin     // metni harf harf geziyoruz. (Bir rakam ile de karşılaşabiliriz...)
      X := pos(Result[I], B);              // POS, büyük / küçük harfe duyarlıdır (Case Sensitive). Yani büyükse küçüğü, küçükse büyüğü bulmaz.
      if (X > 0) then Result[I] := K[X];   // Bulunan karakter alfabemizde varsa küçüğüyle yer değiştiriyoruz.
  end;
  if (aBuyukBasHarf = True) then
      for I := 1 to Result.Length do begin // Metni harf harf geziyoruz
          X := pos(Result[I], K);
          if (X > 0) then begin
              Result[I] := B[X];
              Exit;                        // İlk harfi büyüttükten sonra çıkıyoruz...
          end;
      end;
end;
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#3
Allah razı oldun, hakkınızı helal edin. Açıklamalar için ayrıca teşekkür ederim.
Hayat bazen güzel olabiliyor.
Cevapla
#4
Rica ederim, ben de sayenizde aşağıdakinin farkına varmış oldum;

oOk8bm.jpg

Kaynak;

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Kaynak URL;

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  IOS unidac Türkçe karakter sorunu hassur 8 2.013 26-11-2016, Saat: 11:51
Son Yorum: hassur



Konuyu Okuyanlar: 1 Ziyaretçi