小编dur*_*ara的帖子

如何从点计算角度?

我想得到一个简单的解决方案来计算一条线的角度(就像一个时钟的指针).

我有2分:

cX, cY - the center of the line.
eX, eY - the end of the line.

The result is angle (0 <= a < 360).
Run Code Online (Sandbox Code Playgroud)

哪个功能能够提供这个值?

javascript function angle coordinates

42
推荐指数
3
解决办法
5万
查看次数

提供行计数和表名的脚本

也许你很容易说我如何提供表名和行数?

伪SQL:

for "select tablename from system.Tables" into :tablename
  execute "select count(*) from ? into ?" using :tablename, :count
  return row(:tablename, :count)
end for
Run Code Online (Sandbox Code Playgroud)

你能告诉我在T-SQL中向我展示这个脚本吗?

sql sql-server

17
推荐指数
1
解决办法
6万
查看次数

Delphi - 如何防止Forms/MsgBox在先前的表单下移动?

很多时候,在Windows 98时代之后,我们经历过一些对话框丢失了Z-Order并返回到之前的形式.

例如:

Dialog1.ShowModal;

Dialog1.OnClickButton() : ShowMessage('anything');
Run Code Online (Sandbox Code Playgroud)

当MessageBox出现时,它有时没有焦点,并在Dialog1下移动.用户对此感到困惑,他们说:我的申请冻结了!但是如果他们使用Alt + Tab移动到另一个应用程序并返回,焦点将返回到MessageBox,它将成为前景窗口.

我们通过ShowMessage,MessageBox,普通表单以及QuickReport表单体验过这一点.

有谁知道这个?这是一个Windows bug吗?你怎么能阻止它?怎么抓住这个?

谢谢你的帮助:dd


我真的说过,在Win98之后,所有操作系统(Win7也)都会受到这个问题的影响.我们使用Delphi 6 Prof,因此属性不能使用Default表单.

有人说使用MessageBox + MB_APPLMODAL可以控制消息对话框.这是个好消息,但我们有许多旧的表单和组件,第三方工具.

因此,通过替换表单来创建一个全新的应用程序是一项艰苦的工作.

但我们会尝试这样做.

我认为答案是这是半个应用程序问题和半个Windows问题.如果Windows有时会处理此问题,有时则不会 - 这似乎是一个Windows错误.但是,如果我们可以强制制作良好的模态窗口,那么它就是编程错误.

有人可以向我解释一下WS_POPUP标志的含义是什么?它有副作用吗?

谢谢:dd

windows delphi dialog z-order delphi-6

16
推荐指数
2
解决办法
1万
查看次数

PHP:像在Python中一样获取数组值?

在Python中,我可以使用"get"方法从字典中获取值而不会出错.

a = {1: "a", 2: "b"}
a[3] # error
a.get(3, "") # I got empty string.
Run Code Online (Sandbox Code Playgroud)

所以我搜索一个执行此操作的common/base函数:

function GetItem($Arr, $Key, $Default){
    $res = '';
    if (array_key_exists($Key, $Arr)) {
        $res = $Arr[$Key];
    } else {
        $res = $Default;
    }
    return $res;
}
Run Code Online (Sandbox Code Playgroud)

在PHP中基本具有与Python相同的功能吗?

谢谢:dd

php python arrays default get

15
推荐指数
1
解决办法
2918
查看次数

Delphi - 如何在条件编译中使用更多定义的值

我可以在源代码中合并一些IFDEFS吗?

例如:

{$IFDEF INCOMING or OUTGOING}
...
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助:dd

delphi compiler-construction

10
推荐指数
2
解决办法
3019
查看次数

Delphi:Indy - 如何让错误的响应体?

Delphi6和XE3.

我想得到一个请求的真实响应主体.但是服务器产生错误500.然后Indy用响应的描述替换响应文本.

这个主页也是为了在非异常操作中回答500而设计的,我们需要确定从响应文本中做什么.

当状态代码为500时,我可以从IdHTTP或Exception对象获取响应文本吗?

感谢您的任何信息!

delphi http indy httpresponse

