我试着制作一个进度条,从0%开始,用5秒达到100%。单击按钮1后,进度条将开始上升。有什么建议吗?我看了谷歌,但这对我来说没有什么好处
另外,在0%时,应该有一个标签,上面写着等待…,当进度条启动时,它应该转到工作…,完成后,它应该写着完成您可以使用间隔为50的计时器,并首先将其设置为启用为false
procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled := True;
end;
procedure T
我试图优化我的Delphi类的大小,以便它们占用尽可能少的内存,因为我创建了大量的类
问题是,这些类本身非常小,但它们没有占用我所期望的空间。例如,如果我有
type MyClass = class
private
mMember1 : integer;
mMember2 : boolean;
mMember3 : byte;
end;
我预计它将使用6个字节,但是,由于对齐,它最终使用12个字节,即布尔值使用4个字节而不是1个字节。。。字节字段也是如此
对于记录,
上下文
我正在画画布,这是定期更新,它闪烁。
从逻辑上讲,我认为这是因为我的重画方法清除画布,然后一次向画布绘制一个元素。所以我的想法是写一封信给蒂玛吉,然后将图片设置为蒂玛吉
信息
这是我的密码
procedure Tmainwindow.Button3Click(Sender: TObject);
var bufferpicture:TImage;
begin
//draw stuff to bufferpicture
//***
//draw stuff to bufferpict
我想要我的过程WMInput(var-Mess:TMessage);信息输入放置在单独的单元中
我是否应该在另一个单元中以同样的方式声明这一点(我询问原型是否仍然是相同的过程WMInput(var Mess:TMessage);message WM_INPUT;)?
我怎么称呼这个?
以下情况是否可以接受
procedure WMInput(var Msg: TMessage)
begin
FUnit:= Fotherunit.create(self);
FUnit.WMInput(Msg);
InvalidateRow和InvalidateColum不适用于TStringGrid。这些方法不会使整个行/列无效
InvalidateGrid始终有效,因此在找到错误的原因之前,这可能是一项肮脏的工作。
在某些情况下,它似乎是随机失效的,而失效库姆似乎也起作用。
更新:我发现哪些情况会触发错误:网格必须大于可见区域,并且位置在视图之外
有什么想法吗
Delphi 7,Win 7 32位解决了Delphi VCL错误
我发现这个bug自Delphi 1以来就存在:
感谢Jeroen Wier
Delphi源代码中有一些汇编指令,我在汇编备忘表中找不到,包括:
fld
晶圆厂
fcompp
fstsw
我在“电源”功能中阅读了这些装配说明;但我在备忘单或类似的备忘单中找不到它们
这些指令是否不属于8086、8088 CPU指令?或者只是这些说明没有包含在这些备忘单中
有没有列出所有汇编指令的好网页?这些似乎是浮点指令。在旧时代,一个单独的芯片实现了这些(8087),因此作为链接的指令列表避免了这些操作。无论如何,你可以在最近的汇编手册中找到它们,因为浮点指令很久以前就插入到同一个芯片中
我尝试检查当前活动窗口是否为桌面执行某些操作,我在计时器中编写了以下代码,但GetDektopWindow和GetForegroundWindow返回的句柄值不相同:
if GetForegroundWindow = GetDesktopWindow then
// Do something
如何做到这一点?Greatis软件的WinDowse是了解窗口父/子关系、窗口类等结构的一个很好的工具。
我会从那里开始。我会将GetForegroundWindow和GetDesktopWi
我已经阅读了如何制作一个指向普通类的指针,并在类定义中使用它:
type
PExample = ^TExample;
TExample = class
data: Integer;
next: PExample;
end;
但是如何使用模板化参数呢?这不会在编译时在第二行出现错误未声明的标识符:“TExample”:
type
PExample = ^TExample;
TExample<T> = class
data: T;
next:
我通过自动化创建了一个Word文档(启动Word、打开模板、将其保存到.doc、关闭文档、退出Word)。之后,我想在一个TOleContainer中打开这个.doc文件:fOleContainer.CreateObjectFromFile(lTempFileName,False)
但是,我们的一个使用Word 2010(多台计算机,Windows 7/Windows XP)的客户机在该行上出现错误:请求的对象不存在(0x80010114)
导致此错误的原因是什么?如何解决此问题
代码:
XP机
在delphixeuxtheme单元中,有以下声明
function DrawThemeTextEx(hTheme: HTHEME; hdc: HDC; iPartId: Integer; iStateId: Integer;
pszText: LPCWSTR; cchText: Integer; dwTextFlags: DWORD; pRect: PRect;
var pOptions: TDTTOpts): HResult; stdcall;
external themel
我在Delphi7中使用TTNTListView。
它被设置为vsReport。
在OnCustomDrawSubItem事件中,我使用以下代码:
procedure TForm.ListViewCustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
if SubI
我有一个非常简单的问题。请看我用Pascal编写的代码:
Program Example;
Begin
Writeln('Question');
Readln;
End.
我想在页面中间显示“问题”字,怎么做? 也许类似这样(我假设你实际上是使用Delphi或兼容的东西):
可能是这样的(我假设您实际使用的是Delphi或其他兼容软件):
你可以试试我的单位。它可以做到这一点,还可以做更多的事情。它附带了一个简单的演示,展示了这些功能。您可以试试我的装置。它可以做到这一点,还可以做更多的事情。
我试图用XE2构建一个项目。这在Delphi XE中是正确构建的,但在XE2上我有一个错误
出现此文件,我在图标上有一个错误
此vrc文件以以下行结尾:
MAINICON ICON "Project1_Icon1.ico"
PLATFORMTARGETS RCDATA {1}
我在主图标上有错误
如果我删除这一行,一切都好
你能解释一下我为什么会看到这个文件以及如何解决这个问题吗
注意:我的同事没有这个问题,相反,他们有一个向导将项目从XE升级到XE2。而且他们没有vrc文件我已经解决了在n
标签: Delphi
delphi-xe2firebirdfirebird2.5
我有带字段的Firebird DB表(FK-ForeignKey字段):
我想将此表加载到内存中,并在我的Delphi程序(只读)中使用它。我必须按所有FK搜索记录(..,其中FACILITY\u ID=:FACILITY\u ID=:SERVICE\u ID=:SERVICE\u ID等)
什么是该任务的最佳容器:动态数组或列表或其他?如何实现这种搜索?也许是炸土豆条
它不是非常大的表(1000条记录),但将在内部用于100000次以上迭代的构建
我将Delphi XE2与IBX&UIB&FB
我有一个窗口,里面有两个文本字段
如何使用WinAPI调用获取这两个文本字段的句柄
注意:两个文本框都属于不同的应用程序,我在应用程序a中调用WinAPI,而文本框位于应用程序B中
更新1:
调用GetClassName时收到无效的窗口句柄消息
我认为回调函数的声明有问题
function TMyClass.CBList(Win: THandle; lp: LPARAM): Boolean; stdcall;
var
ClassName:array [1..1024] of Char;
be
标签: Delphi
zipdelphi-xe2delphi-xe3
我想用Delphi XE2/XE3标准System.zip单元替换zip存档中的文件(=删除旧文件并添加新文件)。但是没有替换/删除方法。有人知道如何在不提取所有文件并将其添加到新存档的情况下实现这一点吗
我有这段代码,但如果已经存在,它会再次添加“document.txt”:
var
ZipFile: TZipFile;
SS: TStringStream;
const
ZipDocument = 'E:\document.zip';
begin
ZipFile := TZip
我正在使用Windows附带的WinLDAP.DLL连接到不同的LDAP服务器(1x OpenLDAP,1x Active Directory)。编程语言是Delphi,但可能与此无关
在一些配置中,当使用服务器名称而不是IP地址时,“ldap_connect”的调用非常慢(6-7秒)。对同一服务器进行ping或nslookup并不慢。为什么ldap连接的速度很慢?我是否可以检查一些东西来确定问题
编辑:WMware在我的计算机上安装了2个虚拟以太网适配器。如果我取消激活这些适配器,ldap_c
标签: Delphi
delphi-xe2firemonkey
我已经在RAD Studio XE2中创建了Fire Monkey HD应用程序,并创建了TForm1的OnCreate事件,但在我运行项目时没有触发该事件。我在对象检查器中找不到要绑定OnCreate的窗体事件,因为它在delphi 7中。请帮助
procedure TForm1.FormCreate(Sender: TObject);
begin
//some code...
end;
只要处理程序绑定到事件,它就会运行
你说你还没有找到把这些事件联系起来的地方。这显然是问题所在。它仍然
我在Delphi2010中编写了一个小型COM服务器,作为零售应用程序的插件。零售应用程序寻找一个“发现”接口,该接口注册任何数量的调用TAutoObjectFactory的附加接口。为每个接口创建。这工作得很好——所有插件接口都按设计工作
但现在我想从另一个接口调用一个接口的公共方法,这样就不必重复代码。看起来很简单,只需调用ComClassManager.ForEachFactory查找我需要使用的接口的ClassID。这也起作用了
但是现在我找到了这个类,我被一个看似微不足道的最后步骤难住
我需要通过单击组件来更改组件选项,但我需要为动态创建的许多对象实现此功能
我需要这样做:
Object_I_clicked_on.brush.color:= clred; ...
这是不好的,因为将有许多组件,所有组件将具有相同的功能
坏:shape1.brush.color:=clred
有没有办法做到这一点?带有发送器(变量)等的内容。创建一个新的VCL项目。添加一个t形状。Ctrl+C和Ctrl+V,这样您就可以在表单上看到它们中的许多。将它们全部选中,然后在对象检查器的事件选项卡上选择
主要任务是通过Delphi程序进行后期自动化。使用REST客户端,我发现,有了站点的url和两个标题:*login\u email*和*login\u pass*我可以成功地获得HTML cod\,并且我的POST auth表单还可以,我已经登录了
但是,我编写了以下Delphi代码:
DataToSend := TStringList.Create;
DataToSend.Add('');
IdHTTP1.Request.ContentType := 'application/x-www-f
TIDCompressorzlib组件用于Delphi/C++Builder Indy库中的压缩和解压缩。CompressStream方法具有以下定义:
public: virtual __fastcall CompressStream(TStream AInStream, TStream AOutStream, const TIdCompressionLevel ALevel, const int AWindowBits, const int AMemLevel, const int AStr
我使用以下代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.visible := false;
Form2.show;
end;
是的,表格1被隐藏了,表格2出现了。但为什么任务栏上的应用程序图标也被隐藏了
我使用了以下代码,但仍然无法在任务栏上显示图标,同时隐藏form1
visible := false;
{
enable := false;
Application.M
我双击桌面上的Delphi图标,但是IDE没有显示。查看任务管理器列表,BDS.exe显示在进程列表下,而它应该显示在应用程序列表下。有人知道为什么会这样吗?注意:我当前使用的IDE版本是XE3,但同样安装了2010版本的行为方式相同Windows版本为8.1。我非常感谢您的帮助。经常会发生这种情况,因为您安装了一个性能不好的第三方组件,或者您已将IDE设置为在最后一个项目打开时加载,但由于某种原因,它无法这样做
有一些事情可以帮助解决这个问题;它们包括临时编辑Delphi的快捷方式(或者创建一
模块“frameprj.exe”中地址004295A6处的访问冲突。阅读地址6432FF68
我使用Delphi2007,我想构建一个包含表单、advtoolbar、advOfficeManager和主菜单的应用程序。根据主菜单中的按钮,我单击AdvToolBar上应加载的另一个菜单,如果该菜单不存在,则应创建一个页面,如果该页面存在,则应将其设置为活动页面。问题是,在创建页面后,当我再次单击MainManu项目时,我会出现此错误,并且看起来是因为AdvToolBar.Menu:=菜单代码行
这
这是我的代码:
procedure TDataModule2.MYTABLEBeforePost(DataSet: TDataSet);
begin
if (MYTABLE.FieldByName('DONE').Value = 1) then begin
DataSet.FieldByName('DONE_WHEN').AsDateTime:=Now;
end else begin
DataSet['DONE_BY'] :='';
DataSet.FieldByName('DONE_WHEN
我在Win 7 x64 Pro上使用BDS2006。
以下是我的步骤:
创建一个新的应用程序
在表格上写一个字母
选择aviFindfile作为CommonAvi
在设计时激活组件
跑
什么也没发生。有人见过这个吗
谢谢 必须添加一个TShellResources组件才能使其工作。必须添加一个TShellResources组件才能使其工作。已知该控件可以工作。也许avi是无用的。@DavidHeffernan,如果您有一个Win7 x64,很容易检查它当前是否与普通avi一起工作。我的怀疑是,由
我创建了一个firemonkey应用程序,但当我执行它时,会发生以下情况:
应该是这样的:
我不知道那是什么,你能帮我吗?提前谢谢
找到了解决办法。我也不知道,我看不到你的屏幕,看不懂你的代码,也看不懂你的心思。请阅读我还强烈建议你看看你以前的问题,如果答案回答了你的问题,请将答案标记为已接受。1你问题的标题没有意义。我们可以从您添加的标记中看出问题是关于Firemonkey和Delphi的,您还可以添加Delphi-xe6标记以显示特定版本,这意味着主题中没有任何信息。2我们不可能根据您在此处
我希望将面板宽度从300调整为0,使其尽可能平滑
在Firemonkey中,可以使用Panel1.AnimateFloat'Width',0
我目前正在做的是:
while Panel1.Width > 0 do
begin
Panel1.Width := Panel1.Width - 1;
Application.ProcessMessages;
end;
但我认为这样做是不对的
也许计时器是正确的方法?但我不想为每个动画创建计时器。使用计时器有什么问题?当然比处理消息要好
我创建了一些delphi组件,它们包含在一个bpl文件中。最近我注意到构建bpl(bpl已安装)会使IDE崩溃,但“MyComponents.bpl_卸载”除外。但如果未安装bpl,则不会发生此问题。我无法捕获此异常,也不知道它是在哪里引发的(我不手动调用unloadlibrary或其他)
在运行时和设计时,我的所有组件都能正常工作。
项目组可能只包含我的包或包含/不包含我的组件的项目,但情况相同。
在我的项目中,我使用其他vcl组件(使用vcl.StdCtrls、vcl.ExtCtrls、vc
graphics32是一个非常好的库,但是我很难正确地使用它。
例如图层,它们是一个很棒的特性
我可以将层添加到ImageView中,选择它们,移动它们,调整它们的大小,但是,如果我想删除它们,我不知道怎么做
该层也被选中,但我无法捕获其中的任何关键事件。我的意思是我想用键盘上的箭头移动图层一个像素,但我不能
有人知道如何解决这些问题吗
请帮忙
谢谢捕获箭头键的关键是允许这样做。为此,需要调整基础TCustomPaintBox32类的公共(但未发布)属性
差不多
ImgView.Option
标签: Delphi
delphi-7chromium-embedded
如何在CEF上填写密码字段
我试试这个:
CodeStr := 'document.forms[0].form_password.value="hahaha";';
Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, 'mainFrame.GetURL()', 0);
但它不起作用
源代码是:
<div class="field">
<input type="password" name="password" id
标签: Delphi
delphi-xegraphics32
通过绘制图层,我指的是用户可以手动绘制直线、圆或其他形状的图层。所谓普通层,我指的是图形32层示例中描述的层,即可以在运行时使用鼠标事件移动或调整大小的层
因此,我很难将这两种类型的层组合起来。在我的测试项目中,现在,我假设我只有一个绘图层和多个PNG层。
因此,在我的项目中,我在OnFormCreate中为ImgView32设置了如下属性:
procedure TForm1.FormCreate(Sender: TObject);
begin
AWidth:= 800;
AHeight
我有一个密码:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
....
Left := Screen.WorkAreaLeft;
Top := Screen.WorkAreaTop;
Width := Screen.WorkAreaWidth;
Height := Screen.WorkAreaHeight;
.....;
end;
W7-正确显示,
W8-带垂直滚动条的显
所以我花了一个小时试着让它工作。我正在TWebBrowser上做一些测试,以便将我的发现应用到一个项目中。我想测试将内容加载到其中的不同方式(URL、LoadFromStrings()和EvaluateJavaScript()。问题是,我无论如何都无法将一个简单的字符串传递到最后一个方法中,而不让它被错误地包含在撇号中
procedure TForm1.FormCreate(Sender:TObject);
const S='<span style="color:red">ABC&l
标签: Delphi
warningscompiler-warnings
当我第一次编译我的项目时,我有一个警告列表。但是如果我第二次编译同一个项目,这个列表是空的
如何使这个清单是充分的,每次我编译的项目
我找到的唯一解决方案是关闭并重新打开项目(有时是IDE)。执行项目的构建,而不是编译。从“项目”菜单中选择“生成”选项以执行生成。如果您使用的是键盘快捷键,则构建时使用SHIFT+F9,而编译时使用CTRL+F9
执行编译时,仅编译过期的单元,并且仅在编译单元时才会发出警告。执行生成时,将编译所有单元
根据您的评论,您似乎不愿意使用构建操作。我不同意你的推理,但是
我已经下载了Delphi Spring框架的最新版本。按照自述文件中的指示,我运行Build.exe并选择了两个版本的Delphi(XE5和Seattle)。在Delphi安装中,我既看不到已安装包,也看不到修改了我的库搜索路径。我遗漏了什么,或者我必须做些什么才能安装和使用它
提前感谢您的帮助。Spring4D中没有要安装的软件包,因为实际上只安装了设计时软件包(如IDE中所示)。Build.exe执行的所有操作都会编译所选Delphi版本的运行时包,并将dcu文件夹添加到库路径中(如果您在选
标签: Delphi
authorizationdatasnap
使用参数AuthorizeEventObject我可以使用MethodAlias内部的OnUserAuthorize属性获取被调用方法的名称。
我想获取此方法的参数
例如,如果调用了reversesetring,我想在OnUserAuthorize
可能吗?怎么做?我不知道这是否是更好的方法,但在和的帮助下,我已经解决了我的问题
uses Web.HTTPApp, Datasnap.DSHTTPWebBroker, IdHTTPWebBrokerBridge;
procedure TS
Delphi Berlin 10.1+iOS64=错误
应用程序关闭时没有任何消息,只需在iOS日志中留下消息:
收到内存警告
该代码仅执行以下操作:
var
frm: TMyForm;
begin
frm: = TMyForm.Create (nil);
frm.ShowModal;
frm.Free;
end;
当你点击按钮大约8次时,就会出现错误
有人知道如何解决这个问题吗?来自:
警告:Android应用程序不支持模式对话框。您应该调用,让表单返回并调用您的事件
我试图将多个文件存储到一个文件流中,然后将其转储。为此,在合并它们时,我使用如下缓冲区:
SetLength(header, 10);
header := Bytesof(Inttohex(SizeofStream, 10));
mystream2.WriteBuffer(header, Length(header));
mystream2.CopyFrom(mystream1, SizeofStream);
此外,在某些特殊情况下,我需要区分两个特定文件,我使用:
SetLength(hea
编辑我的问题
我会详细说明的
如何将下面的代码声明为const而不是var?
(我无法获取多维数据集示例)
显示了如何声明常量数组
数组常量
若要声明数组常量,请将
用逗号分隔的数组,位于
宣言。这些值必须由常量表达式表示。
例如:
const Digits: array[0..9] of Char =
('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
type
TCube = array[0..1, 0..1, 0..1] of
标签: Delphi
firemonkeydelphi-xe8
我已经创建了多个按钮。
问题是我希望创建的按钮看起来像3x3。
怎么做?
注意:按钮会更多
我的代码:
procedure TForm1.CreateButtonsClick(Sender: TObject);
var
i:integer;
B: TButton;
begin
for i:= 1 to 7 do
begin
B := TButton.Create(Self);
B.Text := Format('Button %d', [i]);
B.Parent
使用[dsEdit,dsInsert]中的TQuery.state,我可以检查数据集是否处于某些给定状态。有没有办法检查它是否处于给定状态
我尝试了TQuery.state[dsEdit,dsInsert]导致不兼容的类型错误,而不是[dsEdit,dsInsert]中的Query.state,但是我得到的错误运算符不适用于此操作数类型
单击此按钮时,我正在应用更新,当有人从数据集中删除记录但没有检查此案例的状态时,我也需要这样做。当然。写这篇文章的一个方法是
if not (Query1.St
我想从Delphi调用SPSS“后端”。我可以使用一个DLL(似乎):SPSSio64.DLL。但是我找不到接口定义
我发现的是PowerBasic中的一个示例:
由于我只需要函数来读写一个文件(所有的处理都将通过该文件中的语法完成),所以我认为这个示例可能足以推断如何从Delphi调用等效函数
所以问题是:这些声明在Delphi(64位)中是如何实现的?基于,然后,尝试以下内容:
32位:
// spssio32.dll exports both 'spssOpenRead' and 'sp
我有一个有两行的字符串列表
aOldPriceTerms[0] = 'FuelAddition=336643160'
aOldPriceTerms[1] = 'Freight=336643155'
因此,它可以很好地使用
aoldpricemeters.值[“运费”]->“336643155”
我想从列表中得到一个ID列表
这么简单
'FuelAddition','Freight'
目前我使用这段代码,其中aOldPriceTerms是实际的StringList
function GetLi
好的,通过观看关于如何使用Delphi进行基本编码的视频,我自学了基本编码。我已经成功创建了一个应用程序,在该应用程序中,我使用一个文本文件作为登录表单,并检查用户名和密码(视频提供了大量帮助)。如何使用Microsoft Access登录用户名和密码?我很难找到一个关于它如何工作的视频。我发现了一个视频,告诉我如何连接ado表和连接,但我正在努力登录。任何帮助都将不胜感激 如果您可以观看有关Ado表的视频,那么您所缺少的就是如何配置用于连接到数据库的TADOConnect。假设您已设置项目:
标签: Delphi
firemonkeydelphi-10.2-tokyofiremonkey-style
我有自定义样式的FireMonkey控件。其样式包含多个级别的嵌套控件
我需要在运行时访问这些控件并更改一些样式属性。为此,我正在使用FindStyleResource方法
我在检索样式内的第一级控件时没有问题。但是,如果控件父级是TStyledControl的后代,则使用FindStyleResource访问第二级控件将失败
问题是如何访问这些嵌套样式控件,而不考虑其父类型
风格:
object TStyleContainer
object TLayout
StyleName =
在两个不同的项目中,我需要使用crc16校验和。一个在windows中,另一个在android中。我使用了一个windows代码,它工作得非常好
showmessage( bin2crc16(HexToBin('1234')) ); //---> 0EC9
这里是winsows使用的函数
function Pow(i, k: Integer): Integer;
var
j, Count: Integer;
begin
if k>0 then j:=2
我以后是否必须在对象上运行FreeAndNil来释放为该对象分配的内存,或者它将由delphi的新作用域功能处理
begin
var foo := TObject.Create();
end;
仍然必须手动释放对象,就像以前一样
对象的生存期与变量的范围无关。这种情况一直存在,而且仍然适用。(事实上,创建对象时完全不需要将其指定给变量,这是非常有可能的。)
即使在这个老式示例中,如果没有空闲,对象也会泄漏,即使位图变量在过程的结尾超出范围
procedure Tes
标签: Delphi
controlsalignmentdelphi-10.3-rio
我有5个标签,在设计时,我将1个标签放在顶部,2个标签与顶部对齐,3、4和5个标签与顶部对齐。如果我在android上编译和运行我的应用程序,标签的顺序是1 5 4 3 2,我不知道为什么会这样。我可以用几个矩形或面板来固定我的标签,但我想利用标签的自动调整功能,如果我可以固定Delphi 10.3.3 Community Edition的订单问题,那就太棒了,因为我猜这是Delphis的错,因为我刚刚把它们放在了一个表格上,它们与我的顶部对齐顺序不符。我找到了一个解决办法。。默认情况下,对齐方