★★★★大家讨论一下关于软件界面自动适应显示器分辩率的问题★★★★★★

chengangcsdn 2005-02-25 02:24:43
我们做了一个酒店软件。
因我们开发是时用1024*768做的,所以对800*600不支持。
大家有什么好的建议。或有解决这类问题的经验,都来谈谈!
我现在最后的42分。
希望大家踊跃一点哈!
...全文
317 19 打赏 收藏 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
DDGG 2005-03-10
  • 打赏
  • 举报
回复
TO: lyjsharp
可以的,是你没有处理好。
你想想看,Flash安装自带的那个播放器可以动态缩放,我们怎么办不到。
lyjsharp 2005-03-09
  • 打赏
  • 举报
回复
TO: DDGG
我试过了,不行,如果窗体开始编译时大小是800*600,然后运行起来后全屏,那么我载入的flash还是以800*600显示。其他扩大的窗口如果你设置的Shockwaveflash的底色是黑色,那就全部是黑色。
DDGG 2005-03-08
  • 打赏
  • 举报
回复
TO: lyjsharp
用 ShockwaveFlash 控件,就可以无须考虑分辨率改变的问题了,全屏运行时,在程序里可以根据分辨率的变化动态调整 Flash 控件的大小,Flash 的内容是自动缩放的,而且是平滑缩放,效果很好。
DDGG 2005-03-05
  • 打赏
  • 举报
回复
就是用ShockwaveFlash控件,采用无标题栏的窗体,整个窗体用加载的Flash来展现。
Flash控件是个Ocx控件,提供了一些事件和方法,可以使你的Delphi程序与加载的Flash影片进行交互。
很多程序的安装程序都使用了Flash做界面,比如超级解霸。
关于如何和Flash交互你可以自己研究一下罗,很简单的。
lyjsharp 2005-03-05
  • 打赏
  • 举报
回复
用shockwaveflash控件吧,delphi自带的有包安装,我用的效果不错。不过分辨率的问题同样存在!
caiso 2005-03-04
  • 打赏
  • 举报
回复
顶一下
dmyb7233 2005-03-03
  • 打赏
  • 举报
回复
关注,作出的FLASH的页面与delphi怎么接口?
todouwang 2005-03-02
  • 打赏
  • 举报
回复
在1024*768下开发的程序一调到800*600窗口与字体就变大,超出了原来设计时的布局,调了字体的类型各FORM的SCALED等,都没用,这种让FORM和其上控件都能随着分辨率调节的方法是不是只有写代码解决?

假设你在800*600的分辨率下设计的form,第一步:
inplementation
const
ScreenWidth: LongInt = 800; {I designed my form in 800x600 mode.}
ScreenHeight: LongInt = 600;

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
scaled := true;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) div ScreenHeight;
width := longint(width) * longint(screen.width) div ScreenWidth;
scaleBy(screen.width, ScreenWidth);
end;
end;

下一步,要让每个子控制的字体改变到合适的大小:
type
TFooClass = class(TControl); { needed to get at protected }
{ font property }

var
i: integer;
begin
for i := ControlCount - 1 downto 0 do
TFooClass(Controls[i]).Font.Size :=
(NewFormWidth div OldFormWidth) *
TFooClass(Controls[i]).Font.Size;
end;
  • 打赏
  • 举报
回复
学习
cn2002boy 2005-03-01
  • 打赏
  • 举报
回复
boyfriendyu(空空) ,这样是不行的,你想想如果一个1024的放到640上会变化多大,控件位置都不在原位了,字要么都就不下,要么就看不见
aus 2005-02-28
  • 打赏
  • 举报
回复
学习。。。
cn2002boy 2005-02-28
  • 打赏
  • 举报
回复
DDGG(叮叮当当)说得对,FLASH,WEB页面做程序都可以,就是不要用那个什么AdjustForm函数,很难看的,FLASH我不知道怎么做,WEB控件到是用过,不过这个就要你懂HTML语言了
boyfriendyu 2005-02-28
  • 打赏
  • 举报
回复
利用API函数:GetSystemMetrics得到屏幕值,具体怎么用请查API帮助比如你取得的是800*600,或者是640*480,则程序据API取得的值进行选择
chengangcsdn 2005-02-25
  • 打赏
  • 举报
回复
我对楼上的用Flash做界面有点感兴趣。
可不可以说得详细点。
比如怎么和Flash做好了界面怎么和Delphi接口。
要不要第三方控件等等问题

DDGG 2005-02-25
  • 打赏
  • 举报
回复
建议把程序界面独立出来,可以用Flash做界面。
jinjazz 2005-02-25
  • 打赏
  • 举报
回复
窗体在不同分辨率下的大小和控件位置、变形问题:在800*600下做了一个FORM,但到640*480下一看却变了形,控件的相对位置都变了,不知道如何解决,请教诸位高手。

Another_eYes (1998-11-22 22:39:29)
implementation
const
ScreenWidth: LongInt = 800; {I designed my form in 800x600 mode.}
ScreenHeight: LongInt = 600;

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
scaled := true;
if (screen.width <> ScreenWidth) then

begin
height := longint(height) * longint(screen.height) DIV ScreenHeight;
width := longint(width) * longint(screen.width) DIV ScreenWidth;
scaleBy(screen.width, ScreenWidth);
end;
end;

