冥界3大法王 发表于 2021-11-17 21:00

求教: Dephi控件对于屏幕的坐标 如何表示?

本帖最后由 冥界3大法王 于 2021-11-17 21:03 编辑


如图所示,我要让Form3的宽度,跟随Edit1以屏幕坐标最右侧为准的大小变化(红线处!)

下面的代码,我自己搞了搞,整迷糊了。求仙人解答,谢谢。

procedure TForm3.Button1Click(Sender: TObject);
var
pt: TPoint;
begin
pt := Point(Edit1.Top, Edit1.Left);
pt := ClientToScreen(pt);
Edit2.Text := inttostr(pt.X);
Edit3.Text := inttostr(pt.y);
//Form3.Width:= StrToInt(Edit2.Text);
Form3.Width := StrToInt(Edit2.Text)+ Edit1.Width;
//Form3.Height := StrToInt(Edit3.Text);
end;

无闻无问 发表于 2021-11-17 21:36

你这个不是:
窗体宽度=编辑框的坐标+编辑框宽度
吗?
好像和ClientToScreen没关系吧,窗体位置才用吧?

不懂了…:lol

DEATHTOUCH 发表于 2021-11-17 21:45

有点不太明白意思
是不是窗口位置变了窗口大小也跟着变?

冥界3大法王 发表于 2021-11-17 22:54

DEATHTOUCH 发表于 2021-11-17 21:45
有点不太明白意思
是不是窗口位置变了窗口大小也跟着变?

procedure TForm3.FormClick(Sender: TObject);
var
p1: TPoint;
begin
GetCursorPos(p1);
Edit1.Text := 'X:' + IntToStr(p1.x) + #13#10 + ' Y:' + IntToStr(p1.y);
Edit1.Width := p1.x;
Edit1.Height := p1.y;
end;

还是做不到 光标宽度位置 与 Edit1 宽度相同。

sdzzb 发表于 2021-11-17 23:24

Form不是有个AutoSize属性吗?是不是你需要的

DEATHTOUCH 发表于 2021-11-17 23:50

冥界3大法王 发表于 2021-11-17 22:54
procedure TForm3.FormClick(Sender: TObject);
var
p1: TPoint;


GetCursorPos(p1);
Edit1.Text := 'X:' + IntToStr(p1.x) + #13#10 + ' Y:' + IntToStr(p1.y);
Edit1.Width := p1.x - Edit1.Left;
Edit1.Height := p1.y;
是这个意思吗
鼠标点的位置就是Edit1的最右边?

冥界3大法王 发表于 2021-11-17 23:57

DEATHTOUCH 发表于 2021-11-17 23:50
GetCursorPos(p1);
Edit1.Text := 'X:' + IntToStr(p1.x) + #13#10 + ' Y ...

@DEATHTOUCH
是的,而且是显示器 当前 显示时看到的位置(无论你缩放比到底是百分之百 还是百分之XX)
都能对应上。

冥界3大法王 发表于 2021-11-17 23:58

本帖最后由 冥界3大法王 于 2021-11-18 08:46 编辑

已打包源码,还请各位指教。https://wwi.lanzoui.com/i756Bwm7hpi
{:301_974:}
@DEATHTOUCH
@sdzzb
@无闻无问

要求无论WinXP/Win7/Win10
【显示设置=》缩放与布局=》百分百或是其他百分比都能换电脑上也美观展示】

wxaz 发表于 2021-11-18 09:04

有了C# delphiN多年不用了,在NET平台每个控件都有相关的位置属性可设置控件大小变化,delphi中应该也有相关的控件属性你仔细找一下。

冥界3大法王 发表于 2021-11-18 10:03

wxaz 发表于 2021-11-18 09:04
有了C# delphiN多年不用了,在NET平台每个控件都有相关的位置属性可设置控件大小变化,delphi中应该也有相 ...

@https://wwi.lanzoui.com/i756Bwm7hpi
源码在此,给我改改,改好送你1000CB
页: [1] 2 3
查看完整版本: 求教: Dephi控件对于屏幕的坐标 如何表示?