Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: CL | DM;

Вниз

Своя рамка в 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.036 c
15-1148388558
AlexanderMS
2006-05-23 16:49
2006.06.18
Сжатие программы


4-1142884196
Anonim
2006-03-20 22:49
2006.06.18
GetShortPathName


3-1145891342
linx
2006-04-24 19:09
2006.06.18
Запретить чтение ячейки данных в таблице


2-1149175295
Asail
2006-06-01 19:21
2006.06.18
Как скопировать контрол в другой parent?


2-1148988774
Revan
2006-05-30 15:32
2006.06.18
А я так и не сделал настройку звука...