Проблемка с использованием TProcess...

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
Zillah
незнакомец
Сообщения: 3
Зарегистрирован: 25.12.2006 15:49:12

Проблемка с использованием TProcess...

Сообщение Zillah »

Lazarus 0.9.20/FPC 2.0.4

Простенький модуль:

Код: Выделить всё

unit main;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,
  ExtCtrls, StdCtrls, Buttons, Process;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Process1: TProcess;
    StatusBar1: TStatusBar;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
     Process1.Create(nil);
     Process1.CommandLine:='qqq.exe';
     Process1.Options := Process1.Options + [poWaitOnExit, poUsePipes];
     Process1.Execute;
     Memo1.Lines.LoadFromStream(Process1.Output);
     Process1.Free;
end;

initialization
  {$I main.lrs}

end.


Первое нажатие на кнопку проходит нормально, на втором Access Violation...

Может кто подскажет куда рыть?
tria
постоялец
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10
Контактная информация:

Сообщение tria »

А на какой строке?
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Zillah
а что ты пытаешься сделать ты хоть понимаешь ?
если нет то попробуй обьяснить что ты хочешь а там решим как должно работать
вот эта строчка
Process1.Create(nil);

в корне не правельная, и её не в коем случае нельзя использывать !!
Аватара пользователя
Zillah
незнакомец
Сообщения: 3
Зарегистрирован: 25.12.2006 15:49:12

Сообщение Zillah »

Пользовался примером http://wiki.lazarus.freepascal.org/Exec ... l_Programs

вообще надо написать гуй к консольной утилитке... нажатие на кнопарь вызов утилиты с назначенными ключами, вывод консоли в TMemo.
Аватара пользователя
Zillah
незнакомец
Сообщения: 3
Зарегистрирован: 25.12.2006 15:49:12

Сообщение Zillah »

Я лапух, конечно же :

Код: Выделить всё

...
Process1:=TProcess.Create(nil);
...

надо было, все встало на свои места. :)
Осталась одна проблемка, при нажатии на кнопарь окно консоли таки мелькает... как то можно это побороть кардинально? 8)
Ответить