我正在用Delphi构建一个插件系统(你们中的一些人一直在帮助我完成这项任务).
要搜索DLL文件,我正在使用TSearchRec,它在dll文件的exe路径中搜索,然后我使用LoadLibrary来访问它们.然后,如果暴露某个函数(使用GetProcAddress),我将其作为插件加载.如果没有,则执行FreeLibrary,然后继续下一个文件.
在测试的时候,我注意到当TSearchRec找到了"borlndmm.dll"时,它恰好在那个路径中,它加载,并搜索我的插件函数,当然没有找到,但是如果执行FreeLibrary,我得到访问冲突.
其他no-plugin dll在同一路径中,如libmariadb.dll,可以安全地释放,没有错误.
当然,这很容易修复,让我的插件dll在自己的路径中,没有任何其他dll文件,这甚至出于性能原因会更好,因为它不必加载任何它不应该的库.
但我想了解它为什么会发生.有任何想法吗?
谢谢Nuno Picado
使用此程序,我试图读取文件并将其随机打印到控制台。我想知道是否必须为此使用数组。例如,我可以将字符串分配到数组中,然后从数组中随机打印。但是,我不确定该如何处理。另一个问题是,当前程序无法从文件中读取第一行。我有一个text.txt
包含
1. ABC
2. ABC
...
6. ABC
Run Code Online (Sandbox Code Playgroud)
下面是我的代码。
type
arr = record
end;
var
x: text;
s: string;
SpacePos: word;
myArray: array of arr;
i: byte;
begin
Assign(x, 'text.txt');
reset(x);
readln(x, s);
SetLength(myArray, 0);
while not eof(x) do
begin
SetLength(myArray, Length(myArray) + 1);
readln(x, s);
WriteLn(s);
end;
end.
Run Code Online (Sandbox Code Playgroud)
请让我知道如何解决这个问题!
最近,我在组件中遇到了以下属性声明TDBNavigator
:
property Enabled;
[Default(False)] <--------------------
property Flat: Boolean read FFlat write SetFlat default False;
Run Code Online (Sandbox Code Playgroud)
该指令[Default(False)]
是什么意思?它的主要目的是什么?
我想用一个"drop-box"扩展一个打开/保存对话框,它应该看起来像一个TPanel(斜角).代码已经存在 - 我使用带有WNDCLASS名称"Edit"的CreateWindowEx().
我已经搜索了一个解决方案,用纯WinAPI绘制TPanel(分别是斜面STATIC),但没有找到任何东西.
MS Spy ++告诉我,TPanel的WNDCLASS名称为"TPanel"(听起来不像纯WinAPI?)
我现在尝试了以下代码,但是当我尝试使用类名"TPanel"而不是"EDIT"或"STATIC"时,我会得到一个AV.
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateWindowEx(
WS_EX_LEFT or WS_EX_LTRREADING or WS_EX_RIGHTSCROLLBAR or WS_EX_CONTROLPARENT,
'TPanel',
'Hello World',
WS_CHILDWINDOW or WS_VISIBLE or WS_CLIPSIBLINGS or WS_CLIPCHILDREN,
0, 0, 100, 100,
Handle, 0, hInstance, nil);
end;
Run Code Online (Sandbox Code Playgroud)
你能帮我么?
关心
Daniel Marschall
PS:你能告诉我如何在StackOverflow.com中编写delphi高亮显示的代码吗?
我正在寻找一些像GDI +这样不需要运行时库的单元.我只需要文字和图像效果.
我正在编写一个关于图像检索的小应用程序,但我无法理解这个数学表达式的含义
d ^ 2 = || x - p || ^ 2其中x和p是双元素向量.
有人可以告诉我这是什么意思||,我怎样才能将一个向量提升?
编辑感谢espertus回答我知道|| x - p || ^ 2是欧几里德距离.但是我也遇到了这个表达式|| p || ^ 2.那是什么意思?我认为它不可能是欧几里德的距离.还有什么呢?
如何使用Delphi(不使用Outlook)从特定Exchange帐户获取事件?
我是Delphi和Firemonkey的新手.
让我说我动态地(在运行时)在我的表单上创建一个新按钮,我想抓住它的OnCLick事件.
如何将我的控制绑定到onclick程序?
谢谢
如何在 Delphi 中编写 Unicode 文本文件?
目前我只使用AssignFile
,RewriteFile
和Writeln
,但这不会写 Unicode 字符。
delphi unicode character-encoding text-files delphi-10.3-rio
我创建了一个名为glyfs.rc的png资源文件
GLYF_CONFEDITOR RCDATA confeditor.png
GLYF_EXTRAFE RCDATA extrafe.png
.......
我在我的项目中添加它.
放一个TsBitBtn(它是一个alphaskin组件类)并尝试sbitbtn1.Glyph.LoadFromResourceName(HInstance,'GLYF_CONFEDITOR');
在运行时从资源文件加载
glyf我得到名称为'GLYF_CONFEDITOR'的错误资源文件未找到.
我究竟做错了什么?
我用于png的3方工具是从这里下载
的pngdelphi但是sbitbtn加载原生的png文件...
delphi ×10
components ×1
declaration ×1
delphi-7 ×1
delphi-xe7 ×1
dll ×1
firemonkey ×1
freepascal ×1
gdi+ ×1
graphics ×1
math ×1
panel ×1
pascal ×1
png ×1
properties ×1
taskbar ×1
text-files ×1
topendialog ×1
unicode ×1
winapi ×1