Delphi i SubiektGT z typami zdefiniowanymi w interfejsie

Delphi i SubiektGT z typami zdefiniowanymi w interfejsie
BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 297
0

Chciałem zmienić podejście do obsługi Subiekta GT z poziomu Delphi. Mam wygenerowane 2 pliki InsERT_TLB i ADODB_TLB z biblioteki GTA.dll. Do tej pory stosowałem zmienne typu OleVariant. Ale dzisiaj zobaczyłem, że mogę stosować zmienne z tych interfejsów, czyli GT, Dodatki, Aplikacji itp. Zrobiłem taki kawałek kodu, żeby zobaczyć, czy mi się aplikacja odpali:

Kopiuj
procedure TForm1.Button1Click(Sender: TObject);
var
  oGT: GT;
  oDodatki: Dodatki;
  oSGT: Aplikacja;

begin
  oGT.Produkt := 1;
  //oGT.Serwer := '172.16.120.10,58999';
  oGT.Serwer := '.\SQL';
  oGT.Baza := 'baza';
  oGT.Autentykacja := 0;
  oGT.Uzytkownik := 'user';
  oGT.UzytkownikHaslo := 'Hasło';
  oGT.Operator_ := 'Szef';
  oGT.OperatorHaslo := '';
  oSGT := oGT.Uruchom(gtaUruchom, gtaUruchomNowy);
  oSGT.Okno.Widoczne := true;
end;


Niestety po naciśnięciu przycisku, zamiast odpalać się aplikacja Subiekt, to pojawia się błąd:
screenshot-20240812111139.png

Co jest nie tak? Może ktoś podpowie?

MI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 49
3

Zmienna oGT nie jest w żaden sposób zainicjowana. Domyślam się, że typ GT to interfejs COM. Powinieneś najpierw pozyskać instancję obiektu, który implementuje ten interfejs. Poszukaj może jakiegoś obiektu-producenta, który utworzy odpowiednią instancję lub użyj CreateComObject .

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 297
0

Zgadza się Typ GT jest interfejsem COM. Do tej pory stosowałem typy OleVariant i korzystałem z funkcji CreateOleObject. Ale wtedy nie mam podpowiedzi właściwości i metod. Natomiast, gdy zastosowałem typ GT, to wtedy ładnie mi się wszystko podpowiada. Ale faktycznie nie tworzy się obiekt.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.