Главная страница
    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.054 c
1-1099984033
КиТаЯц
2004-11-09 10:07
2004.11.21
Excel + Delphi задание формата ячейкам


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


14-1099051141
Knight
2004-10-29 15:59
2004.11.21
Опишите ваши впечатления от первого общения с VMware...


1-1099635604
avlan
2004-11-05 09:20
2004.11.21
Создание EXE в run-time


3-1098525809
Etwas
2004-10-23 14:03
2004.11.21
Выбор записей с помощью CheckBox





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