Avatar billede assassin Juniormester
16. maj 2002 - 11:10 Der er 7 kommentarer og
2 løsninger

Skifte font

Er der nogen, som kan fortælle mig hvorfor nedenstående kode ikke virker:

unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1  : TButton;
    Edit1    : TEdit;
    Label1  : TLabel;
    ComboBox1: TComboBox;
    Memo1    : TMemo;
    procedure Button1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
  s    : string;
  srec : tsearchrec;
begin
  s := trim(edit1.text);
  Combobox1.clear;
  if findfirst(s,faanyfile,srec) = 0 then
  begin
    Combobox1.items.add(srec.Name);
    while findnext(srec) = 0 do Combobox1.items.add(srec.name);
  end;
  findclose(srec);
  ComboBox1.ItemIndex:=0; //For at få vist den første font i comboboxen
end;


procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Memo1.Font.Name := ComboBox1.Items[Combobox1.ItemIndex];
end;

end.

Problemet er at fonten i memofeltet ikke skifter font, når jeg har fundet fonte og lagt dem i comboboxen - Hvorfor ikke??
Er det fordi at fonten SKAL være installeret for at kunne vises??
Avatar billede blackbyte Nybegynder
16. maj 2002 - 11:11 #1
Hvis du vil slippe for besværet så brug FontDialog, men det kan jo være det ikke passer ind her...
Avatar billede assassin Juniormester
16. maj 2002 - 11:38 #2
Jeg vil gerne have mulighed for at undersøge en cd for fonte og få dem lagt over i comboboxen, så jeg har en mulighed for at se dem INDEN jeg installere dem.
Det er opgaven i korte træk.
Avatar billede doc404 Novice
16. maj 2002 - 13:18 #3
Fonten skal installeres først - men det kan gøres dynamisk

Læs her og stjæl med arme og ben...

http://www.gnomehome.demon.nl/uddf/pages/fonts.htm
Avatar billede assassin Juniormester
16. maj 2002 - 13:57 #4
Joooo, det er ikke helt det jeg leder efter, men jeg kikker lige på det :-)
Avatar billede tormork Nybegynder
17. maj 2002 - 17:16 #5
Du kan gøre således:

procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Style := csDropDownList;
  ComboBox1.Items.Text := Screen.Fonts.Text;
  ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(Memo1.Font.Name);
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Memo1.Font.Name := ComboBox1.Text
end;
Avatar billede assassin Juniormester
21. maj 2002 - 09:09 #6
tormork>> Din kode viser netop de fonte, som ER installeret i windows, men jeg ønsker IKKE at installere dem..
Avatar billede assassin Juniormester
24. maj 2002 - 12:56 #7
Jeg lukker spørgsmålet her og må desværre nok erkende at det ikke kan lade sig gøre - suk!

Men i skal alligevel have tak for forsøgene.

Dennis
Avatar billede doc404 Novice
24. maj 2002 - 13:51 #8
Selvfølgelig kan det lade sig gøre..Men du har ikke valgt den nemmeste opgave...

Her kan du finde en fontviewer incl. delphi kode som du kan stjæle fra :-)

http://www.pcmag.com/article/0,2997,s=1478&a=5018,00.asp
Avatar billede assassin Juniormester
24. maj 2002 - 15:18 #9
Tak for det.

Det vil jeg se lidt på.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester