shellapi, jesli sie nie myle, tylko jak ?

0

w turbodelphi nie ma idftp, zas w delphi 2005 pe, nie ma kontrolek od baz danych, mam program ktory wykorzystuje i to i to, zatem w delphi 2005 pe chce napisac glowna aplikacje, natomaist che , aby po kliknieciu przyciusku w w wersji wykompilowanej w d2005 uruchamial sie program napisany w td, hce by ten td pobieral zmianne z glownej aplikacji, a potem zeby zwracal jakis wynik - konkretnie chce by zwracal wartosc 1 lub 0,albo true/false.

jak to zrobic ?

0

sockety, named pipes, mailsloty, muteksy, eventy, komunikaty, pamięć współdzielona... do wyboru do koloru

0

amoglbym jakies fragmenty kodu ?

chodzio to: sa 2 programy : p1 i p2.

p1 uruchamia program p2 i przekazuje mu wartosc zmiennej x,
p2 wykionuje pewne operacjei konczy swe dzialanie zwracajac np do zmiennej x2 w p1 wartosc "1" lub "2" , w zaleznosci od tego jaki jest wynik operacji p2.

pozdrawiam
Ramzess

0

Ale czy jest sens? Łatwiej będzie w Turbo Delphi zrobić dynamiczne tworzenie komponentu TIdFTP, dodać odpowiednie pliki modułów do projektu i będzie śmigało.

A nawet nie wiem czy TD przypadkiem nie instaluje Indy, tylko go nie umieszcza w palecie.

0

tak, samo instaluje indy, ale niestety nie ma tam kontrolek idftp, gdyby byly to nie pisalbym tutaj o problemie jaki napotkalem , ujmijmy to tak : nie moge zrobic tego inaczej niz w przedstawioony powyzej sposob, dlatego chcialbym wiedziec jak to zrobic, lub gzdie szukac informacji na ten temat.

pozdrawiam i chcialbym zeby mi ktos pomogl ,a nie pytal :)

0

to może zamiast indy użyj synapse?

0

ok, mam wszystko napisane, 2 dosc rozbudowane apliakcje - osobno, czas mnie goni, wiec chcialbym tylko aby mozna bylo pobierac zmienne z jedno programu do drugiego i po zakonczeniu drugiego przeslac wynik do pierwszej aplikacji do zmiennej,

jak to zrobic, prosze chocby jakies slowa kluczowe, zebym mial gdzie szukac ;/

0

Przecież ŁF Ci podał w pierwszej odpowiedzi.

0

okej to mam prosbe, napiszcie mi taka aplikacje :

w p1 2 edity, a w p2 1 edit

uruchamiamy p1, w edit1 wpisujemy np "2" i guzikiem uruchamiamy program p2, tak zeby w programie p2 w edit1 nzlazla sie wartosc edit1 z pierwszego programu, potem zamykamy program p2i program p2 przesyla zawartosc edit1 do pola edit2 w p1.

chodzi mi o przekazanie danych miedzy programami, ale nie mgoe znaleŹĆ nic na szybko, prosze o pomoc !!

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1