字体数据(字体、字形、颜色、大小)保存至paradox表中,再从表中返回到相应的参数。保存时字形和颜色不能通过,从表中返回相应的数据时,除大小外,其它的都不行,请问该怎么做?
var
  sz1size:integer;
  sz1style:tfontstyles;
  sz1color:tcolor;
  sz1fname:tfontname;
begin
   if not FontDialog1.Execute Then Exit;
   sz1fname:=FontDialog1.Font.Name  ;
   sz1size:= FontDialog1.Font.size ;
   sz1style:= FontDialog1.Font.Style  ;
   sz1color:= FontDialog1.Font.color;
//字体数据送表中
   table1.FieldByName('sz1fname').AsVariant:=sz1fname;
   table1.FieldByName('sz1size').Asinteger:=sz1size;
   table1.FieldByName('sz1style').AsVariant:=sz1style;
   table1.FieldByName('sz1color').AsVariant:=sz1color;
   //从表中读数据至参数中
   sz1fname:=query1.fields[1].AsVariant;
   sz1size:=query1.fields[2].AsInteger ;
   sz1style:=query1.fields[3].AsVariant;
   sz1color:=query1.fields[4].AsVariant;end;
(部分代码)

解决方案 »

  1.   

    數据庫中可保存這些特性的指示符合;
    從數据庫抓出后, 寫几個函數進行轉換;
    function ConvertColor(n: Integer): TColor;
    begin
      case n of
        0:  Result := clRed;
        1:  Result := clGreen;
        2:  ...
       ...
    end;...
      

  2.   

    to chutian(kiss you) :
    你说的我不太明白。颜色的内容少一点,但字体呢, 其数量不下百种吧,难道要一个个地用case写进去吗?请你说明白一点,这方面我还是第一次接触,还请指教。
      

  3.   

    fontname:   String
    fontcolor:  integer
    fontsize:   integer;fontstyle:  String;//这是一个集合类型的数据,具体的值可以为0,1,2,3四个值转换成字符串的组合。
    例如可以取:'01'  '023', '123','0123'等值,读写的时候进行转化://读数据库的时候
    var fStyle:TFontStyles;fstyle:=[];
    if pos('0',Table1.FieldByName('szstyle').Asstring) >=0 then 
      fstyle:=fstyle+[fsblod];
    if pos('1',Table1.FieldByName('szstyle').Asstring) >=0 then 
      fstyle:=fstyle+[fsItalic];
    if pos('2',Table1.FieldByName('szstyle').Asstring) >=0 then 
      fstyle:=fstyle+[fsUnderLine];
    if pos('3',Table1.FieldByName('szstyle').Asstring) >=0 then 
      fstyle:=fstyle+[fsStrukeOut];//写入数据库的时候作相应的转换
      

  4.   

    to  bigysw(大花脸) :
      帮忙帮到底,写入数据库的时候怎么写?
      

  5.   

    FontName is String type, can save to database directly.
      

  6.   

    //写入数据库的时候作相应的转换var StyleStr:String;StyleStr:='';
    if  fsblod in sz1style then
      StyleStr:=StyleStr + '0';
    if  fsItalic in sz1style then
      StyleStr:=StyleStr + '1';
    if  fsUnderLine in sz1style then
      StyleStr:=StyleStr + '2';
    if  fsStrukeOut in sz1style then
      StyleStr:=StyleStr + '3';
    Table1.FieldByName('szstyle').Asstring) := StyleStr;
    //别的属性保存都好说了吧