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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2010, 07:44   #1
alex4718
 
Регистрация: 25.02.2010
Сообщений: 4
По умолчанию [Проблемка] Не могу понять некоторые моменты в borland c++

Добрый день.
Хотел бы узнать у вас следующие:
1. Как реализовать создание кнопок и событий для них в цикле.
2. Как запустить *.exe файл через свою программу

Извините если это слишком элементарно я просто совсем недавно начал изучать с++.

Заранее спасибо.
alex4718 вне форума Ответить с цитированием
Старый 20.03.2010, 08:59   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
2. Как запустить *.exe файл через свою программу
Имеется ввиду порождение програмой нового процесса? смотрите в сторону winAPI

Цитата:
1. Как реализовать создание кнопок и событий для них в цикле.
Опять же, как вариант, все тот же winAPI

p.s.

winAPI прямого отношения к c++, как и к любому другому ЯП, не имеет. Для него есть свой раздел.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 20.03.2010, 10:56   #3
n971030
 
Регистрация: 18.03.2010
Сообщений: 9
По умолчанию

Как запустить приложение и подождать пока оно отработает 4
--------------------------------------------------------------------------------


как запустить из Вашей программы еще какую-нибудь программу и дождаться ее закрытия. Для удобства сразу оговорюсь: Ваша программа - это программа, код которой здесь приведен. Другая программа - программа, которая была запущена из Вашей. Для запуска другой программы мы будем использовать функцию CreateProcess, поскольку она возвращает handle созданного процесса. Для ожидания завершения процесса (программы) нужно вызвать Wai В этом примере функция ExecuteAndWait запускает другую программу (имя запускаемого файла - FileName). Если HideApplication установлен в true, то Ваша программа исчезает на время выполнения другой программы. В противном случае Ваша программа остается на экране и каждые 0.1 сек. будут выполняться все задачи, которые накопились в очереди (Application.ProcessMessages). А если пользователь решит закрыть Вашу программу - закроется и другая программа. Процедура SetEnabled



function ExecuteAndWait(FileName: string; HideApplication: boolean): boolean;
var
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
exitc: cardinal;
begin
FillChar(StartupInfo, sizeof(StartupInfo), 0);
with StartupInfo do begin
cb := Sizeof(StartupInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := SW_SHOW;
end;
if not CreateProcess(nil, PChar(FileName), nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil,
StartupInfo, ProcessInfo) then result := false
else begin
if HideApplication then begin
Application.Minimize;
ShowWindow(Application.Handle, SW_HIDE);
WaitforSingleObject(ProcessInfo.hPr ocess, INFINITE);
end else
while WaitforSingleObject(ProcessInfo.hPr ocess, 100) =
WAIT_TIMEOUT do begin
Application.ProcessMessages;
if Application.Terminated
then TerminateProcess(ProcessInfo.hProce ss, 0);
end;
GetExitCodeProcess(ProcessInfo.hPro cess, exitc);
result := (exitc = 0);
if HideApplication then begin
ShowWindow(Application.Handle, SW_SHOW);
Application.Restore;
Application.BringToFront;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
procedure SetEnabled(en: boolean);
var
i: integer;
begin
for i := 0 to Form1.ComponentCount - 1 do
if Form1.Components[i] is TControl then
(Form1.Components[i] as TControl).Enabled := en;
end;
begin
SetEnabled(false);
if not ExecuteAndWait(Edit1.Text, CheckBox1.Checked)
then ShowMessage('Возникли какие-то проблемы');
SetEnabled(true);
end;
n971030 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу со своего компьютера попасть на некоторые сайты Phoenix77 Свободное общение 15 08.10.2010 19:40
не могу запустить ехешник ,Borland 5 и Borland 6 error_13 Общие вопросы C/C++ 0 31.01.2010 14:04
не могу понять Dawystrik SQL, базы данных 0 06.09.2009 19:20
Не могу понять Superlotles Помощь студентам 8 31.08.2009 20:39
не могу понять... Dutchman Паскаль, Turbo Pascal, PascalABC.NET 4 14.12.2006 07:14