DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sprblck
今日帖子: 9
在线用户: 16
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 akay (akay) ★☆☆☆☆ -
普通会员
2016/10/28 10:48:10
标题:
FMX+Win32,窗口无法保持原样,应该是个bug 浏览:1809
加入我的收藏
楼主: 从FMX发布开始,一直有这问题,大家看看是不是一个bug,应该如何修复?

新建一个FMX Application,运行后,点击窗口标题栏右上角的“最大化”按钮,此时窗口是最大化的。

在windows最底端的任务栏中,点击该程序,窗口就会还原回原来的大小。按理应该是还保持最大化才对。

另外,在任务栏中,点击该程序,窗口不会最小化。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2016/10/28 15:30:13
1楼: 在 EMB QC 网站已经有人提了,你去投票吧。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 akay (akay) ★☆☆☆☆ -
普通会员
2016/10/28 16:07:47
2楼: https://quality.embarcadero.com/browse/RSP-13139
那应该是这个了。
----------------------------------------------
-
作者:
男 xebaobei (神仔) ▲▲▲▲△ -
普通会员
2016/10/28 19:36:54
3楼: 卧槽!我以为是我自己程序问题呢。。。。
原来是 BUG
----------------------------------------------
-
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2016/10/31 8:49:30
4楼: 我这边主要是解决最小化的问题,是修改FMX的源代码解决这个问题的,每次升级Delphi又要重新修改一次。
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 akay (akay) ★☆☆☆☆ -
普通会员
2016/10/31 9:14:35
5楼: @wr960204,武大侠能否共享一下代码?
我也尝试想自己修改,但发现问题比较难定位。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2016/10/31 9:28:36
6楼: 求 wr960204 (武稀松) 把修改代码提交到 QC 。
也许 或几个版本,您就发现官方已经修改了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 zhqian (无为) ★☆☆☆☆ -
普通会员
2016/10/31 11:31:37
7楼: 投票了,好少人投!
----------------------------------------------
XE7发布会视频:http://i.youku.com/u/UMzYzNTkyNTI0/videos ;FireDac/EMS-[Delphi]技术群 257779952 appmethod[移动开发] 194191706
作者:
男 lsh341999 (虫子) ★☆☆☆☆ -
普通会员
2017/1/12 13:53:38
8楼: 没你说的那问题呀。
可能我是把窗体设为透明和标题栏隐藏了,自己重构了一个TFORM
----------------------------------------------
就怕想不到,没有做不到的
作者:
男 akay (akay) ★☆☆☆☆ -
普通会员
2017/1/12 16:20:57
9楼: 改了下代码,总算是解决了。
FMX.Platform.Win.pas

procedure TPlatformWin.Activate(const AForm: TCommonCustomForm);
var
  Wnd: HWND;
begin
exit; // 解决在Windows任务栏中,点击窗口图标时,无法缩小、放大
  Wnd := FormToHWND(AForm);

2315行,WM_WINDOWPOSCHANGING消息前,加上
          WM_SHOWWINDOW:
          begin
          if (wParam = SW_SHOWNORMAL) and (lParam = SW_MAXIMIZE) then
          begin
          if LForm.WindowState = TWindowState.wsMaximized then
          begin
          Winapi.Windows.ShowWindow(hWnd, SW_SHOWMAXIMIZED);
          exit;
          end;
          end;
          Result := DefWindowProc(hwnd, uMsg, wParam, lParam);
          end;
主要是解决当窗口是最大化状态时,缩小到Windows任务栏,再restore窗口时,窗口自动由最大化变成了Normal。这个地方解决的不是很科学,这种处理方法可能也不是很正确。测试了达到我的要求了。
----------------------------------------------
-
作者:
男 akay (akay) ★☆☆☆☆ -
普通会员
2018/6/19 9:23:29
10楼: 也是够奇葩了,fmx发行到现在,这个bug一直都存在,解决方案都给出了,一直不修复。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行734.375毫秒 RSS