DDE vs Excel

Odpowiedz Nowy wątek
2011-07-07 23:25
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;

Pozostało 580 znaków

2011-07-20 13:00
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.


edytowany 1x, ostatnio: MartinEagle, 2011-07-20 13:05

Pozostało 580 znaków

2011-07-24 09:27
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.

Pozostało 580 znaków

2011-07-26 23:58
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.
:)


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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