Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-74808
drin
2002-12-11 00:42
2002.12.23
Ресурсы


14-74996
DrFaust
2002-12-04 12:08
2002.12.23
Multi-Edit


14-74932
Tihas
2002-11-24 02:22
2002.12.23
Кто нибудь знает попуярную игру написаную с помощью дельфи?


1-74699
MegaVolt
2002-12-06 18:29
2002.12.23
Работа со строками и PChar


14-74942
Snap
2002-11-20 14:23
2002.12.23
Фонть





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