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

Вниз

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

Наверх




Память: 0.45 MB
Время: 0.038 c
1-1099862330
Metrolog
2004-11-08 00:18
2004.11.21
Распознавание выражений


1-1099664671
Сергей_
2004-11-05 17:24
2004.11.21
Сворачивание в tray: а память?


8-1093447044
Anderson
2004-08-25 19:17
2004.11.21
Изменение глубины цвета у TIcon.


4-1097214101
TeNY
2004-10-08 09:41
2004.11.21
Окно на первом плане


14-1098601400
Nick Denry
2004-10-24 11:03
2004.11.21
Почтовый клиент от Mozilla





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