function Tevraki.BuyukHarf(Harf: Char): Char;
begin
case Harf of
'ı': Result := 'I';
'ğ': Result := 'Ğ';
'ü': Result := 'Ü';
'ş': Result := 'Ş';
'i': Result := 'İ';
'ö': Result := 'Ö';
'ç': Result := 'Ç';
else
Result := UpCase(Harf);
end;
end;
satırına dikkat et
result un tip char upcase fonksiyonu ise geriye widechar döndürüyor.
char<>widechar olduğu içinde derleme sırasında sana bu olmaz diyor..
çözüm basit kendi fonksiyonundaki (ve tabi kullandığın diğer yerlerdeki) char ları widechar yapacaksın. yada upcase yerine başka bir fonksiyon kullanacaksın.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
function Tevraki.BuyukHarf(Harf: wideChar): wideChar;
begin
case Harf of
'ğ': Result := 'Ğ';
'ü': Result := 'Ü';
'ş': Result := 'Ş';
'i': Result := 'İ';
'ö': Result := 'Ö';
'ç': Result := 'Ç';
'ı': Result := 'I';
else
Result :=WideUpperCase(Harf)[1];
end;
end;
Berdem yazdı:Widechar Char a nasıl convert ederiz.
mrmarman'nın verdiği kodlara bakarsanız orada ansi olarak çıktı veren bir fonksiyon mevcut. Türkçe için Unicode kullanmanız gereksiz. Ansi yeterli. Ama beraberinde arapça, çince gibi şeyler de girecekse o zaman iş değişir.
Çok teşekkür ediyorum. Delphi 7 de çalışan kodlları delphi 2007 ye uygulamaya çalışıyorum. Delphi 7 çalışan bu kodda ilk hatayı char olarak kabul edilen ş,ğ,ç,ı, gibi karakterler delphi 2007 de ise sadece unicode olarak kabul ediliyor.yani Result := AnsiUpperCase(Harf)[1]; gelmeden hatayı "ğ" üzerinde Incompatible types: 'Char' and 'WideChar' hatası veriyor. Fonksiyonu düzeltince keypress char ataması yapmak zorundasınız. Öyle olunca widechar char a dönüştürmeniz gerekli.
Berdem yazdı:delphi 2007 de ise sadece unicode olarak kabul ediliyor.
Bunun Delphi 2007 ile alakası yok. Delphi 8'den sonra artık editörün karakter kodlamasını değiştirebiliyorsunuz. Muhtemelen dosyanızın karakter kodlaması unicode veya türevi bir şeydir. Editöre sağ tuşla tıklayıp "File Format" seçeneğinden unicode ya da utf-8 olan yeri türkçe ile uyumlu bir multi-karakter kodlamasına çevirebilirsiniz, windows-1254 gibi...
fatihtolgaata yazdı:Editöre sağ tuşla tıklayıp "File Format" seçeneğinden unicode ya da utf-8 olan yeri türkçe ile uyumlu bir multi-karakter kodlamasına çevirebilirsiniz.
Hatta bu soruyu sormadan önce file formatı farketmiştim. Tekrardan yeniden kontrol ettim olmuyor. File formattaki hepsi ile denedim. İlla "ğ" hata veriyor. Widechar olarak kabul ettiğinizde sorun çıkmıyor. Ama mutlaka char lazım...
Hımm. Sadece 'ğ' harfinde sorun olması garip. Görünüşe göre bir bug bulmuş gibisin. Kendim bir kaç deneme yapıp bug olduğunu ortaya çıkarabilirsem Highlander'ın QC'sine girebilirim.
Çok ilginç. Delphi 2007 şu an kurulu değil deneyemiyorum ama Delphi 2007+Update2 = Highlander olarak biliyorum. Yani ortada breaking sürüm söz konusu değil. Eğer update'lerinizi yaptı iseniz bende çalışan sizde de çalışması gerek, eğerki FileFormat ANSI ise. Aksi durumda aklıma başka bir şey gelmiyor.
@fatihtolgaata sanırım sorunu yanlış anladın.
senin gönderdiğin kodda çalışmaması için bir neden yok.
hepsinin tipi aynı.
arkadaşın problemi char bir değişkene widechar tipinde bir değer atanması..
yoksa benmi birşeyi kaçırdım.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim