Форум: "Основная";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
ВнизКак сделать прозрачный прямоугольник? Найти похожие ветки
← →
Tundra (2002-12-12 13:02) [0]Как сделать прозрачный прямоугольник?
Ну наподобие того, какой появляется когда изменяешь размеры какого-нибудь компонента на форме, или переносишь его в другое место. Ведь компоненты типа Label или Shape, не будут видны если на форме есть Edit и т.д.
Спасибо.
← →
MegaVolt (2002-12-12 14:37) [1]Можно рисовать на канве пунктирный прямоугольник:
form1.canvas.DrawFocusRect(rect);
где кусе область вокруг которой рисуется прямоугольник. Задаётся двумя диагональными точками.
Чтобы перирисовать вызываешь эту функцию с теме же координатами и она стирает ранее нарисованный прямоугольник.
← →
MegaVolt (2002-12-12 14:40) [2]не кусе а rect :)
← →
Tundra (2002-12-13 07:06) [3]Спасибо,
но Дело не в том как его нарисовать, а в том чтобы он не перекрывался оконными (Twincontrol) компонентами. Потому что если на форме будут еще Edit - ы или другие.
← →
Separator (2002-12-13 07:10) [4]А TBevel не подойдет?
← →
Matolch (2002-12-13 07:42) [5]Рисуй на экране, все равно курсор за предел не уведешь
procedure DrawFRBounds(L,T,W,H: Integer);
var
h_DC: HDC;
begin
h_DC := GetDC(0);//для этого есь какая-то константа, но не помню
DrawFocusRect(h_DC, Bounds(L, T, W, H));//или LineTo, или еще чего там
end;
← →
Tundra (2002-12-13 09:10) [6]>Separator
TBevel перекрывается компонентами которые могут получать фокус - не подходит.
>Matolch
Не понял как мне рисовать на экране - DrawFocusRect насколько я понял метод канвы, а канва всегда перекрывается компонентами которые могут получать фокус .
← →
Matolch (2002-12-13 09:29) [7]Положи на форму кнопку. Положил? Дабл клик на ней.
Пишешь :Drawf
Жмешь "Ctrl" + #32.
Видишь?: DrawFocusRect(hDC: HDC; const lprc: TRect): LongBool;
hDC: HDC - это Device Context, то же самое, что и Canvas.Handle.
Используешь так:
var h_DC: HDC;
R: TRect;
begin
h_DC := GetDC(0); //получил контекст устройства
R := Bounds(200,200,1000,1000);
DrawFocusRect(h_DC, R);//смотришь и удивляешся, прям как я, когда в первый раз это сделал
end;
Кроме того, если тебе нужно отрисовать прямоугольник, а потом выяснить, что (какие области - читай Rect(Left, Top, Left+Width, Top + Height), хотя не только этим ограничивается) в него попало, что попало напиши FrameRgn, then press F1. Read carefully. Рекомендую зайти в раздел Group (есть там серенькая кнопка).
Мы писали, мы писали..
← →
Tundra (2002-12-13 09:36) [8]спасибо попробую.
← →
Matolch (2002-12-13 10:05) [9]Тока ещё. После использования Device Context, его надо освободить:
ReleaseDC(HWND, HDC);
В случае, если объект - экран, HWND := 0; HDC - ну, то что у тебя получилось.
← →
Matolch (2002-12-13 10:06) [10]Прием?
← →
Matolch (2002-12-13 10:39) [11]Е. Tundra, blin ты не на крайнем севере живешь? Может мы с тобой соседи?
← →
Tundra (2002-12-13 11:00) [12]Просто для меня Делпфи пока, что тундра.
← →
Matolch (2002-12-13 11:18) [13]Понял, типа для меня тоже. Делпхи - так правильнее. Удачи типа.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c