napisałem ten kod tylko dlatego, że to kompletnie inna metoda, raczej nie stosowana w komunikacji międzyprocesowej.
kod programu odczytującego dane:
{$APPTYPE CONSOLE}
uses windows;
var
buf : pchar;
SI : TStartupInfo;
PI : TProcessInformation;
res : cardinal;
begin
buf := pchar('project2.exe');
FillChar(SI,sizeof(SI),0);
with SI do
begin
dwFlags:=STARTF_USESHOWWINDOW;
wShowWindow:=SW_SHOW;
cb:=sizeof(TStartupInfo);
end;
sleep(100);
CreateProcess(nil,buf,nil,nil,FALSE,NORMAL_PRIORITY_CLASS,nil,nil,SI,PI);
WaitForSingleObject(PI.hProcess,INFINITE);
GetExitCodeProcess(PI.hProcess,res);
writeln('wynik: ',res);
readln;
end.
Kod programu generującego wyniki:
procedure TForm1.Button1Click(Sender: TObject);
begin
halt(StrToInt(Edit1.Text));
end;
Oprócz tego kładziesz na formatkę edita i button, pod kliknięcie na button podstawiasz powyższą procedurę. Nazwa pliku wykonywalnego ma być taka sama jak w poprzednim kodzie (tu "project2.exe").