グリッドの列の属性を得るには?

解決


Na  2007-05-08 18:37:27  No: 26081  IP: 192.*.*.*

グリッドをHTMLページに保存するprocedure  SavetoHTMLで、
グリッドの列が右寄せ表示の列であるときはHTMLページでも右寄せ表示しようと思っています。

procedure TForm1.SavetoHTML(Sg:TStringGrid;FileName:string);
var i,j:integer;
    St:TStringList;
    S,C:string;
begin
  St:=TStringList.Create;
  St.clear;
  try
    St.Add('<HTML>');
    St.Add('<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=Shift_JIS">');
    St.Add('<HEAD><TITLE></TITLE></HEAD>');
    St.Add('<BODY>');
    St.Add('<TABLE BORDER cellspacing=0>');
    for i:=0 to Sg.RowCount-1 do begin
      S:='';
      for j:=0 to Sg.ColCount-1 do 
        if j=右寄せ列 then S:=S+'<TD align=right>'   +Sg.Cells[j,i]+'<BR>'+    '</TD>'
        else S:=S+'<TD>'   +Sg.Cells[j,i]+'<BR>'+    '</TD>';
      St.Add('<TR>'+S+'</TR>');
    end;
    St.Add('</TABLE>');
    St.Add('</BODY>');
    St.Add('</HTML>');
    St.SaveToFile(FileName);
  finally
    St.Free;
  end;
end;

この場合の j は、どうすれば得られるでしょうか?

編集 削除
igy  2007-05-08 18:59:11  No: 26082  IP: 192.*.*.*

>グリッドの列の属性を得るには?
グリッドの列の属性(右寄せ表示の設定など)はどのように設定したのですか?

編集 削除
Na  2007-05-08 19:23:47  No: 26083  IP: 192.*.*.*

>グリッドの列の属性(右寄せ表示の設定など)はどのように設定したのですか?

OnDrawcellイベントで
DrawText(S.Canvas.Handle,PChar(S.Cells[aCol,aRow]),Length(S.Cells[aCol,aRow]),Rect,DT_RIGHT);
と、しましたのでSavetoHTMLでも j に右寄せ列を指定すればいいのですが、SavetoHTMLに汎用性を確保したいので・・・

編集 削除
igy  2007-05-08 20:51:50  No: 26084  IP: 192.*.*.*

保存しておきたい情報(今回の場合、右寄せ表示などの情報)を
StringGridのObjects プロパティ
あたりにでも、格納しておき、必要なときに取り出せばよいのでは?

編集 削除
Na  2007-05-09 08:41:26  No: 26085  IP: 192.*.*.*

なるほど、その手があったか!と言う感じです。
まだ試みてはいませんが、できそうですので解決とします。
igyさん、適切なアドバイスをありがとうございました。

編集 削除