1、在求一个字符在汉字中出现的位置从而想获得字符后面的汉字时,需要注意这里不能用leftstr/rightstr操作
而应该用leftbstr/rightbstr
eg:
iIndex:=Pos('[',vTermStr);
if iIndex>0 then vTermStr:=RightBStr(vTermStr,Length(vTermStr)-iIndex);
2、当memo绑定的字符中出现了‘[]’字符时,需要注意这时fastReport提示运算符出错,
是因为TfrxMemoView(frxrprt1.FindObject('Filed')).ExpressionDelimiters中默认的表达式是:'[,]'
这里可以把其修改为'<,>';
3、
//单向链表
PUser=^RUser;
RUser=packed record
Usersid:Integer;
UserName:string;
Sex:Boolean;
Age:Integer;
Link:PUser;
end;
hash:
var Index:Integer;
p_User:PUser;
vHash:THashedStringList;
begin
vHash:=THashedStringList.Create;
begin
p_User.Usersid:=10;
p_User.UserName:='lijinghua';
p_User.Sex:=true;
p_User.Age:=30;
end;
Index:=vHash.IndexOf(IntToStr(p_User.Usersid));
if Index=-1 then
begin
vHash.AddObject(IntToStr(p_User.Usersid),TObject(Integer(p_User)));
end;
end;
4、
Lazarus在重新安装的时候需要把C:\Documents and Settings\Administrator\Local Settings\Application Data
目录下lazarus文件夹删除,否则在安装完成后因为有之前的一些配置信息导致Lazarus不能正常使用。
5、当遇到某一单元不能调试的时候,也即在该单元某一代码处设置了断点,但是不会经过该断点,可能的情况是因为当前的单元文件和当前工程文件不是在同一项目中。
这需要重新添加该单元到项目中。 当一个项目中有多个BPL文件需要调用同一个单元文件,只需要在项目BPL最前面的一个BPL中引用该单元。
6、remobject 在编译的时候如果提示XXXXLibrary_Invk文件和在修改后的接口参数不一致,不管是重新生成intf文件还是重新生成invk文件还一致会提示这个问题,
这里需要查看下delphi的环境,因为delphi环境引用的DCU文件优先级要高于项目中引用的DCU文件。所以需要查看下DELPHI的环境。
7、delphi2007新增了一个frame,在DPK或者DPR中需要注意frame的引用顺序,如果需要后面用到这个FRAME的话需要把该FRAME添加在最前面。
eg:
package XXXTest;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$IMPLICITBUILD ON}
requires
rtl,
vcl,
vclx,
dbrtl,
vcljpg,
cxLibraryD11,
cxEditorsD11,
cxDataD11,
vcldb,
cxExtEditorsD11,
dxBarD11,
cxGridD11,
cxPageControlD11,
cxExportD11,
dsnap,
cxTreeListD11,
RaizeComponentsVcl;
contains
frame_User in '..\XXXTEST\frame_User.pas'{FrameUser: TFrame},
frm_UserManage in '..\XXXTEST\frm_UserManage.pas' {frmUserManage};
end.
这里还有一个需要注意frameUser后面一定要接上(:TFrame)否则在查找FRAME时还是找不到。
8、bpl的编译路径问题
如果一个BPL文件有在2个系统中用到,且在两个系统中该BPL有差异,这时候就需要注意在具体一个系统中是用到那个BPL的,
也即需要核对好需要用到的BPL的路径,否则在编译整个项目的时候有可能会提示错误。
浙公网安备 33010602011771号