TMyComboBox = class(TWinControl)
我做了一個組合控件.控件包含一個Label控件 Align:=alLeft;
和一個 ComboBox 控件 Align:=alRight; 大家知道 ComboBox 的高度是根據它的字體高度來決定的 所以 在 TMyComboBox.Create() 的時候不知道怎麼控制 Self.Height
具體原因分析入下,求教怎麼解決。constructor TdhDBBnEd.Create(AOwner: TComponent);
begin
  inherited Create(AOwner); //這裡 Self.ParentFont=True 也就是Self的字體會
                            //跟隨 AOwner 的變化而變化. 我也希望它跟著變。
  EdtBox:=TComboBox .Create(Self); //EdtBox.ParentFont=True 所以字體也著跟
                                   //Self變化。
  Self.Height:=EdtBox.Height; 
End;
這樣做的結果是當將該控件放在一個沒改過字體大小的TForm上該控件正常。
而放在一個改過字體大小的Form上界面就會出現Debug 如果Form字體改小了Self.Height > EdtBox.Height EdtBox沒有前部布滿Self 如果Form字體改大了
Self.Height < EdtBox.Height EdtBox的下面部分被Self截掉了,沒有全部顯示出來
請教怎麼解決該問題。分不夠了,可以崽開貼加分。

解决方案 »

  1.   

    constructor TdhDBBnEd.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner); //這裡 Self.ParentFont=True 也就是Self的字體會
                                //跟隨 AOwner 的變化而變化. 我也希望它跟著變。
      EdtBox:=TComboBox .Create(Self); //EdtBox.ParentFont=True 所以字體也著跟
                                       //Self變化。
      Self.Height:=EdtBox.Height; 
    End;==============================上面这个构造函数,本身就有问题。 EdtBox是什么?类属性?方法?对象?友情UP,全当路过。
      

  2.   

    用 ComboBox1.Canvas.TextHeight("嚣");测试其高度 +固定修正值 应该可以滴啦
      

  3.   

    求人不如求己攔截 message WM_PAINT; 後處理一下問題就是解決了。
    To  dBASEIII 上面这个构造函数,本身就有问题。 EdtBox是什么?类属性?方法?对象?
    EdtBox 是控件本身的一個私有對象,這樣做有什麼問題麼???