Einzelnen Beitrag anzeigen

golisan

Registriert seit: 17. Jan 2007
43 Beiträge
 
Delphi 2007 Professional
 
#9

AW: TreeView einer anderen Anwendung aus modifizieren

  Alt 18. Dez 2017, 11:50
Das "andere" Programm ist die Entwicklungsumgebung "NATURAL Studio" der Programmiersprache NATURAL. Diese NATURAL-Programme bestehen aus Subroutinen(ähnlich Basic). Ich möchte nun in einem TreeView alle Subroutinen des aktuellen Programmes auflisten und mit Doppelklick wird an die entsprechende Sourcecodestelle positioniert.(ähnlich der Projektverwaltung oder Klassenstruktur der Delphi-IDE).
Diese IDE lässt sich per PlugIns erweitern. Diese PlugIns sind auch in NATURAL geschrieben und in dieser Sprache gibt es Dinge wie Speicher reservieren nicht. Ich bin froh, dass eine DCOM-Schnittstelle gibt und ich Delphi rufen kann.
In diesem Plugin lege ich einen Treeview mit einem Dummy-Knoten an und übergebe das Handle an Delphi. Dort kann ich mit
 TreeView_DeleteAllItems(wnd); diesen Knoten löschen. Das tut.
Also habe ich Zugriff auf das Treeview-Objekt, richtig? Sogar "schreibend".
Lege ich aber mittels
Delphi-Quellcode:
ZeroMemory(@tvi, sizeof(tvi));
tvi.hParent := nil;
tvi.hInsertAfter := TVI_FIRST;
tvi.item.mask := TVIF_TEXT ;
tvi.item.pszText := PChar(feNatname);
tvi.item.cchTextMax := SizeOf(PChar(feNatname));

root := TreeView_InsertItem(wnd, tvi);
ein Element an, sehe ich es zumindest nicht. (im Debugger ist root aber <> Nil) Liegt das nur am PChar oder hängt das neue Item gar nicht an meinem Tree?
Müsste ich meine erzeugten Knoten noch irgendwie in den anderen Prozess schieben?
Irgendwie so?
WriteProcessMemory(hProc, pAddr, @tvi, sizeof(TV_ITEM), dwTmp)
  Mit Zitat antworten Zitat