wyciągnięcie czcionki z zasobów

0

Witam !!!
Mam duży problem stworzyłem sobie czcionke i chce zeby była ona w moim programie. Dodałem ją do zasobów ale nie wiem w jaki sposób ją z tamtąd wyciągnąć.

Czytałem artykuł jak załadować czcionke do systemu

http://4programmers.net/view.php?id=189

ale plik np: ABC.TTF musi być dostarczony z programem (czego chce uniknąć).

Bardzo prosze wszystkich o pomoc

0

Używając notatnika utwórz plik *.rc z następującą treścią:

MOJ_FONT MOJA1 "Arial.ttf"

Dwa pierwsze parametry mogą mieć inną nazwę. Będą wykorzystane później w programie.
Następnie użyj kompilatora BRCC32.EXE który jest dołączany wraz z Delphi, służy on do tworzenia plików *.res. Aby skompilować plik MojFont.rc w linii komend wpisz:

BRCC32 MojFont

Do programu musisz dodać dyrektywę włączającą plik do programu:

{$R MojFont.res}

Możesz ją wpisać zaraz po dyrektywie {$R *.DFM} w sekcji implementacji.
Aby użyć plik zasobu wpisz procedurę:

procedure TForm1.FormCreate(Sender: TObject);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(hInstance, 'MOJ_FONT', Pchar('MOJA1'));
Res.SavetoFile('czciona.ttf');
Res.Free;
AddFontResource(PChar('czciona.ttf'));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;

Teraz możesz przypisać czcionkę:

procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Font.Name := 'Bauhaus 93';
end;

W każdej chwili możesz usunąć czcionkę z programu:

procedure TForm1.FormDestroy(Sender: TObject);
begin
RemoveFontResource(PChar("Arial.ttf"))
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;

0

Wielkie dzięki za posta. Wszytsko gra ale nie dało by się zrobić tak żeby ta moja czcionka nie zapisywała sie na dysku

Res.SavetoFile('Czcionka.ttf');

To polecenie ładuje czcionke z dysku

AddFontResource(PChar('Zegar.ttf'));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);

Może istnieje jakieś polecenie które załaduje czcionke od razu z zasobów bez jej zapisywania

Proszę okażcie jeszcze troche cierpiliwości i pomóżcie :-)

0

ni mi o tym nie wiadomo :-/

0

OK

To w takim razie mam inne pytanie w jaki sposób można wykorzystać nieznane typy plików w zasobach np: *.ANI , *.DAT itd;

Bo np pliki *.EXE , *.BMP , *.CUR , *.ICO i pare innych mają polecenia dzięki którym można je wykorzystać w programie np: ikona: LOADICON , kursor: LOADCURSOR.

Czy istnieje jakieś polecenie, procedura, która może wykorzystać nietypowy plik Od razu z zasobów np ten nieszczęsny plik *.TTF lub *.FON.
Może są do tego jakieś komponenty??

Proszę o jakieś sugestie i pomoc

Z góry bardzo dziękuję

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