/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Dusør
Fra : Uffe Kousgaard


Dato : 25-10-01 19:02

Jeg udlover en dusør (en plovmand) til den, som kan hjælpe mig med et
problem. Jeg har to komponenter, der er linket sammen lidt på samme måde som
TTable og Tdatasource er det. De to komponenter skal der laves én active-x
ud af, men det er her problemet opstår, da mit link giver problemer. Hvis
man er novice ud i active-x og COM, er der nok ingen grund til at kaste sig
ud i at prøve at løse problemet.

Se en simplificeret udgave af komponenterne + et lille delphi demo-project i
news://dk.binaer, subject pascal.

Hilsen
Uffe




 
 
Thomas Rose (25-10-2001)
Kommentar
Fra : Thomas Rose


Dato : 25-10-01 20:50

Hej Uffe,

jeg synes ikke dit eksempel er helt nemt at forstå... hvad er det præcis du
vil opnå, og hvad præcis er problemet? Jeg kunne ikke kompilere eksemplet,
mest sansynligt fordi de to test-klasser skal være installeret i Delphi's
IDE. Jeg forsøgte selv en lille test, med to klasser der nedarver fra
TWinControl; nedarvningen gav mig problemer - men jeg kunne lægge en
property på den ene klasse der kunne pege på den anden klasse (design-time
og run-time).

Desuden taler du om ActiveX og COM... der er ikke meget af dette i dit
eksempel... hvordan kommer ActiveX og COM ind i billedet?

Hygge,
Thomas



Uffe Kousgaard (25-10-2001)
Kommentar
Fra : Uffe Kousgaard


Dato : 25-10-01 21:38

Hej

Problemet er, at lave de to komponenter om til Active-x. Det er derfor
eksemplet nedarver fra Twincontrol, da active-x ikke kan baseres på Tobject.

Og du har ret i, at komponenterne først skal installeres før demo projektet
kan kompileres. Principielt skulle samme 2 komponenter kunne laves om til
active-x (så de kan kaldes fra VB), derefter kan active-x'erne så importeres
i Delphi og stort set samme demo projekt skulle derefter kunne kompileres,
blot med active-x komponenter i stedet for alm. dlephi komponenter.

Hilsen
Uffe

"Thomas Rose" <trose@get2net.dk> wrote in message
news:3bd86ce0$0$196$edfadb0f@dspool01.news.tele.dk...
> Hej Uffe,
>
> jeg synes ikke dit eksempel er helt nemt at forstå... hvad er det præcis
du
> vil opnå, og hvad præcis er problemet? Jeg kunne ikke kompilere eksemplet,
> mest sansynligt fordi de to test-klasser skal være installeret i Delphi's
> IDE. Jeg forsøgte selv en lille test, med to klasser der nedarver fra
> TWinControl; nedarvningen gav mig problemer - men jeg kunne lægge en
> property på den ene klasse der kunne pege på den anden klasse (design-time
> og run-time).
>
> Desuden taler du om ActiveX og COM... der er ikke meget af dette i dit
> eksempel... hvordan kommer ActiveX og COM ind i billedet?
>
> Hygge,
> Thomas
>
>



Thomas Rose (25-10-2001)
Kommentar
Fra : Thomas Rose


Dato : 25-10-01 22:17

Hej Uffe,

"Uffe Kousgaard" <uffe@routeware.dk> wrote in message
news:3bd87818$0$245$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Problemet er, at lave de to komponenter om til Active-x. Det er derfor
> eksemplet nedarver fra Twincontrol, da active-x ikke kan baseres på
Tobject.

Hmm... jeg ser umiddelbart ikke forbindelsen mellem TWinControl og
ActiveX... TWinControl er en standard Delphi VCL klasse, hvorimod en ActiveX
komponent udmærker sig ved at implementere et eller flere COM/Automation
interfaces, og har tilknyttet et typelibrary (der muliggører komponentens
anvendelse uden for Delphi).

Hvis du ønsker at lave en ActiveX form, kontrol, eller objekt, der kan
anvendes udenfor Delphi, f.eks. på ASP-sider, i VB, o.a., så kan du bruge
Delphis wizard (File -> New -> ActiveX)... her kan du oprette en række
forskellige typer ActiveX, COM, og Automation objekter. Hvis du ønsker en
visuel kontrol skal du have fat i en ActiveX Control eller Form, men ønsker
du derimod blot ikke-synlige objekter kan du bruge Automation-objekter
(COM-objekter kan så vidt jeg ved ikke anvendes i VB).

Cheers,
Thomas



Uffe Kousgaard (25-10-2001)
Kommentar
Fra : Uffe Kousgaard


Dato : 25-10-01 23:05

Tak for de mange henvisninger, men jeg er udmærket bekendt med delphi's
active-x wizard m.v. Active-x komponenter skal nedarve fra Twincontrol, da
de skal have en windows handle (hvilket Tobject f.eks. ikke har). Problemet
er fortsat, at der i en af mine metoder optræder en paramter, som er af
samme type som den anden komponent. Og det kan wizarden ikke håndtere, da
kun "almindeligt" forekommende type håndteres af denne wizard. Mit spørgsmål
er derfor, hvad man gør i det tilfælde?

