小编max*_*fax的帖子

Delphi:如何在CustomDrawItem的List View中绘制小图标

如何扩展此代码:ListView在vsReport模式下着色项目和行来绘制小图标?

如果我有3列,为什么会出现错误'List index out of bounds(2)'?

谢谢!

delphi graphics listview draw

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

Delphi:列表视图中的Canvas.FillRect

在更改列表视图的SubItem文本时,我需要刷整并填充整行:

procedure TForm1.ListViewDrawItem(Sender: TCustomListView;
  Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
  if Item.SubItems[2]='Done'
   then
  begin
    Sender.Canvas.Font.Color := clBlack;
    Sender.Canvas.Brush.Color := clGreen;
    Sender.Canvas.Brush.Style := bsSolid;
    Sender.Canvas.FillRect(Rect);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

但是Sender.Canvas.FillRect(Rect)将仅填充SubItem的Rect.如何填满整行?

这个问题是在Delphi的基础上提出的:如何在CustomDrawItem的List View中绘制小图标

谢谢!

delphi listview brush rect fill

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

当我调用Trim时,为什么我的字符串没有被修剪?

我在字符串中添加了一个空格,但Trim不会删除此空格.为什么不?

str:=tstringlist.create;
str.LoadFromFile(s);
Trim(str.strings[1]);
str.Free;
Run Code Online (Sandbox Code Playgroud)

delphi string trim

0
推荐指数
2
解决办法
952
查看次数

Delphi:将文件加载到TStringGrid中

有一个程序可以创建一个日志文件.

这是它创建的日志文件的示例:

在此输入图像描述

此程序将此日志文件加载到TStringGrid中.日志文件以制表符分隔.单元格可以具有空格"".

我如何使用TStringGrid或替代方案将此类日志文件加载到此程序中?

谢谢!

delphi logging tstringgrid

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

为什么SameText不工作?

为什么

if SameText(ListBox1.Items[i],Edit1.Text)=true then
Run Code Online (Sandbox Code Playgroud)

不行?它区分大小写(字符串有不同的情况),但必须不是.字符串是unicode.如果字符串具有相同的情况,它可以工作.

谢谢!

delphi string text case

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

德尔福:冷冻形式

有两种形式.

Form2不是自动创建的.

 Form2:=TForm2.Create(Application);
 Form2.Show;
Run Code Online (Sandbox Code Playgroud)

如果要Sleep(10000);在任何形式内进行,那么另一个形式将被冻结.如何防止这种行为?

我的问题:一个大文本文件(3 Mb)被连续分配(Lines.Assign)到文本编辑器中,因此表格被冻结.

我可以使用另一个未冻结的表单(不是模态)来显示进度条(样式是pbstMarquee)吗?

forms delphi multithreading

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

Delphi:最大化MDI项目中的子窗口

有一个很好的组件可以在客户区域中最大化子窗口(必须保留SHIFT键) - NLDExtraMDIProps.

或者可以使用此代码:

procedure WMSIZE(var Msg: TMessage); message WM_SIZE;

procedure TForm2.WMSIZE(var Msg: TMessage);
begin
  inherited;
  if Msg.WParam = SIZE_MAXIMIZED then
  begin
    ShowWindow(Handle, SW_RESTORE);
    Left := 0;
    Top := 0;
    Width := Form1.ClientWidth - 4; // The BORDER
    Height := Form1.ClientHeight - 4;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

但最大化并不是真正的最大化.子窗口仅与客户区对齐.它必须在调整父窗口大小时自动调整大小并适合客户区域,最大化/恢复系统按钮必须更改等.

我尝试完成下面描述的效果.

正如您在图片上看到的那样,子窗口最大化,并且

1)它们不占用整个父窗口(仅占用客户区域).

2)它们移动到标题/标题栏上是不可能的,因为它们是最大化的.

3)他们有恢复按钮,而不是最大化按钮.

4)它们客户区对齐(父窗口的大小调整导致子客户区域的大小调整).

我的问题中的代码和组件不像图片上的子窗口那样.

我们可以使窗口真正最大化(不仅仅是对齐)吗?

没有最大化(不好;我的问题中的组件和代码在这些图片上最大化):

在此输入图像描述 在此输入图像描述

最大化(我需要的):

在此输入图像描述 在此输入图像描述

delphi mdi window maximize childwindow

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

Delphi中的AccessViolationException - 不可能(检查它,难以置信......)

德尔福XE.Windows 7的.

有一个功能(请参阅下面的代码)或I:=0导致大项目中的AV错误.在新项目中没有相同功能的错误!我删除了大项目中的所有内容,我只留下了一个按钮和该功能.它仍然会导致错误......

带错误的一行:

if ISAeroEnabled then // this line is a cause
       i:=0;         // or this line
Run Code Online (Sandbox Code Playgroud)

我在任何地方设置了断点(我检查了整个函数,我在EACH LINE上设置了断点- >函数中没有错误),调试器显示错误在于i:=0;

如果删除一个功能(并离开i:=0;) - > 一切都好!

错误消息: First chance exception at $747FB727. Exception class EAccessViolation with message 'Access violation at address 004AE5AF in module 'MngProject.exe'. Write of address 0017FFF8'. Process MngProject.exe (4980)

为什么它在新项目中有效但在我的项目中却没有?

这是整个项目:http://www.2shared.com/file/UP22Om4j/Bug.html

代码:

unit MainFormModule;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  StdCtrls;
type
  TMainForm = …
Run Code Online (Sandbox Code Playgroud)

delphi error-handling access-violation

-3
推荐指数
1
解决办法
2407
查看次数