各位仁兄: 1. 你们是怎么避免由于分辨率的变化,FORM窗体、panel上的控件,也变化、甚至缺少控件、
控件消失?
//2我現在正在用DELPHI在1024*768的環境下開發系統!可以用的客戶端很多是800*600的電腦,我在CSDN上面搜索了一下,都是看到從別的地方抄過來一段,也沒有提供全整的代碼,再者有的辦法我用過,可是在800*600下使用時,還是面目全非。我只看到說FONT的大小,請問FORM中的一切控件的大小就不用改變嗎?請大伙回答!來個全面的解決這類問題的方法,最好把代碼貼全,那些改分辨率的笨辦法就不用提了!//http://community.csdn.net/Expert/topic/3593/3593031.xml?temp=.5356867
//http://community.csdn.net/Expert/topic/3538/3538429.xml?temp=.5948908
//http://community.csdn.net/Expert/topic/3516/3516126.xml?temp=.9992487
控件消失?
//2我現在正在用DELPHI在1024*768的環境下開發系統!可以用的客戶端很多是800*600的電腦,我在CSDN上面搜索了一下,都是看到從別的地方抄過來一段,也沒有提供全整的代碼,再者有的辦法我用過,可是在800*600下使用時,還是面目全非。我只看到說FONT的大小,請問FORM中的一切控件的大小就不用改變嗎?請大伙回答!來個全面的解決這類問題的方法,最好把代碼貼全,那些改分辨率的笨辦法就不用提了!//http://community.csdn.net/Expert/topic/3593/3593031.xml?temp=.5356867
//http://community.csdn.net/Expert/topic/3538/3538429.xml?temp=.5948908
//http://community.csdn.net/Expert/topic/3516/3516126.xml?temp=.9992487
分不是money,BBS是大家互相交流学习的地方,如果你解决问题都需要RMB,
我想我会给一位如:
beyondtkl(大龙驹<暗黑系魔法师&&赏金猎人>) 这样的好老师
1. 开发界面换到800*600下开发 因为8*6 -> 1024*768的话 比较好处理<我开始就是这么做的,还行>
用 一个函数进行处理 好像效果还过的去
2. 你界面上的控件要先排好 包括层与层之间 多用panel来转载不同的空间 而且再设置其相应的align属性,一般来说 右下方的要多注意 可以设为client之类的
// 函数代码 你先看看 不是我写的。。
procedure ScaleForm(AForm: TForm; ACompileScreenWidth: Integer);
var
i, j, itemp: integer;
begin
AForm.scaled := true;
AForm.scaleby(screen.width, ACompileScreenWidth);
for i := 0 to AForm.ComponentCount - 1 do
begin
if AForm.Components[i] is twincontrol then
begin
if (AForm.Components[i] is Tdbgrid) then
begin
//(AForm.Components[i] as Tdbgrid).scaleby(screen.width, ACompileScreenWidth);
for j := 0 to (AForm.Components[i] as Tdbgrid).columns.count - 1 do
begin
(AForm.Components[i] as Tdbgrid).columns[j].Width := longint((AForm.Components[i] as
Tdbgrid).columns[j].width) * longint(screen.width) div ACompileScreenWidth;
(AForm.Components[i] as Tdbgrid).columns[j].Title.Font.size :=
Round(9 * (Screen.Width / ACompileScreenWidth));
end;
end
else if (AForm.Components[i] is Tstringgrid) then
begin //22
//(AForm.Components[i] as Tstringgrid).scaleby(screen.width, ACompileScreenWidth);
for j := 0 to (AForm.Components[i] as Tstringgrid).ColCount - 1 do
(AForm.Components[i] as Tstringgrid).colWidths[j] := longint((AForm.Components[i] as
Tstringgrid).colWidths[j]) * longint(screen.width) div ACompileScreenWidth + 1;
(AForm.Components[i] as Tstringgrid).defaultrowheight := longint((AForm.Components[i] as Tstringgrid).defaultrowheight) *
longint(screen.width) div ACompileScreenWidth;
itemp := (AForm.Components[i] as Tstringgrid).font.Size;
(AForm.Components[i] as Tstringgrid).font.Size := Round(9
* (Screen.Width / ACompileScreenWidth)); end //22
else if (AForm.Components[i] is TToolBar) then
begin //begin
(AForm.Components[i] as TToolBar).Height := Round(35
* (Screen.Width / ACompileScreenWidth));
end; //end
end;
end;
end;