Przeglądarka Czcionek w DELPHI

0

Mam ogromną prośbę o udzielenie mi wskazówek na poniższe pytania (chociaż w części). Wiem, że większość z Was zna się dobrze na programowaniu, i że będziecie w stanie mi pomóc.

Chciałbym napisać program: Przeglądarkę do czcionek (TrueType), ale nie tych zainstalowanych w systemie (katalog Fonts), tylko czcionek zgromadzonych w katalogu programu (w formie plików, np. Arial.TTF, itd.).

W związku z powyższym mam kilka pytań:

  1. Jak sprawić, aby po wybraniu nazwy pliku z czcionką z listy TListBox), czcionka została wyświetlona we własnym programie np. w TImage?
  2. Jak odwołać się do nagłówka czcionki i uzyskać informacje takie jak: nazwa kroju, rozmiar pliku, wersja, informacje autorskie, itp. ?
  3. Jak skopiować wybrany plik z czcionką do katalogu systemowego Fonts ?

Za wszelkie wskazówki z góry wszystkim dziękuję.
Bardzo bym prosił o szczegółowe tłumaczenie, gdyż jestem laikiem i nie wiem, czy będę w stanie wszystko zrozumieć.

Pozdrawiam i czekam na odpowiedzi
RYGAR

0

Bylo w FAQ chyba nietypowe czcionki w aplikacji poczytaj ;)

AMP Font Viewer 3.70
http://www.atomic-labs.be/soft.php?subcat=dtp

jest juz taki programik mozesz sie posilkowac ;)

w ogole google > fontviewer delphi source lub cos w ten desen ;)

0

możesz trochę pooszukiwać i np. dodać dany font do fontów windowsa AddFontResource a potem go usunąć RemoveFontResource albo skorzystać z AddFontResourceEx i instalować je tylko "dla siebie" - teraz możesz spokojnie wyświetlić jakiś text przy pomocy danej czcionki. (to masz na 1 i 3)
tu masz jak odczytać nagłówek ttfa http://groups.google.com/group/borland.public.delphi.graphics/tree/browse_frm/thread/1cc0779051be467/cf2f18223eb5316c?rnum=1&hl=pl&q=delphi+font+file+header&_done=%2Fgroup%2Fborland.public.delphi.graphics%2Fbrowse_frm%2Fthread%2F1cc0779051be467%2Ffc0927f85252a346%3Flnk%3Dst%26q%3Ddelphi%2Bfont%2Bfile%2Bheader%26rnum%3D5%26hl%3Dpl%26#doc_fc0927f85252a346

0
Misiekd napisał(a)

możesz trochę pooszukiwać i np. dodać dany font do fontów windowsa AddFontResource a potem go usunąć RemoveFontResource albo skorzystać z AddFontResourceEx i instalować je tylko "dla siebie"...

Fajny pomysł, ale mam problem ze wrzuceniem czcionki za pomocą instrukcji AddFontResource. Napisałem prosty programik, który po kliknięciu na Buttonie powinien wrzucić wskazaną czcionkę do katalogu systemowego Fonts, ale gdy sprawdzam zawartość tego katalogu, to tej czcionki tam nie ma (również po odświeżeniu katalogu).

Oto ten kod:

procedure TForm1.Button1Click(Sender: TObject);
var a :Integer;
begin
Windows.AddFontResource('C:\FONTY\aladdin.ttf');
a := Windows.AddFontResource('C:\FONTY\aladdin.ttf');
Edit1.Text := IntToStr(a);
end;

Zmienna 'a' zawiera wartość: 1;

Proszę o dalszą pomoc.

Pozdrawiam
RYGAR

0
Rygar napisał(a)

mam problem ze wrzuceniem czcionki za pomocą instrukcji AddFontResource. Napisałem prosty programik, który po kliknięciu na Buttonie powinien wrzucić wskazaną czcionkę do katalogu systemowego Fonts, ale gdy sprawdzam zawartość tego katalogu, to tej czcionki tam nie ma (również po odświeżeniu katalogu).

a kto powiedział, że ta czcionka będzie w folderze czcionek?? - ona dodaje czcionkę do "zasobów" windowsa a nie kopiuje plik - może wypadało by poczytać najpierw trochę http://msdn2.microsoft.com/en-us/library/ms534231.aspx :>

0

Misiekd napisał:

...ona dodaje czcionkę do "zasobów" windowsa a nie kopiuje plik - może wypadało by poczytać najpierw trochę...

Przepraszam jeśli mój problem Cię tak bardzo zraził, ale sam poprzednio napisałeś:

Misiekd napisał:

teraz możesz spokojnie wyświetlić jakiś text przy pomocy danej czcionki. (to masz na 1 i 3)

