向高手 關於 ComboBox 控件高度的問題
向高手求助 關於 ComboBox 控件高度的問題。
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截掉了,沒有全部顯示出來
請教怎麼解決該問題。分不夠了,可以崽開貼加分。
------解决方案--------------------
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,全当路过。
------解决方案--------------------
用 ComboBox1.Canvas.TextHeight( "嚣 ");测试其高度 +固定修正值 应该可以滴啦
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截掉了,沒有全部顯示出來
請教怎麼解決該問題。分不夠了,可以崽開貼加分。
------解决方案--------------------
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,全当路过。
------解决方案--------------------
用 ComboBox1.Canvas.TextHeight( "嚣 ");测试其高度 +固定修正值 应该可以滴啦