Selam dostlar, uzun zamandır retro programlama ile uğraşıyorum ve geçenlerde eski bir projemi Turbo Pascal 7.0 ile tekrar derlemeye karar verdim. Programım BGI grafik modunda (VGA 640x480) çalışıyor ve ekrana metin yazdırmam gerekiyor. Ancak OutText ve OutTextXY komutlarıyla yazdırdığım Türkçe karakterler (ç, ğ, ı, ö, ş, ü) düzgün görünmüyor, yerine ya boşluk ya da anlamsız semboller çıkıyor. Normal metin modunda (text mode) sorun yok, sadece grafik modda oluyor. Font olarak default fontu kullanıyorum (bitmap font). Bu sorunu çözmek için ne yapabilirim? Özel bir font dosyası mı yüklemem gerekiyor, yoksa karakter setini mi değiştirmeliyim? Daha önce bu sorunu yaşayan ve çözen biri varsa yardımcı olabilir mi? Şimdiden teşekkürler, iyi forumlar!
Turbo Pascal 7.0'da Grafik Modda Türkçe Karakter Sorunu (Çözüm Arıyorum)
Cevaplar (2)
02.08.2026 19:19
Merhaba, bu sorunla ben de çok uğraştım. Turbo Pascal'ın grafik modda kullandığı varsayılan bitmap font, genişletilmiş ASCII karakterlerini (128-255 arası) içermiyor. Bu yüzden Türkçe karakterler görüntülenemiyor. Çözüm olarak iki seçenek var: Birincisi, kendi karakter setini tanımlamak (örneğin, bir dizi ile her karakterin piksel desenini çizmek) ama bu oldukça zahmetli. İkincisi ve daha pratik olanı, grafik modda metin yazdırmak için vektörel font kullanmak. TP 7.0 ile birlikte gelen .CHR dosyaları (örneğin TRIP.CHR, SANS.CHR, LITT.CHR) vektörel fontlardır ve bu fontlar genişletilmiş ASCII karakterlerini destekler. SetTextStyle prosedürünü kullanarak fontu değiştirebilirsiniz. Örnek kod:
```pascal
uses Graph;
var gd, gm: integer;
begin
gd := Detect;
InitGraph(gd, gm, 'C:\TP\BGI');
SetTextStyle(TriplexFont, HorizDir, 2);
OutTextXY(100, 100, 'Türkçe karakterler: ç ğ ı ö ş ü');
ReadLn;
CloseGraph;
end.
```
Bu şekilde TriplexFont kullanarak Türkçe karakterleri sorunsuz yazdırabilirsin. Ancak dikkat: vektörel fontların boyutu büyük olabilir ve bazı durumlarda karakterlerin arası açık olabilir. Ayrıca, eğer farklı bir font istersen, SANS.CHR veya GOTH.CHR da deneyebilirsin. Umarım işe yarar, kolay gelsin!
```pascal
uses Graph;
var gd, gm: integer;
begin
gd := Detect;
InitGraph(gd, gm, 'C:\TP\BGI');
SetTextStyle(TriplexFont, HorizDir, 2);
OutTextXY(100, 100, 'Türkçe karakterler: ç ğ ı ö ş ü');
ReadLn;
CloseGraph;
end.
```
Bu şekilde TriplexFont kullanarak Türkçe karakterleri sorunsuz yazdırabilirsin. Ancak dikkat: vektörel fontların boyutu büyük olabilir ve bazı durumlarda karakterlerin arası açık olabilir. Ayrıca, eğer farklı bir font istersen, SANS.CHR veya GOTH.CHR da deneyebilirsin. Umarım işe yarar, kolay gelsin!
02.08.2026 19:52
Dostum, synthhacker21'in önerisi gerçekten işe yaradı! TriplexFont kullandım ve tüm Türkçe karakterler artık düzgün görünüyor. Ayrıca, font dosyasının yolunu doğru ayarlamak önemli, yoksa hata alıyorsun. Ben de SetTextStyle ile font boyutunu ayarladım, gayet güzel çalışıyor. Çözüm için teşekkürler, bu konu kilitlenebilir. İyi forumlar!
Bu konuya cevap yazabilmek için retro topluluğumuza üye olmalı veya giriş yapmalısınız.
İlgili Konular & Benzer Paylaşımlar
C++'ta vektörlerle bellek sızıntısı yaşıyorum, delete[] kullanmama rağmen çözemedim
Kategori: Programlama
Windows 98'de Turbo Pascal 7.0 ile fare sürücüsü (mouse driver) nasıl yüklenir?
Kategori: Programlama
PIC16F628A ile C'de RF alıcı-verici protokolü: Manchester kodlama sorunu
Kategori: Programlama