Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2013, 04:15   #1
uralgsm
 
Регистрация: 19.01.2013
Сообщений: 9
По умолчанию Передать настройки с модального окна в popupmenu

Вопрос следующий... Есть главная форма, есть модальное окно с настройками.. В окне настроек есть выбор пути для запуска файла EXE...
на главной форме есть popupmenu с пунктом "запустить программу"
Код:
procedure TOptionForm.sBitBtn2Click(Sender: TObject);
   begin
   if sOpenDialog1.Execute then begin
  sEdit1.Text:= sOpenDialog1.FileName; //Записываем адрес и имя открытого файла
end;
 end;
Если на этой форме разместить кнопку запуска программы примерно вот так.. Все работает сторонний EXE запускается
Код:
procedure TOptionForm.sButton1Click(Sender: TObject);
begin
   ShellExecute(0, nil, PChar(sOpenDialog1.FileName), nil, nil, SW_SHOWNORMAL); //запускаем программу  это временная кнопка
end;
Как мне запустить программу из главного окна popupmenu я не соображу, как записать это в popupmenu при закрытии модального окна настроек?
... Через ini?

Последний раз редактировалось uralgsm; 27.01.2013 в 05:21.
uralgsm вне форума Ответить с цитированием
Старый 27.01.2013, 09:21   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

как пупап запускает?

можно имя хранить в глобальной переменной
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 27.01.2013, 10:30   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
uralgsm
Стесняюсь спросить, а ты вообще различаешь эти два кода что представил?
Цитата:
как записать это в popupmenu
Записать что?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.01.2013, 15:43   #4
uralgsm
 
Регистрация: 19.01.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Стесняюсь спросить, а ты вообще различаешь эти два кода что представил?
Не совсем)) В общем только осваивать начал самостоятельно, читаю вот, гуглю..
Вобще я не совсем понимаю как из модального окна передаются параметры, с chekbox вроде разобрался...
Основное направление программирую под пик контроллеры на асме, а тут вот что то решил delphi
uralgsm вне форума Ответить с цитированием
Старый 27.01.2013, 16:03   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
как из модального окна передаются параметры
Еще раз задачу опиши подробно как будто ТЗ составляешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.01.2013, 16:54   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Если модальная форма знает об окне вызвавшем её, то непосредственно по выходу из модальной можно обратиться к объектам, свойствам или public-переменным вызывающей формы. Если не знает, то можно примерно такой механизм использовать (он само собой не единственный, кучу вариантов еще можно предложить)
Код:
implementation

uses Unit2;

{$R *.dfm}

var lFileName: String;

procedure TForm1.Button2Click(Sender: TObject);
begin
  MenuItem1.Enabled:=StartForm2(lFileName) and (lFileName<>'');
end;

procedure TForm1.MenuItem1Click(Sender: TObject);
begin
  ShellExecute(0, nil, PChar(lFileName), nil, nil, SW_SHOWNORMAL);
end;
Код:
var
  Form2: TForm2;

function StartForm2(var pFileName: String): Boolean;

implementation

{$R *.dfm}

function StartForm2(var pFileName: String): Boolean;
begin
  Form2:=TForm2.Create(Application);
  Result:=Form2.ShowModal=mrOk;
  if Result then pFileName:=Form2.Edit1.Text;
  Form2.Free;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then Edit1.Text:=OpenDialog1.FileName
                         else Edit1.Text:='';
end;

procedure TForm2.ButtonOkClick(Sender: TObject);
begin
  ModalResult:=mrOk;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 27.01.2013 в 16:58.
Аватар вне форума Ответить с цитированием
Старый 27.01.2013, 17:02   #7
uralgsm
 
Регистрация: 19.01.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Еще раз задачу опиши подробно как будто ТЗ составляешь.
Есть главная форма, у главной формы есть popupmenu, из popupmenu можно открыть модальную форму, на модальной форме расположены настройки.
Так же в popupmenu есть "запустить левую программу", путь для запуска программы выбирается в модальной форме через OpenDialog и пишется в Edit,
как мне запустить эту выбранную программу из popupmenu " Запустить левую программу"?
Вот вроде как то так....

Последний раз редактировалось uralgsm; 27.01.2013 в 17:07.
uralgsm вне форума Ответить с цитированием
Старый 27.01.2013, 17:57   #8
uralgsm
 
Регистрация: 19.01.2013
Сообщений: 9
По умолчанию Решено

Проблема видимо в бессоной ночи)) Как обычно просто 5 секунд
Код:
procedure TForm1.N3Click(Sender: TObject);
begin
ShellExecute(0, nil, PChar(OptionForm.sOpenDialog1.FileName), nil, nil, SW_SHOWNORMAL);
end;
Вот я затупил аж стыдно

P.S.
Всем отозвавшимся +
Тему закрываю

Последний раз редактировалось uralgsm; 27.01.2013 в 18:04.
uralgsm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кнопка или ссылка закрытия модального окна artkhvz JavaScript, Ajax 0 30.10.2012 08:31
Закрытие модального окна по таймеру Olegzxc JavaScript, Ajax 3 31.07.2012 09:36
Проблема при изменении модального окна на немодальное GrinderSam Win Api 1 03.12.2011 14:33
Событие нажатия лев. кнопки мыши вне модального окна. shprotus Microsoft Office Excel 5 28.08.2011 09:45
Мерцание модального окна при щелчке на родительское Vadik(R) Общие вопросы Delphi 11 14.10.2009 19:37