DDE vs Excel

0

Witam

Na podstawie pomocy do Delphi7 napisałem coś co powinno odczytywać pole z istniejącego
otwartego arkusza Excel jednak nie działa....????
Zamiast pisać 15 stron bezwartościowego tekstu wystarczyło zamieścić 3 linie z działającym przykładem.
Czy ktoś wie jak to poprawić???

 

//dodajemy komponent DdeClientConv1 zakładka System

procedure TForm1.Button1Click(Sender: TObject);
var
a,b: string;
begin
     a:= 'Excel';
     b:= '[Zeszyt1]Arkusz1';
     //DdeClientConv1.ServiceApplication:='c:\office\office\excel.exe';

     if not DdeClientconv1.SetLink(a,b) then ShowMessage('Error: Brak polaczenia');
     if DdeClientConv1.OpenLink then Windows.Beep(200,200);


     (Sender as TButton).Caption:= DDEClientConv1.RequestData('[A:1]');
end;
0

Sprawdź czy, format zapytania w RequestData to:

'WyKx'

gdzie:
x - numer (K)olumny,
y - numer (W)iersza.

Dla wersji PL działa. Jak w innych? Pewnie analogicznie.

0

Zamieszczony uprzednio przykład przedstawia wyniki moich testów, jednak nie działa.... jeśli ma Pan działający kod proszę wstawić przykład.

0

Daj Pan spokój, nie tak oficjalnie. ;)
U mnie ładnie dane pobiera w ten sposób:

var w,k : byte;   Data: PChar;

//  if DDEClientConv1.OpenLink then
  begin
    try
      for w:=1 to 10 do
        for k:=1 to 10 do
          begin 
            Data := DDEClientConv1.RequestData('W'+inttostr(w+1)+'K'+inttostr(k+1));
            memo1.Lines.Add('W'+inttostr(w)+'K'+inttostr(k)+':= ['+PChar(Data)+']'); 
          end;
    finally
       StrDispose(Data); // Need to release memory from requested data
    end;
  end; 

Od niedawna wziąłem się za DDE, więc nawet ze mnie amator kiepski w tym temacie.
:)

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