Hallo Bernd,
der Fehler lag woanders. Trotzdem danke für Deine schnelle Antwort, die aber so nicht funktioniert:
procedure XServerDings.showhelp(helpidx: longint); // egal
begin
with helpwnd.create(nil) do // oder application oder was auch immer
begin
findhelp(helpidx);
show; // Non-blocking, aber ActiveServer ist gleich wieder weg, Fenster flackert nur kurz auf...
end;
end; //
Der Fehler war, dass ich Depp im Clientprogramm die Olevariable lokal gemacht habe. Wenn raus aus der lokalen Methode (hier: Button1.onclick(..), dann wird natürlich auch die Variable zerstört.
Solche Dummheiten kosten Stunden unseres Programmiererlebens :-;
ok, hier isser nun raus, Client lebt weiter, aber das "Hilfe"-Fenster aus
ActiveX-Server flackert
nur kurz auf und verschwindet dann wieder. Ich nehme an, dass die
ActiveX-Application keine "Lebensdauer" hat. Kenne mich aber mit
ActiveX zuwenig aus.
Der Aufruf aus Client läuft etwa so:
var
v: variant;
begin
v:= CreateOleObject(pchar('adelphi.meinprog'));
v.showhelp(1);
// nein, v wird nicht "unassigned" und sollte eigentlich weiterleben...
end; // raus und ... tot!