Announcement

Collapse
No announcement yet.

Was ist ActiveX?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Was ist ActiveX?

    Hallo,

    ich bin absoluter Anfänger, was Delphi und ActiveX betrifft.

    Ich muss mit einer ActiveX-Library arbeiten und wollte daher wissen, was das genau ist (Unterschied zu einer herkömmlichen DLL) und wozu diese gut ist, - also ein paar Basisinformationen.

    MfG
    Sebastian

  • #2
    Definitionen wirst Du viele finden (z.B. http://www.it-visions.de/(fsnc0fvpbj1zpcnsg42xsm45)/default2.aspx?start=http://www.it-visions.de/lserver/glossar_show.asp?g=&begriff=ActiveX oder http://www.addison-wesley.de/media/katalog/bsp/3827318696bsp.pdf).

    Ich sag einfach mal: ActiveX ist eine programmiersprachenübergreifender objektorientierter Ansatz um auf fremde Komponenten/Klassen zugreifen zu können.

    Vorteile gegenüber DLL:<br>
    - Anwender hat nach Imporiteren der Typbibliothek alle Methoden + Parameter der Schnittstelle in seiner Programmiersprache vorliegen (z.B. ActiveX in C++ geschrieben, Client Delphi), d.h. (als Delphi-Entwickler) braucht man sicht nicht mehr mit fehlerhaften Schnittstellenübersetzungen herumschlagen<br>
    - Möglichkeit (per DCOM) das Objekt auf einem entfernten Rechner auszuführen

    Nachteile gegenüber DLL:<br>
    - Es kann immer nur eine Version der ActiveX-Library auf einem Rechner installiert sein (Versionskonflikte bei eigentlich nicht erlaubten Änderungen der Schnittstelle zwischen verschiedenen Versionen). Neu-MS-Sprachgebrauch: DLL-Hölle<br>
    - Notwendigkeit der Registrierung mit lokalen Administratorrechten

    Ich hoffe das reicht fürs erste

    Comment


    • #3
      Oh, recht herzlichen Dank erstmal.

      Also ich habe mir versucht die Links anzuschauen und habe festgestellt, dass unter diesem Link nichts mehr zu vorhanden ist (auch ohne Klammer im Link)

      Hast Du vielleicht noch andere Seiten? <strong>Ich habe zudem noch ein Problem: Wie sieht denn der Aufruf einer ActiveX-Library in Delphi aus? Das funktioniert nämlich nicht bei mir.</strong>

      MfG
      Sebastia

      Comment


      • #4
        Recht herzlichen Dank erstmal. Dann schau ich mir mal die Links an.

        MfG
        Sebastia

        Comment


        • #5
          Für die definitionn kannst Du ja mal selbst im Internet nach "Definition ActiveX" googln.

          Was ist den dein Problem mit dem Aufruf einer ActiveX-Library in Delphi. In der Regel (meistens) funktioniert das ohne Probleme. Welches ActiveX geht denn nicht bzw. welche Fehlermeldung kommt

          Comment


          • #6
            Also ich habe folgenden Code:

            procedure TS.StartBtnClick(Sender: TObject);<br>
            var<br>
            LibHnd : THandle;<br>
            Start_Sepmatix_Pump : procedure;<br>
            iMerkResult : Integer;<br>
            begin<br>
            LibHnd := LoadLibrary('SEPMATIX_Pump.dll');<br>
            If (LibHnd >= Hinstance_Error) then begin<br>
            try<br>
            @Start_Sepmatix_Pump := (GetProcAddress (LibHnd,'Start_Sepmatix_Pump'));<br>
            Start_Sepmatix_Pump;<br>
            finally<br>
            FreeLibrary(LIBHnd);<br>
            end;<br>
            end;<br>
            end;<br>

            <strong>
            Und die Fehlermeldung ist ne "Access violation at address 000000." Ich versuche lediglich eine Start-Prozedur (wie ich es in einer normalen DLL auch mache) aufzurufen.

            Achso und es handelt sich um eine normale ActiveX Library mit einem Active Server Object (kenn mich damit noch nicht so aus).
            </strong&gt

            Comment


            • #7
              Ok, also ich habs selbst herausgefunden. Der Aufruf ist viel einfacher als bei einer normalen DLL, daher hier nochmal für alle, die in Zukunft das gleiche Problem haben werden:

              procedure TS.StartBtnClick(Sender: TObject);<br>
              var<br>
              MyOleObject : Olevariant;<br>
              begin<br>
              MyOleObject := (CreateOleObject('SEPMATIX_Pump.SepmatixActiveServ erObject'));<br>
              MyOleObject.Start_Sepmatix_Pump;<br>
              end;<br>

              SEPMATIX_Pump --> ist die Library <br>
              SepmatixActiveServerObject --> ist die CoClass (einfach mal nach CoClass im Projekt suchen - ist auch das Ding was man beim Erzeugen des Active Server Objects angibt) <br>

              Bedanke mich für Deine Unterstützung.

              MfG
              Sebastia

              Comment


              • #8
                dieser link ist auch noch zu empfehlen:
                http://www.dsdt.info/tutorials/activex
                Herzliche Grüße

                Markus Lemcke
                barrierefreies Webdesign

                Comment


                • #9
                  hallo,

                  ich lese gerade im com-buch von andreas kosch!
                  ist activex eine untergruppe von com oder habe ich das falsch verstanden?

                  Gruß

                  Marku
                  Herzliche Grüße

                  Markus Lemcke
                  barrierefreies Webdesign

                  Comment

                  Working...
                  X