Hilsen
Uffe

PS: VB programmører forventer active-x og ikke COM objekter, derfor er COM
ikke på banen som et alternativ. Desuden ville jeg også der have det samme
problem som ovenfor.

"Thomas Rose" <trose@get2net.dk> wrote in message
news:3bd8814d$0$237$edfadb0f@dspool01.news.tele.dk...
> Hej Uffe,
>
> Hmm... jeg ser umiddelbart ikke forbindelsen mellem TWinControl og
> ActiveX... TWinControl er en standard Delphi VCL klasse, hvorimod en
ActiveX
> komponent udmærker sig ved at implementere et eller flere COM/Automation
> interfaces, og har tilknyttet et typelibrary (der muliggører komponentens
> anvendelse uden for Delphi).
>
> Hvis du ønsker at lave en ActiveX form, kontrol, eller objekt, der kan
> anvendes udenfor Delphi, f.eks. på ASP-sider, i VB, o.a., så kan du bruge
> Delphis wizard (File -> New -> ActiveX)... her kan du oprette en række
> forskellige typer ActiveX, COM, og Automation objekter. Hvis du ønsker en
> visuel kontrol skal du have fat i en ActiveX Control eller Form, men
ønsker
> du derimod blot ikke-synlige objekter kan du bruge Automation-objekter
> (COM-objekter kan så vidt jeg ved ikke anvendes i VB).
>
> Cheers,
> Thomas
>
>



Thomas Rose (26-10-2001)
Kommentar
Fra : Thomas Rose


Dato : 26-10-01 08:40

Hej Uffe,

"Uffe Kousgaard" <uffe@routeware.dk> wrote in message
news:3bd88c73$0$772$edfadb0f@dspool01.news.tele.dk...
> Tak for de mange henvisninger, men jeg er udmærket bekendt med delphi's
> active-x wizard m.v. Active-x komponenter skal nedarve fra Twincontrol, da
> de skal have en windows handle (hvilket Tobject f.eks. ikke har).
Problemet
> er fortsat, at der i en af mine metoder optræder en paramter, som er af
> samme type som den anden komponent. Og det kan wizarden ikke håndtere, da
> kun "almindeligt" forekommende type håndteres af denne wizard. Mit
spørgsmål
> er derfor, hvad man gør i det tilfælde?

Ok... hmm... har du behov for en visuel kontrol? Mit problem er her min
manglende erfaring med netop ActiveX komponenter, og jeg ved derfor ikke om
de samme regler gælder for ActiveX som for standard Automation og COM... min
erfaring ligger nemlig primært indenfor Automation, COM og COM+...

Har du ikke behov for en desideret visuel kontrol, men blot et objekt der
kan anvendes i VB, kan du bruge Automation objekter... og her skulle det
ikke være noget problem at opnå det du gerne vil - at objekterne kan
referere til hinanden. Forskellen mellem standard Delphi objekter og
Automation objekter er referencernes type... Delphi objekter bruger som
bekendt TObject referencer, hvorimod Automation objekter anvender interface
referencer (IUnknown og IDispatch). Måske kan ActiveX kontroller også
refereres til vha. interface referencer, men her er jeg lidt usikker - især
fordi Delphi's ActiveX Wizard laver en ActiveX wrapper til dig... dvs.
Delphi kode der omkranser ActiveX komponenten...

> PS: VB programmører forventer active-x og ikke COM objekter, derfor er COM
> ikke på banen som et alternativ. Desuden ville jeg også der have det samme
> problem som ovenfor.

Hmm... som sagt, hvis du ikke har behov for en visuel kontrol kan du anvende
Automation objekter istedet... og her skulle dit problem sagtens kunne
løses.

Cheers,
Thomas



Thomas Schulz (28-10-2001)
Kommentar
Fra : Thomas Schulz


Dato : 28-10-01 17:05

> Jeg udlover en dusør (en plovmand) til den, som kan hjælpe mig med et

spørg i en Borland newsgroup?


Thomas



Uffe Kousgaard (28-10-2001)
Kommentar
Fra : Uffe Kousgaard


Dato : 28-10-01 22:39

Der har jeg selvfølgelig spurgt samtidig og det var også der igennem jeg fik
et "hint"(fra Holland). Thomas Rose har nu også været til stor hjælp omend
han er mere til rendyrket COM end Active-X Min løsning virker nemlig kun
med Active-X.

Når løsningen er testet mere grundigt, kommer løsningen her sammen med lidt
kildekode.

"Thomas Schulz" <dk_sz@hotmail.com> wrote in message
news:3bdc2ce9$0$25397$edfadb0f@dspool01.news.tele.dk...
> > Jeg udlover en dusør (en plovmand) til den, som kan hjælpe mig med et
>
> spørg i en Borland newsgroup?
>
>
> Thomas
>
>



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste