我有一个窗口,其中显示一张图片。我希望用户能够调整此窗口的大小,但 保持与图像相同的纵横比,因此窗口上不会出现大的空白区域。在保持宽高比的同时调整窗体大小
我想什么是像这样在onResize受到事件:
DragWidth := Width;
DragHeight := Height;
//Calculate corresponding size with aspect ratio
//...
//Calculated values are now in CalcWidth and CalcHeight
Width := CalcWidth;
Height := CalcHeight;
这里的问题是,调整大小的原始大小调整大小和计算的之间拖动过程中的窗口闪烁,因为onResize受到事件调整大小已完成后调用afaik(并绘制一次)。
您是否知道任何具有平滑纵横比调整大小的解决方案?
感谢您的帮助。
你可能已经得到这个想通了已经,但对于其他人感兴趣的话,我会建议保持对ClientWidth和ClientHeight长宽比而不是我如何做到这一点。这当然会更复杂一点。 – boileau 2011-06-07 14:59:02
你能解释一下如何应用这个方法多一点,我对Delphi很陌生,我对如何在OnCanResize事件上设置这个处理器感到困惑。你可以给我一个例子吗 ?高度赞赏。谢谢 – Eduard 2012-12-05 20:02:22
在设计窗口中选择表单,找到左侧的事件选项卡,找到OnCanResize并双击OnCanResize文本右侧的白色单元格。 (使用德尔福2009) – boileau 2012-12-06 10:44:55