Главная страница
    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.009 c
1-74780
Stas_a
2002-12-11 10:54
2002.12.23
Соединение компанентов . . .


14-74891
Igorian
2002-12-04 12:07
2002.12.23
Функция представления дробного числа прописью


1-74682
bambina
2002-12-13 11:18
2002.12.23
extention v saveDialog


14-74889
Masa
2002-12-03 21:20
2002.12.23
Подскажите где взять Fast Report последний или пароль к архиву.


14-74893
AK-74
2002-12-04 13: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
Английский Французский Немецкий Итальянский Португальский Русский Испанский