我有这样的网址(例如):
https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=delphi+url+parameters+
我需要按名称(“sourceid”、“ion”、...)获取/设置参数的值。我怎样才能做到这一点?Delphi 有 TIdURI 类,它有助于解析 URL 而不是参数,它将所有参数作为单个字符串(属性参数)返回。当然我可以创建自己的解析器,但它是如此基本的功能,应该有一些标准的方式(我希望)。我很惊讶 TIdURI 没有它。
如果我尝试将文件部署到部署assets\internal\assets.zip和assets.zip,如下所示:

我尝试了各种路径来查看是否可以找到资产文件夹或我的 zip 文件。所有底层代码都不成功
  S1 := TPath.GetHomePath + PathDelim;
  S2 := FAppDataDirPathRoot + Application.Title + '.app' + PathDelim;
  S3 := TPath.GetLibraryPath + PathDelim;
  S4 := TPath.GetDocumentsPath + PathDelim;
  if (DirectoryExists(S1)) then // '/data/data/com.embarcadero.xxx/files/': yes:
    msAppNoOp
  ;
  if (DirectoryExists(S2)) then // ...: no, leftover test from iOS
    msAppNoOp
  ;
  if (DirectoryExists(S3)) then // '/data/app-lib/com.embarcadero.xxx-2/': yes
    msAppNoOp
  ;
  if (DirectoryExists(S4)) then // '/data/data/com.embarcadero.xxx/files/' yes
    msAppNoOp
  ;
  if (DirectoryExists(S1 + 'assets' + PathDelim)) then // no
    msAppNoOp
  ;
  if …我有一个Android Firemonkey应用程序,我想发布它.
但我无法切换到发布模式,程序在调试模式下运行.
我尝试了这些:
在项目选项(顶部工具栏)中更改配置.
使用Shift + Ctrl + F9代替F9.
我可以使用ShellExecute成功发送电子邮件.收件人地址是正确的,发件人地址是正确的,主题是正确的.电子邮件的正文是正确的,除了根本没有换行符,所有内容都显示为单个段落,没有换行符.我的默认电子邮件客户端是Windows 8.1邮件.
我的问题是,可以使用ShellExecute以保留换行符吗?我不打算直接发送电子邮件给Indy.我需要做的就是向默认的电子邮件客户端发送电子邮件并正确格式化.
procedure TForm1.Email1Click(Sender: TObject);
var
  iGridTableItem: TcxCustomGridTableItem;
  iName, iDate, iEmail, iSubject, iBody, iParam: string;
begin
  iGridTableItem := cxGrid1DBTableView1.DataController.
    GetItemByFieldName('EMail');
  if iGridTableItem.EditValue <> null then
  iEmail := iGridTableItem.EditValue;
  iGridTableItem := cxGrid1DBTableView1.DataController.
    GetItemByFieldName('Name');
  if iGridTableItem.EditValue <> null then
  iName := iGridTableItem.EditValue;
  iGridTableItem := cxGrid1DBTableView1.DataController.
    GetItemByFieldName('Date');
  if iGridTableItem.EditValue <> null then
  iDate := DateToStr(iGridTableItem.EditValue);
  iSubject := 'ImageEn EBook';
  iBody := 'Dear Mr. ' + iName + ',' + sLineBreak + sLineBreak +
    'PayPal has advised me that you purchased …请帮忙:我的表单上有两个编辑框.我用来输入金额的第一个.我使用的第二个用于分配金额.问题是我尝试一个像5.5一样的小数,我继续得到错误:"'5.5'不是一个有效的整数值".
这是我使用的代码:
var igroei,ipen, iper : integer;
    rgroei, rper : real;
begin
   ipen := strtoint(edtpen.Text); //the amount enter like 35060
   iper := strtoint(edtper.Text); // The number use for the percentage like 5.5
   iper := iper div 100;
   rgroei := ipen + iper;
   pnlpm.Caption := floattostrF(rgroei,ffcurrency,8,2);
end;
谢谢
我从 xml 文件中读取 UTF8 内容,然后需要保存并按需重新加载。我正在从 AssignFile/Writeln/Readln 转换为 David Heffernan 的缓冲流:缓冲文件(用于更快的磁盘访问)
我有简单的新 WriteLn 和 ReadLn 过程,WriteLn 可以工作,但我不能让 ReadLn 工作。
我对 ReadLn 的概念是处理:
新的 WriteLn 过程:
{ * New WriteLn * }
procedure TForm1.Button2Click(Sender: TObject);
var FileOut: TWriteCachedFileStream;
  vText: string;
  vUTF8Text: RawByteString;
begin
  FileOut := TWriteCachedFileStream.Create('c:\tmp\file.txt');
  try
    vText := 'Delphi';
    vUTF8Text := Utf8Encode(vText + sLineBreak);
    FileOut.WriteBuffer(PAnsichar(vUTF8Text)^, Length(vUTF8Text));
    vText := 'VB??';
    vUTF8Text := Utf8Encode(vText + sLineBreak);
    FileOut.WriteBuffer(PAnsichar(vUTF8Text)^, Length(vUTF8Text));
    vText := 'Java??';
    vUTF8Text := Utf8Encode(vText + …我真的很困惑.我想做的事情(看起来很简单)是在TDateTimePicker中显示日期+时间,并集成日历,并且能够在其值发生变化后读取它.
我想使用dd/MM/yyyy hh:mm格式.
由于TDateTimePicker不是TDateOrTimePicker,因此使用的是:
看起来很好,现在让我们读一读:
showmessage(DateTimeToStr(DateTimePicker1.Date)); 
仅正确显示日期.不考虑hh:mm部分的变化.我总是得到默认值.然后我想:还有一个Time属性,也许我需要读取2次的值.
 showmessage(DateTimeToStr(DateTimePicker1.Time));
 showmessage(DateTimeToStr(DateTimePicker1.Date));
但我有与以前完全相同的输出(和问题).所以现在,让我们尝试将此Kind属性更改为dtkTime,然后读取时间,然后将其切换回dtkDate,然后读取日期.
但不,它仍然无效.将Kind属性从dtkDate切换到dtkTime会删除hh:mm部分的输入.
我知道我实际上应该使用2个TDateTimePickers:一个用于日期,一个用于时间.
所以我的问题是:
还有一个Delphi设计问题:
请注意,我发布这个问题主要是为了避免初学者做同样的调试和挫折的过程.
我读过传递参数const允许编译器优化结构化和字符串类型的代码。
将Char参数声明为 有const什么好处吗?
procedure Test(const AMyChar : Char);
代替
procedure Test(AMyChar : Char);
如果是这样,它是否与unicode 迁移有关?
我一直使用GetRValue,GetGValue和GetBValue函数(来自Winapi.Windows单元)来提取TColor.
不幸的是,同样的方法似乎不适用于系统颜色,例如clWindow,clBtnFace等等。
例如:
var
  MyColor : TColor;
begin
  MyColor := clBtnFace;
  ShowMessage(
    'R = ' + IntToStr(GetRValue(MyColor)) + sLineBreak +
    'G = ' + IntToStr(GetGValue(MyColor)) + sLineBreak +
    'B = ' + IntToStr(GetBValue(MyColor))
  );
end;
它产生以下输出:
R = 15
G = 0
乙 = 0
应该是这样的:
在我的系统上,我看到的是以下颜色:
delphi ×10
delphi-xe7 ×10
android ×1
colors ×1
datetime ×1
filestream ×1
firemonkey ×1
ide ×1
mailto ×1
parameters ×1
shellexecute ×1
systemcolors ×1
url ×1