下面是解决字体大小的代码:
USES typinfo; {Add this to your USES statement.}

var
i: integer;
begin
for i := componentCount - 1 downto 0 do
with components[i] do
begin
if GetPropInfo(ClassInfo, 'font') <> nil then
font.size := (NewFormWidth DIV OldFormWidth) * font.size;
end;
end;

下面的函数可以解决问题:
Form:需要调整的Form,OrgWidth:开发时屏幕的宽度,OrgHeight:开发时屏幕的高度。
注意:需要把Form的Scaled设置为True。
procedure AdjustForm(Form: TForm; const OrgWidth, OrgHeight: integer);
begin
with Form do
begin
Width := Width * Screen.Width div OrgWidth;
Height := Height * Screen.Height div OrgHeight;
ScaleBy(Screen.Width, OrgWidth);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
AdjustForm(Self,1280,1024);
end;


chengangcsdn 2005-02-25
  • 打赏
  • 举报
回复
3
chengangcsdn 2005-02-25
  • 打赏
  • 举报
回复
2
chengangcsdn 2005-02-25
  • 打赏
  • 举报
回复
1
内容概要:本文围绕基于物理场的动态模式分解(piDMD)展开研究,重点探讨其在流体力学、热传导及多物理耦合系统中的建模与应用。通过Matlab代码实现,将传统的动态模式分解(DMD)方法与物理场控制方程相结合,引入物理约束以增强数据驱动模型的物理一致性,从而提升对复杂非线性系统的模态提取精度与长期预测能力。文章系统阐述了piDMD的理论基础、数学推导过程与算法实现步骤,并结合典型物理场仿真案例(如Navier-Stokes方程驱动的流场演化)进行验证,展示了其在降阶建模、主导模态识别和时空动态可视化方面的优越性能,适用于高维、强耦合、非平稳系统的分析与优化。; 适合人群:具备一定数值计算、流体力学、控制理论或数据驱动建模背景,熟悉Matlab编程与线性代数运算,从事科学研究、工程仿真或系统辨识工作的研究生、科研人员及工程师。; 使用场景及目标:①实现对流场、温度场等物理场的高效降阶建模与动态行为预测;②提取符合物理规律的关键模态,用于系统稳定性分析与控制设计;③支撑复杂系统的状态估计、异常检测与优化调控等下游任务。; 阅读建议:建议读者结合提供的Matlab代码逐行调试与运行,深入理解piDMD算法中物理约束的嵌入方式及其对模态质量的影响,同时可尝试将其迁移至其他偏微分方程描述的物理系统中进行拓展验证与应用。
内容概要:本文研究了在峰谷分时电价引导下,基于多目标优化遗传算法NSGA-II的电动汽车充电负荷优化问题。通过构建以电网负荷波动最小化和用户充电成本最低为核心的多目标优化模型,利用NSGA-II算法求解获得帕累托最优解集,实现对大规模电动汽车充电行为的有序引导。文中系统阐述了峰谷电价激励机制的设计原理、电动汽车充电负荷的数学建模方法、多目标优化问题的形式化表达以及NSGA-II算法的具体实现流程,并借助Matlab平台进行仿真验证,结果表明该策略能有效平抑电网负荷峰谷差、降低用户充电支出并提升电力系统的运行效率与稳定性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事智能电网、电动汽车调度、需求侧管理等相关领域的研究生或科研人员。; 使用场景及目标:①研究峰谷电价政策对电动汽车充电行为的影响机制;②掌握NSGA-II算法在电力系统多目标优化中的具体应用;③实现电动汽车集群的有序充电调度以改善电网负荷曲线; 阅读建议:此资源结合了电力经济学与智能优化算法,建议读者在学习过程中重点关注模型构建与算法实现的衔接部分,动手复现仿真代码以深入理解参数设置与结果分析过程。
详情可查看下方数据集可视化效果。 【数据集概况】 · 检测类别(中文):[电梯(elevator)] · 训练集:1468 张 · 验证集:157 张 · 测试集:158 张 · 总计:1783 张 该数据集聚焦于各类建筑内部及外部环境中的电梯目标检测任务,涵盖住宅楼、办公楼、商场、酒店等多种典型场景下的电梯结构。图像采集覆盖不同光照条件、材质类型与安装位置,充分体现了实际应用中电梯的多样性与复杂性,为智能楼宇管理、安防监控及无障碍设施识别等方向提供了高质量的视觉基础支持。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 72 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9446** mAP50-95 | 0.6531 Precision | 0.9305 Recall | 0.8777 train/box_loss | 0.5807 train/cls_loss | 0.3505 val/box_loss | 1.0020 val/cls_loss | 0.6208 【训练过程分析】 72 轮训练后 mAP50 达到 0.9446,模型收敛良好。Loss 曲线前段快速下降,后段趋于平稳,val_loss 无反弹,没有明显过拟合。但 mAP50-95 为 0.6531,和 mAP50 差距 0.29,定位精度仍有优化空间。 【模型性能评估】 Precision 0.9305、Recall 0.8777,精度高于召回,存在一定漏检。 【预测效果展示】 验证集预测效果较好,检测框基本准确覆盖电梯,置信度整体偏高。 【改进建议】 1. 丰富场景...

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