for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
  

Тень на Shape
LED
Автор

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

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

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

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

Re: Тень на Shape
of63

Сообщений: 19939
Откуда: Н.Новгород
Дата: 20.10.20 17:50:06
Напиши что-нибудь в его Init, типа ThisForm.AddObject еще один Shape с координатами как у родителя, но смещенными...
Ratings: 0 negative/0 positive

Re: Тень на Shape
LED
Автор

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

Re: Тень на Shape
of63

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

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

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

Re: Тень на Shape
Alsim

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



Исправлено: Alsim, 21.10.20 18:43
Ratings: 0 negative/0 positive

Re: Тень на Shape
Taran

Сообщений: 10781
Откуда: Красноярск
Дата: 21.10.20 18:45:45
Эх... 90ми годами завеяло. Как все было интересно и вольготно.
Лепи шашечьки, а ехать можно не спеша. Или не ехать.
Ratings: 0 negative/0 positive

Re: Тень на Shape
LED
Автор

Сообщений: 204
Дата: 22.10.20 20:35:52
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
Какой параметр ставить?
Подскажите что надо сделать в этой ситуации.



Исправлено: LED, 22.10.20 20:41
Ratings: 0 negative/0 positive

Re: Тень на Shape
ssa

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


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

Re: Тень на Shape
LED
Автор

Сообщений: 204
Дата: 22.10.20 21:22:03
Надо создать тень под формой F1



Исправлено: LED, 22.10.20 21:23
Ratings: 0 negative/0 positive

Re: Тень на Shape
Igor Korolyov

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

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

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


------------------
WBR, Igor
Ratings: 0 negative/1 positive

Re: Тень на Shape
lulgu

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

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

Re: Тень на Shape
LED
Автор

Сообщений: 204
Дата: 23.10.20 10:55:11
lulgu спасибо. Посмотрю.



Исправлено: LED, 05.11.20 21:54
Ratings: 0 negative/0 positive

Re: Тень на Shape
Chemberzhy

Сообщений: 11778
Откуда: Измаил
Дата: 23.10.20 11:24:48
LED
No PARAMETR Statement is found.

LED
thisform.Shadow


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

Re: Тень на Shape
Sawradym

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

Re: Тень на Shape
LED
Автор

Сообщений: 204
Дата: 23.10.20 11:53:38
Вот я и ставлю в форму 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

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

Re: Тень на Shape
ssa

Сообщений: 12608
Откуда: Москва
Дата: 23.10.20 12:58:19
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

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

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

Re: Тень на Shape
Божья_коровка

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


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




Исправлено: Божья_коровка, 23.10.20 13:42
Ratings: 0 negative/0 positive

Re: Тень на Shape
of63

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



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

On-line: 5 of63  (Гостей: 4)

30.11.2020 22:34:48 exec: 0.59
Mem: 1.589 Mb

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