标签: stringgrid

将delphi stringgrid导出为ex​​cel

我正在尝试将数据从delphi 7中的stringgrid导出到microsoft excel.我一直在用这个代码来做:

  objExcel := TExcelApplication.Create(nil);
  objExcel.Visible[LOCALE_USER_DEFAULT] := true;
  objWB := objExcel.workbooks.add(null,LOCALE_USER_DEFAULT);
  lineNumber := 1;

  for i:=1 to stringgrid1.rowcount-1 do begin
    for j:=0 to stringgrid1.ColCount-1 do begin
      objWB.Worksheets.Application.Cells.Item[i+lineNumber,j+1] := ''''+stringgrid1.Cells[j,i];
    end;
  end;
Run Code Online (Sandbox Code Playgroud)

但是当数据很大时,需要很长时间才能完成.有没有其他更快的方法将数据从delphi 7 stringgrid导出到excel?

delphi export-to-excel stringgrid

7
推荐指数
1
解决办法
2万
查看次数

将图形栏添加到StringGrid col

使用Delphi 2010和TStringGrid组件,我目前显示数据库查询中的五个fild.

这是我正在做的一个简单的例子

//设置网格

procedure TGriddata.FormCreate(Sender: TObject);
begin
 grdMain.Rows[0].commatext:='"One","Two","Three","Four","Five"';
 grdMain.ColWidths[0]:= 50;
 grdMain.ColWidths[1]:= 175;
 grdMain.ColWidths[2]:= 175;
 grdMain.ColWidths[3]:= 100;
 grdMain.ColWidths[4]:= 300;
end;
Run Code Online (Sandbox Code Playgroud)

//显示网格中的数据//注意,我没有显示查询的创建,执行或销毁

procedure TGriddata.load;
begin
 ... 
 grdMain.Cells[0,row]:= FieldByName('one').AsString;
 grdMain.Cells[1,row]:= FieldByName('two').AsString;
 grdMain.Cells[2,row]:= FieldByName('three').AsString;
 grdMain.Cells[3,row]:= FieldByName('four').AsString;
 //draw progress bar here
 ...
end;
Run Code Online (Sandbox Code Playgroud)

其中一列("五")需要在col中显示海军蓝色水平条.它还应该显示一些以栏为中心的文本.我没有使用自定义绘图的经验.我设置的哪些属性只能自定义绘制一列并使用其他列的默认绘图?

delphi custom-draw delphi-2010 stringgrid

6
推荐指数
1
解决办法
4007
查看次数

5
推荐指数
1
解决办法
7372
查看次数

隐藏 StringGrid 的 focusRectangle :Delphi

我试图隐藏 Delphi 在 StringGrid 中当前选定的单元格周围绘制的边框(焦点矩形)。我正在做所有者绘图来自定义字符串网格的外观。我已经成功地摆脱了除了选择之外的所有内容。

我正在使用

 GR.Left := -1;
 GR.Top  := -1;
 GR.Right := -1;
 GR.Bottom := -1;
 StringGrid.Selection := GR;
Run Code Online (Sandbox Code Playgroud)

但如果你设置得非常快,就会出现错误(我在 onMouseMove 中运行它)。我的意思是它工作得很好,但是如果我足够快地调用这个特定的代码块,我会在 StringGrid 的渲染中遇到异常(因此我不能只是放弃尝试,除了它周围)。

关于如何可靠地解决这个问题有什么想法吗?

delphi ownerdrawn tstringgrid stringgrid

5
推荐指数
1
解决办法
7170
查看次数

如何将TStringGrid从Delphi 7转换为Delphi XE

只是为了测试我将Delphi 7程序转换为Delphi XE 5的难度,我在Delphi 7上编写了简单的应用程序 - 在Form上放置了TStringGrid,并在表单上添加了代码:

procedure TFMain.FormCreate(Sender: TObject);
begin
  With StringGrid1 do
    begin
      Cells[0,0]:='????€';
    end;
end;
Run Code Online (Sandbox Code Playgroud)

(实际上它写为Cells [0,0]:='ce ??€',但我预计会这样做).编译,构建,运行,没有Unicode,原因.然后在Delphi XE 5中重新打开项目,再次将行更改为Cells [0,0]:='čęжэ€',编译,构建,运行 - 并且没有Unicode(类似于čę|||)!这对我来说很奇怪.在Delphi Xe 5上使用相同代码从零开始构建新项目,同样的TStringGrid正在按预期工作.我知道这里有一些简单的技巧,也许是项目设置中的一些变化,但我不能谷歌...也许有人可以提供帮助?

最好的祝福.

delphi unicode tstringgrid stringgrid

5
推荐指数
1
解决办法
841
查看次数

Fmx TStringGrid 行颜色

我在 Delphi 10.1 的多设备应用程序(在 Windows 上)中遇到问题。我有一个StringGrid(连接到数据库),我可以更改行的背景颜色,但问题是单元格之间有“填充”(灰色/银色)。

onformCreate我定义中:

stringgrid1.DefaultDrawing := False;
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

procedure Tlist_form.StringGrid1DrawColumnCell(Sender: TObject;
  const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
  const Row: Integer; const Value: TValue; const State: TGridDrawStates);
   var aRowColor: TBrush;
begin
  aRowColor := Tbrush.Create(TBrushKind.Solid,TAlphaColors.Alpha);


  if (stringgrid1.Cells[7,row]='1') then 
        aRowColor.Color := TAlphaColors.Green
    else
      aRowColor.Color := TAlphaColors.Red;

    Canvas.FillRect(Bounds, 0, 0, [], 1, aRowColor);
    Column.DefaultDrawCell(Canvas, Bounds, Row, Value, State);

  aRowColor.free;

end; 
Run Code Online (Sandbox Code Playgroud)

在 Delphi 6 中我从未遇到过这个问题,而且我不知道如何解决它。谢谢。

delphi background-color firemonkey stringgrid delphi-10.1-berlin

2
推荐指数
1
解决办法
4825
查看次数

未声明的“FormCreate”错误 Delphi

我正在尝试命名字符串网格中的列(在此灰色行中)。我知道我应该使用这样的东西:

procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.Cells[0,0] := 'Text 1';
  StringGrid1.Cells[1,0] := 'Text 2';
end;
Run Code Online (Sandbox Code Playgroud)

问题是有错误:

“TForm1”在第 81 行不包含名为“FormCreate”的成员。

我是初学者。我的程序有什么问题?

delphi stringgrid

1
推荐指数
1
解决办法
1383
查看次数

如何更改 Delphi Firemonkey XE7 中 Stringgrid 标题的字体大小?

我在 Delphi Firemonkey XE7 中为应用程序创建了一个 Stringgrid,并用我的 MySQL 数据库中的数据填充它。为了放大字体大小,我使用了以下代码:

procedure TFormSearchRecipient.sgRecipientDrawColumnCell(Sender: TObject;
  const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
  const Row: Integer; const Value: TValue; const State: TGridDrawStates);
var b : TRectF; border: integer;
begin
  //following leaves in the end a border so that the marked item can be seen
  b := bounds;
  border:= 2;
  b.Top := b.Top + border;
  b.Left := b.Left - border;
  b.Height := b.Height - 2 * border;
  b.Width := b.Width - 2 * border; …
Run Code Online (Sandbox Code Playgroud)

delphi header firemonkey stringgrid delphi-xe7

1
推荐指数
1
解决办法
7300
查看次数

StringGrid中的透明颜色

我用StringGrid绿色填充单元格

procedure TForm1.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin

StringGrid.Canvas.Brush.Color := clGreen;
StringGrid.Canvas.FillRect(Rect);

StringGrid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, AGrid.Cells[ACol, ARow]);

end;
Run Code Online (Sandbox Code Playgroud)

我的StringGrid有黑色.我想填充单元格透明色(例如50%).

我怎样才能做到这一点?

我应该绘制矩形?或者我应该创建位图并放入单元格?

你能帮助我吗?:)

像这样的Imean效果: 在此输入图像描述

delphi pascal freepascal lazarus stringgrid

0
推荐指数
1
解决办法
1396
查看次数