StringGridの内容をHTMLに変換するには?


チャーリー  2005-04-11 20:23:44  No: 14244

こんにちは
StringGridに表示されている文字と背景色をHTMLに変換する場合どのようにすればいいのでしょうか。
---------------
begin
  sl:=TStringList.Create;
  try
    sl.Add('<HTML><head><title></title></head><BODY>');
    sl.Add('<TABLE BORDER>');
    sl.Add('<FONT SIZE="-1" FACE="MS ゴシック">');
    sl.Add(Caption);//Captionの内容を表示
    with PageControl1.ActivePage do
       for j:= 0 to ControlCount - 1 do// 開いているページにある
        if Controls[j] is TStringGrid then begin// コントロールを調べる
         aStringGrid:= (Controls[j] as TStringGrid);
          for i:=0 to aStringGrid.RowCount-1 do//表示されている
             //★sl.Add(aStringGrid.Rows[i]);
             //★color:=ColorToString(aStringGrid.)
             //★sl.Add('<BGCOLOR="'+color+'"')
             sl.add('</TABLE>');
             sl.add('</BODY>');
             sl.SaveToFile('D:\ソフト\データ.htm');
        end;//if controls[j]
  finally
    sl.Free;
  end;
  ShowMessage('登録完了');
end;
---------------


メラトニン  2005-04-12 02:59:26  No: 14245

GetRValue
GetGValue
GetBValue
ColorToRGB
でよろしいかと。


チャーリー  2005-04-14 21:52:41  No: 14246

こんにちは。
どのように組み立てればいいのでしょうか。TStringListにAddしてデータを保存しようと思っていますのでどの部分に入れればいいのか。もう少し教えてください。


りおりお  2005-04-14 22:07:59  No: 14247

色の設定をどのようにしてるのか分からないので誰も答えられないと思います。


メラトニン  2005-04-14 22:37:24  No: 14248

Googleで検索でもすると引っかかると思いますが、簡単なのでサンプル書いてみました。

//Color->HTML Color
function TForm1.ColorToHTMLStr(AColor: TColor): string;
var cint :DWORD;
    r,g,b:Byte;
begin
cint:=ColorToRGB(AColor);
r:=Byte(cint);
g:=Byte(cint shr 8);
b:=Byte(cint shr 16);
Result:=IntToHex(r,2)+
        IntToHex(g,2)+
        IntToHex(b,2);
end;

procedure TForm1.Panel1Click(Sender: TObject);
var AColor:TColor;
begin
AColor:=Panel1.Color;
Caption:=ColorToHTMLStr(AColor);
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加