![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| RosemaN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
вот наваял процедурку и функцию. Решил отказаться от первого варианта (записывать данные в буфер при изменении конкретного поля) и записывать в массив все данные одним махом. Написал процедуру для записи содержимого 20 Edit в массив из 20 ячеек. И функцию проверки поля на наличие в нем хоть чего-нибудь
|
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 16 Всего: 38 |
Ты бы объяснил задачу - было бы проще... Зачем вообще постоянно сохранять данные в массив?
-------------------- ![]() |
|||
|
||||
| RosemaN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
делаю программу для составления отчетов в Word и Excel. Запись данных в массив делаю при нажатии на кнопку "Создать акт" или "Сделать запись в журнал". Тем самым я ухожу от необходимости обрабатывать нажатия клавиш Ввода и Таб, а так же обрабатывать вставку данных из буфера обмена. Алгоритм такой: заполняются поля на форме, жмем на кнопку - на выходе отчет. Затем снова заполняем поля, жмем на кнопку - еще один отчет и т.д. Данные записываю а в массив и в дальнейшем работаю уже с массивом данных |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
а зачем их обрабатывать нужно? Добавлено через 8 минут и 43 секунды я может не верно понял твою зодачу но... может так проще. пишеш универсальный обработчик события OnChange который определяет какой едит его вызвал и пишет в соответствуещее значение в массив, определяет все ли едиты заполнены если не все не дает нажать кнопку.. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
ХМ... задача все равно не ясна... до конца...
можно конешно вместо массива использовать TStringList... -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
| RosemaN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
пример можно? |
|||
|
||||
| lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
RosemaN,
-------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
| RosemaN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
перед заполнением отчетов в Excel и Word необходимо заполнить ВСЕ поля. Где сделать эту проверку? В обработчике кнопок создания отчетов вроде логично, но куда передавать управление, если не все поля заполнены? Какие предложения?
|
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 16 Всего: 38 |
Первому не заполненному. Например так:
Это сообщение отредактировал(а) aktuba - 23.11.2007, 02:03 -------------------- ![]() |
|||
|
||||
| pavelv |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Насчет исходной проги согласен с Frees. Нужен универсальный обработчик событий на OnChange, во-первых и код будет красивее и зазря все компоненты на форме не прийдется лопатить. По второму aktuba уже всё написал, даже добавить нечего. Разве, что во второй строке кода "Componens" заменить "Components"
|
|||
|
||||
| RosemaN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
OnChange на что реагирует? На изменение свойства Text? независимо от того как данные туда попали? |
|||
|
||||
| RosemaN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
вот такой код не очень подходит, ибо если с клавиатуры вводить текст, то OnChange реагирует на каждый воодимый символ. На Ctrl+V срабатывает прекрасно. Видимо, тут еще нужно задействовать потерю фокуса. Чтобы данные в массив записывались только после завершения ввода строки символов. (привязка конкретного эдита к соотв элементу массива через свойство Tag)
Это сообщение отредактировал(а) RosemaN - 24.11.2007, 18:12 |
|||
|
||||
| aktuba |
|
||||||||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 16 Всего: 38 |
Виноват =))). Набирал в браузере. На изменение содержимого. Независимо.
Не понятны 2 вещи: 1. Зачем записывать данные в массив??? Они и так уже есть, при обработке бери непосредственно из TEdit-ов. 2. Чем именно не подошел данный код? Тебе ведь только надо проверить, пустой Edit или нет, например так:
-------------------- ![]() |
||||||||
|
|||||||||
| RosemaN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
Проверку заполнения Эдита уже сделал Данные записываю в массив т.к. у меня создаются три разных отчета и требуется некотрое изменение строк. Хотя можно в принципе и без них. Поудобнее как-то |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |