shellapi, jesli sie nie myle, tylko jak ?

Odpowiedz Nowy wątek
2006-11-04 10:46

Rejestracja: 13 lat temu

Ostatnio: 3 lata temu

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 ?

Pozostało 580 znaków

ŁF
2006-11-04 10:55
ŁF
Moderator

Rejestracja: 17 lat temu

Ostatnio: 10 godzin temu

0

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


Pozostało 580 znaków

2006-11-04 11:23

Rejestracja: 13 lat temu

Ostatnio: 3 lata temu

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

Pozostało 580 znaków

2006-11-04 13:34
Moderator

Rejestracja: 17 lat temu

Ostatnio: 6 minut temu

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.

Pozostało 580 znaków

2006-11-04 22:12

Rejestracja: 13 lat temu

Ostatnio: 3 lata temu

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 :)

Pozostało 580 znaków

ŁF
2006-11-04 22:20
ŁF
Moderator

Rejestracja: 17 lat temu

Ostatnio: 10 godzin temu

0

to może zamiast indy użyj synapse?


Pozostało 580 znaków

2006-11-04 22:52

Rejestracja: 13 lat temu

Ostatnio: 3 lata temu

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 ;/

Pozostało 580 znaków

nav
2006-11-04 23:44
nav

Rejestracja: 16 lat temu

Ostatnio: 1 miesiąc temu

Lokalizacja: Warszawa

0

Przecież ŁF Ci podał w pierwszej odpowiedzi.


utf-8 rlz! ٩(ಥ_ಥ)۶

Pozostało 580 znaków

2006-11-05 16:08

Rejestracja: 13 lat temu

Ostatnio: 3 lata temu

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

Pozostało 580 znaków

ŁF
2006-11-05 18:34
ŁF
Moderator

Rejestracja: 17 lat temu

Ostatnio: 10 godzin temu

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


Pozostało 580 znaków

Odpowiedz

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