Hallo,
ich habe in mir das Interface IAutoComplete2 in einer Komponente gekapselt. Nachdem meine anfänglichen Schwierigkeiten nun gelöst sind (siehe "IEnumString in Komponente verwenden" in diesem Forum) und die Komponente auch recht gut funktioniert ist mir allerdings noch etwas merkwürdiges an diesem Interface aufgefallen. Wenn nun dieses AutoComplete-Fenster geöffnet wird, zeigt der Delphi-Debugger das Debug-Fenster an. Etwas oberhalb der Cursorposition steht etwas von "ntdll.DbgBreakPoint". Ist das normal oder habe ich einen Fehler gemacht? Wenn die EXE ohne Debigger läuft, tritt kein Fehler auf und alles funktioniert wunderbar.
Als kleine Zusatzanmerkung noch: Deser DbgBreakPoint scheint immer kurz nach dem Durchlaufen von IEnumString.Next aufzutreten. Hier der Source aus meiner Klasse TEnumString (die ich per Cut and Paste aus COM/DCOM/COM+ mit Delphi übernommen habe):
<pre>
function TEnumString.Next(celt: Longint; out elt; pceltFetched: PLongint): HResult;
var
i: integer;
begin
{ Nächstes Element der Collection zurückliefern }
i := 0;
while (i < celt) and (FIndex < FStrings.Count) do
begin
TPointerList(elt)[i] := PWideChar(WideString(FStrings[FIndex]));
Inc(i);
Inc(FIndex);
end;
if pceltFetched <> nil then
pceltFetched^ := i;
if i = celt then
Result := S_OK
else
Result := S_FALSE;
end;
</pre>
Ich nutze Delphi 5 Pro, W2k Pro SP2 und den IE 5.5 SP1. Mit der Delphi 6-Trial auf dem gleichen System passiert das aber auch:-(
MfG Jan
ich habe in mir das Interface IAutoComplete2 in einer Komponente gekapselt. Nachdem meine anfänglichen Schwierigkeiten nun gelöst sind (siehe "IEnumString in Komponente verwenden" in diesem Forum) und die Komponente auch recht gut funktioniert ist mir allerdings noch etwas merkwürdiges an diesem Interface aufgefallen. Wenn nun dieses AutoComplete-Fenster geöffnet wird, zeigt der Delphi-Debugger das Debug-Fenster an. Etwas oberhalb der Cursorposition steht etwas von "ntdll.DbgBreakPoint". Ist das normal oder habe ich einen Fehler gemacht? Wenn die EXE ohne Debigger läuft, tritt kein Fehler auf und alles funktioniert wunderbar.
Als kleine Zusatzanmerkung noch: Deser DbgBreakPoint scheint immer kurz nach dem Durchlaufen von IEnumString.Next aufzutreten. Hier der Source aus meiner Klasse TEnumString (die ich per Cut and Paste aus COM/DCOM/COM+ mit Delphi übernommen habe):
<pre>
function TEnumString.Next(celt: Longint; out elt; pceltFetched: PLongint): HResult;
var
i: integer;
begin
{ Nächstes Element der Collection zurückliefern }
i := 0;
while (i < celt) and (FIndex < FStrings.Count) do
begin
TPointerList(elt)[i] := PWideChar(WideString(FStrings[FIndex]));
Inc(i);
Inc(FIndex);
end;
if pceltFetched <> nil then
pceltFetched^ := i;
if i = celt then
Result := S_OK
else
Result := S_FALSE;
end;
</pre>
Ich nutze Delphi 5 Pro, W2k Pro SP2 und den IE 5.5 SP1. Mit der Delphi 6-Trial auf dem gleichen System passiert das aber auch:-(
MfG Jan
Comment