Главная страница
    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.011 c
2-1149227834
kvi
2006-06-02 09:57
2006.06.18
код завершения программы


15-1148546247
_Hawk_
2006-05-25 12:37
2006.06.18
Как преобразовать текст?


2-1149079508
AlexanderMS
2006-05-31 16:45
2006.06.18
Перевод своей программы


15-1148535398
Ega23
2006-05-25 09:36
2006.06.18
С Днём рождения! 25 мая


5-1133558900
Adil
2005-12-03 00:28
2006.06.18
Svyaz mejdu komponentami v odom unite





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский