Delphi设计一个PDF阅读器,遇到一个看似很容易却解决不了问题 使用Delphi做一个PDF阅读器,用了Adobe Reader的OCX,直接搞个窗体,上面放上插入进来的Adobe控件,通过调用它提供的函数来阅读pdf文件,其实就是我自己在reader上搭了一个架子。但遇到的问题是,我如果改变窗体的大小,控件的大小怎么都不变。我用了很多方法,如改变其Align及Anchors属性、在onresize里给它的高度宽度赋值、用movewindow函数等都没用,有没有高手遇到过这种情况?求解答。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一些控件可以通过设置Align来实现,一些就不可以了。控件少的话,可以变通一下。。procedure TForm1.FormResize(Sender: TObject);begin button1.Left := 0; button1.Top := 0 ; button1.Height := ClientRect.Bottom-Clientrect.Top; button1.Width := ClientRect.Right-ClientRect.Left;end; 控件.Align:=alclient 肯定没有问题! 控件.Align:=alclient 是不行的,你不信可以试试,5分钟就可以看到结果。发现Foxit的控件没有这个问题,而且相比而言既快又美观,可惜每个页面会有版权信息。 Align := alClient然后在窗体的OnResize事件中: reader.SetFocus; //read为PDF控件名称Flash控件可以这样做,你试试看PDF控件行不行。 这是delphi的ocx的BUG,不光foxit的OCX存在该问题,windowsmediaplayer,flash都存在buG,并不是程序的问题,关于如何解决该问题Align := alClient 是不够的!1、先在窗口里定义一个类型:TLocOleCtrl = Class (TOleControl);2、在窗口的OnResize事件里加上:TLocOleCtrl (PDF控件名称).OnPosRectChange (Rect (0, 0, ClientWidth, ClientHeight));请尝试,并不代表完全解决! 求QuickRep高手帮忙,100分 高手来帮帮~~ GetFieldData()这个怎么用,谢谢! 100分收购!为什么win2k下编写的程序,在win98下运行这么难看? 关于datetimepicker控件的问题!急! 如何在主窗口的panel中显示另一窗口 哪位兄弟知道哪有比较好的网址可以下载delphi控件的? 相恋五年的女友和我分手,我来散分! 怎么结束不了这个线程? 病毒程序是如何将自已的代码嵌入另外的可执行文件中? 如何改变ListView滚动条的宽度 界面上移动鼠标时,能不能捕捉到一个点一个点的移动事件。用OnMouseMove事件有时可以精确到一个象素,移动较快时就不行了
一些就不可以了。
控件少的话,可以变通一下。。
procedure TForm1.FormResize(Sender: TObject);
begin
button1.Left := 0;
button1.Top := 0 ;
button1.Height := ClientRect.Bottom-Clientrect.Top;
button1.Width := ClientRect.Right-ClientRect.Left;
end;
buG,并不是程序的问题,关于如何解决该问题
Align := alClient 是不够的!1、先在窗口里定义一个类型:
TLocOleCtrl = Class (TOleControl);2、在窗口的OnResize事件里加上:
TLocOleCtrl (PDF控件名称).OnPosRectChange (Rect (0, 0, ClientWidth, ClientHeight));请尝试,并不代表完全解决!