我使用TidHTTP + TIdSSLIOHandlerSocketOpenSSL + 2 DLL:来自http://indy.fulgan.com/SSL的 ssleay32.dll和libeay32.dll .
但我可以在HTTP Analyzer中看到我的程序的所有工作!它可以用作HTTP,而不是HTTPS.如果我使用Opera,我看不到使用相同网站下载(https://esta.cbp.dhs.gov/esta).
我没有为TidHTTP和TIdSSLIOHandlerSocketOpenSSL设置任何特殊参数(可能是我必须但我不知道到底是什么).
我必须使用TIdSSLVersion(sslvSSLv23)+ SSL证书的位置吗?我在哪里可以获得此证书?还是只有RootCertFile?
如何将idHttp的端口更改为443(我必须这样做吗?)?
我用:
procedure TForm1.FormCreate(Sender: TObject);
var mem:tmemorystream;
begin
try
mem:=TMemoryStream.Create();
try
idhttp1.Get('https://esta.cbp.dhs.gov/esta/',Mem);
except
on E : Exception do ShowMessage(E.Message);
end;
finally
mem.Free;
idhttp1.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
请参阅我的视频:http://liga-installer.realservers.info/ssl.mp4
截屏:

谢谢谢谢你的帮助!
如何为我的申请进行30天的试用?我需要允许用户仅在30天内使用应用程序.这些天怎么算?
我将第一个和最后一个日期保留在注册表中.但是如果要改变系统时间 - 没有保护.我需要算上这30天.
我有一个列表视图并绘制它OwnerDraw.
如何在圆形角度和顶部的线条上绘制一个简单而平滑的进度条,如下图所示?

我需要你的帮助才能将下面的代码应用到我的需求中(我的技能无法编辑).
// TUbuntuProgress
// Version 1.2
unit UbuntuProgress;
interface
uses
Windows, SysUtils, Classes, Controls, Graphics, Math, ExtCtrls;
type
TUbuntuProgressColorSets = (csOriginal, csBlue, csRed);
TUbuntuProgressMode = (pmNormal, pmMarquee);
TMarqueeMode = (mmToLeft, mmToRight);
TMarqueeSpeed = (msSlow, msMedium, msFast);
TUbuntuProgress = class(TGraphicControl)
private
FColorSet: TUbuntuProgressColorSets;
FProgressDividers: Boolean;
FBackgroundDividers: Boolean;
FMarqueeWidth: Longint;
FMax: Longint;
FMode: TUbuntuProgressMode;
FPosition: Longint;
FShadow: Boolean;
FSpeed: TMarqueeSpeed;
FStep: Longint;
FVisible: Boolean;
Buffer: TBitmap;
DrawWidth: Longint;
MarqueeMode: TMarqueeMode;
MarqueePosition: Longint;
Timer: TTimer;
procedure SetColorSet(newColorSet: …Run Code Online (Sandbox Code Playgroud) 如何在应用程序关闭时正确停止线程?
我这样做:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if not Thread1.Finished
then
begin
Thread1.Terminate;
Thread1.WaitFor();
end;
end;
Run Code Online (Sandbox Code Playgroud)
但是在Thread1.WaitFor上我有一个错误:"线程错误:句柄无效(6)." 如果我做WaitForSingleObject(Thread1.Handle,无限)而不是WaitFor就可以了.
为什么我使用Thread.freeonterminate:= false然后WaitFor工作正常?请解释我的错误.据我所知,我需要使用"if Assigned"而不是"if not Thread1.Finished",对吧?
有没有人为hh:mm:ss计时器(Timer1.Interval:= 1000)提供简短有效的代码?我可以制作一个,但我想要一些有效的东西.
谢谢!
我的代码:
Var MyTime:TTime;
MyTime:=EncodeTime(0,0,0,0);
procedure TForm1.Timer1Timer(Sender: TObject);
begin
MyTime:=incsecond(Mytime,1);
form1.Label1.Caption:='Time: '+TimeToStr(MyTime);
end;
Run Code Online (Sandbox Code Playgroud) 从线程调用CopyFileEx和CopyCallback/ProgressRoutine函数(ProgressBar.Position将同步)是否可能?
我可以在线程中声明CopyCallback/ProgressRoutine函数吗?我在@ProgressRoutine上的CopyFileEx中收到错误:"需要变量".
我有一个列表框或列表视图与项目.我有一个字符串列表与列表框/列表视图相同的项目(字符串).我想从字符串列表中删除列表框/列表视图中的所有选定项目.
怎么做?
for i:=0 to ListBox.Count-1 do
if ListBox.Selected[i] then
StringList1.Delete(i); // I cannot know exactly an index, other strings move up
Run Code Online (Sandbox Code Playgroud) 我可以在列表视图中制作鼠标选择矩形,就像在SysListView32中一样吗?

有没有办法使用SysListView32并在Delphi中使用它?
谢谢!
我想从某个地方手动加载一个低音DLL,然后播放一个mp3文件.怎么做?德尔福XE2.
我的尝试不起作用:
type
QWORD = Int64;
HSTREAM = LongWord;
type
TBASS_ChannelPlay = function(handle: HSTREAM; restart: LongBool): LongBool; stdcall;
type
TBASS_StreamCreateFile = function(mem: LongBool; f: Pointer;
offset, length: QWORD; flags: LongWord): HSTREAM; stdcall;
procedure PlayMP3(FileName: string);
var
BASS_ChannelPlay: TBASS_ChannelPlay;
BASS_StreamCreateFile: TBASS_StreamCreateFile;
DllHandle: THandle;
MP3Stream: HSTREAM;
DllPath:string;
pFileName:pchar;
begin
DllPath:= 'c:\dll\bass.dll';
DllHandle := LoadLibrary(pchar(DLLPath));
try
if DllHandle = 0 then
Exit;
@BASS_StreamCreateFile := GetProcAddress(DllHandle,
'BASS_StreamCreateFile');
if @BASS_StreamCreateFile <> nil then
begin
pfilename:=pchar(FileName);
MP3Stream := BASS_StreamCreateFile(false, Pfilename, 0, 0, 0);
if …Run Code Online (Sandbox Code Playgroud) 德尔福XE2.有一个表格和一个框架.
形式和框架是doublebuffered.GlassFrame已启用.
我绘制框架的背景,并尝试绘制一个右对齐的矩形,但有bug.特别是在调整大小时我有错误.
矩形不希望从透明度到不透明的黑色正常绘制.

uses ...GDIPAPI, GDIPOBJ...
type
TFrame2 = class(TFrame)
procedure PaintWindow(DC: HDC); override;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
procedure TFrame2.PaintWindow(DC: HDC);
var
R: TGPRect;
pen: TGPPen;
Graphics: TGPGraphics;
linGrBrush: TGPLinearGradientBrush;
begin
R.X := 0;
R.Y := 0;
R.Width := self.Width;
R.Height := self.Height;
Graphics := TGPGraphics.Create(DC);
linGrBrush := TGPLinearGradientBrush.Create(R, MakeColor(255, 120, 248, 253),
MakeColor(255, 200, 216, 250), LinearGradientModeVertical);
Graphics.FillRectangle(linGrBrush, 0, 0, R.Width, R.Height);
linGrBrush.Free;
linGrBrush …Run Code Online (Sandbox Code Playgroud) delphi ×10
listview ×2
bass.dll ×1
draw ×1
file-copying ×1
frame ×1
function ×1
gdi+ ×1
gradient ×1
idhttp ×1
mp3 ×1
progress-bar ×1
selection ×1
ssl ×1
string ×1
terminate ×1
timer ×1
transparency ×1
tstringlist ×1
winapi ×1