Конференция "Начинающим" » Порядок вывода форм и запоминание введенных данных [D7]
 
  • Badrussian55 (25.12.16 23:58) [0]
    Здравствуйте уважаемые посетители форума! Заранее прошу прощения если создаю очередной дубликат вопроса. Мой поиск не дал ответа на мой вопрос.

    Собственно что пытаюсь сделать. Мне необходимо, чтобы при запуске программы первым шло окошко в которое человек вводил курс доллара и курс евро. Программа уже написана, это ее доработка. То есть вначале вывод формы 2. Вводятся  данные курсов  а потом уже открывалась бы форма 1,  где представлен основной функционал программы. А эти переменные были бы уже   обозначены в памяти. Дико извиняюсь за некорректное, возможно изложение, я новичок. Если не трудно, то пожалуйста укажите  как эти переменные сохранить, если курс доллара у меня будет  допустим x и курс евро  y. Эти переменные   уже фигурируют в моих формулах. Как их правильно прописать. Сейчас я имею готовую программу на форме 1,  и отдельные  Edit для x и y. Но при каждом использование x и y они считываются с Edit. Очень буду признателен за помощь.
  • Inovet © (26.12.16 00:19) [1]
    Project Options - Forms - Auto-create forms

    Правильнее так
    Форма 1 пусть создаётся автоматически.
    В ней объявить членами класса x, y double типа.
    Добавить на неё кнопку "Ввод курса валют".
    В обработчике кнопки динамически создать Форму 2.
    Вызвать метод созданного объекта формы 2 fm.ShowModal
    if ModalRezult = mrOk сохранить в в x, y
    x := StrToDouble(fm.EditX);
    y := StrToDouble(fm.EditY);
    удалить fm
    и надо обернуть создание и удаление в try ... finally
    Вызвать расчёт.

    Возможны вариации без кнопки "Ввод курса валют" с вызовом формы 2 из обработчика после автоматического создания Формы 1. Но попробуй всё-такки предложенное решение.
  • Badrussian55 (26.12.16 00:30) [2]
    Inovet,  огромное вам спасибо!  Сегодня уже голова не варит. Завтра обязательно попробую с переменными. На счет порядка форм понял. Наконец увидел это! Еще раз благодарю Вас за оперативный и развернутый ответ.
  • Юрий Зотов © (26.12.16 00:30) [3]
    1.  В секции Interface модуля Unit1 объявить 2 переменные:
    var Usd, Eur: extended; // Или сurrency

    2. В опциях проекта убрать Form2 из списка автосоздаваемых форм.

    3. В модуле Unit2 удалить переменную Form2.

    4. Доработать исходный код проекта (файл Project1.dpr):

    uses ... , Unit1, Unit2;

    begin
     with TForm2.Create(nil) do
     try  
       if  ShowModal <> mrOK then
         Exit;
       Usd := StrToFloat(UsdEdit.Text); // UsdEdit и EurEdit - это окошки ввода
       Eur := StrToFloat(EurEdit.Text)   // курсов валют на форме Form2
     finally
       Free
     end;
     Application.Initialize;
     Application.CreateForm(...);
     Application.Run;
    end.


    При запуске программы будет показана форма ввода. После нажатия на ней кнопки OK введенные данные будут сохранены в переменных Usd и Eur, а затем появится главная форма.
  • Badrussian55 (26.12.16 00:37) [4]
    Юрий Зотов, я уже написал благодарности пользователю Inovet.   Не хочется повторяться. Но безмерно благодарен и Вам. Я первый раз на этом форуме и это мой первый вопрос я поражен отзывчивости пользователей и развернутости ответов.  Я  днем обязательно все  сделаю и напишу по результатам, и возможно озадачу еще какими то вопросами. Спасибо Вам!!!
  • Inovet © (26.12.16 00:42) [5]
    Юра как всегда всё более точно описал, а я сделал только набросок.:)
  • Юрий Зотов © (26.12.16 00:48) [6]
    > Badrussian55

    И когда все сделаете, не забудьте вставить комментарий:
    // Badrussian55 did it !
    Сейчас это модно.
    :o)
  • Badrussian55 (26.12.16 21:27) [7]
    Все получилось. Большое спасибо Inovet и особенно Юрию Зотову который предоставил поэтапные действия с кодом для моего случая.  Удачи Вам и всего наилучшего!
 
Конференция "Начинающим" » Порядок вывода форм и запоминание введенных данных [D7]
Есть новые Нет новых   [118460   +14][b:0][p:0]