当我尝试使用下面的代码行禁用样式化VCL上的Button时
TButton(Sender).enabled:= False;
Run Code Online (Sandbox Code Playgroud)
我得到了这个结果(在运行时禁用了按钮)

而不是这个!(设计时禁用按钮)

有两个或多个相同颜色的按钮彼此相邻,一个被禁用而另一个被启用,这实在令人困惑
我有以下过程允许从Windows中删除文件,删除工作正常,但是当我在运行时使用(TStyleManager.TrySetStyle(styleName))更改样式时,表单接受不再丢弃!这到底有什么问题?
public //public section of the form
...
procedure AcceptFiles( var msg : TMessage ); message WM_DROPFILES;
...
procedure TMainFrm.AcceptFiles(var msg: TMessage);
var
i,
fCount : integer;
aFileName : array [0..255] of char;
begin
// find out how many files the form is accepting
fCount := DragQueryFile( msg.WParam, {uses ShellApi is required...}
$FFFFFFFF,
acFileName,
255 );
for I := 0 to fCount - 1 do
begin
DragQueryFile(msg.WParam, i, aFileName, 255);
if UpperCase(ExtractFileExt(aFileName)) = '.MSG' then //accept only .msg …Run Code Online (Sandbox Code Playgroud) 我需要检索存储在本地磁盘上的outlooks的msg文件的主体并从每个文件中提取一些信息,它们的格式始终是相同的,只有数据更改,请指教.
在此先感谢劳尔
感谢大家,
由于限制回答我自己,我会在我的问题下面写下我的解决方案.
我检查了一些MS文档,这是我的解决方案按预期工作.
procedure TForm1.displayOutlookMsg(aFileName: string);
const
olFormatHTML = 2;
olFormatPlain = 1;
olFormatRichText = 3 ;
olFormatUnspecified = 0;
var outlook: OleVariant;
outlookMsg, bodyMsg: variant;
begin
try
Outlook := GetActiveOleObject('Outlook.Application');
except
Outlook := CreateOleObject('Outlook.Application');
end;
outlookMsg:= outlook.CreateItemFromTemplate(aFileName);
outlookMsg.bodyFormat := olFormatPlain;
bodyMsg:= outlookMsg.body;
Memo1.Lines.Add(VarToStr(bodyMsg));
outlook:= unassigned;
end;
Run Code Online (Sandbox Code Playgroud) 有没有办法在不使用OnDrawCell事件的情况下在Delphi的TStringGrid上绘制特定单元格,例如,如果我单击一个按钮,将根据其内容绘制指定的单元格.
我的计算机是公司域的一部分,我想使用ShellApi的shellexcute函数来运行具有给定用户名和密码的Windows文件(如同运行),是否可以将它们包含在函数的参数中?