AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Free Pascal Syntax

Ein Thema von Berni68 · begonnen am 26. Sep 2013 · letzter Beitrag vom 2. Okt 2013
Antwort Antwort
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#1

Free Pascal Syntax

  Alt 26. Sep 2013, 19:49
Hallo zusammen,

ich habe mit der LazActiveX Komponente eine .tlb importiert.
Es wird z.B. folgender Code generiert

 function GetBSplineInfo(pnOrder:array[0..1] of LongWord;pnNumPoles:array[0..1] of LongWord;pnNumKnots:array[0..1] of LongWord;out pbIsRational:ShortInt;pbIsPeriodic:TArrayShortInt01;pbIsClosed:TArrayShortInt01;out pbIsPlanar:ShortInt;pPlaneVector:TPoint02):HRESULT;stdcall;
das läßt sich aber nicht kompilieren Fehler:
L:\Inventor\Inventor_1_0_TLB.pas(34766,41) Fatal: Syntax error, "OF" expected but "[" found

Das Problem kann man zwar umgehen idem man
Delphi-Quellcode:
type
  TpnOrder = array[0..1] of LongWord;
deklariert, und dann TpnOrder in der Funktion übergibt.

Das unangenehme aber ist, daß in dieser Bib zahllose solcher (verschiedener) arrays verwendet werden die dann alle händisch ersetzt werden müssten.
Meine Hoffnung ist aber, das LazActiveX syntaktisch korrekten Code generiert, und ich lediglich einen Compilerschalter richtig setzen muß.
Lieg ich da richtig, und vor allem wo find ich den Haken?
Bernhard
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Free Pascal Syntax

  Alt 28. Sep 2013, 10:47
Die Syntax array[x..y] of Something wird bei Parametern in der Tat nicht unterstützt. Das wäre also dann ein Bug im tlb-Importer. Könntest du eventuell einen Bugreport auf bugs.freepascal.org öffnen oder mir zumindest sagen bei welcher TLB das auftritt, damit es derjenige, der den Importer pflegt, beheben kann?

Edit: Die TLB ist in beiden Fällen nötig, da das Problem ja nachgestellt werden muss.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Free Pascal Syntax

  Alt 2. Okt 2013, 21:49
Hallo Sven,

entschuldige, daß ich mich erst so spät melde.

An einen bug-report trau ich mich nicht ran, die .tlb hab ich aber angehängt.

Es gibt aber noch weitere Probleme.
Wenn ich in der automatisch erzeugten Unit folgende Typen deklariere:

Code:
Type
  TPoint02 = array[0..2] of Double;
  TPoint01 = array[0..1] of Double;
  TArrayShortInt = array[0..1] of ShortInt;
  TpCells = array[0..15] of Double;
  TpnOrder = array[0..1] of LongWord;
  TpCells = array[0..8] of Double;
  PIUnknown = IUnknown; // *1)
und im Quelltext entsprechend ersetze,läßt sich die .lpk compilieren und installieren.
Sobald aber in Lazarus ein Objekt auf einem Formular plaziert wird, stürzt Lazarus komplett ab.
Kann aber auch an *1) liegen, da habe ich besseren Wissens nur improvisiert.

Ausserdem finde ich in der Bibliothek kein Objekt namens Application.
In Delphi erhalte ich durch
InventorApp:= GetActiveOleObject('Inventor.Application') As Inventor_TLB.Application; // Inventor_TLB = PackageName die Verbindung zum OLE-Server.
(* auch GetActiveOleObject('{xxxxxxxxxxxxxxx}') KlassenId mit ROT-Viewer geht nicht *)

Gruß
Bernhard
Angehängte Dateien
Dateityp: zip RxInventor.zip (607,2 KB, 3x aufgerufen)
Bernhard
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz