根据用户想要查看的内容,我希望在不同的时间隐藏和显示DBGrid中的一些列。
而不是编写以下代码;
For i := 1 to DBGrid1.Columns.Count -1 do
Begin
If DBGrid1.Columns[i].FieldName = 'SOMETHING' then
Begin
if DBGrid1.Columns[i].visible then
DBGrid1.Columns[i].visible:=false else
DBGrid1.Columns[i].visbi
我有一个DBGrid,并使用它将数据放入Array中。但是,当我按下按钮执行此过程时,我得到了一个StackOverFlow错误?下面是我使用的代码:
iRy := 0;
iCol := DBGrid.Columns.Count;
sTest := DBGrid.Columns[0].Field.AsString;
While sTest <> '' do
begin
for k := 1 to iCol do
begin
arrData[iRy+1,iCol] := DBGrid.Columns[iCol].Field.AsStr
我有一个列,它只有“是”和“否”值。如果列值为“是”,则只有该单元格背景颜色为红色,否则“否”,则背景色为黄色,但此代码颜色为整行:
if ADOTable1.FieldByName('Clubs').AsString = 'yes' then
begin
DBGrid1.Canvas.Brush.Color := clRed;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
编辑
谢谢你的回复。我真正的代码就像那样。“格”列只有"L,D,W“。
if Colum
所以我有一个TDBGrid,我的目的是搜索DBGrid的字段名,并将其与我的编辑的文本属性进行比较,如果它们相等,
我想把我找到的匹配的整个列写成一个ListBox。
使用带有fieldcount的for循环,我可以比较FieldName,但由于没有可以使用的行或行数属性,我不知道如何获得整个列的索引。
for i:=0 to DBGrid1.FieldCount-1 do
begin
if DBGrid1.Fields[i].FieldName=Edit1.Text then
for j:=1 to DBGrid1.RowCount-1 do
ListBox1.Items.
我想从所选行的TDBGrid中检索一个值,我该怎么做?
procedure TForm7.Button2Click(Sender: TObject);
var
i, j: Integer;
s: string;
begin
if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
我想为每一列创建一个不同的弹出窗口。由于列顺序可以更改,所以我需要通过列标题来标识它,但我没有找到解决方案。
这是我成功应用的两种方法。
procedure TForm2.DBGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
ACol, ARow: Integer;
begin
if Y < DBGrid1.DefaultRowHeight then
begin
(Sender as TDBGrid).MouseTo
嘿,我想用TBookmark作为变体。我让它以另一种形式运行,它在那里工作。
但在新的表格中我得到了错误..。我想我必须在uses语句中包含一些内容,但我不记得它是什么。下面是TBookmark代码的红色下划线,所以这就是错误所在。
procedure TForm4.FormCreate(Sender: TObject);
var test : string;
var selectedRow, rows : TBookmark;
begin
rows := Form1.DBGrid1.DataSource.DataSet.GetBookmark;
Form1.DBGrid1.Selec
大家好,我是zeos数据集的新手,我希望我的数据库网格能够以升序或降序模式对数据进行排序。我正在使用zeos数据集和firebird数据库。我试着找,这就是我得到的全部
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
{$J+}
const PreviousColumnIndex : integer = -1;
{$J-}
begin
if DBGrid1.DataSource.DataSet is TCustomADODataSet then
with TCustomADODataSet(DBGrid1.DataSource
我写了一段代码从dbgrid中导出一个excel文件。下面是以下代码:
var i, x:integer;
sfile:string;
begin
XlApp:=createoleobject('Excel.Application');
XlBook:=XlApp.WorkBooks.Add;
XlSheet:= XlBook.worksheets.add;
for i:=0 to dbgrid1.fieldcount-1 do begin
xlsheet.cells[1,i+1].value:=dbgrid1.columns[i].title.caption;
end
我想知道为什么我的DBGridEh (后裔DBGrid)在我使用下面的MRE删除数据库中的记录后没有刷新。你会发现我的4次尝试评论如下,但没有运气。删除基本工作,但DBGrid不更新或断开与数据源的连接。
procedure TForm9.btnDeleteClick(Sender: TObject);
begin
//cds1.DisableControls; //attempt 1 failed. It deletes the record but not changes on the DBGrid
uq1.SQL.Clear;
uq1.SQL.Text := 'DEL