Главная страница
    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.035 c
3-1098868922
sanek
2004-10-27 13:22
2004.11.21
как поменять местами записи в таблице


14-1099593739
911
2004-11-04 21:42
2004.11.21
Интернет подключение


3-1098350727
Rule
2004-10-21 13:25
2004.11.21
Вот сморю и не пойму как использовать двоеточие в переменных в FB


1-1099911070
UK-AAV
2004-11-08 13:51
2004.11.21
Не работает печать форм


1-1100063817
Frozzen
2004-11-10 08:16
2004.11.21
Построение В-сплайна, как выбрать контр. точки?





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