直接删除,font目录下的文件好像不可行!

解决方案 »

  1.   

    删除文件以后:
    RemoveFontResource
      

  2.   

    还有注册表
    SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
      

  3.   

    用以下函数:
    AddFontResource('c:\simkai.ttf')
    RemoveFontResource('c:\simkai.ttf')
    例:
    procedure TMainForm.FileListBox1Click(Sender: TObject);
    Var
         i : Integer;
         Path : String;
         RemoveOK : Boolean;
    begin
         RemoveOk := true;
         If OneFileName <> '' then
            begin
            Edit1.Font.Name := FontNameList.Items[1];
            showmessage(OneFileName);
            while RemoveOK do
                  if RemoveFontResource(PChar(OneFileName))=true then
                     begin
                     showmessage('ok');  《-- 在这里老显示OK。
                     RemoveOK := False;
                     end
                  else showmessage('no');
            SendMessage( HWND_BROADCAST, WM_FONTCHANGE, 0, 0 );
            OneFileName := '';
            End;     If FileListBox1.SelCount = 1 then
            begin
            OneFileName := FileListBox1.FileName;
            AddFontResource(Pchar(OneFileName));
            SendMessage( HWND_BROADCAST, WM_FONTCHANGE, 0, 0 );        If ViewP.Down then   〈--VIEWP是一个ToolBar97的按钮,用来决定是否预览。
               begin
               FillList;
               for i:=0 to FFonts.Count - 1 do
                   if FontNameList.Items.IndexOf(FFonts.Strings[i])= -1 then
                      If FFonts.Strings[i][1] <> '@' then
                         begin
                         showmessage(FFonts.Strings[i]);  《-见后
                         Edit1.Font.Name := FFonts.Strings[i];
                         end;
               end;
            end;
    end;