Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизПерезапуск формы Найти похожие ветки
← →
senatormisha © (2010-03-29 11:55) [0]У меня есть две формы. На главной есть кнопка для перехода на вторую форму! Со второй формой работаю, потом закрываю(при этом открывается главная форма). Как сделать, чтоб при повторном открытии второй формы на ней все было как при первом запуске(без изменений)?
← →
brother © (2010-03-29 11:56) [1]> Со второй формой работаю
> (без изменений)?
а что там на ней?
← →
brother © (2010-03-29 11:59) [2]в общем случае: на OnShow или OnActivate формы добавить ручную чистку данных...
← →
12 © (2010-03-29 11:59) [3]form.hide | show
← →
senatormisha © (2010-03-29 12:08) [4]несколько label-ей, edit
Вообще,я на ней вывожу данные из БД ClientDataSet, есть кнопка для перехода к следующей записи
StringGrid - вывожу номера записей из БД.
← →
senatormisha © (2010-03-29 12:12) [5]А можно как-нибудь использовать процедуру destroy для формы или что-то подобное?
← →
oldman © (2010-03-29 12:12) [6]
> несколько label-ей, edit
> Вообще,я на ней вывожу данные из БД ClientDataSet
Если это TDBLabel, она покажет значение текущей записи.
Значит при вызове формы надо встать на запись, бывшую текущей при первом вызове.
:)
← →
oldman © (2010-03-29 12:13) [7]
> senatormisha © (29.03.10 12:12) [5]
> А можно как-нибудь использовать процедуру destroy для формы
>
Можно, но при повторном вызове опять делать Create
← →
senatormisha © (2010-03-29 12:24) [8]Я пытался так сделать, но не знаю как form4.Create.........
Может кто подскажет?
← →
brother © (2010-03-29 12:28) [9]и чего ты не знаешь?
← →
senatormisha © (2010-03-29 12:28) [10]
> Если это TDBLabel, она покажет значение текущей записи.Значит
> при вызове формы надо встать на запись, бывшую текущей при
> первом вызове.:)
Текущая запись показывается в DBMemo и DBText
← →
senatormisha © (2010-03-29 12:31) [11]
> и чего ты не знаешь?
Какие параметры писать после form4.Create?
← →
Омлет © (2010-03-29 12:37) [12]Если вторая форма создается автоматически, то после Hide и Show на ней все будет, как было. Если ты её сам каждый раз создаешь и уничтожаешь при закрытии, то надо вручную восстанавливать состояния всех компонентов.
← →
brother © (2010-03-29 12:38) [13]а справку почитать?
← →
Медвежонок Пятачок © (2010-03-29 12:39) [14]Какие параметры писать после form4.Create?
Никакие.
Потому что само form4.Create писать не надо
← →
brother © (2010-03-29 12:39) [15]автор, ты форму destroy или hide?
← →
senatormisha © (2010-03-29 12:53) [16]
> автор, ты форму destroy или hide?
Да я уже все перепробовал! (( Все равно не то.
Вот когда закрываю прогу и потом открываю - форма красивая(показывается 1-я запись), потом я нажимаю "Следующая запись" - все меняется........
Эту форму закрываю(появляется главная форма)....
потом опять открываю вторую форму, а там то уже не первая запись((((((((((
Вот косяк....
← →
oldman © (2010-03-29 12:59) [17]
> Вот косяк....
Это не косяк. Ты же стоишь на "следующей" записи.
Table на какой форме?
← →
senatormisha © (2010-03-29 13:01) [18]
> Никакие.Потому что само form4.Create писать не надо
а что писать в procedure TForm1.Button3Click(Sender: TObject)? (по этой кнопке открывается вторая форма)
← →
oldman © (2010-03-29 13:05) [19]"А образование, как всегда, высшее..." © непомнюктоивкакойветке
← →
senatormisha © (2010-03-29 13:09) [20]
> Table на какой форме?
ClientDataSet1 на form3.
Главная на form1.
Вывожу данные на form4.
Вручную востанавливать form4 - большой код получится.
← →
Медвежонок Пятачок © (2010-03-29 13:29) [21]мало форм.
← →
senatormisha © (2010-03-29 14:29) [22]
> мало форм.
В самый раз! ))
← →
Плохиш © (2010-03-29 14:34) [23]
Увлечения / хобби
Техника и все что с ней связано, компьютеры, програмирование.
посмеялся
Интересное о себе
Не люблю читать книги.
оно и видно.
Вывод: сантехнику - сантехниково.
← →
Демо © (2010-03-29 14:38) [24]
> senatormisha ©
Напиши:
- Что отображается на форме у тебя (какие типы компонент)?
- Какие из них при показе формы во второй раз нужно оставить, какие обновить?
← →
senatormisha © (2010-03-29 19:33) [25]
> - Какие из них при показе формы во второй раз нужно оставить,
> какие обновить?
Все!!!!!!! нужно вернуть в исходное состояние!
На второй форме все меняется! ))
← →
И. Павел © (2010-03-29 19:56) [26]
> senatormisha ©
Нужно посмотреть, какие функции заполняют данные, и вызвать их, а остальные элементы заполнить, используя свойства Text/Caption/Lines/...?
Наверное, должно быть примерно как то так:
//Создание формы
Form4:=TForm4.Create(Application);
Form4.Show;
//Переходим к первой записи таблицы/запроса
ADOTable1.First;
ADOQuery1.First;
//Ну так как в таблице уже может быть активна 1-ая запись, то наверное не помешало бы еще и AfterScroll вызвать (или другой метод, в которым происходит наполнение элементов управления на Form4 при переходе к очередной строке таблицы)
//Уничтожение формы
Form4.Close;
Form4.Free;
← →
senatormisha © (2010-03-29 21:51) [27]Спасибо, И. Павел! ))
Действительно помог!
Все пошло, но только после 2-го закрытия опять ошибка! (((((
"Project Projectl.exe raised exception dass EAbstractError with message "Abstract Error". Process stopped. Use Step or Run to continue."
← →
Демо © (2010-03-29 22:04) [28]
> senatormisha © (29.03.10 19:33) [25]
> > - Какие из них при показе формы во второй раз нужно оставить,
> > какие обновить?Все!!!!!!! нужно вернуть в исходное состояние!
> На второй форме все меняется! ))
Ну всё так всё.
При создании формы в цикле иди по всем компонентам на форме и сохраняй их состояние. Например - в некий массив.
В тот момент, когда нужно восстановить состояние проделывай обратную операцию.
← →
Плохиш © (2010-03-29 22:16) [29]
> При создании формы в цикле иди по всем компонентам на форме
> и сохраняй их состояние. Например - в некий массив.
>
> В тот момент, когда нужно восстановить состояние проделывай
> обратную операцию.
>
Чем новое создание формы не угодило?
← →
senatormisha © (2010-03-29 22:28) [30]
> Чем новое создание формы не угодило?
Форма создается только 2 раза - потом ошибка! ((
← →
Игорь Шевченко © (2010-03-29 22:33) [31]
> Форма создается только 2 раза - потом ошибка! ((
Больно слышать
← →
senatormisha © (2010-03-29 22:39) [32]Значит я придумал? ))
Ошибка - она и в Африке ошибка! ))
"Project Projectl.exe raised exception dass EAccessViolation with message "Access violation at address 004034EC in module "Projectl.exe". Read of address 00Е48000". Process stopped. Use Step or Run to continue."
← →
Игорь Шевченко © (2010-03-29 23:04) [33]senatormisha © (29.03.10 22:39) [32]
Предлагаешь нам поработать коллективным отладчиком ? Это платная услуга.
← →
senatormisha © (2010-03-29 23:36) [34]Все! Сделал!
не нужно было писать это:
> //Уничтожение формы Form4.Close; Form4.Free;
и все ОК!
Всем спасибо!!!!!!1
← →
Германн © (2010-03-30 01:31) [35]
> senatormisha © (29.03.10 23:36) [34]
>
> Все! Сделал!
> не нужно было писать это:
>
> > //Уничтожение формы Form4.Close; Form4.Free;
>
> и все ОК!
Метод тыка сработал. Поздравляю!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.072 c