О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
ElenaB Автор Сообщений: 326 Откуда: Москва Дата регистрации: 28.09.2001 |
Хочу сложить картинки проекта в отдельный APP по статье Вадима Пирожкова - www.foxclub.ru
Конечно, статье уже много лет, но вот как-то только сейчас обратила на нее внимание. Что выяснилось: 1. Если формы в проекте используются как классы, картинки на кнопках отображаются, только если .Picture задается форматами bmp и ico. Если форму создавать как SCX, переваривает еще tif, png и gif. Jpg не идет ни где. Это ладно, bmp так bmp, можно переделать, хотя и лениво. 2. Проблема с графикой, которая относится к самой форме - Thisform.Picture и Thisform.Icon. Тестировалось с WindowType = 0 ShowWindow = 2. Формы создавались как классы. Дело в том, что, если запускать exe-к программы из папки проекта, все ок (естественно): иконки показываются, картинки на форме появляются. Но если завести где-то новую папку, положить в нее exe-к программы и рядом APP с картинками, "потусторонние" силы мешают вызвать жаждуемых "фантомов": вместо своих иконок - системные, вместо картинок - пустота. Разбираюсь. В ините формы у меня написано: WITH Thisform .Icon = lcPath + 'myIcon.ico' .Picture = lcPath + 'myFon.bmp' ENDWITH Соответственно, запускаются Icon_assign и Picture_assign. там написано (пример для Icon_assign, в Picture_assign - аналогично): LPARAMETERS vNewVal *To do: Modify this routine for the Assign method THIS.Icon = m.vNewVal IF !EMPTY(this.Icon) IF !FILE(this.Icon) && Если файл не найден в исполняемом файле или на диске – переадресуем вызов. IF FILE('myIMAGES.APP') DO 'myIMAGES.APP' with (this),'Icon',this.Icon ENDIF ENDIF ENDIF Так вот, если запускать из папки проекта, и THIS.Icon и m.vNewVal (в строке THIS.Icon = m.vNewVal) содержат то имя файла, которое нам и нужно. Если запускать из папки для тестирования, m.vNewVal, как и положено, содержит имя файла, а вот THIS.Icon - пустой. Если же в Ините в лоб не присваивать имена файлов, а сделать это в дизайнере в пропятях, то и THIS.Icon и m.vNewVal оказываются пустыми. Отсюда и несрабатывание дальнейшего кода. Если вместо IF !EMPTY(this.Icon) написать IF !EMPTY(m.vNewVal) WriteExpression в APP выполняется, но значения для Thisform.Picture и Thisform.Icon в итоге все равно оказываются пустыми. Я не всегда слежу за событиями на форуме, может быть что-то по этому поводу и писалось... Мне найти не удалось. Если кто-нибудь сталкивался с такой проблемой, объясните, пожалуйста, из-за чего это и как обойти. Piva, если вы вдруг сюда заглянете, может быть подскажете решение? Уж у Вас оно наверняка есть . На всякий случай: VFP9+SP2, Windows 7. |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Ещё разрядность Windows обычно указывают.
|
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
ElenaB Автор Сообщений: 326 Откуда: Москва Дата регистрации: 28.09.2001 |
Windows7, 64х, SP1.
Исправлено 1 раз(а). Последнее : ElenaB, 08.07.19 13:43 |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> Если же в Ините в лоб не присваивать имена файлов, а сделать это в дизайнере в пропятях, то и THIS.Icon и m.vNewVal оказываются пустыми. Отсюда и несрабатывание дальнейшего кода.
Так _Assign и не должен срабатывать, если имя присвоить в пропертях. Он сработает только при программном заполнении свойства (.Icon) В этом случае в Init формы можно записать обьект.Icon = обьект.Icon, тогда соотв. _Assign сработает... |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
ElenaB Автор Сообщений: 326 Откуда: Москва Дата регистрации: 28.09.2001 |
Да, не уточнила. Извините. Я в этом случае в ините писала: WITH Thisform .Icon = .Icon .Picture = .Picture ENDWITH Вот после этого в _Assign пусто и для параметра и для свойства. А в кнопках с .Picture это проходит. Но основной вопрос-то не в этом, а почему обнуляются данные. Исправлено 4 раз(а). Последнее : ElenaB, 08.07.19 14:50 |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
1. lcPath - Какая-то левая фигня;
2. Icon отрисовывает операционная система, в отличие от Picture, который отрисовывает фокс. Так что не факт, что взлетит. |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
ElenaB Автор Сообщений: 326 Откуда: Москва Дата регистрации: 28.09.2001 |
Это результат моей функции типа SYS(5)+SYS(2003) с условиями. Помеха не он, на кнопках работает. Жаль. Возможно, кто пытался что-то сделать по статье, когда она вышла, располагали еще Win XP х32. Не может быть, чтобы никто не попробовал иконки и фон формы. Я уже сталкивалась, когда под Win 8 не виделись сетевые диски по GETDIR() без последних параметров. Может и здесь что-то вроде. Тогда получается полуавтомат, для одних BMP-шек на кнопках... Затея лишается смысла. Исправлено 2 раз(а). Последнее : ElenaB, 08.07.19 17:38 |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
|
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Буду неоригинален... Простой и тупой вопрос. Зачем? ------------------ WBR, Igor |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Отвечу за девченку, потому что авторитетный парень, Пива, показал как идею, но собственную мысль прибавлять надо, товарищ ТС...
|
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Мало ли кто чего показал - в хелпе показано не меньше всякого полезного и интересного, и от не менее авторитетных авторов - но почему то этим крайне редко пользуются
Ил это как у детей - увидел что-то и давай в рот тянуть, на зуб попробовать Пива чего-то показал в 2005м году, и вроде как для VFP6. С тех пор стали неактуальными даже сами VFP любых версий, не говоря уж про всякие нестандартные и замудрёные приёмы программирования под них ------------------ WBR, Igor |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> Простой и тупой вопрос. Зачем?
(погорячился\) Исправлено 2 раз(а). Последнее : of63, 09.07.19 08:24 |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
В пятом году Вадик выиграл ажно 3.5 мегабайта редкообновляемых данных приложения. Сейчас 3.5 мегабайта критично, только если по телетайпу передавать. Аллё! У кого-нибудь остался телетайп? |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
medstrах Сообщений: 1810 Дата регистрации: 10.06.2019 |
А потом удивляемся почему любое ПО съедает гигабайты на харде |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
ElenaB Автор Сообщений: 326 Откуда: Москва Дата регистрации: 28.09.2001 |
Простой и тупой ответ: Некоторые ссылки на картинки задаю программно в своих классах. При компиляции иногда забываю их (файлы картинок) включить. Искала по форуму, кто как поступает. Нашла несколько постов со ссылками на статью Пивы. Критики не находила. Подумала, что так, возможно, будет удобно. На даты обратила внимание не сразу. Да уж, of63, не горячитесь так сильно... А то, как увидела вашу реакцию, сначала пришлось проморгаться, что действительно вижу на любимом и уважаемом мною форуме такой крик души. Сразу беспокойство за человека, не наступила ли ненароком на больную мозоль... Однако, уважаю, за то, что, как охолонули, не стерли, что написали. Ладно, поняла. Засим откланиваюсь. Всем спасибо. Просветили, позабавили. |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
Не обижайтесь на Офу, у него после 0,7 все бабы зло (без исключения). ------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... Исправлено 1 раз(а). Последнее : Божья_коровка, 09.07.19 09:27 |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Не все )
|
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
ElenaB Автор Сообщений: 326 Откуда: Москва Дата регистрации: 28.09.2001 |
Де не, Лен. Что я, маленькая... ;)
|
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Серёж. Ты, вроде ссятник. Если ты взял файл ресурсов, лежащий рядом с экзешником, а потом решил его вкомпилять в экзешник. И при этом ты потерял гигабайт, значит у тебя файл ресурсов состоит из множества мелких файликов общим размером в несколько терабайт. А значит, этот гигабайт нихрена не критичен уже. |
Re: О фантомах из "потустороннего мира" или Использовании переадресованных вызовов | |
---|---|
medstrах Сообщений: 1810 Дата регистрации: 10.06.2019 |
Не понял ни мысли, ни логики. Ну да ладно, это неважно. Я пытался сказать совсем о другом. О том, что нельзя руководствоваться принципом "некритично - ну тогда и пофиг". Это приводит к плохим результатам. Софт, который функционально и на 20% не отличается от своих аналогов 20 лет назад, жрет в десятки раз больше места в памяти и на диске. Потому что всем пофиг, ведь пользователь всегда докупит еще памяти и ядер с хардами, а нам некогда, нам надо успевать бабло зарабатывать, выпуская новые версии. |
© 2000-2024 Fox Club  |