:: Visual Foxpro, Foxpro for DOS
Тень на Shape
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
Всем привет.
Вопрос банальный, но очень нужно решение.

На форме установлен объект Shape
BackStyle 0 - Transparent (прозрачный)

Под ним объекты Label

Как установить тень в Shape с помощью его же свойств и методов, а не лепить к нему тень другими способами.
Ratings: 0 negative/0 positive
Re: Тень на Shape
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Напиши что-нибудь в его Init, типа ThisForm.AddObject еще один Shape с координатами как у родителя, но смещенными...
Ratings: 0 negative/0 positive
Re: Тень на Shape
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
Спасибо of63
Да сделал. А что, функциями самого Shape это сделать нельзя?
Еще такое дополнение к этому вопросу. Как сделать из Shape кнопку, т.е. когда нажимаешь на Shape левой кнопкой мыши, Shape как бы утапливался и напоминал командную кнопку.
Поискал на форуме, пока не нашел.
Также хотел сделать тень к окну формы, тоже не нашел подходящего решения. Решение, где одно окно накладывается на другое не так смотрится. Есть ли решение с API?
Ratings: 0 negative/0 positive
Re: Тень на Shape
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Я ведь посоветовал даже не представляя, что такое "тень", но только зная нативные возможности фокса (типичные для любого ООП):
- у визуальных обьектов есть Init
- можно создавать обьекты "на лету"

> функциями самого Shape это сделать нельзя
Не знаю, теней (как в FPD) вроде не встречал. Если нет свойства "тень включить", значит нет.
Можно попробовать заменить Shape на Command или CheckBox (Style=1), положив его ПОД обьекты на нём, собственно, как Shape. У них более другие видеоэффекты. А можно и из второго Shape же сделать, заменяя один другим по их событиям Click. Или обьекты Image - картинки любого содержания...
Вобщем надо делать из того, что есть в нативном фоксе.

> сделать тень к окну формы
Не представляю как, это уже ОС рулит формой, Thems. Нативщиной можно только сэмулировать что-то, раскрашивая внутренность формы. Лучше бы этого не делать вообще. Фокс - он не настоящий графический инструмент, он скорее большой калькулятор, или БД...
Ratings: 0 negative/0 positive
Re: Тень на Shape
Alsim

Сообщений: 3636
Откуда: Екатеринбург
Дата регистрации: 17.11.2004
Выдрал у себя, кнопка нарисована Шейпами, добавлена картинка и командбуттон, чтобы всё это получало фокус.
Целиком класс положить не могу, там очень много всего, думаю идея понятна.
ps пользуюсь этими кнопками больше 15лет, Фокс 7



Исправлено 1 раз(а). Последнее : Alsim, 21.10.20 18:43
Ratings: 0 negative/0 positive
Re: Тень на Shape
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
Эх... 90ми годами завеяло. Как все было интересно и вольготно.
Лепи шашечьки, а ехать можно не спеша. Или не ехать.
Ratings: 0 negative/0 positive
Re: Тень на Shape
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
Alsim спасибо. Попробую.

Нашел на форуме тему Возможно ли в Лисе реализовать полупрозрачную тень
Фрагмент написал Piva

Создал форму F1.scx

В Init этой формы вставил
this.adproperty('shadow',.null.)
DO form с:\F2.scx name thisform.Shadow noshow linked with this
Создал форму F2.scx
В Init прописал

#DEFINE LWA_COLORKEY 1
#DEFINE LWA_ALPHA 2
*Constants for SetWindowLong and GetWindowLong
#DEFINE GWL_EXSTYLE -20
#DEFINE WS_EX_LAYERED 0x00080000
LOCAL lnFlags
*The form's window must be set to Layered, so that it is drawn
* in a separate layer.
lnFlags = GetWindowLong(.HWND, GWL_EXSTYLE) &&Gets the existing flags from the window
lnFlags = BITOR(lnFlags, WS_EX_LAYERED) &&Appends the Layered flag to the existing ones
SetWindowLong(.HWND, GWL_EXSTYLE, lnFlags) &&Sets the new flags to the window
SetLayeredWindowAttributes(.HWND, .BackColor, 100, LWA_ALPHA)
При запуске формы F1 появляется ошибка
No PARAMETR Statement is found.
И указывает на форму F2.scx

