Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
ВнизНе помещается вся сторка в ComboBox Найти похожие ветки
← →
harismatik (2002-08-09 18:11) [0]Народ!!! Возникла такая трабла: не помещается вся строка в ComboBox и поэтому не ясно, какая запись выбирается (видимые начала у них одинаковые). Увеличить длину компонента нельзя. Как сделать так, чтоб при наведении мышкой на строку в выпавшем списке СomboBoxa, появлялась эта строка по типу подсказки?
← →
bad-md (2002-08-09 18:35) [1]Может быть проще увеличить ширину выпадающего списка?
MyComboBox.Perform(CB_SETDROPPEDWIDTH, XXX, 0);
"XXX" - требуемая ширина, в пикселях.
Определить минимальную необходимую ширину - у каждого свой выбор...
← →
Skier (2002-08-09 18:41) [2]>harismatik
Набросок :
procedure THintComboBox.CMMouseEnter(var Message: TMessage);
var
ADC : HDC;
begin
ADC := GetDC(Handle);
try
Canvas.Handle := ADC;
if Canvas.TextWidth(Text) +
GetSystemMetrics(SM_CXHSCROLL) +
3*GetSystemMetrics(SM_CYEDGE) > Width then begin
FOutOfWindow := True;
FHintCopy := Hint;
Hint := Text;
end; //if
finally
ReleaseDC(Handle, ADC);
end; //try
end;
procedure THintComboBox.CMMouseLeave(var Message: TMessage);
begin
if FOutOfWindow then begin
FOutOfWindow := not FOutOfWindow;
Hint := FHintCopy;
end //if
end;
constructor THintComboBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FOutOfWindow := False;
ShowHint := True;
FHintCopy := EmptyStr;
end;
//создание...
procedure TForm1.FormCreate(Sender: TObject);
var
AHintComboBox : THintComboBox;
begin
AHintComboBox := THintComboBox.Create(Self);
AHintComboBox.Left := 470;
AHintComboBox.Hint := "Hint";
AHintComboBox.Parent := Self;
AHintComboBox.Items.Add("long string");
AHintComboBox.Items.Add("very very very long string");
end;
← →
Skier (2002-08-09 18:44) [3]Ой! Про объявление забыл :)
THintComboBox = class(TComboBox)
private
FHintCopy : String;
FOutOfWindow : Boolean;
protected
procedure CMMouseEnter(var Message: TMessage); message
CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message
CM_MOUSELEAVE;
public
constructor Create(AOwner : TComponent); override;
end; //THintComboBox
← →
Skier (2002-08-09 18:46) [4]>harismatik
Это если текст не умещается в само окно TComboBox-а...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c