A więc udzieliłeś mi odpowiedzi na moje 3 pytanie, które brzmiało: 3. Jak skopiować wybrany plik z czcionką do katalogu systemowego Fonts ? A ponieważ nie znam się za dobrze na programowaniu (stąd też swoje pytania kieruję tu na Forum), więc nie wiedziałem, że ta instrukcja dodaje czcionki do zasobów, tylko myślałem, że właśnie kopiuje.
Teraz już będę wiedział. Dziękuję za wszelkie wskazówki. Mam co prawda jeszcze jedno pytanie, ale boję się je tu zadać, bo znów ktoś mi napisze, że wypadałoby sobie poczytać. Problem w tym, że nie znam angielskiego i niewiele by mi to pomogło.

Jeszcze raz dziękuję za chęci.

Z poważaniem
RYGAR

0

Jak używasz funkcji, której nie znasz i coś Ci nie działa to chyba logiczne, że trzeba zacząć od opisu tejże funkcji
operacje na plikach: http://www.scip.be/index.php?Page=ArticlesDelphi08&Lang=EN

a co do znjomości angielskiego to bez niej będzie Ci baarrdzo ciężko - zauważ, że większość dokumentacji jest w tym właśnie języku...

0

A więc z AddFontResource poradziłem już sobie. Wszystko mi dobrze działa. Co do funkcji, to oczywiście zgadzam się, że trzeba zacząć od zapoznania się z jej opisem i tak też wielokrotnie robię. Z angielskiego coś tam kumam piąte przez dziesiąte. To nie jest tak, że kompletnie nic nie rozumiem. Wielokrotnie właśnie czerpię z pomocy dostępnej w Delphi, jednak nie wszystko jest dla mnie zrozumiałe. Przede wszystkim, najwięcej trudności sprawiają mi parametry funkcji. Wiadomo, że instrukcje (nie wszystkie, ale przeważnie) wywołuje się z różnymi parametrami, a to trzeba po prostu mieć dobrze opanowane w praktyce.

Chciałbym jeszcze odnieść się do programu, którego link podałeś poprzednio, a który odczytuje nagłówek pliku .TTF. Program oczywiście działa, ale zauważyłem, że z niektórych czcionek źle odczytuje ich nazwę kroju. Dla jednej czcionki efektem było brak nazwy, a z kolei w innej czcionce nazwa była zupełnie inna niż nazwa wewnętrzna czcionki. W obu przypadkach nazwa jest poprawnie widoczna po uruchomieniu podglądu czcionki.
Oczywiście jest to dla mnie dość trudny problem do rozwiązania, a jak wiadomo, żeby można było zrobić przeglądarkę czcionek, to muszę odwoływać się do jej wewnętrznej nazwy, a nie nazwy pliku.

Tak więc, czym to może być spowodowane i jak ewentualnie rozwiązać ten problem?

Pozdrawiam
RYGAR

0

jakie fonty (jak możesz to np. podeślij na misiekd(małpka)poczta(kropka)pl)? A spowodowane to może być niestandardowym plikiem czcionki

0

Czcionki, z którymi jest problem z nazwą (podejrzewam, że jest takich więcej), są dostępne na stronie www.fonts.pl

Pierwsze dwie, o których poprzednio pisałem, to:

  1. http://www.fonts.pl/search/aladdin/ {tu w programie wychodzi pusta nazwa}
  2. http://www.fonts.pl/search/18th%20century/ {tu wychodzi nazwa New a powinno być: 18thCentury}

A z kolei z tą czcionką nie ma żadnych problemów: http://www.fonts.pl/search/starcraft/

Pozdrawiam
RYGAR

0

wygląda na to, że nie działa bo jest nie do końca dobrze napisany :p - trzeba by prześledzić dokładnie co się tam dzieje.
Jeśli chcesz się na poważnie zająć tym tematem to zacznij od http://www.microsoft.com/typography/otspec/otff.htm - jest to opis plików OpenType.

PS. jak znajdę chwilę to sprubuję napisać własny "odczytywacz" nagłówków fontów bo ciekawie to wygląda :p

0

jak znajdę chwilę to spróbuję napisać własny "odczytywacz" nagłówków fontów bo ciekawie to wygląda :p

Mam nadzieję, że się podzielisz swoją informacją...? ;-P
Bo tego błędnego programu, to raczej sam nie dam rady poprawić... ;-( Zbyt to skomplikowanie wygląda na mój rozumek... [green]

Jeszcze raz dziękuję za dobre chęci. Masz u mnie [soczek] :d

Pozdrawiam
RYGAR

1 użytkowników online, w tym zalogowanych: 0, gości: 1