Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Совмещение функций... Совмещение функций... 
:(
    Опции темы
srtroy
Дата 27.5.2002, 15:43 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня на форме в компонент Memo1 выводиться командная строка. Ее запись меняться после каждого щелканья пользователем по компонентам RadioButton, CheckBox. По нажатию на кнопку Button4 дожно происходить тоже самое, только нужно, чтобы еще запускался процесс ShellExecute. Мне пришлось создать две функции - одна для отображения действий в командной строке, другая - для отображения действий в командной строке и для запуска процесса. Как можно использовать одну функцию и для того и для другого процессов?

Код
//Функция для отображения действий в командной строке:
procedure CommandLine;
var
Level, L, Overley, O, Resurs, R, CExports, E, SRelocs, T, Backup, B, TmpStr : String;
begin
   if Form1.CheckBox3.Checked then
    R := '-q '
   else
    begin
     if Form1.RadioButton3.Checked then
      R := '-r ';
     if Form1.RadioButton5.Checked then
      R := '-e ';
     if Form1.RadioButton6.Checked then
      R := '-y ';
    end;
    SRelocs := R;
   TmpStr := SRelocs + GetShortFileName(PChar(Form1.OpenDialog1.FileName));
  Form1.Memo1.Text := 'Имя_внешнего_файла.exe'+ TmpStr;
end;
end;


Код
//Функция для отображения действий в командной строке и запуска процесса:
procedure ExecuteFile;
var
Level, L, Overley, O, Resurs, R, CExports, E, SRelocs, T, Backup, B, TmpStr : String;
begin
   if Form1.CheckBox3.Checked then
    R := '-q '
   else
    begin
     if Form1.RadioButton3.Checked then
      R := '-r ';
     if Form1.RadioButton5.Checked then
      R := '-e ';
     if Form1.RadioButton6.Checked then
      R := '-y ';
    end;
    SRelocs := R;
   TmpStr := SRelocs + GetShortFileName(PChar(Form1.OpenDialog1.FileName));
  Form1.Memo1.Text := 'Имя внешнего файла.exe'+ TmpStr;

 //Запуск внешнего процесса
 ShellExecute(Application.Handle,'open','Имя_внешнего_файла.exe',PChar(TmpStr),nil,SW_SHOW);

end;
end;

  Вверх
Vit
Дата 28.5.2002, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Примерно так можно вызвать обработчики чужих событий. Это имелось ввиду? Или что-то другое?
Код


Form1.Button1Click(Sender:TObject);
begin
 Button2Click(Sender);
 Button3Click(Sender);
 ShellExecute(....)
end;



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
stroy
Дата 28.5.2002, 12:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нет Vit.

У меня есть две функции - CommandLine; и ExecuteFile; (здесь я привел только часть их). Они идентичны, разница только в том, что во второй добавляеться ShellExecute(Application.Handle,'open','Имя_внешнего_файла.exe',PChar(TmpStr),nil,SW_SHOW);

При клике по компонентам изменяеться запись в Memo, для этого я использую функцию CommandLine;. А при клике на кнопку активизируеться функция ExecuteFile;, которая запускает процесс (ShellExecute(Application.Handle,'open','Имя_внешнего_файла.exe',PChar(TmpStr),nil,SW_SHOW);).

Хотелось бы обЪединить эти функции в одну, две они занимают не мало места.
Но как это сделать?
  Вверх
Vit
Дата 28.5.2002, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Код

Procedure CommandLine(Execute:Boolean);
begin
 //общий код
 if Execute then ShellExecute(....);
end;


Вызовы:
вместо CommandLine вызываешь CommandLine(False)
вместо ExecuteFile вызываешь CommandLine(True)


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.