![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Виртуальный TCanvas и его фоновый цвет... [D7, 2000]
Ice © (2006-02-15 16:50:00)
procedure TForm1.Button1Click(Sender: TObject);
var VRT : TCanvas;
RCT : TRect;
begin
// Создаю прямоугольник
RCT := Rect(0, 0, 100, 10);
//Создаю виртуальную канву
VRT := TCanvas.Create;
VRT.Handle := CreateCompatibleDC(0);
//устанавливаю фоновый цвет
VRT.Brush.Color := clGray;
//Заполняю прямоугольник этим самым фоновым цветом
VRT.FillRect(RCT);
//Теперь пытаюсь получить цвет из точки внутри этого прямоугольника
//И получаю clBlack, хотя устанавливал VRT.Brush.Color := clGray
//Что я не так делаю ???????????????????????????????????????
self.Color := VRT.Pixels[1,1];
if VRT.Handle <> 0 then DeleteDC(VRT.Handle);
FreeAndNil(VRT);
end;
Ice (2006-02-15 19:56:00) [1]В чем именно ? В виртуальной канве ?
Нужна для преобразования - на рабочей канве есть текст, и когда я хочу этот текст расположить вертикально - получается нехорошо... При попиксельном повороте регионы перекрываются (SetWorldTransform не проходит, он целиком канву крутит... А мне надо только прямоугольник с текстом)... Понадобился некий буфер.
Да и заело, в плане победить... Знания пополнить...
:)
Если CreateCompatibleBitmap - то это, тескать, проба пера по прочтению документации про SelectObject...
MBo (2006-02-15 19:01:00) [2]Я смысла в этом действе особо не пойму...
Ice (2006-02-15 17:28:00) [3]Попробовал так...
SelectObject(VRT.Handle, CreateCompatibleBitmap(VRT.Handle, 100, 10));
Получаемый цвет вместо черного стал белым, но в серый никак не хочет превращаться... :)
Можно экзампл одной строкой ? Плиз... :)
MBo (2006-02-15 17:14:00) [4]После создания compatibleDC в нем полагается выбрать битмап selectObject