是否存在任何RTL Delphi函数来确定字符串中最后一次出现char的位置?
我正在将我的应用程序从delphi 2007迁移到delphi xe,但是我遇到了一个读取文件(ascii)并将内容存储在字符串中的过程的问题
这是在delphi 2007中正常运行的代码
function LoadFileToStr(const FileName: TFileName): String;
var
FileStream : TFileStream;
begin
FileStream:= TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
if FileStream.Size>0 then
begin
SetLength(Result, FileStream.Size);
FileStream.Read(Pointer(Result)^, FileStream.Size);
end;
finally
FileStream.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
但是当在delphi XE中执行此代码时,结果只是'????????'这样的符号,我知道哪个delphi xe是unicode所以我改变了这些行
SetLength(Result, FileStream.Size);
FileStream.Read(Pointer(Result)^, FileStream.Size);
Run Code Online (Sandbox Code Playgroud)
至
SetLength(Result, FileStream.Size*2);
FileStream.Read(Pointer(Result)^, FileStream.Size);
Run Code Online (Sandbox Code Playgroud)
将文件的内容存储在unicode字符串中但结果是相同的.
how i can fix this procedure to read the content of this file?
我有一个如此声明的过程:
procedure MyProc(List: Array of string);
Run Code Online (Sandbox Code Playgroud)
我想知道如何检查List参数是否为空.
例如:
procedure MyProc(List: Array of string);
begin
if List=[] then // here I want to check if the List array is empty
//do something
else
//do something else
end;
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
delphi有一个RTL函数来转换TColor COLORREF,如果不是我怎么能将TColor转换为COLORREF?
我正在使用delphi 2007,每次使用这样的代码创建一个新表单
var
Child : TFrmChild;
begin
Child:=TFrmChild.Create(Self);
Child.Show();
end;
Run Code Online (Sandbox Code Playgroud)
该子窗体显示,并出现上述所有其他形式,这是确定的,但在主窗体点击子窗体保持高于主窗体的.所以我有两个问题
谢谢
UPDATE
这是儿童形式的dfm
object FrmChild: TFrmChild
Left = 549
Top = 308
Caption = 'FrmChild'
ClientHeight = 228
ClientWidth = 213
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
end
Run Code Online (Sandbox Code Playgroud) 今天我丢失了我的delphi-2007协会,有没有办法恢复我的delphi文件关联(.pas,.dpk等),而无需运行delphi的安装程序?