Announcement

Collapse
No announcement yet.

Zugriff von Delphi-OCX über LinkedCell auf Excel-Zelle

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

  • Zugriff von Delphi-OCX über LinkedCell auf Excel-Zelle

    Hallo, <p>In den VB-Komponenten in Excel gibt es normalerweise eine Eigenschaft mit dem Namen
    "LinkedCell". <p>Ich erzeugte in Delphi eine "Active Form" (OCX)
    mit der Eigenschaften "LinkedCell": <p><PRE>
    Lesen:
    [
    propget,
    id(0x000000D9),
    source,
    bindable,
    requestedit,
    displaybind,
    defaultbind,
    defaultcollelem,
    uidefault,
    immediatebind <ul> HRESULT _stdcall LinkedCell([out, retval] VARIANT * Value );
    </ul>und
    Schreiben:
    [
    propput,
    id(0x000000D9),
    source,
    bindable,
    requestedit,
    displaybind,
    defaultbind,
    defaultcollelem,
    uidefault,
    immediatebind <ul> HRESULT _stdcall LinkedCell([in] VARIANT Value );
    </ul></PRE> <p>Platziere ich nun das Control in ein Excel-Tabellenblatt und setze die Eigenschaft des Controls auf z.B. "A1" dann wird der Wert der in die Excel-Zelle "A1" eingetragen wird zum Control übertragen,
    leider weiss ich nicht wie ich den umgekehrten Weg d.h. Daten vom Control in die Zelle von Excel bekomme. <p>Ich denke hier muss noch eine schreibende Verbindung in Richtung Excel auf die LinkedCell im OnChange Ereigniss erfolgen, hier fehlt mir die Verbindung. <p>Hier der Beispielcode für das OCX. <p><a href="http://www.die-otts.de/TestLinkedCell.zip">Beispielcode
    zu LinkedCell in Delphi</a> <p>Wer hat einen Rat oder eine Idee wie das funktioniert ? <p>Michael Ott

  • #2
    Danke an die jenigen die sich Gedanken gemacht haben.

    Hier ist die Lösung:

    Im OnChange-Ereigniss von der VCL-Komponente folgendes Eingfügen:
    <PRE>

    ActiveFormControl.PropChanged(<DispID>);

    </PRE>
    wobei <DispID> die ID von LinkedCell ist.

    und schon gehts.

    Grüsse Michael Ot

    Comment

    Working...
    X