Dışarıdan istenen font un istenen karekterini richedit e yaz
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Dışarıdan istenen font un istenen karekterini richedit e yaz
Selam Arkadaşlar !
Benim meramım richEdite 1/2 v.b kesirli şeklinde yazdırma.
Aynı klasörde birkaç tane font tiplerim var bu font type yi butonla seçtirip butonun üzerinde mesela 1/2 olsun(bu 1/2 arka planda oluşturulup) tıklayınca yazılacak. (Yani font karekterleri içerisindeki harf veya rakam)
Dışarıdan seçtireceğim bir fontu buton halinde seçtirip nasıl ekrana yazdıracağım ve klavyeden de devam edebileceğim.Yalnız RichEdit içerisine (problemim richEdit) ve yazılanı seçtirerek font seçimi şeklinde değil...
herkese kolay gelsin.....
Benim meramım richEdite 1/2 v.b kesirli şeklinde yazdırma.
Aynı klasörde birkaç tane font tiplerim var bu font type yi butonla seçtirip butonun üzerinde mesela 1/2 olsun(bu 1/2 arka planda oluşturulup) tıklayınca yazılacak. (Yani font karekterleri içerisindeki harf veya rakam)
Dışarıdan seçtireceğim bir fontu buton halinde seçtirip nasıl ekrana yazdıracağım ve klavyeden de devam edebileceğim.Yalnız RichEdit içerisine (problemim richEdit) ve yazılanı seçtirerek font seçimi şeklinde değil...
herkese kolay gelsin.....
En son menderes tarafından 28 Eki 2005 02:16 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Dışarıdan seçtireceğim bir font name mesela Arial olsun bu karekterin C harfini buton halinde forma yazdım, kullanıcı da bu butona tıkladığında RichEdit içerisine a yazacak. .1/2 de üç adet font karekteri mevcut bunuda arka planda üstte 1 ortada çizgi gibi altta da (ssSuperscript ssSubscript gibi) 2 rakamı.Yine kullanıcı buna tıkladığı zaman 1/2 richedit e yazacak ve isterse bu rakamları değiştirebilecek. İstediğim bu. Burada görüldüğü gibi aslında iki soru var,
İlgine çok teşekkür ederim mucar kardeş... Yardımlarınızı bekliyorum arkadaşlar.....Teşekkür ederim....
İlgine çok teşekkür ederim mucar kardeş... Yardımlarınızı bekliyorum arkadaşlar.....Teşekkür ederim....
Henüz bir cevap gelmedi, bir örnek daha vereyim,Mesela kendimiz bir harf grubu oluşturup istediğimiz gibi RichEdit 'e mouse ile yazı yazdırabiliriz.
Bu örnek te harfleri kendimiz oluşturduk.
Benim istediğim var olan fontları da kullanmayacağım, başka bir yerde kendi hazırladağım bir font type leri var. Bunları projemde bir klasöre koyup oradan kullanacağım.
Form a bir butonlar grubu koyacağım, bu butonların da üzerinde bu font type lerinden seçtiğim karekterler olacak, mesela tıklanan buton 'Arial Font' i seçip buton üzerinde de A harfi olsun yazdıracağı yer ise RichEdit,
RichEdit içerisine A harfi yazılacak. Sonra da klavyeden devam edebilecek bu yazım işine..... Genelde örnekler seçip te yapmak bu işin kolayı. Aslında basit ama takılınca zor oluyor tabi.....
Arkadaşlar yardımlarınızı bekliyorum. Teşekkürler şimdiden.
Kod: Tümünü seç
var
Form1: TForm1;
// Global değişkenimizi tanımlayalım
alfabeButon : array[0..31] of TButton; //Harf buttonları
implementation
{$R *.dfm}
procedure TForm1.harfbutonuolustur(Sender : TObject);
var
i : Integer;
alfabe : array[0..31] of char;
begin
alfabe := 'ABCÇDEFGĞHIİJKLMNOÖPQRSŞTUÜVWXYZ';
for i:=0 to 31 do
begin
alfabeButon[i] := TButton.Create(Form1);
alfabeButon[i].Parent := Panel1;
alfabeButon[i].Height := 26;
alfabeButon[i].Width := 26;
alfabeButon[i].Left := 4 + 26*(i mod 16);
alfabeButon[i].Top := 4 + 26*(i div 16);
alfabeButon[i].Caption := alfabe[i];
alfabeButon[i].Font.Style := [fsBold];
alfabeButon[i].OnClick := SpeedButton1Click;
end;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject); // bu procedure yi elle oluşturuyoruz.
var
Harf:string;
begin
Harf:=TButton(Sender).Caption;//Basılan Butonun gösterdiği harfin alınması
//TButton(Sender).Enabled:=False;//Basılan butonun Pasif hale getirilmesi
RichEdit1.AddFormatText(harf);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
harfbutonuolustur(Sender);
end;
Benim istediğim var olan fontları da kullanmayacağım, başka bir yerde kendi hazırladağım bir font type leri var. Bunları projemde bir klasöre koyup oradan kullanacağım.
Form a bir butonlar grubu koyacağım, bu butonların da üzerinde bu font type lerinden seçtiğim karekterler olacak, mesela tıklanan buton 'Arial Font' i seçip buton üzerinde de A harfi olsun yazdıracağı yer ise RichEdit,
RichEdit içerisine A harfi yazılacak. Sonra da klavyeden devam edebilecek bu yazım işine..... Genelde örnekler seçip te yapmak bu işin kolayı. Aslında basit ama takılınca zor oluyor tabi.....
Arkadaşlar yardımlarınızı bekliyorum. Teşekkürler şimdiden.
- fatihtolgaata
- Üye
- Mesajlar: 382
- Kayıt: 04 Mar 2004 09:46
- Konum: K.çekmece / İstanbul
- İletişim:
Kusura bakma, noktalama işaretlerinden zannedersem, anlayabildiğim kadarı ile cevaplayayım.
Eğer word'deki equation editor gibi bir formül editörü yapmak istiyorsan, ve bu formül editöründe 1/2 gibi kesirli ifadeler yapmak istiyorsan richedit sana dar gelir
Bu iş için belki bileşenler mevcuttur ama ben olsaydım şu şekilde yapardım. Öncelikle bu işi yapacak bir renderleme sistemi kurmalısın. Örnek olarak synEdit bileşeni RichEdit'e benzer ama uzaktan yakından akrabası değildir. Tamamen karakterleri kendisi form üzerine çizdirir. İşte bu bileşen gibi bazı bileşenler, standart bileşenler yerine kendi çizim fonksiyonlarını kullanırlar. Sen de bunun gibi GDI ya da delphi'deki tabirle Canvas ile bu işini yapabilirsin. Ama uğraşmak istemiyorsan bileşen dünyası geniş.
Eğer meseleyi daha iyi açıklayıp, anlatmaya çalışırsan benim gibi buradaki herkes sana yardım etmeye hazırdır, cevap vermeye çalışırız.
vesselam

