|
|
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
Леди и джентельмены! Подскажите дилетантке-учительнице. У меня на форме куча текстбоксов, все со свойством ENABLED=.F. По ходу дела мне нужно это свойство у них у всех поменять.Пишу код: THISFORM.TXTBOX1.ENABLED=.T. THISFORM.TXTBOX2.ENABLED=.T. ... ... ... ... ... ... ... THISFORM.TXTBOX25.ENABLED=.T. Можно ли как-нибудь сократить эту писанину? И еще. Когда был студенткой - занималась FPD 2.6. Там были процедуры. Однотипные действия загоняла в одну процедуру и когда требовалось писала DO PROC zapis. В VFP это дело не проходит. А я знаю, что просто не так даю эту команду. Благодарю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 18:34:26 |
|
||
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
Макро-подстановкой Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 18:43:06 |
|
||
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
1. Воспользоваться функцией SetAll() 2. Создать класс с нужными свойствами. Все текстбоксы создавать на основе класса. В VFP нет команды Do Procedure. Есть просто Do ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 18:48:29 |
|
||
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
IgorProgrammer Макро-подстановкой Нет, не пойдет. Я прошу прощения, решила стандартизировать text1, text2... для топика. На самом деле все текстбоксы у меня на форме имеют специфическое название: т_фам, т_оценка, т_работа. Так что цикл здесь у меня не прокатит. karly™2. Создать класс с нужными свойствами. Все текстбоксы создавать на основе класса. В VFP нет команды Do Procedure. Есть просто Do Т.е. сразу указывать название процедуры, да? Интересно, попробую. А вот создание класса - никогда не занималась. Стоит овчинка выделки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 19:03:27 |
|
||
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
1. Попробовала применить процедуру: DO proba Но опять вышло сообщение, что в событиях и методах невозможно применят процедуры. Вопрос: под процедуры нужно писать prg-файлы? 2. Применила thisform.setall("enabled",.t.). Разумеется, сработало на все объекты. А вот thisform.commandbutton.setall("enabled",.t.) выдает ошибку. Значит, всетаки писать свой класс, например под текстбоксы, и никак не иначе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 19:35:28 |
|
||
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
Лисонька1. Попробовала применить процедуру: DO proba Но опять вышло сообщение, что в событиях и методах невозможно применят процедуры. Вопрос: под процедуры нужно писать prg-файлы?Да. Сообщение об ошибке не обманывает. Лисонька2. Применила thisform.setall("enabled",.t.). Разумеется, сработало на все объекты. А вот thisform.commandbutton.setall("enabled",.t.) выдает ошибку.Метод SetAll существует не у всех объектов. У формы - да, у кнопки - нет. Если написать ThisForm.SetAll("Enabled", .T., "textbox"), сработает на все текстбоксы. Если нужно, чтобы не на все - см. ниже. ЛисонькаЗначит, всетаки писать свой класс, например под текстбоксы, и никак не иначе?Да, и это хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 19:51:03 |
|
||
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
Я обычно пишу в Init формы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Но как заметили Выше - дело это на любителя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 21:06:48 |
|
||
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
karly™Да. Сообщение об ошибке не обманывает. Тогда поставим проблему следующим образом: Для каждой процедуры свой отдельный prg-файл, правильно? Или писать один, который будет содержать все мои процедуры, потом включить его в проект, иначе ссылка просто на данный файл ничего не даст, нужная процедура не запустится. Так? С каждым часом влюбляюсь в Фокс все больше и больше! Он такой интересный... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 23:05:08 |
|
||
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
2 Лисонька: ЛисонькаДля каждой процедуры свой отдельный prg-файл, правильно? Нет, не так. Нельзя писать процедуры внутри элементов формы. А вот писать ли их в одном PRG-файле или в нескольких - это как тебе удобней будет. Главное чтоб файл, содержащий несколько процедур был подключен с помощью команды Set Procedure to Твой_файл_с_процедурами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 23:17:44 |
|
||
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
Hi Sergey & Лисонька! > Главное чтоб файл, содержащий несколько процедур был подключен с помощью команды Set Procedure to Твой_файл_с_процедурами. Если он как раз таки и содержит несколько процедур. Если же всего одну, ОДНОИМЕННУЮ с именем самого prg, то подключать не нужно - и так будет найден (но надо подключать пути поиска SET PATH, размещать файл в текущем каталоге - что важно на этапе разработки, или просто компилировать внутрь exe - там фокс тоже без проблем найдёт). Кроме того часто удобно обращаться к процедурам как к функциям (в фоксе между ними нету отличий - только способ вызова определяет различия) т.е просто llRes=MyProc(params) или если ничего не возвращается, то просто MyProc(params). Знак = который раньше ставили перед именем функции теперь актуален лишь в нескольких избранных случаях, и они НЕ связаны с пользовательскими процедурами. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 01:38:03 |
|
||
|
Как сократить однотипный программный код?
|
|||
|---|---|---|---|
|
#18+
ЛисонькаЛеди и джентельмены! Подскажите дилетантке-учительнице. У меня на форме куча текстбоксов, все со свойством ENABLED=.F. По ходу дела мне нужно это свойство у них у всех поменять.Пишу код: THISFORM.TXTBOX1.ENABLED=.T. THISFORM.TXTBOX2.ENABLED=.T. ... ... ... ... ... ... ... THISFORM.TXTBOX25.ENABLED=.T. Можно ли как-нибудь сократить эту писанину? И еще. Когда был студенткой - занималась FPD 2.6. Там были процедуры. Однотипные действия загоняла в одну процедуру и когда требовалось писала DO PROC zapis. В VFP это дело не проходит. А я знаю, что просто не так даю эту команду. Благодарю Hi, Лисонька! Можно, а может и нужно, в форме создавать собственные методы (они и есть процедуры). Когда открыта форма для редактирования: меню Form\New metod ввести имя метода, а в нем код типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. THISFORM.<имя метода> Примерно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 07:06:44 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33148872&tid=1593927]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
143ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 442ms |

| 0 / 0 |
