Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Вниз

Отрисовка метки и FocusRect   Найти похожие ветки 

 
jack128 ©   (2004-11-03 04:59) [0]

День добрый.
Есть такой код:

constructor TSchemeLabel.Create(AOwner: TSchemeElement);
begin
 inherited;
 FLabel := TLabel.Create(nil);
 FLabel.Transparent := True;
end;

procedure TSchemeLabel.Draw(ACanvas: TCanvas);
begin
 MoveWindowOrg(ACanvas.Handle, FLabel.Left, FLabel.Top);
 try
   FLabel.Perform(WM_PAINT, Integer(ACanvas.Handle), 0);
 finally
   MoveWindowOrg(ACanvas.Handle, -FLabel.Left, -FLabel.Top);
 end;
end;


Все хорошо, метка нормально отрисовывается, но есть но..

На той же канве нужно отрисовать FocusRect, а вот этот прямоугольник не рисуется. Рисую так:

   with SchemeFrame.PaintBox.Canvas do
   begin
     Pen.Mode := pmCopy;
     Pen.Style := psSolid;
     Pen.Color := clBlack;
     Brush.Style := bsSolid;
     Brush.Color := SchemeFrame.Color;
     DrawFocusRect(SelRect);
   end;
 Если не рисовать на канве TSchemeLabel, то отрисовка проходит нормально. Более того, если положит на SchemeFrame обычную метку, то все тоже отлично рисуется..

Может у кого есть какие нить соображения??


 
code2k ©   (2004-11-03 16:19) [1]

up


 
jack128 ©   (2004-11-05 15:44) [2]

мдя.  В общем забил я на попытки понять что происходит... Сохраняю контекст и не мучаюсь..

var
 SavedDC: Integer;
begin
 SavedDC := SaveDC(ACanvas.Handle);
 try
   MoveWindowOrg(ACanvas.Handle, FLabel.Left, FLabel.Top);
   FLabel.Perform(WM_PAINT, Integer(ACanvas.Handle), 0);
 finally
   RestoreDC(ACanvas.Handle, SavedDC);
 end;
end;


 
Rem ©   (2004-11-05 16:27) [3]

А зачем Вам вообще FLabel?


 
Rem ©   (2004-11-05 16:36) [4]

И что такое SelRect? Он попадает в область рисования?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.04 c
14-1099837403
ИМХО
2004-11-07 17:23
2004.11.21
Москва vs. Мухосранск


14-1099639422
syte_ser78
2004-11-05 10:23
2004.11.21
помогите с параметрами командной строки winrar


14-1099666667
quickblack
2004-11-05 17:57
2004.11.21
Как открыт php файл?


14-1099522689
Сашок
2004-11-04 01:58
2004.11.21
Железо


4-1097168923
Arnold
2004-10-07 21:08
2004.11.21
Как создать компонент TreeView с помощью функции CreateWindow





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