我用Delphi XE10尝试使用lockbox3.我想加密用户的输入字符串,并将其与验证值进行比较.但每次相同的输入字符串给出不同的加密结果.请问我的错是什么?
这里是给出此错误的示例代码
<UNIT CODE START>
unit Unit21;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, TPLB3.Codec, TPLB3.BaseNonVisualComponent, TPLB3.CryptographicLibrary,
Vcl.StdCtrls;
type
TForm21 = class(TForm)
Button1: TButton;
CryptographicLibrary1: TCryptographicLibrary;
Codec1: TCodec;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form21: TForm21;
implementation
{$R *.dfm}
procedure TForm21.Button1Click(Sender: TObject);
var s0,s1 : string;
begin
codec1.Password := 'ou[asdl[kn';
s0 := 'asdfghjkl';
codec1.EncryptString(s0,s1);
label1.caption := s1;
end;
end.
<UNIT CODE END>
<FORM CODE …Run Code Online (Sandbox Code Playgroud) 如果我设置TDateTimePicker组件(Delphi XE10)的属性"格式",例如.DDD d /米/ yyyy的话,就说明星期二14/ 47 /2016年!! 和日期31/12/2016为31/ 0 /2016!发生了什么事,拜托?
我正在使用Delphi 10.0 Seattle.
假设我有这样的记录:
TmyRecord = record
a,b : string;
ar : array of string
end;
Run Code Online (Sandbox Code Playgroud)
和这样的变量:
v : array of TmyRecord;
Run Code Online (Sandbox Code Playgroud)
和一些像这样的代码:
SetLength(v,2);
SetLength(v[0].ar,3);
SetLength(v[1].ar,2);
SetLength(v[0].ar[0],10);
SetLength(v[0].ar[1],5);
SetLength(v[0].ar[2],7);
...
v[0].ar[0][0] := 'aaaa';
v[0].ar[0][1] := 'bbbb';
....
v[1].ar[1][0] := 'xxxx';
Run Code Online (Sandbox Code Playgroud)
请问这句话:
SetLength(v,0);
Run Code Online (Sandbox Code Playgroud)
释放所有占用的内存,还是我必须手动释放它?
我想在画布上垂直绘制一个单词,并在它旁边水平绘制一个单词。我使用了这样的旧建议:
在 maiForm 的创建事件中:
GetObject(MainForm.Font.Handle,SizeOf(TLogFont),@LogFont);
NewLogFont := LogFont;
NewLogFont.lfEscapement := 900;
NewFont := CreateFontIndirect(NewLogFont);
OldFont := MainForm.Font.Handle;
Run Code Online (Sandbox Code Playgroud)
在哪里
LogFont,NewLogFont : TLogFont;
NewFont,OldFont : HFont;
Run Code Online (Sandbox Code Playgroud)
并在绘图程序中:
fontTemp := TFont.Create;
fontTemp.Assign(aCanvas.Font);
......
aCanvas.Font.Handle := newFont; // if i coment this line the two strings drawn verically else both drawn horizonatlly
aCanvas.Font.Size := 8;
h := textHeight('1');
aCanvas.textOut(x,y,aString);
aCanvas.Font.Assign(fontTemp);
aCanvas.textOut(x+20,y,bString);
.....
fontTemp.Free;
Run Code Online (Sandbox Code Playgroud)
在我的旧应用程序 (D2007) 中,它运行正常,但在 Delphi 10.2 中,方向的变化(从 vert 到 horiz)会将两个字符串都更改为 horiz。请问有什么帮助吗?
我尝试使用下面的代码发送电子邮件(取自http://delphiprogrammingdiary.blogspot.com/2014/12/how-to-send-email-in-delphi.html),但没有成功。\n我不断收到错误(尽管客户端已成功与服务器连接,但在语句“Send(IdMessage1)”处出现“套接字错误 10054 连接由对等方重置”两次,最后“SSL 协商失败”)。
\n procedure SendEmailClick(Sender: TObject);\nvar\n IdMessage1: TIdMessage;\n Attachmentfile: TIdAttachmentFile;\nbegin\n// IO HANDLER SETTINGS //\nWith TIdSSLIOHandlerSocketOpenSSL.Create(nil) do\n begin\n Destination := \'mySrver.com:587\';\n Host := \'mySrver.com\';\n MaxLineAction := maException;\n Port := 587;\n SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];\n SSLOptions.Mode := sslmUnassigned;\n SSLOptions.VerifyMode := [];\n SSLOptions.VerifyDepth := 0;\n end;\n//SETTING SMTP COMPONENT DATA //\nwith TIdSMTP.Create(nil) do begin\n Host := \'mySrver.com\';\n Port := 587;\n Username := myMailAddress; // please change to your gmail address //\n Password := myPassword;\n IOHandler := TIdSSLIOHandlerSocketOpenSSL.create;\n AuthType := …Run Code Online (Sandbox Code Playgroud) 如果程序员能够以HTMLorRichText格式编写代码,例如变量可以具有index in subscript formator 可以是underline代码的一部分,或者可以different color在代码的一部分中使用 a 等,那就太好了。
Delphi IDE有这个功能吗?
如果是这样,有人可以向我解释是否以及如何HTML选择并HTML formatting做我想做的事吗?