这是我的代码,用于"动画" TPanel鼠标光标悬停在它上面的时间.我还有一个代码块来使它无法动画.
procedure Tmain.pStarting1MouseEnter(Sender: TObject);
begin
if sender = pStarting1 then pStarting1.BevelInner := bvLowered;
if sender = pStarting2 then pStarting2.BevelInner := bvLowered;
if sender = pStarting3 then pStarting3.BevelInner := bvLowered;
if sender = pStarting4 then pStarting4.BevelInner := bvLowered;
if sender = pStarting5 then pStarting5.BevelInner := bvLowered;
if sender = pStarting6 then pStarting6.BevelInner := bvLowered;
if sender = pStarting7 then pStarting7.BevelInner := bvLowered;
if sender = pStarting8 then pStarting8.BevelInner := bvLowered;
if sender = pStarting9 then pStarting9.BevelInner := bvLowered;
end; …Run Code Online (Sandbox Code Playgroud) 我正在创建一个我的学生计划器的虚拟版本,它基本上可以让你记录你有什么主题的家庭作业.
这是界面:

用户从组合框中选择主题并在相邻备忘录中键入一些注释.完成后,他们将点击"保存"按钮,将其保存到.ini文件中.选定的日期将成为部分名称,主题将成为标识符,备忘录中的文本将成为每个标识符的值.
注意:有7个可能的科目.
我的问题是在选择日期时加载组合框和备忘录,因为每个日期的标识符总是不同的.
例如:
2月16日用户输入(界面):
英语 - 阅读小说第127页.
数学 - 完成第6章.
对于2月16日,它将在.ini文件中看起来像这样:
[16/02/12]
英语=阅读小说第127页.
数学=完成第6章.
2月20日用户输入(界面):
SOSE - 阅读课本.
法律研究 - 填写在线调查.
对于2月20日,它将在.ini文件中看起来像这样:
[20/02/12]
SOSE =阅读课本.
法律研究=填写在线调查.
现在您看到用户是否选择了2月16日来查看他们的任务是什么,因为每个标识符都不同,所以无法加载.
是否有更好的替代.ini文件?我怎样才能实现这一目标?
我按照这个视频制作一个简单的数据库应用程序.当我使用a TStringGrid而不是TGrid声明的视频时,我的问题就出现了,因为我没有它.我有一个导航器,我的所有数据都加载到了TStringGrid,但我根本无法编辑它.到目前为止,我已经尝试双击一个条目,按F2并单击导航器上的编辑按钮,但没有任何工作.
有什么我需要在TStringGrid允许编辑的属性中改变,或者它的目的只是为了显示数据?
先谢谢你!
我有一个表Artist,当前包含四个记录,TSQLQuery其中包含以下语句:
SELECT name
FROM Artist
Run Code Online (Sandbox Code Playgroud)
表格Artist还包含以下记录:
id name
1 Artist 1
2 Artist 2
3 Artist 3
4 Artist 4
Run Code Online (Sandbox Code Playgroud)
目前的记录检索方法:
Query1.Open;
for i := 0 to qArtist.FieldCount -1 do
with cbArtist.ListBox.ListItems[i] do
Text := qArtist.Fields[i].AsString;
Run Code Online (Sandbox Code Playgroud)
以前的记录检索方法:
数据绑定Query1到ComboBox1.
使用"previous"方法,ComboBox1将显示Artist表中的所有预期记录.但是,当我尝试使用"当前"方法时Query1,只选择Artist表中的第一条记录,尽管还有其他三个现有值.我已尝试跨越其他查询的"当前"方法,他们也只返回表的第一个值.
我之所以采用这种新方法,是因为我觉得如果我继续使用"上一个"/数据绑定方法,我的工作非常有限,但除此之外.
那么我该如何解决这个问题呢?即查询问题只选择表中的第一条记录.
我已经开始使用.ini文件了,因为我发现它与.txt文件相比有很多优点.无论如何,我用谷歌搜索"delphi inifiles",我现在正在关注Delphi的指南.然而,即使所有语法都正确,我试过的第一行也给了我麻烦.
德尔福关于代码:
IniFile := TIniFile.Create('myapp.ini') ;
Run Code Online (Sandbox Code Playgroud)
我的代码:
IniFile := TIniFile.Create('SWEDISH_HOUSE_MAFIA.ini');
Run Code Online (Sandbox Code Playgroud)
唯一的区别是.ini文件本身的名称.还有,我有:
我已将该代码放在FormCreate下,但问题是在运行程序时不会创建.ini文件.谁知道问题可能是什么?我问了一个朋友,他说这是一个许可问题.
额外细节:
我正在使用TWebBrowser为我的程序构建更新程序.OnCreate TWebBrowser导航到给定的URL.要下载更新,用户需要单击链接.单击链接时,将显示以下弹出窗口:

所以我想知道是否有可能:
我已宣布outputBuffer为a Byte并相应地使用它:
TFile.WriteAllBytes(outputPath,outputBuffer);
当我编译我的程序时,Delphi输出:
[DCC错误] StormLib.pas(56):E2010不兼容的类型:'System.TArray [System.Byte]和'Byte'
我的变量使用了错误/过时的数据类型吗?我该怎么做才能让我的程序编译?
先谢谢你!
首先,维基百科将控制面板小程序定义为:
图形用户界面,允许用户通过applet查看和操作基本系统设置和控件
它是否正确?
其次,在功能方面,VCL应用程序和控制面板小程序之间有什么区别.与VCL应用程序相比,使用CP Applet更改基本系统设置更容易吗?
我正在使用的函数包含三个参数,其中一个参数需要一个标志(fCreationDisposition):
function MpqOpenArchiveForUpdate(lpFileName: LPCSTR; fCreationDisposition, dwHashTableSize: DWord): THandle; stdcall; external 'lmpqapi.dll';
该文件指出,有五个可用的标志.但是,当我使用任何标志时Delphi告诉我它是一个"未声明的标识符".
为了能够访问标志而没有Delphi告诉我它是一个"未声明的标识符",还有什么额外的东西我必须添加吗?
注意:在uses我要求的功能部分:
function MpqOpenArchiveForUpdate(lpFileName: LPCSTR; fCreationDisposition, dwHashTableSize: DWord): THandle; stdcall; external 'lmpqapi.dll';
我有一个TComboBox从我的数据库收集的名称列表.旁边是TEdit我打算用于显示与每个人相关联的ID号的目的.
由于firstName和lastName是表中的单独字段,但在TCombobox中一起显示,我编写了一小段将firstName和lastName拆分为两个单独的变量:
Run Code Online (Sandbox Code Playgroud)pos := AnsiPos(' ', cbStudents.Text); firstName := Copy(cbStudents.Text, 0, pos-1); lastName := Copy(cbStudents.Text, pos+1, Length(cbStudents.Text));
然后我执行SQL代码:
try
query.Open;
query.SQL.Add('Select studentID');
query.SQL.Add('From student');
query.SQL.Add('Where firstName = ' + StrToQuote(firstName));
query.SQL.Add('And lastName = ' + StrToQuote(lastName));
editID.Text := query
finally
query.Free;
end;
Run Code Online (Sandbox Code Playgroud)
注意:StrToQuote使用双引号("")封装变量firstName和lastName
我收到的错误是:
争论超出范围
我究竟做错了什么?谢谢你先进的帮助.