德尔福2007/2009奇怪的问题在这里:
基于设计时定义的组件属性,可以将文件包含在链接中或保留它们吗?
示例:如果我将SomeProperty保留为true,则在编译时,单元SomeUnit将包含在我的项目中.否则将不包括在内.
我解决这个问题的第二种方法是部署第二个组件,当在表单中删除时(或不在表单中)将包含使用子句中的单元.但如果可以用财产来做,那就更好了.
我想通过IFDEF避免条件编译,因为这会强制每次构建项目时构建组件.或不?
我试图实现一个简单的方法,在项目中包含一些单位,然后这些单位将提供对特定数据库的支持.将这些选项放在连接组件中将非常简单:检查支持并完成.取消选中,并在已编译的APP中获得更少的KB.
编辑:我会继续使用组件方式.我知道IFDEF方法和事情,但这会强制每次构建项目时构建组件.或不?
我试图通过简单的方法将一些单元包含在项目中,然后这些单元将为特定数据库提供支持.将这些选项放在连接组件中将非常简单:检查支持并完成.取消选中,并在已编译的APP中获得更少的KB.
这是老程序员的问题.
几年前,我遇到了一种Pascal方言,通过某种扩展允许可变数量的参数.
有没有人知道Pascal的当前方言允许可变数量的参数?
考虑到Pascal不像以前那么受欢迎,如果答案是否定的,我不会感到惊讶.
顺便说一句,这是比较正确的,是不是,说了可变数量的参数,而不是参数?
这是来自inno setup的代码部分.我的目的是使两个Checkbox在一个时间被选中.但是这段代码返回错误.
[代码]部分:
procedure CheckBoxOnClick(Sender: TObject);
var
Box2,CheckBox: TNewCheckBox;
begin
if CheckBox.Checked then
CheckBox.State := cbUnchecked;
Box2.State := cbChecked;
else //THIS LINE RETURNS AN ERROR: "Identifier Expected."
CheckBox.State := cbChecked;
Box2.State := cbUnchecked;
end;
procedure Box2OnClick(Sender: TObject);
var
Box2,CheckBox: TNewCheckBox;
begin
if Box2.Checked then
CheckBox.State := cbChecked;
Box2.State := cbUnchecked;
else //same error
CheckBox.State := cbUnchecked;
Box2.State := cbChecked;
end;
procedure CreateTheWizardPages;
var
Page: TWizardPage;
Box2,CheckBox: TNewCheckBox;
begin
{ TButton and others }
Page := CreateCustomPage(wpWelcome, '', '');
CheckBox := …Run Code Online (Sandbox Code Playgroud) 我正在编写一个从(简化的)Pascal到ARM asm的编译器.我正处于这个过程的第二步 - 在编写词法分析器之后,我正在使用java cup进行语法分析.
我写了我的语法,但有5个S/R冲突,这些都非常相似.例:
Warning : *** Shift/Reduce conflict found in state #150
between assign_stmt ::= val_expr ASSIGN val_expr (*)
and val_expr ::= val_expr (*) LBRACKET val_expr RBRACKET
under symbol LBRACKET
Resolved in favor of shifting
Run Code Online (Sandbox Code Playgroud)
我这节的语法:
assign_stmt ::=
val_expr ASSIGN val_expr;
val_expr ::=
NIL | BOOL_CONST | INT_CONST | CHAR_CONST | PTR val_expr %prec MEM | ADD val_expr %prec UADD |
SUB val_expr %prec USUB | NOT val_expr | val_expr PTR %prec VAL | val_expr …Run Code Online (Sandbox Code Playgroud) 我很抱歉打扰你这种过时的语言,但有没有办法检查pascal中的特定数组元素是否为空?它是一个整数数组,因此检查元素是否为空字符串会导致类型不匹配(我喜欢这种语言!).谢谢你的时间.
我试图在我的代码中将布尔变量(curs)设置为false但我收到此错误:
[错误] Main.pas(50):不兼容的类型
有谁知道这意味着什么?
if form1.Left = pt.X and form1.Top = pt.Y
then curs := false;
Run Code Online (Sandbox Code Playgroud)
如果您对所发生的事情了解或有任何想法,请随时分享.:) 谢谢
-connorbp
我想将"self"作为参数传递给另一个类的方法(在不同的单元中).但是第一个类的类型在第二个类中是未知的,因为我不能将第一个单元放入第二个单元的使用部分.所以我将参数类型定义为指针,但是当我尝试从第一个类调用一个方法时,Delphi 7解析器告诉我classtyp是必需的.
那我该怎么解决这个问题呢?
我正在使用以下代码向TDataSet动态添加字段:
while not ibSQL.Eof do
fieldname := Trim(ibSql.FieldByName('columnnameofchange').AsString);
TDataSet.FieldDefs.Add(fieldname , ftString, 255);
end
Run Code Online (Sandbox Code Playgroud)
问题是我可能会得到重复的名称,因此筛选重复项而不添加已添加的重复项的最简单方法是什么?
我希望不要遍历添加的每一列的TDataSet.FieldDefList,因为这对于添加的每一列都是很繁琐的。并且可以有很多补充。
如果可能,请提供其他解决方案。如果没有,那么我将无法使用FieldDefList迭代。
我还将补充一点,在SQL查询中筛选出重复项是一个选项,但不是所需的选项。
谢谢
我试图在图片中找到轮廓.我实现如下,但我得到
不兼容的类型:'ocv.core.types_c.pCvMemStorage'和'UWaterShedSegment.pCvMemStorage'错误.
type
pCvMemStorage = ^TCvMemStorage;
pCvSeq = ^TCvSeq;
.
.
.
var
contours : pCvMemStorage;
first_contour : pCvSeq;
.
.
.
cvFindContours(DistImgEq, contours, first_contour, SizeOf(TCvContour) ,CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0));
Run Code Online (Sandbox Code Playgroud) 我正在研究我的学校项目,我想使用动态(非静态)数组.我使用ObjectPascal,所以我习惯了一些语法.但现在我在旧的TurboPascal编程(我正在使用Turbo Pascal 7 for Windows).
它似乎不知道ObjectPascal,所以我想,你Turbo Pascal不知道动态数组.
如果我的理论是正确与否,有人能告诉我吗?我试图谷歌,但我没有成功.基本上我问"Turbo Pascal 7中的动态数组怎么样?" 谢谢你的所有反应.