Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Начал изучать VFP, и у меня по хожу возникают небольшие вопросы, где-то искать их долго, так как точно не знаю где искать, поэтому решил задавать их здесь, знающему человеку легко будет подсказать, как сделать или где прочесть. 1) Я умею программировать на VB, Фокс очень похож на него, но почему-то я не смог через программу поменять Caption у label, выдаёт ошибку, а мне надо изменять. 2) Мне нужно изменять число цифр после запятой, как это сделать? А то типы в Фоксе не похожи на другие языки 3) Как из формы(кода) вызывать функции, которые я оформил, как программу? А то он пишет, что не может найти, когда вызываю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 16:42 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
1. MyForm.MyLabel.Caption="Привет!" 2. см. SET DECIMALS 3. см. SET PROCEDURE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 16:52 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Одессит1) Я умею программировать на VB, Фокс очень похож на него, но почему-то я не смог через программу поменять Caption у label, выдаёт ошибку, а мне надо изменять. В FoxPro есть несколько специальных ссылок на объекты: ThisFormSet - ссылка на текущий FormSet ThisForm - ссылка на текущую форму This - ссылка на текущий объект Parent - ссылка на объект-контейнер, внутри которого непосредственно расположен текущий объект. Все эти ссылки работают только внутри соответствующих методов и событий. Т.е. невозможно обратится к форме по ссылке ThisForm из-вне самой формы. Соответсвенно, изменить реквизит объекта можно так: ThisForm.MyLable.Caption = "Новый текст" Более подробно об адресации к формам почитай здесь http://www.foxclub.ru/kb/index.php?sid=75423&aktion=artikel&rubrik=004&id=4&lang=ru Одессит2) Мне нужно изменять число цифр после запятой, как это сделать? А то типы в Фоксе не похожи на другие языки FoxPro сам меняет количество знаков после запятой (если речь идет о переменных памяти). А вот отображает в соответствии с настройками SET DECIMALS SET FIXED Одессит3) Как из формы(кода) вызывать функции, которые я оформил, как программу? А то он пишет, что не может найти, когда вызываю Почитай описание команд PROCEDURE FUNCTION Там дана последовательность, в которой FoxPro производит поиск процедур и функций. Кроме того, обрати внимание на опцию IN в команде DO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 17:45 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы, но кое-что хочу уточнить 1) Чуть повозившись я и сам понял, как присваивать, вернее понял, что присваивать можно только строку, а у меня тип Дата, я даже использовал функцию str(), но она не помогла, вернее она стала причиной ошибки. Так что у меня вопрос, как label присваивать значения типа Дата. Для ТексБокса это делается через Value, а с меткой как? 2) Ага разобрался. Значит надо перед каждым изменением количества ставить эту надпись. Мне нужно было, чтоб в ТексБоксы выводились числа в каждом с разным количеством цифр после запятой. 3) В этом языке есть много чего для меня нового. Значит мне надо написать SET PROCEDURE TO [адрес папки, в которой я сохраняю программные модули] Так? Это писать в самом начале главной программы? Или мне через эту команду вызывать процедуры? Просто не могу понять, что в хэлпе написанно, а примеров нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 19:39 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
ОдесситСпасибо за ответы, но кое-что хочу уточнить 1) Чуть повозившись я и сам понял, как присваивать, вернее понял, что присваивать можно только строку, а у меня тип Дата, я даже использовал функцию str(), но она не помогла, вернее она стала причиной ошибки. Так что у меня вопрос, как label присваивать значения типа Дата. Для ТексБокса это делается через Value, а с меткой как? Содержимое любого Caption - это символьная строка. Значит любое значение надо перевести в символьный вид. Универсальная функция конвертации чего угодно к символьному типу (начиная с версии VFP6) TRANSFORM() Кроме того, для каждого типа данных есть своя, специфическая, функция конвертации. Для типа Date это DTOC() DTOS() Одессит2) Ага разобрался. Значит надо перед каждым изменением количества ставить эту надпись. Мне нужно было, чтоб в ТексБоксы выводились числа в каждом с разным количеством цифр после запятой. Нет. Не нужно. Почитай описание свойств TextBox.Format - способ отображения ранее введенных значений TextBox.InputMask - способ отображения в процессе ввода (изменения) значений Например: TextBox.InputMask = "999,999,999.9999" Здесь символы маски - это не есть реальные цифры, точки и запятая. Это спец.символы. Каждый из которых имеет вполне определенное назначение. Подробности в описании. Одессит3) В этом языке есть много чего для меня нового. Значит мне надо написать SET PROCEDURE TO [адрес папки, в которой я сохраняю программные модули] Так? Это один из вариантов. Другие варианты почитай в описании к ранее приведенным командам по этому же вопросу. Одессит Это писать в самом начале главной программы? Или мне через эту команду вызывать процедуры? Назначение настройки SET PROCEDURE - это указать FoxPro, где еще следует поискать нужную процедуру или функцию, помимо SET PATH и других способов указания. Только ни в коем случае не используй абсолютных путей доступа (начиная с диска C:\MyDir\...) Всегда используй относительные пути. Относительно текущей (по умолчанию) директории. По поводу путей и расположения файлов почитай здесь http://www.foxclub.ru/kb/index.php?sid=114698&aktion=artikel&rubrik=004&id=5&lang=ru ОдесситПросто не могу понять, что в хэлпе написанно, а примеров нет Ну, так сам экспериментируй! 5 минут экспериментов и все ясно. И не надо по пол-дня ждать ответов в конфе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 20:55 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Только ни в коем случае не используй абсолютных путей доступа (начиная с диска C:\MyDir\...) Всегда используй относительные пути. Относительно текущей (по умолчанию) директории. А где задаётся директория по умолчанию? И как её узнать? В остальном понятно. Пишу на конфу, так как на поиски уже тратил больше 5 минут времени, пока отвечаете я изучаю что-то другое. Ещё раз спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 21:26 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Help Set Default Проверить текущую установку можно так: ? sys(5) + sys(2003) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 21:30 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Одессит А где задаётся директория по умолчанию? И как её узнать? У тебя ссылки на http://www.foxclub.ru не работают? Или просто лень сходить почитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 22:19 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Одессит2) Ага разобрался. Значит надо перед каждым изменением количества ставить эту надпись. Мне нужно было, чтоб в ТексБоксы выводились числа в каждом с разным количеством цифр после запятой. Нет. Не нужно. Почитай описание свойств TextBox.Format - способ отображения ранее введенных значений TextBox.InputMask - способ отображения в процессе ввода (изменения) значений Например: TextBox.InputMask = "999,999,999.9999" Здесь символы маски - это не есть реальные цифры, точки и запятая. Это спец.символы. Каждый из которых имеет вполне определенное назначение. Подробности в описании. Почитал Хэлп по этим свойствам, поэкспериментировал, но так и не понял, что я должен и куда писать, чтоб изменять только количество цифр после запятой. Никто не подскажет? На 9 у меня пишет какие-то *, и они не меняются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 22:30 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Одессит А где задаётся директория по умолчанию? И как её узнать? У тебя ссылки на http://www.foxclub.ru не работают? Или просто лень сходить почитать? Уже скачал статьи, просто руки пока не доходят почитать, а там не так уж и просто найти по нужной проблеме, надо всё перечитывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 22:31 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
авторПочитал Хэлп по этим свойствам, поэкспериментировал, но так и не понял, что я должен и куда писать, чтоб изменять только количество цифр после запятой Вот значение InputMask и надо менять. Строка ThisForm.TextBox.InputMask = "999,999,999.9999" означает что вы выдодишь числовое значение длиной 16 позиций из которых 9 цифр под целую часть и 4 под дробную, одна позиция под десятичный разделитель и две под разделители разрядов. Если выводимое число имеет большую целую часть то будут звездочки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 09:20 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Так, что-то никак не могу разобраться со 2-м вопросом, уже прочёл ссылку, сделал несколько способов, а ошибка всё та же. Вот что я указывал в файле CONFIG.FPW Код: plaintext 1. Проверяю при заходе текущую директорию - ? sys(5) + sys(2003), получаю C:\Documents and Settings\Алексей\My Documents\Visual FoxPro Projects Т.е то, что и без этого файла конфигурации, default не сработал Но, ведь я и path указал. Т.е. кажется, что сам файл не запускается. Пробовал в разных местах его располагать, не помогает, ну и написано, что там где проект, а проект у меня в той папке. В чём у меня проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 15:34 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Default в файле конфигурации писать не надо. И вообще, явное задание текущей (по умолчанию) директории лучше избегать. Какой именно файл конфигурации был захвачен при загрузке среды FoxPro можно узнать через функцию ?SYS(2019) Также, текущую директорию можно определить следующим образом: ?FullPath("") Пустые кавычки, в данном случае, обязательны Проверить, будет ли тот или иной файл "виден" в среде FoxPro можно так: ?File('MyFile.prg') Проверить текущую SET-настройку можно так: ?SET("Path") ?SET("Procedure") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 18:53 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
ВладимирМDefault в файле конфигурации писать не надо. И вообще, явное задание текущей (по умолчанию) директории лучше избегать. Какой именно файл конфигурации был захвачен при загрузке среды FoxPro можно узнать через функцию ?SYS(2019) Если ничего не выдаёт, значит ничего не захватил? А где устанавливать надо, какой файл должен быть захвачен? Решил проблему, через Set Default в коде программы, но мне нужен файл конфигурации, так как туда надо написать CODEPAGE=1251, кстати, а для exe-шника ему тоже будет нужен файл конфигурации с этой строкой? И как задать в коде программы то, что в файле конфигурации я пишу как screen=off? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 19:33 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Еще раз. Почитай здесь http://www.foxclub.ru/kb/index.php?sid=114698&aktion=artikel&rubrik=004&id=5&lang=ru Там подробно расписано как надо запускать FoxPro и куда девать config.fpw ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2005, 16:15 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
ВладимирМЕще раз. Почитай здесь http://www.foxclub.ru/kb/index.php?sid=114698&aktion=artikel&rubrik=004&id=5&lang=ru Там подробно расписано как надо запускать FoxPro и куда девать config.fpw Читал При запуске среды FoxPro в качестве директории по умолчанию устанавливается директория, где расположен сам файл проекта, а все прочие файлы проекта располагаются в поддиректориях. Единственное, что я не делал, так это ярлыки. А что это единственный способ? А где же многовариантность? Тем более написанно: Однако есть способ лучше Т.е. значит есть другие, хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2005, 11:24 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
У меня есть ещё вопрос: 4) Как узнать, какие файлы мне нужны для моей программы, чтоя я мог запустить её на другом компьютере. В VB для этого есть программа "Package and Deployment Wizard". Что-то естьтакое в FoxPro, или надо самому искать все файлы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2005, 11:32 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
ОдесситУ меня есть ещё вопрос: 4) Как узнать, какие файлы мне нужны для моей программы, чтоя я мог запустить её на другом компьютере. В VB для этого есть программа "Package and Deployment Wizard". Что-то естьтакое в FoxPro, или надо самому искать все файлы? До версии VFP6 включительно - это пункт меню Tools->Wizrads->Setup Начиная с версии VFP7 - это внешняя программа InstallShield Большая просьба. Читай то, что действительно написано, а не то, что ты хотел бы прочитать. Сначала попытайся сделать так как написано и только потом экспериментируй с новыми способами. Не надо пытаться подходить к новому языку программирования со стериотипами, выработанными в другом языке. Это не относится только к FoxPro. Это вообще общий принцип изучения новых языков программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2005, 12:35 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Одессит При запуске среды FoxPro в качестве директории по умолчанию устанавливается директория, где расположен сам файл проекта, а все прочие файлы проекта располагаются в поддиректориях. Единственное, что я не делал, так это ярлыки. А что это единственный способ? А где же многовариантность? Встречный вопрос: Что Вы подразумеваете под термином "многовариантность" применительно к модификации одного проекта ОдесситТем более написанно: Однако есть способ лучше Т.е. значит есть другие, хуже. Я привел наиболее простые способы запуска проекта для его правки и подключения файла конфигурации. FoxPro - это язык, который требует повышенной самодициплины от программиста. Если программист что-то не сделал, то FoxPro сам, в меру своего понимания, попробует выполнить действия не сделанные программистом. А вот насколько эти автоматические действия будут правомерны - это уже другой вопрос. Насчет других способов. Откройте Help по FoxPro перейдите на закладку "Поиск" и выполните поиск по ключевому слову "config". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2005, 13:09 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
ВладимирМFoxPro - это язык, который требует повышенной самодициплины от программиста. Если программист что-то не сделал, то FoxPro сам, в меру своего понимания, попробует выполнить действия не сделанные программистом. А вот насколько эти автоматические действия будут правомерны - это уже другой вопрос. Так в том то и дело, что меня удивляет некоторые вещи, которые при написании языка сделать легко, но они не реализованы. Почему ФоксПро автоматически не устанавливает для каждого проекта свой начальный путь по месту нахождения проекта, в котором он и будет искать различные файлы. Да и вообще можно было все внешние настройки встроить в свойства проекта. Я не вижу, почему те способы, что сделаны, лучше. Зачем тратить время на настройку, когда это может делать компьютер, а ты только следишь, чтоб всё было верно. Но, это скорее претензии к создателям VFP Большая просьба. Читай то, что действительно написано, а не то, что ты хотел бы прочитать. Сначала попытайся сделать так как написано и только потом экспериментируй с новыми способами. Не надо пытаться подходить к новому языку программирования со стериотипами, выработанными в другом языке. Это не относится только к FoxPro. Это вообще общий принцип изучения новых языков программирования. Стереотипы - это опыт. Находя подобии я быстрее его изучаю, а так пришлось бы с нуля начинать. Да, возникают проблемы, когда подобий нет, но это один из недостатков метода. В любом случае мой метод позволяет сразу писать программы на незнакомом языке, а потом уже его отлаживать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2005, 16:45 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
ОдесситТак в том то и дело, что меня удивляет некоторые вещи, которые при написании языка сделать легко, но они не реализованы... Стереотипы - это опыт. Находя подобии я быстрее его изучаю, а так пришлось бы с нуля начинать. Да, возникают проблемы, когда подобий нет, но это один из недостатков метода. В любом случае мой метод позволяет сразу писать программы на незнакомом языке, а потом уже его отлаживать. Чуствуешь противоречие? Твой опыт говорит одно, а конкретная реализация в данном языке программирования принципиально другая. Причем заметь, я говорю не о том, что что-то можно сделать, а что-то нельзя. Я говорю о том, как сделать то или другое. Стереотипы (опыт) - это очень коварная штука. Просто нельзя на основании опыта программирования в одном языке делать какие-то предположения в другом. Не получается. Языки программирования отличаются прежде всего способом решения тех или иных задач. Т.е. именно стереотипами программирования! Например, в FoxPro есть такая замечательная штука. Называется макроподстановка. Это когда ты в переменную записываешь команду или фрагмент команды, а потом этот записанный фрагмент исполняется как собственно команда. Когда я пытаюсь применить стереотип программирования основанный на макроподстановках в другом языке программирования я сталкиваюсь с большими проблемами. И совершенно справедливо. Нечего лезть со своим уставом (стереотипом) в чужой монастырь (язык программирования)! Между прочим, когда в объявлениях о приеме на работу пишут, что нужен стаж работы на конкретном языке не менее 3 лет, то я их вполне понимаю. Это именно тот срок, конда ты наконец вырабатываешь стереотипы программирования на конкретном языке. Это действительно требует времени. Причем значительно большего чем просто освоить какие-то команды и функции языка. Кодить-то можно научиться за пару недель (а то и быстрее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2005, 19:39 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Написал программу. Теперь мне надо было её запустить в другое ОС, где нет Фокса. В папку Виндоус я скопировал такие файлы: msvcr71.dll, vfp9r.dll, vfp9rrus.dll, gdiplus.dll. Попробывал запустить программу выдаётся ошибка, что файл vfp9r.dll неправельный или повреждён. Что мне делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2005, 15:39 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Hi Одессит! 1) При запуске фокса с ярлыка, берётся конфиг из той папки что указана как "стартовая", или из папки с vfpN.exe - если он там есть конечно. При запуске "открытием pjx/pjt файла из проводника/FAR/TotalCommander/etc" берётся тот конфиг что находится в папке с этим самым файлом. Наконец всегда можно воспользоваться ключом -C FileName для явного указания какой конфиг использовать. 2) При запуске готового exe используется тот конфиг который в этот exe "вкомпилирован", или тот что лежит рядом с exe. AFAIK ключик -C тоже работает (елси нету вкомпилированного конфига, или есть там включено ALLOWEXTERNAL - это для VFP8 и старше). 3) PATH и DEFAULT лучше не писать в конфиге. В принципе там совсем немного установок, которые НЕ ИМЕЮТ АНАЛОГОВ в программном коде. CODEPAGE=1251, SCREEN=OFF одни из таких. В принципе все остальные "недублируемые" настройки практически используются крайне редко. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2005, 15:48 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Ага, теперь понял в чём была моя ошибка, я открывал проект из самого Фокса, поэтому он и не находил файл конфигурации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2005, 16:10 |
|
||
|
Несколько вопросов.
|
|||
|---|---|---|---|
|
#18+
Так кто-то мне поможет с настройкой прогы, чтоб она работала на другом компе? Эту прогу я написал на день рождения своей девушки(у неё фокса нет), который, кстати, сегодня. Хоть прога личная, но я могу дать исходники, чтоб кто-то скомпелировал у себя и прислал мне архив с библиотеками. Ну, или объясните, почему прога может ругаться на то, что библиотека повреждена. У меня ФоксПро 9. Буду благодарен за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2005, 16:32 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32854629&tid=1595053]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 316ms |

| 0 / 0 |