9
推荐指数
1
解决办法
6073
查看次数

变量数组可以有0个元素吗?

普通的动态数组支持空(= nil, Length() = 0).

然而,变体阵列似乎不支持这一点.

我在变量数组中传递我的数据(因为OLE/COM),当用户定义0个元素时我得到一个错误...

我可以使用varEmpty而不是0长度数组,但这些数据数组是灵活更改的(添加项目,删除项目等).

我如何在Variant中传递空数组,还是需要使用其他方式?

arrays delphi variant

7
推荐指数
1
解决办法
682
查看次数

OleVariant可用于DLL proc中的out参数吗?

我想制作一个界面,但我不知道.

OleVariant一个"标准"包含"标准"的字符串-传递和返回?

function Any(Input : OleVariant; out Output : OleVariant) : integer; stdcall;
Run Code Online (Sandbox Code Playgroud)

另一方面可能是.NET,C#或C++或Delphi.

那么他们可以支持一些"字符串"结果OleVariant而不通过预定义大小的缓冲区来获得结果吗?

delphi string parameters dll

6
推荐指数
1
解决办法
586
查看次数

Delphi - 运行时出现无效的流格式错误

德尔福6教授

我们有很多应用程序.这些程序的大小为8-12 MB.

在此期间,我们多次收到有关"无效的流格式"错误的报告.

我们使用共享的Windows(或Linux)文件夹来存储应用程序,以及使用链接从这些目录运行它们的用户.这意味着操作系统正在分页文件,并仅加载所需的部分.

以前我们有C000006例外.据我所知,这意味着文件分页(加载)在任何网络问题(超时等)上都失败了.

现在我们面临"无效的流格式"错误,以及"无效的属性xxxx"错误.

如果我很清楚,这两个错误都是由"分页问题"引起的,但是C06发生在代码中,并且在Exe的数据区中出现了流错误.但也许我知道错了......

无论如何,这个问题很奇怪.有时我们得到它,有时我们没有.

怎么避免呢?这些错误阻止用户创建新的对话框,使用程序...

(在其他地方用户使用wifi - 然后我们有相同的副作用.)

也许你有任何想法如何预防,避免这个问题.

UPX(与Antiviruses相比)?将exe-s复制到本地?

这个客户的系统管理员是"我们的敌人",因为他们说:"一切都好".问题的根源无法识别......

谢谢你的每一个想法:dd

delphi paging networking stream

6
推荐指数
1
解决办法
5318
查看次数

Delphi:像Python一样编码字符串

我想像Python那样对字符串进行编码.

Python代码是这样的:

def EncodeToUTF(inputstr):
  uns = inputstr.decode('iso-8859-2')
  utfs = uns.encode('utf-8')
  return utfs
Run Code Online (Sandbox Code Playgroud)

这很简单.

但是在Delphi中,我不明白,如何编码,先强制好字符集(无论我们拥有哪台计算机).

我试过这个测试代码来看转换:

procedure TForm1.Button1Click(Sender: TObject);
var
    w : WideString;
    buf : array[0..2048] of WideChar;
    i : integer;
    lc : Cardinal;
begin
    lc := GetThreadLocale;
    Caption := IntToStr(lc);
    StringToWideChar(Edit1.Text, buf, SizeOF(buf));
    w := buf;
    lc := MakeLCID(
        MakeLangID( LANG_ENGLISH, SUBLANG_ENGLISH_US),
        0);
    Win32Check(SetThreadLocale(lc));
    Edit2.Text := WideCharToString(PWideChar(w));
    Caption := IntToStr(AnsiCompareText(Edit1.Text, Edit2.Text));
end;
Run Code Online (Sandbox Code Playgroud)

输入是:"árvíztűrőtükörfúrógép",匈牙利口音测试词组.当地的lc是1038(hun),新的lc是1033.

但这次每次都会得到0个结果(相同的字符串),并且重音是相同的,我不会丢失ŐŰ这不是英语朗.

我做错了什么?我如何做与Python相同的事情?

感谢您的帮助,链接等:dd

delphi encode utf character-encoding

5
推荐指数
1
解决办法
3120
查看次数