小编Ond*_*lle的帖子

Delphi/MySql:转义字符串的问题

N00b在这里,有问题逃避字符串.我使用了QuotedStr()函数 - 应该不够.

不幸的是,我想引用的字符串相当混乱,但我会在这里发布,以防有​​人想将它粘贴到WinMerge或KDiff3等.

我试图将整个Delphi表单存储到数据库中,而不是存储到.DFM文件中.它只有一个字段,一个TEdit编辑框.

调试器将表单显示为文本

'object Form1: TScriptForm'#$D#$A'  Left = 0'#$D#$A'  Top = 0'#$D#$A'  Align = alClient'#$D#$A'  BorderStyle = bsNone'#$D#$A'  ClientHeight = 517'#$D#$A'  ClientWidth = 993'#$D#$A'  Color = clBtnFace'#$D#$A'  Font.Charset = DEFAULT_CHARSET'#$D#$A'  Font.Color = clWindowText'#$D#$A'  Font.Height = -11'#$D#$A'  Font.Name = 'MS Sans Serif''#$D#$A'  Font.Style = []'#$D#$A'  OldCreateOrder = False'#$D#$A'  SaveProps.Strings = ('#$D#$A'    'Visible=False')'#$D#$A'  PixelsPerInch = 96'#$D#$A'  TextHeight = 13'#$D#$A'  object Edit1: TEdit'#$D#$A'    Left = 192'#$D#$A'    Top = 64'#$D#$A'    Width = 121'#$D#$A'    Height = 21'#$D#$A'    TabOrder = 8'#$D#$A'  end'#$D#$A'end'#$D#$A
Run Code Online (Sandbox Code Playgroud)

在调用QuotedStr()和之前 …

mysql delphi escaping

4
推荐指数
2
解决办法
1615
查看次数

如何计算Windows区域(HRGN)的面积(以像素为单位)?

获取任意Windows区域的最快方法是什么?

我知道我可以枚举边界矩形的所有点并调用PtInRegion()函数但看起来不是很快.也许你知道一些更快的方法?

delphi winapi area region

4
推荐指数
1
解决办法
1459
查看次数

在Delphi中将TObjectList祖先转换为泛型集合

我上了课

TMyAwesomeList = class(TObjectList)
Run Code Online (Sandbox Code Playgroud)

哪个

 TAwesomeItem = class(TPersistent)
Run Code Online (Sandbox Code Playgroud)

其中TAwesomeItem几乎是一个抽象类

 TAwesomeItem1 = class(TAwesomeItem)
 TAwesomeItem2 = class(TAwesomeItem)
 TAwesomeItem3 = class(TAwesomeItem)
 TAwesomeItem3a = class(TAwesomeItem3)
Run Code Online (Sandbox Code Playgroud)

等等(大约30个子类,其中有一些中间抽象类)完成了一年前我实现的一些对象关系建模,期望最终从Delphi 7转换到2009(很快就是XE2).

该代码仍然适用于Delphi 2009,但我想做一个

 for AwesomeItem3a in AwesomeList do
 begin     
    //something awesome
 end;
Run Code Online (Sandbox Code Playgroud)

我不知道如何重组TMyAwesomeList(或添加几个子类)来实现这一目标.

delphi generics list delphi-2009

3
推荐指数
1
解决办法
905
查看次数

在Delphi中模拟多媒体按键

我需要在Delphi中模拟按多媒体键(如播放/暂停,上一首/下一首曲目,快退/前进等).我可以使用下一个代码轻松模拟"普通"键:

keybd_event(VK_SPACE,0, 0, 0);
keybd_event(VK_SPACE,0, KEYEVENTF_KEYUP, 0);
Run Code Online (Sandbox Code Playgroud)

另外,我找到了MAKE/BREAK代码列表,但我该怎么办呢?

MSDN说:

VOID keybd_event(
    BYTE bVk,   // virtual-key code
    BYTE bScan, // hardware scan code
    DWORD dwFlags,  // flags specifying various function options
    DWORD dwExtraInfo   // additional data associated with keystroke
   );   
bVk - Specifies a virtual-key code. The code must be a value in the range 1 to 254. 
bScan - Specifies a hardware scan code for the key. 
dwFlags - A set of flag bits that specify various aspects of function …
Run Code Online (Sandbox Code Playgroud)

delphi multimedia key simulate scancodes

3
推荐指数
1
解决办法
792
查看次数

如何将像'20/11/2012 7:05:14 PM'这样的字符串转换为TDateTime?

SysUtils.StrToDate('20/11/2012 7:05:14 PM')抛出一个赘肉.如何TDateTime从该字符串中获取?

delphi

0
推荐指数
1
解决办法
234
查看次数

在Delphi 10 Seattle上安装Synedit

我正在尝试TSynEdit在Delphi 10 Seattle IDE中安装最新的Unicode版本.它构建正常,但在安装时我收到错误:

模块'bds.exe'中地址为27158679的访问冲突.读取地址00000010

它在以前版本的XE8上安装正常.

我尝试在注册过程的开头放置showmessages()但在注册之前仍然出现AV错误.

有人找到了解决这个问题的方法吗?

delphi synedit delphi-10-seattle

0
推荐指数
1
解决办法
1740
查看次数

当我将文件加载到内存流时,Delphi内存不足错误

我想用Delphi将2GB文件转换为字节数组.我使用这个函数,然后将文件加载到内存Stream中以获取字节.但我得到错误"内存不足".我怎么能解决这个问题?

type
TByteArray  =  Array of Byte;

function StreamToByteArray(Stream: TStream): TByteArray;
begin

// Check stream
if Assigned(Stream) then
begin
// Reset stream position
Stream.Position:=0;
// Allocate size
SetLength(result, Stream.Size);
// Read contents of stream
Stream.Read(result[0], Stream.Size);
end
else
// Clear result
SetLength(result, 0);
end;
//////then in button control i use:
var
strmMem: TMemoryStream;
bytes: TByteArray;
begin
strmMem:=TMemoryStream.Create;
if OpenDialog1.Execute then
strmMem.LoadFromFile(OpenDialog1.FileName);
bytes:=StreamToByteArray(strmMem);
strmMem.Free;
Run Code Online (Sandbox Code Playgroud)

memory delphi

0
推荐指数
1
解决办法
1672
查看次数