我们公司有一大堆软件,它有很多非常有用的COM命令.我们有一个很好的基本设置,允许你基本上绕过GUI并获得你想要的信息,但我们也有一些已经为特定客户添加.
理想情况下,当我们的.exe被导入Visual Studio这样的东西时,我们想要将这些特定的COM命令"隐藏"给普通用户.因此,尽管他们是活跃的,但从理论上讲,唯一可以使用它们的人就是明确告诉他们的人.这将消除我们与客户使用的功能相关的许多问题,而这些功能并非真正设计为由他们使用,当然这意味着不必支持多个安装程序.
我正在使用Delphi 7并尝试创建一个可以输入小数的编辑框.
除了TCurrencyEdit之外,Delphi 7基本库中似乎没有任何内容.但是,它$在价值的开头处着手.反正有没有摆脱这个"功能"?
有一个看起来像的程序
Procedure TestProc(TVar1, TVar2 : variant);
Begin
TVar1 := CreateOleObject('Excel.Application');
TVar1.Workbooks.open('C:\Test\Test.xls');
TVar1.Workbooks[1].Worksheets[1].Name := 'Sheet_1';
TVar2 := TVar1.Workbooks[1].Worksheets['Sheet_1'];
End;
Run Code Online (Sandbox Code Playgroud)
注意:TVar1和TVar2是全局变量
在按钮的onclick事件中调用该过程然后使用创建的对象不起作用
难道delphi不允许创建具有变量参数的过程吗?
我有一个列表框并向其添加项目,项目是文件的地址,项目是在一些进程后添加的,它们是这样插入的:
Listbox_Browser.Items := myItems;
Run Code Online (Sandbox Code Playgroud)
因此,我不是逐个添加它们我在插入ti列表框时无法检查它们,我试图在OnDraw中检查它们并使用如下代码:
Try
FileOpenandP(Listbox_Browser.Items[Index]);
Except
ListBox_Browser.Items.Delete(Index);
End;
Run Code Online (Sandbox Code Playgroud)
但我得到错误"列表索引超出界限",解决方案是什么?
我正在开发一个需要ShellListView1的Delphi 7项目,所以只显示.PNG或.JPG文件.
如何仅查看文件夹和特定文件类型(例如:'.exe; .bat')?
我被告知是一个带有屏蔽的ShellListView1组件,但我尝试的网站是离线的.
有这个网站http://www.ingress.com/intel
要访问该网站,我们必须使用用户名和密码登录.
访问后,该站点使用JSON作为其数据.
我是JSON的新手.
任何人都可以举例说明如何使用Delphi从网站获取JSON数据?
我顺便使用Delphi 7.
谢谢.
我有一个这样的课:
Component = class(TObject)
Name: string;
CurState: word;
States: array of state;
constructor Create(nm: string);
procedure AddState(ccl: bool; const InB: BufArr; const OutB: BufArr);
function GetStateCount(): Integer;
end;
Run Code Online (Sandbox Code Playgroud)
States是一个数组state,也是一个类声明.
State = class(TObject)
InBuf: BufArr;
OutBuf: BufArr;
Cycle: bool;
constructor Create(ccl: bool; const InB: BufArr; const OutB: BufArr);
end;
Run Code Online (Sandbox Code Playgroud)
每个都component可以容纳多个state,这就是为什么我有一个数组state.
该GetStateCount()函数应返回组件所具有的状态数.实现如下:
function Component.GetStateCount(): Integer;
begin
result:=Length(States);
end;
Run Code Online (Sandbox Code Playgroud)
但是,当我在另一个过程中调用此函数时,我收到以下错误:
我似乎无法弄清楚这个原因.将不胜感激任何帮助.
好的,这是我调用函数的代码的一部分:
for i:=0 to nc-1 do
begin
cycle:=false;
len:=cmp[i].GetStateCount;
for j:=0 …Run Code Online (Sandbox Code Playgroud) 我使用Delphi 7和许多第三方组件.我的主存根应用程序加载了许多DLL,这些DLL是各种模块,如债权人,债务人,采购订单等.
我有一个问题FindComponent().99%的时间,它的工作方式应该如何.但不适用于下面的代码.
我正在尝试创建表单报告,在表格中保留报告选择条件的所有详细信息,然后即时创建条件.理论上,它应该完美地工作,但由于某些原因,在创建组件后,FindComponent()找不到它们.
try
for i := gbSelectionCriteria.ComponentCount - 1 downto 0 do begin
ShowMessage(gbSelectionCriteria.Components[i].Name);
gbSelectionCriteria.Components[i].Free;
end;
// The above loop to remove the components from the groupbox works fine
// Creating the components works
fSysData.tbSelectionCriteria.First;
while not fSysData.tbSelectionCriteria.EOF do begin
case fSysData.tbSelectionCriteriaComponentType.AsInteger of
1 : begin // TMyAdvEdit
with TMyAdvEdit.Create(gbSelectionCriteria) do begin
Visible := False;
Parent := gbSelectionCriteria;
Name := fSysData.tbSelectionCriteriaName.AsString;
Left := fSysData.tbSelectionCriteriaLeft.AsInteger;
Top := fSysData.tbSelectionCriteriaTop.AsInteger;
Width := fSysData.tbSelectionCriteriaWidth.AsInteger;
LabelCaption := fSysData.tbSelectionCriteriaCaption.AsString;
LabelPosition …Run Code Online (Sandbox Code Playgroud) uses
Math;
SysUtils;
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
声明预期但标识符"SysUtils"已找到
任何想法有什么不对?
编译正在运行,一切正常.但形式没有任何反应.
表单已启动,但不会自动添加任何数据.如果您手动输入数据,那么当您按下按钮时,也没有任何反应
有必要显示函数Y(x)的值及其在S(x)系列中的扩展,x从x0到xk变化,步长为h =(x0-xk)/ 10.在x的整个范围内的S(x)和Y(x)的值表示计算S(x)和Y(x)的正确性.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ExtCtrls ;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
Label4: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Memo1: TMemo;
Button1: TButton;
procedure Form1Create(Sender:TObject);
procedure Button1Click(Sender:TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Form1Create(Sender: TObject);
begin
Edit1.Text := '0';
Edit2.Text := '2';
Edit3.Text := '5';
Edit4.Text := …Run Code Online (Sandbox Code Playgroud)