我使用列表框组件和LiveBindings列出字段的内容,但该表有14443条记录,而lisbox只显示200条记录.delphi XE5的版本是try许可证.列表框的限制行是什么?手机正在运行Android.
谢谢.
当我使用以下命令创建TZCompressionStream对象时:
var
cs: TZCompressionStream;
dest: TStream;
level: TZCompressionLevel;
...
cs := TZCompressionStream.Create(level, dest);
Run Code Online (Sandbox Code Playgroud)
我收到这个编译器错误:
E2250 没有可以使用这些参数调用的“Create”的重载版本
但我的代码是根据构造函数声明:
Create(compressionLevel: TZCompressionLevel; dest: TStream); overload;
Run Code Online (Sandbox Code Playgroud)
当我使用XE时,一切正常。但是现在XE5出现了这个错误。为什么?
更新:
cs := TZCompressionStream.Create(dest);cs := TZCompressionStream.Create(clMax, dest);我也尝试过改变参数的顺序,但没有成功。
应用程序按照我的意愿工作但存在相当大的内存泄漏.限制一个线程的每个事件都会给我4个TBitmaps和2个丢失的TStrokeBrush.
程序DrawSine(); 在Synchronize语句中的Execute中触发:
procedure SineThread.DrawSine();
var
sin_T : Extended;
Point2 : TPoint;
I : Integer;
begin
TempBitmap.SetSize(Twidth, Theight);
TempBitmap.Canvas.BeginScene();
TempBitmap.Canvas.Stroke.Kind := TBrushKind.bkSolid;
TempBitmap.Canvas.Stroke.Color := claLime;
TempBitmap.Canvas.Clear(TAlphaColorRec.Black);
for I := 0 to Twidth do
begin
sin_T := Sin(((I - Tphas)/100.0) * Tfreq);
Point2.X := Round(I);
Point2.Y := Round(sin_T * Tampl) + Round(Theight/2.0);
if I = 0 then
begin
Point1.X := Round(I);
Point1.Y := Round(sin_T * Tampl) + Round(Theight/2.0);
TempBitmap.Canvas.DrawLine(Point1, Point2, 1.0, TempBrush);
end
else
begin
if I = Twidth then
begin …Run Code Online (Sandbox Code Playgroud) 如果我为64位Windows编译,我的Byte-Arrays没有正确的输入值.如果我为x32-Windows编译此过程,则值是正确的.
谁能帮我?
procedure doAnything(AText: String); //for example "<xml><s name="hello"/></xml>"
var
myArray:array of Byte absolute AText;
begin
... (* myArray for x32: correct Length and Values (60, 0, 120, 0, 109, 0, ...) *)
... (* myArray for x64: Length: 2 (60, 0) *)
end
Run Code Online (Sandbox Code Playgroud) 我知道FLAG_SECURE是一种禁用Android屏幕截图功能的方法。如何在 FireMonkey / Delphi XE 5 中使用它?
获取我无法追踪的奇怪访问冲突.当用户使用该程序时,似乎几乎随机发生.
使用madexcept,它显示堆栈跟踪:
date/time : 2014-09-17, 18:04:30, 366ms
operating system : Windows 8 x64 build 9200
system language : English
system up time : 3 days 19 hours
program up time : 1 hour
processors : 4x Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz
physical memory : 3113/6036 MB (free/total)
free disk space : (C:) 562.61 GB
display mode : 1366x768, 32 bit
process id : $24d0
allocated memory : 43.32 MB
largest free block : 1023.78 MB
executable : MyProgram.exe
exec. …Run Code Online (Sandbox Code Playgroud) procedure TForm1.TimerSWTimer(Sender: TObject);
var
Hour, Min, Sec, MSec: word;
begin
ElapsedTime := Time - StartTime + Totaltime ;
DecodeTime(elapsedtime, Hour, Min, Sec, MSec);
LabelSW.Text := IntToStr(Hour) + ':'+ IntToStr(Min) + ':'+ IntToStr(Sec) + ':' + IntToStr(Msec);
end;
Run Code Online (Sandbox Code Playgroud)
这是我试图在我的应用程序中实现的秒表代码,主要问题是标签上显示的时间格式是0:0:0:0,我希望它是00:00:00:000几小时,几分钟,几秒和几毫秒.我尝试了很多我在网上找到的东西和代码,但没有一个对我有帮助.
当我启动秒表时,时间会像这样0:0:0:1,比0:0:0:10,0:0:0:100在完整的第二个毫秒之后变为1个十进制(1而不是001).几小时,几分钟和几秒相同,它们以1位小数显示,直到达到10(9而不是09).
我试过了:
Addleadingzeroes功能
用法:
AddLeadingZeroes(2005, 10) ;
Run Code Online (Sandbox Code Playgroud)
将导致'0000002005'字符串值.
仅限时间 - 带前导零的数值
ShowMessage('hh:nn:ss.zzz = '+FormatDateTime('hh:nn:ss.zzz', myDate));
Run Code Online (Sandbox Code Playgroud)如果你们中的任何一个好伙伴都可以提供帮助,我将非常感激.
干杯.
我正在为每个URL提供图像并显示TImage.我将使用JPG,GIF和PNG.但我不知道如何找出每个文件的扩展名,然后进行区分.我如何获得标题或任何其他方法让我知道什么类型的文件:GIF或PNG或JPG?
var
MS : TMemoryStream;
GIf: TGIFImage;
jpegimg: TJPEGImage;
begin
MS := TMemoryStream.Create;
GIf := TGIFImage.Create;
jpegimg := TJPEGImage.Create; ///////
try
try
IdHTTP1.get('http://forum.wmonline.com.br/uploads/av-8929.jpg',MS);
Ms.Seek(0,soFromBeginning);
//Gif.LoadFromStream(MS);
//Logo.Picture.Assign(GIF);
jpegimg.LoadFromStream(MS);
Logo.Picture.Assign(jpegimg);
except
ShowMessage('ERRO');
Exit;
end;
finally
FreeAndNil(GIF);
FreeAndNil(MS);
jpegimg.Free; ////
end;
Run Code Online (Sandbox Code Playgroud) 我正在尝试从客户端使用 RESTClient(Delphi XE5,Windows 8)发送 JSON。但在服务器端,它作为文本/纯数据接收。
我正在尝试发送的 JSON:
{
"kind": "News",
"group": {
"id": "G01"
},
"title": "Latest News",
"content": "this is the latest news"
}
Run Code Online (Sandbox Code Playgroud)
在服务器端接收:
----------120515234155952
内容配置:表单数据;名称=“身体”
内容类型:文本/纯文本
内容传输编码:引用打印
{
"kind": "新闻",
“团体”: {
"id": "G01"
},
"title": "最新消息",
"content": "这是最新消息"
}
----------120515234155952
内容配置:表单数据;名称=“访问令牌”
内容类型:文本/纯文本
内容传输编码:引用打印
ya29.QQKUa6ZDsco2uDK2neuYdurolLF8LAPDjMZGTdF3bnDLOIgX1JQ8g-FxKtMLSF-gl=
MDY
----------120515234155952--
用于将 JSON 添加到 TRESTRequest 的代码:
var
........
RESTRequest : TESTRequest;
content : String;
........
begin
........
content:='{'+
' "kind": "News",'+
' "group": {'+
' "id": "G01"'+
' },'+
' "title": …Run Code Online (Sandbox Code Playgroud) 是否可以在运行时从包含的CodeSite express获取异常的堆栈跟踪?如果是这样,有没有人有这方面的经验或实例?
如果失败了,有没有办法通过开源库实现这一目标?
我将日志记录引入了一个已有10年历史的Delphi应用程序,因此在没有日志记录的情况下,仍有相当大比例的应用程序.因此,对于尚未重写的区域,我有一个Application.OnException挂钩.对我们在生产中获得的零星访问冲突进行有意义的堆栈跟踪将非常有用.下面是我已经拥有的,我很失望地发现StackTrace属性为空.
class procedure Log.Error(const err: Exception; const method: string);
begin
FileLog(err, method);
end;
class procedure Log.FileLog(const err: Exception; const method: string);
var
_msg: TStringList;
begin
//_msg := Format('%s Failed:%3:s%1:s%3:s %2:s%3:s', [PreparedEntry(method), err.Message, err.StackTrace, sLineBreak]);
_msg := PreparedEntry( Format('%s Failed:', [method]));
_msg.Add(err.Message);
_msg.Add(err.StackTrace);
WriteLog(_msg, _logFileName);
end;
Run Code Online (Sandbox Code Playgroud)
我们正处于从delphi win32应用程序迁移到仍然为delphi客户端应用程序提供服务的多层.net wcf服务器应用程序的高级阶段.长期和短期是在说服管理层购买Delphi XE5(只是为了获得改进的json支持和实时绑定)之后,要求购买另一个delphi是非常难以证明的.
谢谢
delphi ×10
delphi-xe5 ×10
64-bit ×1
android ×1
codesite ×1
exception ×1
firemonkey ×1
format ×1
idhttp ×1
json ×1
listbox ×1
livebindings ×1
logging ×1
rest-client ×1
stopwatch ×1
time ×1