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

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

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

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

Сообщение Zillah » 25.12.2006 16:57:23

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...

Может кто подскажет куда рыть?
Аватара пользователя
Zillah
незнакомец
 
Сообщения: 3
Зарегистрирован: 25.12.2006 16:49:12

Сообщение tria » 25.12.2006 17:26:16

А на какой строке?
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10

Сообщение Attid » 25.12.2006 17:46:09

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

в корне не правельная, и её не в коем случае нельзя использывать !!
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Zillah » 26.12.2006 08:22:47

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

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

Сообщение Zillah » 26.12.2006 12:00:52

Я лапух, конечно же :
Код: Выделить всё
...
Process1:=TProcess.Create(nil);
...

надо было, все встало на свои места. :)
Осталась одна проблемка, при нажатии на кнопарь окно консоли таки мелькает... как то можно это побороть кардинально? 8)
Аватара пользователя
Zillah
незнакомец
 
Сообщения: 3
Зарегистрирован: 25.12.2006 16:49:12


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

Рейтинг@Mail.ru