Форум: "Основная";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
ВнизСвоя рамка в ListBox Найти похожие ветки
← →
Leonardo (2006-05-09 23:02) [0]Так я рисую рамку в WM_NCPAINT, свойства BorderStyle = bsSingle, Ctl3D = False.
procedure TXListBox.WMNCPaint(var Message: TWMNCPAINT);
var
DC: THandle;
R: TRect;
ACanvas: TCanvas;
begin
CallWindowProc(DefWndProc, Handle, Message.Msg, TMessage(Message).WParam, TMessage(Message).LParam);
DC := GetWindowDC(Handle);
try
GetWindowRect(Handle, R);
OffsetRect(R, -R.Left, -R.Top);
ACanvas := TCanvas.Create;
try
ACanvas.Handle := DC;
ExcludeClipRect(ACanvas.Handle, 2, 2, R.Right - 2, R.Bottom - 2);
ACanvas.Brush.Style := bsClear;
ACanvas.Pen.Color := FBorderColor;
ACanvas.Rectangle(R);
finally
ACanvas.Handle := 0;
ACanvas.Free;
end;
finally
ReleaseDC(Handle, DC);
end;
end;
Но проблема вот в чем, при смене свойства BorderColor, рамка не меняет цвет:
procedure TXListBox.SetBorderColor(Value: TColor);
begin
if FBorderColor <> Value then
begin
FBorderColor := Value;
Invalidate;
end;
end;
Repaint тоже не помог вместо Invalidate, может подскажите чемнибудь?
А еще как в конструкторе сразу задать свойство Ctl3D := False? Так не работает, всеравно получается что равно True...
constructor TXListBox.Create(AOwner: TComponent);
begin
inherited;
Ctl3D := False;
end;
Это для того чтобы место для рамки было отведено в один пиксель, если свойстно равно True, то там видны небольшие прозрачные места около рамки... Или вообще надо размер бордюра подругому как-то задавать? Подскажите пожалуйста...
← →
Leonardo (2006-05-10 00:17) [1]Какая, однако, неразрешамая проблема-то оказывается....
← →
Джо © (2006-05-10 02:54) [2]> [1] Leonardo (10.05.06 00:17)
> Какая, однако, неразрешамая проблема-то оказывается....
Какая там неразрешимая? Она выдуманная, а потому неинтересная, ИМХО.
← →
Leonardo (2006-05-10 03:25) [3]Подскажите мне тогда пожалуйста по моим вопросам...
← →
Leonardo (2006-05-10 03:26) [4]Мне интересно...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c