求教: 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; 你这个不是:
窗体宽度=编辑框的坐标+编辑框宽度
吗?
好像和ClientToScreen没关系吧,窗体位置才用吧?
不懂了…:lol 有点不太明白意思
是不是窗口位置变了窗口大小也跟着变? 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 宽度相同。 Form不是有个AutoSize属性吗?是不是你需要的 冥界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的最右边? DEATHTOUCH 发表于 2021-11-17 23:50
GetCursorPos(p1);
Edit1.Text := 'X:' + IntToStr(p1.x) + #13#10 + ' Y ...
@DEATHTOUCH
是的,而且是显示器 当前 显示时看到的位置(无论你缩放比到底是百分之百 还是百分之XX)
都能对应上。 本帖最后由 冥界3大法王 于 2021-11-18 08:46 编辑
已打包源码,还请各位指教。https://wwi.lanzoui.com/i756Bwm7hpi
{:301_974:}
@DEATHTOUCH
@sdzzb
@无闻无问
要求无论WinXP/Win7/Win10
【显示设置=》缩放与布局=》百分百或是其他百分比都能换电脑上也美观展示】 有了C# delphiN多年不用了,在NET平台每个控件都有相关的位置属性可设置控件大小变化,delphi中应该也有相关的控件属性你仔细找一下。 wxaz 发表于 2021-11-18 09:04
有了C# delphiN多年不用了,在NET平台每个控件都有相关的位置属性可设置控件大小变化,delphi中应该也有相 ...
@https://wwi.lanzoui.com/i756Bwm7hpi
源码在此,给我改改,改好送你1000CB