グリッドを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 は、どうすれば得られるでしょうか?
>グリッドの列の属性を得るには?
グリッドの列の属性(右寄せ表示の設定など)はどのように設定したのですか?
>グリッドの列の属性(右寄せ表示の設定など)はどのように設定したのですか?
OnDrawcellイベントで
DrawText(S.Canvas.Handle,PChar(S.Cells[aCol,aRow]),Length(S.Cells[aCol,aRow]),Rect,DT_RIGHT);
と、しましたのでSavetoHTMLでも j に右寄せ列を指定すればいいのですが、SavetoHTMLに汎用性を確保したいので・・・
保存しておきたい情報(今回の場合、右寄せ表示などの情報)を
StringGridのObjects プロパティ
あたりにでも、格納しておき、必要なときに取り出せばよいのでは?
なるほど、その手があったか!と言う感じです。
まだ試みてはいませんが、できそうですので解決とします。
igyさん、適切なアドバイスをありがとうございました。
ツイート | ![]() |