Здравствуйте, Kikon, Вы писали:
K>Подскажите, как убрать рамку у комбобокса.
Просто установкой свойств ничего не получится. Придется рисовать самому или взять компоненту от других производителей.
Привожу пример сабкласинда комбобокса, который забирает рамку:
type
TMyComboBox = class (TComboBox)
private
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
protected
end;
implementation
procedure TMyComboBox.WMPaint(var Message: TWMPaint);
var
hDcCombo : HDC;
aClientRect : TRect;
aFlat : Boolean;
begin
{ do not allow draw default border }
aClientRect := ClientRect;
ValidateRect (Handle, @aClientRect);
InflateRect (aClientRect, -2, -2);
InvalidateRect (Handle, @aClientRect, False);
inherited; { call default painter }
aFlat := False; {True for flat combo }
{ draw border }
hDcCombo := GetWindowDC(Handle);
try
aClientRect := ClientRect;
if aFlat Then
begin
DrawEdge(hDcCombo, aClientRect,
BDR_RAISEDINNER,
BF_RECT or
BF_FLAT or
BF_ADJUST);
InflateRect(aClientRect, -1, -1);
DrawEdge(hDcCombo, aClientRect,
BDR_RAISEDINNER,
BF_RECT or
BF_FLAT or
BF_ADJUST);
end else begin
DrawEdge(hDcCombo, aClientRect,
BDR_RAISEDINNER,
BF_RECT or BF_FLAT);
InflateRect(aClientRect, -1, -1);
DrawEdge(hDcCombo, aClientRect,
BDR_RAISEDINNER,
BF_RECT or BF_FLAT);
end;
finally
ReleaseDC(Handle, hDcCombo);
end;
end;