Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.067 c
2-1268198078
Б
2010-03-10 08:14
2010.08.27
HBITMAP -> Pointer


15-1265562991
Stranger1308
2010-02-07 20:16
2010.08.27
Импорт библиотеки


2-1272191721
koshkin
2010-04-25 14:35
2010.08.27
Как указать путь к модулю


15-1273239416
Kerk
2010-05-07 17:36
2010.08.27
Да здравствует копирайт!


4-1235583465
Wiktop
2009-02-25 20:37
2010.08.27
Журнал Windows





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский