[Delphi] werken met ActiveX com. en Eigen classes

Pagina: 1
Acties:

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
Met Delphi(6) wil ik vanuit een ActiveX Server component een TItemUnit (zelf gedefinieerd) laten returnen vanuit een functie zodat de ASP pagina er verder mee kan werken (gewoon simpel data weergeven)

Nu probeer ik via de Type Library Editor (TBL) deze methode aan de unit (het ActiveX component) toe te voegen. Alleen dit weigert ie dus :'(
(hij voegt een procudere toe ipv een method, wijzig ik dit handmatig dan compilereerd het geheel niet meer wat op zich logisch is aangezien de TBL niet meer klopt.)

Maar ik wil dus wel de TItemUnit terug kunnen sturen, hoe doe ik dat?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Welke fout krijg je dan bij het compileren?

https://fgheysels.github.io/


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
Dat de code niet overeenkomt met de TBL ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Als ik het goed begrijp heb je in Delphi een function geschreven die een TItemUnit returned, en als je die aan het ActiveX component toevoegt maakt hij er een procedure van ipv een function (en daardoor kun je geen waarde meer returnen)?

Kun je het dan niet (ugly) oplossen door ipv een waarde te returnen een parameter van het type TItemUnit by reference te passen naar die functie?

https://fgheysels.github.io/


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
Ja dat gaan we nu proberen te doen, maar dat is wel lelijk :( en ik weet geen kont van Delphi ;) dus dat wordt nog even prutsen. ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
wasigh schreef op 18 september 2002 @ 13:21:
Ja dat gaan we nu proberen te doen, maar dat is wel lelijk :( en ik weet geen kont van Delphi ;) dus dat wordt nog even prutsen. ;)


Tip: var

code:
1
procedure PassByRef (var Obejctname : TObjectType);

https://fgheysels.github.io/


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Je kan geen TItemUnit returnen laten door een com interface als dat type zelf niet eerste bekend is in de tlb. Als je geen kont van delphi weet zou ik er niet aan beginnen en gewoon wat simpels returnen

We adore chaos because we like to restore order - M.C. Escher


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

ow, en die error krijg je omdat je zelf in de ...._tlb.pas zit te prutsen. Dat is een dood zonde zoals je al gemerkt hebt. Bewerk de .tlb zelf met de type library editor en die past voor jouw vanzelf de ...._tlb.pas aan.

We adore chaos because we like to restore order - M.C. Escher


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
LordLarry schreef op 18 september 2002 @ 13:58:
Je kan geen TItemUnit returnen laten door een com interface als dat type zelf niet eerste bekend is in de tlb. Als je geen kont van delphi weet zou ik er niet aan beginnen en gewoon wat simpels returnen
het is voor een project voor school, en op zich ben ik niet te beroerd om me erin te verdiepen als ik maar weet waar ik moet beginnen.

Hoe kan ik zorgen dat de TLB de class kent? Ik heb al geprobeerd een nieuwe CoClass (oid) toe te voegen in de TLB. dat werkte niet, toen heb ik ook een Interface toegevoegd en dat werkte ook niet. Ik krijg nog steeds de melding:
Functions of Automation units must have a return type of HRESULT

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Als eerste moet je *niet* direct in de ..._tlb.pas zitten werken zoals ik al zei.

Je kan niet zomaar andere typen gebruiken in je tlb, want com weet niet hoe die die over moet sturen (marshallen). Je moet in de tlb duidelijk maken wat dat type is. Je kan er een interface van maken. Of een Record. Of een Enumeration. En dat alles met de Delphi Type Lib Editor.

We adore chaos because we like to restore order - M.C. Escher

Pagina: 1