Поставил в форме F2.scx в Init
LPARAMETERS param1
Какой параметр ставить?
Подскажите что надо сделать в этой ситуации.



Исправлено 1 раз(а). Последнее : LED, 22.10.20 20:41
Ratings: 0 negative/0 positive
Re: Тень на Shape
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
А что, собственно, ожидалось от показанного кода? Зачем вторая форма? Что она должна делать?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Тень на Shape
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
Надо создать тень под формой F1



Исправлено 1 раз(а). Последнее : LED, 22.10.20 21:23
Ratings: 0 negative/0 positive
Re: Тень на Shape
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Taran
Эх... 90ми годами завеяло. Как все было интересно и вольготно.
Лепи шашечьки, а ехать можно не спеша. Или не ехать.

Когда коту разработчику нечем заняться, он рисует тени

Вообще даже немного завидую - видать всё остальное уже так отлично сделано, что осталось лишь красоту наводить.


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Тень на Shape
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Похоже, и в волросах оформления главные асы могут только фукать, хотя наведение красоты это тоже часть программирования.

Примеры объектов с тенями имеются в wizards\wizstyle.vcx.
"Утапливаемую" кнопку можно создать из объекта OptionButton.
Для улучшения оформления придумано немало WinApi-функций.
Ratings: 0 negative/0 positive
Re: Тень на Shape
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
lulgu спасибо. Посмотрю.



Исправлено 3 раз(а). Последнее : LED, 05.11.20 21:54
Ratings: 0 negative/0 positive
Re: Тень на Shape
Chemberzhy

Сообщений: 13142
Откуда: Измаил
Дата регистрации: 28.04.2009
LED
No PARAMETR Statement is found.

LED
thisform.Shadow


------------------
Что-то с памятью моей стало, всё что было не со мной- помню.
Ratings: 0 negative/0 positive
Re: Тень на Shape
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
DO form с:\F2.scx name thisform.Shadow noshow linked with this
Вы вызываете форму с параметром this, вот его и нужно принять в init формы f2.
Ratings: 0 negative/0 positive
Re: Тень на Shape
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
Вот я и ставлю в форму f2.scx в Init
LPARAMETERS this

Выходит сообщение с ошибкой
Какую переменную надо ставить после LPARAMETERS
Если ставлю любую, то не проходит

lnFlags = GetWindowLong(.HWND, GWL_EXSTYLE) &&Gets the existing flags from the window

Ошибка.
Ratings: 0 negative/0 positive
Re: Тень на Shape
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
Очевидно, что код, который Вы привели - это лишь фрагмент в котором входной параметр никак не используется. Также очевидно что этот фрагмент обрамлен With EndWith, потому и ошибка по поводу .HWND
Ratings: 0 negative/0 positive
Re: Тень на Shape
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
LED
Вот я и ставлю в форму f2.scx в Init
LPARAMETERS this

Выходит сообщение с ошибкой
Какую переменную надо ставить после LPARAMETERS
Если ставлю любую, то не проходит

lnFlags = GetWindowLong(.HWND, GWL_EXSTYLE) &&Gets the existing flags from the window

Ошибка.
Трындец... Вы совсем не различаете понятия "формальный параметр" и "значение параметра"?
После LPARAMETERS ставят имя, под которым параметр будет обрабатываться в нижестоящем коде. Вы этого не знаете?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Тень на Shape
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
LED
Надо создать тень под формой F1
И вы решили создать её путём помещения под неё еще одной, полупрозрачной формы? И не боитесь сложностей с координированием этих форм? Что вы увидите во время перетаскивания формы по экрану?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Тень на Shape
Божья_коровка

Сообщений: 25720
Дата регистрации: 23.08.2001
LED
Я не совсем разобрался в коде который создал Piva
Если можно было бы связаться с Piva, я его бы попросил, но у меня нет его почты.
Напишите ему в ЛС тут на форуме, он порой отвечает. Еще его можно точно "поймать" на форуме 16 января и 10 августа.


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 2 раз(а). Последнее : Божья_коровка, 23.10.20 13:42
Ratings: 0 negative/0 positive
Re: Тень на Shape
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Мтк, тоже, с тенями заморачиваться для вычислительной программы, это немного перебор... )
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 9 (Гостей: 9)

© 2000-2024 Fox Club 
Яндекс.Метрика