Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
2-1148571234
Golik
2006-05-25 19:33
2006.06.18
Как сжать exe-шник


2-1149082237
ancot
2006-05-31 17:30
2006.06.18
Сохранение record в TList


15-1148220731
DillerXX
2006-05-21 18:12
2006.06.18
type AString = array [1..maxInput] of string;


2-1148890052
verybadbug
2006-05-29 12:07
2006.06.18
TWebBrowser


2-1148800931
Хочу_все_знать
2006-05-28 11:22
2006.06.18
Как очистить файл который используется





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский