Announcement

Collapse
No announcement yet.

ActiveX und ASP......

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

  • ActiveX und ASP......

    Hallo,

    über den Datenaustausch zwischen ASP und einem ActiveForm habe ich diverse Beiträge gefunden. Nur verstehe ich nur Bahnhof.....

    Kann mir jemand eventuell erklären, wie ich zwischen einem ActiveForm und einer ASP Seite Daten übergeben kann? (und diese im ActiveForm einlesen)

    Für eure Hilfe wäre ich sehr dankbar!!!

    Olaf

  • #2
    Hallo,

    das Ganze lässt sich am Besten mit einem konkreten Beispiel erklären. Nachdem die ActiveX-Bibliothek und das Grundgerüst für das ActiveForm vom Experten zusammengestellt wurde, werden im Typbibliothekseditor sowohl das ActiveForm-Interface als auch das Events-Interface um die eigene Methode erweitert, wobei das Beispiel eine Read/Write-Eigenschaft sowie ein Ereignis (Anklicken des Buttons im ActiveForm) implementiert:
    <pre>
    IActiveFormDemoX: property OSParameter: WideString
    read Get_OSParameter write Set_OSParameter;
    IActiveFormDemoXEvents: procedure OnOSButtonClick
    </pre>
    Das Read/Write-Property <i>OSParameter</i> wird von Delphi automatisch in die beiden Set_- und Get_-Methoden umgesetzt. Das eigene Event <i>OnOSButtonClick</i> soll immer dann ausgelöst werden, wenn der Button im ActiveForm angeklickt wird.<br>
    Nach dem Refreshen der Implementierungs-Unit hat Delphi das Grundgerüst der Methoden-Implementierung angelegt. Alle neu deklarierten Methoden müssen nun implementiert werden. Die Ereignisbehandlungsmethode für das Anklicken der TButton-Instanz im ActiveForm ruft zuerst ShowMessage auf, um eine Rückmeldung im ActiveForm zu demonstrieren. Zusätzlich wird das eigene Event aufgerufen, indem indirekt die Interface-Methode OnOSButtonClick aufgerufen wird. Die beiden Get_- und Set_-Methode für OSParameter bilden nur die Verbindung zwischen der TEdit-Instanz im ActiveForm und dem Parameter bzw. dem Rückgabewert für die Eigenschaft OSParameter des ActiveForm. Aus der HTML-Datei heraus kann nur auf die Interface-Methoden des ActiveForm zugegriffen werden, so dass diese beiden Wrapper-Methoden notwendig sind.
    <pre>
    procedure TActiveFormDemoX.Button1Click(Sender: TObject);
    begin
    ShowMessage('Der Button im ActiveForm wurde angeklickt');
    OSButtonEvent(Self);
    end;

    function TActiveFormDemoX.Get_OSParameter: WideString;
    begin
    Result := Edit1.Text;
    end;

    procedure TActiveFormDemoX.Set_OSParameter(const Value: WideString);
    begin
    Edit1.Text := Value;
    end;

    procedure TActiveFormDemoX.OSButtonEvent(Sender: TObject);
    begin
    if FEvents <> nil then
    FEvents.OnOSButtonClick;
    end;
    </pre>
    Nachdem das ActiveForm compiliert wurde, wird der Dialog für die Optionen für die Distribution über das Web ausgefüllt. Ist das erledigt, kann der Menüpunkt für die Distribution aufgerufen werden. Delphi verpackt die Datei in einer komprimierten CAB-Datei und legt auch das HTML-Grundgerüst an.

    Nur wird die HTML-Seite von Hand geändert, über die Zeile <b>PARAM name="OSParameter" value="Der Text aus der HTML"</b> kann das ActiveForm bestimmte Infos vom Container (HTML-Seite) übernehmen:
    <pre>
    < HTML>
    < H1> Delphi 5 ActiveX Test Page < /H1>< /pre>
    < p>
    You should see your Delphi 5 forms or controls embedded in the form below.
    < HR>< center>< P>
    < OBJECT ID="OSActiveForm"
    classid="clsid:5D5C9EC6-DB6E-44D1-86A5-E9DE4823C5FC"
    codebase="http://localhost/OssiSoft/Test/ActiveFormDemo.cab#version=1,0,1,0"
    width=314
    height=138
    align=center
    hspace=0
    vspace=0
    > < PARAM name="OSParameter" value="Der Text aus der HTML">
    < /OBJECT>
    < SCRIPT LANGUAGE="JavaScript" FOR="OSActiveForm" EVENT="OnOSButtonClick">
    alert(document.all.OSActiveForm.OSParameter);
    < /SCRIPT>
    < /HTML>
    </pre>
    P.S: Eine ausführlichere Beschreibung ist in meinem Buch <i>COM/DCOM/COM+ mit Delphi</i> zu finden

    Comment


    • #3
      Hallo,

      tausend dank für die Hilfe, aber bei mir ist der Groschen immer noch nicht gefallen! Gibt es eventuell ein Beispiel was ich mir downloaden kann??

      Danke

      Ola

      Comment


      • #4
        Hallo,

        die Projektdateien sind auf der CDROM zum Buch und eine ausführlichere Beschreibung ist dort auch zu finden :-)

        Ein anderes Beispiel mit der Überschrift <i>ASP-Objekt mit Delphi 5 Enterprise erstellen und in der ASP aufrufen</i> kann aus dem <b>Download</b>-Ordner des Delphi-Forums heruntergeladen werden

        Comment


        • #5
          Hallo,

          ich habe das Buch (beide :-) ), nur habe ich zu diesem Thema bisher nichts gefunden?! Bin ich blind???

          Gruss

          Ola

          Comment


          • #6
            Hallo,

            ein Beispiel für den Zugriff auf ein ActiveForm aus einer HTML-Seite heraus ist auf der CDROM im Verzeichnis <i>CDROM\Kapitel 17\ActiveForm</i> zu finden. Im Buch beginnt dieses Beispiel auf der Seite 939.<br>

            Ein ActiveForm ist auch nur ein COM-Objekt, das zusätzlich eine GUI-Oberfläche hat. Daher kann die ASP genauso auf dieses ActiveForm zugreifen, wie es bei einem ganz normalen COM-Objekt der Fall ist. Man muss nur darauf achten, dass nur client-seitige VBScript-Aufrufe zulässig sind, aber keine server-seitigen.

            Comment


            • #7
              Hallo Andreas,

              ich danke dir! Es hat zwar gedauert aber nun ist der Groschen auch bei mir gefallen...

              Gruss

              Ola

              Comment


              • #8
                Hallo Andreas,

                ActiveX und kein Ende…

                Auf meinem ActiveX Form greife ich über ADO auf den SQL Server zu. Das „scheint“ auch zufunktionieren, jedoch nicht unter WinNT 4. Dort bekomme ich bei Aufruf der entsprechenden Seite einen Ausnahmefehler vom Internetexplorer?!

                Meine Frage, ist es überhaupt Sinnvoll die Anbindung zur DB über ADO zu lösen?? (die Anwendung läuft nur im Intranet) Und hast Du eine Idee woher der Ausnahmefehler kommt??

                Für deine Hilfe danke ich Dir,

                Olaf

                Konfiguration: Delphi 6 Ent. (Sp1), MS SQL 2000 (SP1), WinNT 4 (SP6a), Internet explorer 5.0 (SP2) & 5.5 (SP2

                Comment


                • #9
                  Hallo,

                  wenn der MS SQL 2000 verwendet wird, ist ADO der einzige "richtige" Weg. Welche Fehlernummer (0x8000xxxxx) zeigt der IE an

                  Comment


                  • #10
                    Hallo Andreas,

                    das Problem hat sich mit den vorhergehenden (ActiveX Form Problemmmm.........) Änderungen erledigt...

                    Danke

                    Ola

                    Comment

                    Working...
                    X