二、并与数据库相连
三、如何在FixedRows中填入内容。
12 个解决方案
#1
建议使用Tdbgrid
#2
转载
----------------------------
怎样对 TStringGrid 进行 Delete,Insert,Sort 操作.
回答:
Procedure GridRemoveColumn(StrGrid: TStringGrid; DelColumn:
Integer);
Var Column: Integer;
begin
If DelColumn <= StrGrid.ColCount then
Begin
For Column := DelColumn To StrGrid.ColCount-1 do
StrGrid.Cols[Column-1].Assign(StrGrid.Cols[Column]);
StrGrid.ColCount := StrGrid.ColCount-1;
End;
end;
Procedure GridAddColumn(StrGrid: TStringGrid; NewColumn: Integer);
Var Column: Integer;
begin
StrGrid.ColCount := StrGrid.ColCount+1;
For Column := StrGrid.ColCount-1 downto NewColumn do
StrGrid.Cols[Column].Assign(StrGrid.Cols[Column-1]);
StrGrid.Cols[NewColumn-1].Text := '';
end;
Procedure GridSort(StrGrid: TStringGrid; NoColumn: Integer);
Var Line, PosActual: Integer;
Row: TStrings;
begin
Renglon := TStringList.Create;
For Line := 1 to StrGrid.RowCount-1 do
Begin
PosActual := Line;
Row.Assign(TStringlist(StrGrid.Rows[PosActual]));
While True do
Begin
If (PosActual = 0) Or (StrToInt(Row.Strings[NoColumn-1]) >=
StrToInt(StrGrid.Cells[NoColumn-1,PosActual-1])) then
Break;
StrGrid.Rows[PosActual] := StrGrid.Rows[PosActual-1];
Dec(PosActual);
End;
If StrToInt(Row.Strings[NoColumn-1]) <
StrToInt(StrGrid.Cells[NoColumn-1,PosActual]) then
StrGrid.Rows[PosActual] := Row;
End;
Renglon.Free;
end;
----------------------------
怎样对 TStringGrid 进行 Delete,Insert,Sort 操作.
回答:
Procedure GridRemoveColumn(StrGrid: TStringGrid; DelColumn:
Integer);
Var Column: Integer;
begin
If DelColumn <= StrGrid.ColCount then
Begin
For Column := DelColumn To StrGrid.ColCount-1 do
StrGrid.Cols[Column-1].Assign(StrGrid.Cols[Column]);
StrGrid.ColCount := StrGrid.ColCount-1;
End;
end;
Procedure GridAddColumn(StrGrid: TStringGrid; NewColumn: Integer);
Var Column: Integer;
begin
StrGrid.ColCount := StrGrid.ColCount+1;
For Column := StrGrid.ColCount-1 downto NewColumn do
StrGrid.Cols[Column].Assign(StrGrid.Cols[Column-1]);
StrGrid.Cols[NewColumn-1].Text := '';
end;
Procedure GridSort(StrGrid: TStringGrid; NoColumn: Integer);
Var Line, PosActual: Integer;
Row: TStrings;
begin
Renglon := TStringList.Create;
For Line := 1 to StrGrid.RowCount-1 do
Begin
PosActual := Line;
Row.Assign(TStringlist(StrGrid.Rows[PosActual]));
While True do
Begin
If (PosActual = 0) Or (StrToInt(Row.Strings[NoColumn-1]) >=
StrToInt(StrGrid.Cells[NoColumn-1,PosActual-1])) then
Break;
StrGrid.Rows[PosActual] := StrGrid.Rows[PosActual-1];
Dec(PosActual);
End;
If StrToInt(Row.Strings[NoColumn-1]) <
StrToInt(StrGrid.Cells[NoColumn-1,PosActual]) then
StrGrid.Rows[PosActual] := Row;
End;
Renglon.Free;
end;
#3
DBGrid更方便 ,为何不用DBGrid?
#4
首先要建立数据连接,然后从数据源中获取数据,最后根据数据和stringgrid的对应关系写
stringgrid1.cell[i,j]:=数据,就OK!
stringgrid1.cell[i,j]:=数据,就OK!
#5
一.用StringGird1.Cells[列,行] := '数据项'给StringGrid填入数据;
二.只能从数据库查出数据后填入表格内
三.用StringGrid1.Cells[列, 0] := '标题项'来赋予标题
二.只能从数据库查出数据后填入表格内
三.用StringGrid1.Cells[列, 0] := '标题项'来赋予标题
#6
我也建議你使用DBGrid
#7
谢谢大家的关心。
现在我想用dbgrid了。
问题与stringgrid一样。
谢谢。
现在我想用dbgrid了。
问题与stringgrid一样。
谢谢。
#8
呆子:你的数据中有合计项吗?有,不用stringgrid那就真是呆子了!
没有?用stringgrid?哇,你真的不嫌麻烦吗?
没有?用stringgrid?哇,你真的不嫌麻烦吗?
#9
re up
#10
现在的主要问题是,如何与数据库建立连接?
我用databasedesktop建立一个数据库表。
然后在datasource中不知道如何设置数据库类型。
总出现莫名其妙的错误。
我用databasedesktop建立一个数据库表。
然后在datasource中不知道如何设置数据库类型。
总出现莫名其妙的错误。
#11
用desktop建立的是parodox类型
#12
用BDE连到数据库,TABLE连到DATASOURCE上。用DATASOURCE连接BDE别名,再把DBGRID连到DATASOURCE上。
#1
建议使用Tdbgrid
#2
转载
----------------------------
怎样对 TStringGrid 进行 Delete,Insert,Sort 操作.
回答:
Procedure GridRemoveColumn(StrGrid: TStringGrid; DelColumn:
Integer);
Var Column: Integer;
begin
If DelColumn <= StrGrid.ColCount then
Begin
For Column := DelColumn To StrGrid.ColCount-1 do
StrGrid.Cols[Column-1].Assign(StrGrid.Cols[Column]);
StrGrid.ColCount := StrGrid.ColCount-1;
End;
end;
Procedure GridAddColumn(StrGrid: TStringGrid; NewColumn: Integer);
Var Column: Integer;
begin
StrGrid.ColCount := StrGrid.ColCount+1;
For Column := StrGrid.ColCount-1 downto NewColumn do
StrGrid.Cols[Column].Assign(StrGrid.Cols[Column-1]);
StrGrid.Cols[NewColumn-1].Text := '';
end;
Procedure GridSort(StrGrid: TStringGrid; NoColumn: Integer);
Var Line, PosActual: Integer;
Row: TStrings;
begin
Renglon := TStringList.Create;
For Line := 1 to StrGrid.RowCount-1 do
Begin
PosActual := Line;
Row.Assign(TStringlist(StrGrid.Rows[PosActual]));
While True do
Begin
If (PosActual = 0) Or (StrToInt(Row.Strings[NoColumn-1]) >=
StrToInt(StrGrid.Cells[NoColumn-1,PosActual-1])) then
Break;
StrGrid.Rows[PosActual] := StrGrid.Rows[PosActual-1];
Dec(PosActual);
End;
If StrToInt(Row.Strings[NoColumn-1]) <
StrToInt(StrGrid.Cells[NoColumn-1,PosActual]) then
StrGrid.Rows[PosActual] := Row;
End;
Renglon.Free;
end;
----------------------------
怎样对 TStringGrid 进行 Delete,Insert,Sort 操作.
回答:
Procedure GridRemoveColumn(StrGrid: TStringGrid; DelColumn:
Integer);
Var Column: Integer;
begin
If DelColumn <= StrGrid.ColCount then
Begin
For Column := DelColumn To StrGrid.ColCount-1 do
StrGrid.Cols[Column-1].Assign(StrGrid.Cols[Column]);
StrGrid.ColCount := StrGrid.ColCount-1;
End;
end;
Procedure GridAddColumn(StrGrid: TStringGrid; NewColumn: Integer);
Var Column: Integer;
begin
StrGrid.ColCount := StrGrid.ColCount+1;
For Column := StrGrid.ColCount-1 downto NewColumn do
StrGrid.Cols[Column].Assign(StrGrid.Cols[Column-1]);
StrGrid.Cols[NewColumn-1].Text := '';
end;
Procedure GridSort(StrGrid: TStringGrid; NoColumn: Integer);
Var Line, PosActual: Integer;
Row: TStrings;
begin
Renglon := TStringList.Create;
For Line := 1 to StrGrid.RowCount-1 do
Begin
PosActual := Line;
Row.Assign(TStringlist(StrGrid.Rows[PosActual]));
While True do
Begin
If (PosActual = 0) Or (StrToInt(Row.Strings[NoColumn-1]) >=
StrToInt(StrGrid.Cells[NoColumn-1,PosActual-1])) then
Break;
StrGrid.Rows[PosActual] := StrGrid.Rows[PosActual-1];
Dec(PosActual);
End;
If StrToInt(Row.Strings[NoColumn-1]) <
StrToInt(StrGrid.Cells[NoColumn-1,PosActual]) then
StrGrid.Rows[PosActual] := Row;
End;
Renglon.Free;
end;
#3
DBGrid更方便 ,为何不用DBGrid?
#4
首先要建立数据连接,然后从数据源中获取数据,最后根据数据和stringgrid的对应关系写
stringgrid1.cell[i,j]:=数据,就OK!
stringgrid1.cell[i,j]:=数据,就OK!
#5
一.用StringGird1.Cells[列,行] := '数据项'给StringGrid填入数据;
二.只能从数据库查出数据后填入表格内
三.用StringGrid1.Cells[列, 0] := '标题项'来赋予标题
二.只能从数据库查出数据后填入表格内
三.用StringGrid1.Cells[列, 0] := '标题项'来赋予标题
#6
我也建議你使用DBGrid
#7
谢谢大家的关心。
现在我想用dbgrid了。
问题与stringgrid一样。
谢谢。
现在我想用dbgrid了。
问题与stringgrid一样。
谢谢。
#8
呆子:你的数据中有合计项吗?有,不用stringgrid那就真是呆子了!
没有?用stringgrid?哇,你真的不嫌麻烦吗?
没有?用stringgrid?哇,你真的不嫌麻烦吗?
#9
re up
#10
现在的主要问题是,如何与数据库建立连接?
我用databasedesktop建立一个数据库表。
然后在datasource中不知道如何设置数据库类型。
总出现莫名其妙的错误。
我用databasedesktop建立一个数据库表。
然后在datasource中不知道如何设置数据库类型。
总出现莫名其妙的错误。
#11
用desktop建立的是parodox类型
#12
用BDE连到数据库,TABLE连到DATASOURCE上。用DATASOURCE连接BDE别名,再把DBGRID连到DATASOURCE上。