//Grid是一个TStringGridprocedure TForm1.Button1Click(Sender: TObject); var i,j,k:integer; a:array of array of string; w:array of integer; s:string; begin with Grid do begin SetLength(a, ColCount * 2 + 1, RowCount * 2 + 1); SetLength(w, ColCount); for i:=0 to ColCount-1 do for j:=0 to RowCount-1 do if Length(Cells[i,j]) > w[i] then w[i] := (Length(Cells[i,j])+1) DIV 2 *2; for i:=0 to ColCount-1 do for j:=0 to RowCount-1 do a[i*2+1, j*2+1] := Cells[i,j] + StringOfChar(' ', w[i] - Length(Cells[i,j])); for i:=0 to ColCount do for j:=0 to RowCount-1 do a[i*2, j*2+1] := '│'; for i:=0 to ColCount-1 do for j:=0 to RowCount do for k:=1 to (w[i]+1) DIV 2 do a[i*2+1, j*2] := a[i*2+1, j*2] + '─'; for i:=0 to ColCount-2 do for j:=0 to RowCount-2 do a[i*2+2][j*2+2] := '┼'; for j:=0 to RowCount-2 do begin a[0][j*2+2] := '├'; a[ColCount*2][j*2+2] := '┤'; end; for i:=0 to ColCount-2 do begin a[i*2+2][0] := '┬'; a[i*2+2][RowCount*2] := '┴'; end; a[0,0] := '┌'; a[0,RowCount*2] := '└'; a[ColCount*2,0] := '┐'; a[ColCount*2,RowCount*2] := '┘'; Memo.Lines.Clear; for j:=0 to RowCount*2 do begin s := ''; for i:=0 to ColCount*2 do s := s + a[i,j]; Memo.Lines.add(s); end; end; end;
to :things(平)(♂意难平♀) 我发了一份副本给你,你用DELPHI或PB实现一份,画线本来就很麻烦了,而且还要 在表中填写数据,还要控制打印换行。发了,快去看看
功能,怎么办,我连怎么在记事本中画线都不知道。谁能救命。。
的技术没道理实现不了,怎么,这老板又不太懂PB我这还有副本,
可以看到很多表格符号,例如:
─│┌┐└┘├┤┬┴┼
手工拼成表格线吧……虽然工作量很大
象 dos下的软件一样
var
i,j,k:integer;
a:array of array of string;
w:array of integer;
s:string;
begin
with Grid do
begin
SetLength(a, ColCount * 2 + 1, RowCount * 2 + 1);
SetLength(w, ColCount); for i:=0 to ColCount-1 do
for j:=0 to RowCount-1 do
if Length(Cells[i,j]) > w[i] then
w[i] := (Length(Cells[i,j])+1) DIV 2 *2; for i:=0 to ColCount-1 do
for j:=0 to RowCount-1 do
a[i*2+1, j*2+1] := Cells[i,j] + StringOfChar(' ', w[i] - Length(Cells[i,j])); for i:=0 to ColCount do
for j:=0 to RowCount-1 do
a[i*2, j*2+1] := '│'; for i:=0 to ColCount-1 do
for j:=0 to RowCount do
for k:=1 to (w[i]+1) DIV 2 do
a[i*2+1, j*2] := a[i*2+1, j*2] + '─'; for i:=0 to ColCount-2 do
for j:=0 to RowCount-2 do
a[i*2+2][j*2+2] := '┼'; for j:=0 to RowCount-2 do
begin
a[0][j*2+2] := '├';
a[ColCount*2][j*2+2] := '┤';
end; for i:=0 to ColCount-2 do
begin
a[i*2+2][0] := '┬';
a[i*2+2][RowCount*2] := '┴';
end; a[0,0] := '┌';
a[0,RowCount*2] := '└';
a[ColCount*2,0] := '┐';
a[ColCount*2,RowCount*2] := '┘'; Memo.Lines.Clear;
for j:=0 to RowCount*2 do
begin
s := '';
for i:=0 to ColCount*2 do
s := s + a[i,j];
Memo.Lines.add(s);
end;
end;
end;
我发了一份副本给你,你用DELPHI或PB实现一份,画线本来就很麻烦了,而且还要
在表中填写数据,还要控制打印换行。发了,快去看看
http://www.envanet.com
我的论坛,这样说是不是有拉条皮的嫌疑
不过我确实放了很多高程考试的资料在上面
好的话,给点分支持一下
十分感谢你提供的方法,我当初第一想法也是这个但我真的不敢去做,你不知这么划出来会多死人
因为不只一张要画,而且,没张格式又不同,关键是还要控制换页,打印。你的信箱?我发一份给你看看
你的代码我已经实现了,但表中的线不连贯呀,怎么办,还有其他方法吗?
到目前为止,你一定有分了
在线等待??????????????
我的副本你收到了么,看看吧!帮我研究一下实现这种效果的可行性