Eğer word'deki equation editor gibi bir formül editörü yapmak istiyorsan, ve bu formül editöründe 1/2 gibi kesirli ifadeler yapmak istiyorsan richedit sana dar gelir

Eğer meseleyi daha iyi açıklayıp, anlatmaya çalışırsan benim gibi buradaki herkes sana yardım etmeye hazırdır, cevap vermeye çalışırız.
vesselam
Neyi anlatamadığımı bende anlatamıyorum herhalde arkadaşlar...
RichEdit 'e hiç te dar gelmez kafanı yorma, yukarıda verdiğim örnekte harfler yerine bu denilen rakamları da koyarım. O zaman font kullanmanın bir anlamı kalmıyor.
Sadece şunu anlasam yeterli. (gerçi az kaldı onada)
Şimdi biz yazılmış bir kelime grubunu RichEdit'te seçip fontunu değiştirebiliyoruz, bunun örnekleri her yer de var. Benim dediğim ben fontumu projemle aynı klasöre dışarıdan getiriyorum. Bu font un bir harfini forma koyacağım butonun üzerine yazacağım ona da 'A' dedim, tıklayınca RichEdit'e bu harf yazacak, klavyeden de devam edecem yazmaya... Mesela dışarıdan gelen font type fences.ttf diyelim bu windows da yok. Projemde kullanacağım ama. (Burada font deyince anlaşılır diye name size style diye yazmıyorum herhalde kastettiğim anlaşılıyor.)
Tekrar teşekkür ederim ilgilenen ilgilenmeyen tüm arkadaşlara.
Ama ben Ah ettim Jedi nin RichEdit'ini kullanıyorum ve oraya da bu 1/2 i yazdıracam. Kullanıcı da bu 1/2 yi isterse 3/4 v.s olarak yazdıracak.
Tekrar Allah Razı olsun bu foruma emeği geçenlerden......
RichEdit 'e hiç te dar gelmez kafanı yorma, yukarıda verdiğim örnekte harfler yerine bu denilen rakamları da koyarım. O zaman font kullanmanın bir anlamı kalmıyor.
Sadece şunu anlasam yeterli. (gerçi az kaldı onada)
Şimdi biz yazılmış bir kelime grubunu RichEdit'te seçip fontunu değiştirebiliyoruz, bunun örnekleri her yer de var. Benim dediğim ben fontumu projemle aynı klasöre dışarıdan getiriyorum. Bu font un bir harfini forma koyacağım butonun üzerine yazacağım ona da 'A' dedim, tıklayınca RichEdit'e bu harf yazacak, klavyeden de devam edecem yazmaya... Mesela dışarıdan gelen font type fences.ttf diyelim bu windows da yok. Projemde kullanacağım ama. (Burada font deyince anlaşılır diye name size style diye yazmıyorum herhalde kastettiğim anlaşılıyor.)
Tekrar teşekkür ederim ilgilenen ilgilenmeyen tüm arkadaşlara.
Ama ben Ah ettim Jedi nin RichEdit'ini kullanıyorum ve oraya da bu 1/2 i yazdıracam. Kullanıcı da bu 1/2 yi isterse 3/4 v.s olarak yazdıracak.
Tekrar Allah Razı olsun bu foruma emeği geçenlerden......
Yani şu an için sorun fontlarınızı program içine yüklemek mi
Eğer böyleyse fontları windows/fonts klasörüne atmadan programdan kullanabilmeniz için şu şekilde bir yöntem var;
Daha sonra da dediğiniz gibi istediğiniz kısımlarda seçim yapıp fontunu değiştirerek sonuca ulaşabilirsiniz.

Kod: Tümünü seç
procedure TForm1.FormCreate(Sender: TObject);
begin
AddFontResource('c:\FONTS\MyFont.TTF');
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;
procedure TForm1.FormClose (Sender: TObject; var Action: TCloseAction);
begin
RemoveFontResource('C:\FONTS\MyFont.TTF');
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
Mucar kardeş önce ilgilendiğin için teşekkür ederim ama dikkat edersen sorum font yüklemeyle değil yüklemeyi biliyorum. Sorun bu yüklemeden sonraki kullanımda.....
Mesela Edit.Text te sorun yok onda olabiliyor, sorun RichEdit te;
dediğimiz zaman Edit1.Text e ekleyebiliyor ve klavyeden müdahale ederek yazabiliyoruz.
Mesela Edit.Text te sorun yok onda olabiliyor, sorun RichEdit te;
Kod: Tümünü seç
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
AddFontResource(pchar(ExtractFilePath(ParamStr(0)+'fences.TTF')));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
Edit1.Font.Name:='fences';
end;