Delphi-PRAXiS
Seite 3 von 13     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [IDE-Experte (2006,07,09,10,XE,XE2)] CustomHelp (https://www.delphipraxis.net/140957-%5Bide-experte-2006-07-09-10-xe-xe2-%5D-customhelp.html)

MarcoWarm 5. Okt 2009 13:36

Re: [IDE-Experte] CustomHelp
 
Danke... ich schau es mal durch :-)

a-s-z-work 6. Okt 2009 17:18

Re: [IDE-Experte] CustomHelp
 
Hi,

weisst du zufällig, wie ich aus einer ms-help url die Topic-Infos heraus bekomme?

Das Standard-Hilfe-System liefert noch weitere Treffer, die man auch noch anzeigen könnte.

Es gibt ja das Interface IHxTopic das alles nötige liefert, aber wie komme ich an eine Instanz mittels ms-help://embarcadero.rs2009/...?

MarcoWarm 7. Okt 2009 07:49

Re: [IDE-Experte] CustomHelp
 
Hi,

es gibt die Möglichkeit eine Volltextsuche im IHxSession durchführen
Delphi-Quellcode:
IHxSession.Query
entweder im kompletten Artikeltext mittels des NavDataMonikers
Delphi-Quellcode:
'!DefaultFullTextSearch'
oder nur in den Keywords mittels
Delphi-Quellcode:
'!DefaultKeywordIndex'
. Ersteres ist bereits eingebaut... letzteres bringt manchmal weniger Resultate als das suchen über den Slot.

MarcoWarm 7. Okt 2009 10:38

Re: [IDE-Experte] CustomHelp
 
Neues Feature:

Da ab RADStudio 2007 die führenden Namespaces im Suchbegriff enthalten sind (z.B. Unitnamen und Klassennamen) gibt es jetzt die Möglichkeit diese vor der Suche abschneiden zu lassen. Entweder nur den ersten oder alle

a-s-z-work 7. Okt 2009 16:18

Re: [IDE-Experte] CustomHelp
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Marco,
Zitat:

Zitat von MarcoWarm
es gibt die Möglichkeit eine Volltextsuche im IHxSession durchführen
Delphi-Quellcode:
IHxSession.Query
entweder im kompletten Artikeltext mittels des NavDataMonikers
Delphi-Quellcode:
'!DefaultFullTextSearch'
oder nur in den Keywords mittels
Delphi-Quellcode:
'!DefaultKeywordIndex'
. Ersteres ist bereits eingebaut... letzteres bringt manchmal weniger Resultate als das suchen über den Slot.

ich habe in der Zwischenzeit noch viel ausprobiert. Die Dokumentation zu den Schnittstellen des Hilfesystems ist ja leider sehr spärlich :(
Nach langem Rumprobieren und Studieren des Quellcodes der HelpIntf.pas habe ich viel hinbekommen:
  • Das Standard-Hilfesystem funktioniert nicht richtig, wenn ein anderer HelpSelector aktiv ist. Aufrufe an ms-help-URLs gehen ins leere, weil die Implementierung nicht die spezialisierte Methode IExtendedHelpViewer.DisplayTopic aufgerufen wird. Das wird durch CustomHelp behoben.
  • Das Durchreichen von Ergebnissen aus anderen Hilfe-Providern ist jetzt möglich. madExcept hat z.B. auch einen ICustomHelpViewer der die Hilfeseiten im IE aufruft.
  • Insbesondere können dadurch Fundstellen der MSHelp2 von anderen Providern durchgereicht werden. Das RAD Studio findet ja irgendwie doch mehr Ergebnisse, als die reine Schlüsselwortsuche :gruebel:
    Das größte Problem war dabei die Ermittlung des Titels und der Beschreibung eines Topics anhand der URL, damit das Ganze in der Suchübersicht auch vernünftig aussieht. Da gibt es leider keine direkte Funktion in den MSHelp2-Interfaces :cry: Durch intensives Debugging habe ich aber einen Weg gefunden 8) Man muss sich das Interface IHxHierarchy analog zu dem Index besorgen. Da kann man dann die Funktion GetSyncInfo verwenden, um an das Topic (IHxTopic) mit allen benötigten Informationen heranzukommen.
    Ohne vernünftige Dokumentation ist das ziemlich mühsam, das alles herauszufinden :twisted:


Anbei gibt es den Patch für die aktuelle Revision (R343). Ich würde mich freuen, wenn man das in CustomHelp übernehmen würde.

Nachfolgend die Änderungen/Erweiterungen im Einzelnen:
  • Vollständiges Durchreichen der anderen Hilfe-Provider (ICustomHelpViewer, z.B. madExcept, BDS Standardsuche)
  • Anzeige der Standard-Suchergebnisse des BDS.
  • Möglichkeit zum Ermitteln von Titel und Beschreibung von MSHelp2-URLs.
  • Möglichkeit zum Umleiten von beliebigen Protokollen (z.B. file://, http://) auf die Willkommens-Seite.
  • Verallgemeinerung der Pfade in der Projektdatei ($BDS), $(BDSCOMMONDIR)
  • Debuggen der IDE in der IDE durch Verwendung der Option -r, damit sich die IDE-Instanzen nicht in die Quere kommen.
  • Verlagerung einiger Funktion aus TMyViewer in TCustomHelp, teilw. Umwandlung in Klassenmethoden
  • Verbesserung des Verhaltens, wenn das Package wieder entladen wird (HelpSelector wird dann ungültig).
  • Neuer Standard-Suchprovider: MSDN Online
  • Verbessertes Fehlerverhalten bei "kaputten" Namespaces (Alle Fehler werden in der Übersicht angezeigt).
  • Layoutverbesserung in der Ergebnisanzeige: Nur 1/3 der Breite für die Beschreibung.
  • Usability: Der erste Eintrag in den Suchergebnissen wird automatisch selektiert.

MarcoWarm 8. Okt 2009 06:55

Re: [IDE-Experte] CustomHelp
 
Wow ... da hast du dir ja ne Menge Arbeit gemacht.

Leider hab ich im Moment keine Zeit mich um die Änderungen zu kümmern, da Custom Help eher ein Teilzeitprojekt ist.
Ich hab den letzten Patch ausprobiert und hab noch einige "issues" gefunden.
  • Unter BDS2006 kommt eine Schutzverletzung nach dem ersten Hilfeaufruf...da hilf nur noch IDE Neustart. Der Aufrufstack der IDE hilft nicht wirklich weiter. Es passiert bei ValidateHelpSystem (unter BDS2006) im RAD Studio 2009 ist alles ok.
  • Die Einstellung, ob man die CustomHelp Provider am Anfang oder am Ende sehen möchte sollte wahrscheinlich optional sein. Da hat jeder andere Vorstellungen.
  • In GetHelpStrings->PerformSearch durchsuchst du jeden Hilfenamespace erst mit dem vollen Text und falls in einem(!) etwas gefunden wurde brichst du ab und suchst nicht mit dem verkürzten weiter um evtl. in anderen Namespaces was zu finden. Die vorherige Implementation erschien mir logischer: Jeden Hilfenamespace für sich durchsuchen und prüfen, ob der volle HelpString gefunden wurde und danach gegebenenfalls verkürzen. Danach für den nächsten Hilfenamespace das gleiche machen. usw.
  • Die Redirect Schemes hab ich noch nicht ausprobiert
  • Die Unit uUtils.pas ist nicht BDS2006 konform. Dort einfach PWideChar und Widestring in PChar und Widestring umwandeln. Außerdem gab es noch kein TBytes :-(.
  • Layout und Usability Anpassungen finde ich sehr gelungen :-)

Danke, daß du so viel Mühe und Zeit in das Projekt reinsteckst. Da wir aber hier meistens mit BDS2006 arbeiten werde ich die Änderungen vorerst nicht einpflegen. Debuggen hat nich so viel gebracht, da der Fehler noch vor dem eigentlichen Aufruf unserer Klasse passiert:
Code:
 + $7[51F2A11F]{rtl100.bpl } System.System.@IntfAddRef (Line 17953, "system.pas" + 0) + $7
 + $0[51F26B4B]{rtl100.bpl } System.System.@HandleAnyException (Line 9980, "system.pas" + 13) + $0
 + $273[770A45C2]{ntdll.dll  } RtlpEnsureBufferSize + $273
 + $A[7707E49A]{ntdll.dll  } KiUserExceptionDispatcher + $A
 + $14[20B73F74]{coreide100.bpl} CompHelp.CompHelp.ValidateHelpSystem (Line 101, "CompHelp.pas" + 8) + $14
 + $E[20B940D6]{coreide100.bpl} EditorControl.EditorControl.TCustomEditControl.HelpKeyword (Line 4451, "EditorControl.pas" + 41) + $E
 + $0[20B99E84]{coreide100.bpl} EditorControl.EditorControl.TEditControl.CMControlCommand (Line 7255, "EditorControl.pas" + 2) + $0
 + $6[5205CA19]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7246, "Controls.pas" + 105) + $6
 + $6[5205C1A4]{vcl100.bpl } Controls.Controls.TWinControl.MainWndProc (Line 7021, "Controls.pas" + 3) + $6
 + $0[51F60BC0]{rtl100.bpl } Classes.Classes.StdWndProc (Line 11572, "classes.pas" + 8) + $0
 + $24D[75288814]{USER32.dll } GetWindowLongW + $24D
 + $3C2[75288989]{USER32.dll } GetWindowLongW + $3C2
 + $7F[75289D0F]{USER32.dll } PostMessageW + $7F
 + $F2[75289D82]{USER32.dll } PostMessageW + $F2
 + $2B[7707E473]{ntdll.dll  } KiUserCallbackDispatcher + $2B
 + $47[7528F1B8]{USER32.dll } SendMessageA + $47
 + $10[20B84A6E]{coreide100.bpl} VClient.VClient.SendWindowMsg (Line 2673, "VClient.pas" + 2) + $10
 + $5[20B4A2BE]{coreide100.bpl} IDEKbd.IDEKbd.@interpret_bmi_macro$qqrp5BMI_tpcp11CmdMapTableppc (Line 39, "bmi.cpp" + 14) + $5
 + $16E[20B48ED2]{coreide100.bpl} IDEKbd.IDEKbd... (Line 586, "IDEKbd.pas" + 0) + $16E
 + $17[20B821A4]{coreide100.bpl} VClient.VClient.CmdStringProc (Line 504, "VClient.pas" + 5) + $17
 + $11[20C15B3C]{coreide100.bpl} KbClient.KbClient.TIDEKBDFrameAPI.MapAndEvalInternal (Line 832, "KbClient.pas" + 10) + $11
 + $12[20C155C1]{coreide100.bpl} KbClient.KbClient.HandleKey (Line 562, "KbClient.pas" + 6) + $12
 + $1[20C158D1]{coreide100.bpl} KbClient.KbClient.TIDEKBDFrameAPI.ProcessKeyStroke (Line 713, "KbClient.pas" + 141) + $1
 + $16[20C16604]{coreide100.bpl} KbClient.KbClient.TIDEKBDChildAPI.ProcessKeyStroke (Line 1357, "KbClient.pas" + 14) + $16
 + $18[20B98BC0]{coreide100.bpl} EditorControl.EditorControl.TCustomEditControl.DoKeyDown (Line 6843, "EditorControl.pas" + 6) + $18
 + $6[5205CA19]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7246, "Controls.pas" + 105) + $6
 + $6[5205C1A4]{vcl100.bpl } Controls.Controls.TWinControl.MainWndProc (Line 7021, "Controls.pas" + 3) + $6
 + $0[51F60BC0]{rtl100.bpl } Classes.Classes.StdWndProc (Line 11572, "classes.pas" + 8) + $0
 + $24D[75288814]{USER32.dll } GetWindowLongW + $24D
 + $3C2[75288989]{USER32.dll } GetWindowLongW + $3C2
 + $7F[75289D0F]{USER32.dll } PostMessageW + $7F
 + $F2[75289D82]{USER32.dll } PostMessageW + $F2
 + $2B[7707E473]{ntdll.dll  } KiUserCallbackDispatcher + $2B
 + $47[7528C362]{USER32.dll } SendMessageW + $47
Ich denke das liegt an dem Punkt
Zitat:

Zitat von a-s-z-work
  • Verbesserung des Verhaltens, wenn das Package wieder entladen wird (HelpSelector wird dann ungültig).

Aber ich konnte nicht rausfinden, was du dahingehend gemacht hast. Wenn du das nochmal rückgängig machen könntest und dann nochmal ein Patch machst, dann kann ich mich auch um die anderen angesprochenen Punkte kümmern ;-)

Es gibt noch eine neue Revision (wegen eines kleinen Bugs bei der Neuanlage von Custom Help Providern). Wenn ich noch irgendwas für dich tun kann sags einfach. Sorry, daß ich deine vorherige Frage völlig unsinnig beantwortet habe. Im moment ist arbeitstechnisch ne Menge los und da bleibt die Konzentration ein wenig auf der Strecke.

chaosben 8. Okt 2009 10:23

Re: [IDE-Experte] CustomHelp
 
Noch schnell was "Neues": Im ersten Post gibts einen Link zu einem neuen Video, das die Installation und ein paar Möglichkeiten vorführt.

a-s-z-work 8. Okt 2009 10:50

Re: [IDE-Experte] CustomHelp
 
Hallo Marco,

Zitat:

Zitat von MarcoWarm
Wow ... da hast du dir ja ne Menge Arbeit gemacht.
Leider hab ich im Moment keine Zeit mich um die Änderungen zu kümmern, da Custom Help eher ein Teilzeitprojekt ist.
Ich hab den letzten Patch ausprobiert und hab noch einige "issues" gefunden.
  • Unter BDS2006 kommt eine Schutzverletzung nach dem ersten Hilfeaufruf...da hilf nur noch IDE Neustart. Der Aufrufstack der IDE hilft nicht wirklich weiter. Es passiert bei ValidateHelpSystem (unter BDS2006) im RAD Studio 2009 ist alles ok.

  • Das Problem kenne ich auch aus Delphi 2009. Der Zeitpunkt zu dem der Selector registriert wird scheint einigermassen kritisch zu sein. Ich hab es mal im Create-Event versucht, aber da hat es bei D2009 nix gebracht ;(

    Zitat:

    Zitat von MarcoWarm
  • Die Einstellung, ob man die CustomHelp Provider am Anfang oder am Ende sehen möchte sollte wahrscheinlich optional sein. Da hat jeder andere Vorstellungen.

  • Kein Problem, das ist nur eine Kleinigkeit.

    Zitat:

    Zitat von MarcoWarm
  • In GetHelpStrings->PerformSearch durchsuchst du jeden Hilfenamespace erst mit dem vollen Text und falls in einem(!) etwas gefunden wurde brichst du ab und suchst nicht mit dem verkürzten weiter um evtl. in anderen Namespaces was zu finden. Die vorherige Implementation erschien mir logischer: Jeden Hilfenamespace für sich durchsuchen und prüfen, ob der volle HelpString gefunden wurde und danach gegebenenfalls verkürzen. Danach für den nächsten Hilfenamespace das gleiche machen. usw.

  • Hmm, das entbehrt nicht einer gewissen Logik :roteyes: Ich werde da meine Implementierung entsprechend ändern. Wichtig ist für mich die Fehlerbehandlung bei kaputten Namespaces, da sonst ein kaputter Namespace dazu führt, das gar keine Ergebnisse mehr angezeigt werden.

    Zitat:

    Zitat von MarcoWarm
  • Die Unit uUtils.pas ist nicht BDS2006 konform. Dort einfach PWideChar und Widestring in PChar und Widestring umwandeln. Außerdem gab es noch kein TBytes :-(.

  • Da wird man denke ich am einfachsten was über Conditionals machen, und die fehlenden Sachen für ältere Delphi-Versionen deklarieren.

    Zitat:

    Zitat von MarcoWarm
  • Layout und Usability Anpassungen finde ich sehr gelungen :-)

Zitat:

Zitat von MarcoWarm
Danke, daß du so viel Mühe und Zeit in das Projekt reinsteckst. Da wir aber hier meistens mit BDS2006 arbeiten werde ich die Änderungen vorerst nicht einpflegen. Debuggen hat nich so viel gebracht, da der Fehler noch vor dem eigentlichen Aufruf unserer Klasse passiert:
Code:
 + $7[51F2A11F]{rtl100.bpl } System.System.@IntfAddRef (Line 17953, "system.pas" + 0) + $7
 + $0[51F26B4B]{rtl100.bpl } System.System.@HandleAnyException (Line 9980, "system.pas" + 13) + $0
 + $273[770A45C2]{ntdll.dll  } RtlpEnsureBufferSize + $273
 + $A[7707E49A]{ntdll.dll  } KiUserExceptionDispatcher + $A
 + $14[20B73F74]{coreide100.bpl} CompHelp.CompHelp.ValidateHelpSystem (Line 101, "CompHelp.pas" + 8) + $14
 + $E[20B940D6]{coreide100.bpl} EditorControl.EditorControl.TCustomEditControl.HelpKeyword (Line 4451, "EditorControl.pas" + 41) + $E
 + $0[20B99E84]{coreide100.bpl} EditorControl.EditorControl.TEditControl.CMControlCommand (Line 7255, "EditorControl.pas" + 2) + $0
 + $6[5205CA19]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7246, "Controls.pas" + 105) + $6
 + $6[5205C1A4]{vcl100.bpl } Controls.Controls.TWinControl.MainWndProc (Line 7021, "Controls.pas" + 3) + $6
 + $0[51F60BC0]{rtl100.bpl } Classes.Classes.StdWndProc (Line 11572, "classes.pas" + 8) + $0
 + $24D[75288814]{USER32.dll } GetWindowLongW + $24D
 + $3C2[75288989]{USER32.dll } GetWindowLongW + $3C2
 + $7F[75289D0F]{USER32.dll } PostMessageW + $7F
 + $F2[75289D82]{USER32.dll } PostMessageW + $F2
 + $2B[7707E473]{ntdll.dll  } KiUserCallbackDispatcher + $2B
 + $47[7528F1B8]{USER32.dll } SendMessageA + $47
 + $10[20B84A6E]{coreide100.bpl} VClient.VClient.SendWindowMsg (Line 2673, "VClient.pas" + 2) + $10
 + $5[20B4A2BE]{coreide100.bpl} IDEKbd.IDEKbd.@interpret_bmi_macro$qqrp5BMI_tpcp11CmdMapTableppc (Line 39, "bmi.cpp" + 14) + $5
 + $16E[20B48ED2]{coreide100.bpl} IDEKbd.IDEKbd... (Line 586, "IDEKbd.pas" + 0) + $16E
 + $17[20B821A4]{coreide100.bpl} VClient.VClient.CmdStringProc (Line 504, "VClient.pas" + 5) + $17
 + $11[20C15B3C]{coreide100.bpl} KbClient.KbClient.TIDEKBDFrameAPI.MapAndEvalInternal (Line 832, "KbClient.pas" + 10) + $11
 + $12[20C155C1]{coreide100.bpl} KbClient.KbClient.HandleKey (Line 562, "KbClient.pas" + 6) + $12
 + $1[20C158D1]{coreide100.bpl} KbClient.KbClient.TIDEKBDFrameAPI.ProcessKeyStroke (Line 713, "KbClient.pas" + 141) + $1
 + $16[20C16604]{coreide100.bpl} KbClient.KbClient.TIDEKBDChildAPI.ProcessKeyStroke (Line 1357, "KbClient.pas" + 14) + $16
 + $18[20B98BC0]{coreide100.bpl} EditorControl.EditorControl.TCustomEditControl.DoKeyDown (Line 6843, "EditorControl.pas" + 6) + $18
 + $6[5205CA19]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7246, "Controls.pas" + 105) + $6
 + $6[5205C1A4]{vcl100.bpl } Controls.Controls.TWinControl.MainWndProc (Line 7021, "Controls.pas" + 3) + $6
 + $0[51F60BC0]{rtl100.bpl } Classes.Classes.StdWndProc (Line 11572, "classes.pas" + 8) + $0
 + $24D[75288814]{USER32.dll } GetWindowLongW + $24D
 + $3C2[75288989]{USER32.dll } GetWindowLongW + $3C2
 + $7F[75289D0F]{USER32.dll } PostMessageW + $7F
 + $F2[75289D82]{USER32.dll } PostMessageW + $F2
 + $2B[7707E473]{ntdll.dll  } KiUserCallbackDispatcher + $2B
 + $47[7528C362]{USER32.dll } SendMessageW + $47
Ich denke das liegt an dem Punkt
Zitat:

Zitat von a-s-z-work
  • Verbesserung des Verhaltens, wenn das Package wieder entladen wird (HelpSelector wird dann ungültig).

Aber ich konnte nicht rausfinden, was du dahingehend gemacht hast. Wenn du das nochmal rückgängig machen könntest und dann nochmal ein Patch machst, dann kann ich mich auch um die anderen angesprochenen Punkte kümmern ;-)

Wie schon gesagt, der Fehler tritt teilweise auch unter D2009 auf, allerdings funktioniert nur der erste Aufruf nicht. Anschließende Aufrufe verursachen keine Probleme mehr. Außerdem gibt es das Problem nur, wenn ich das Package neu lade. Wird das Package schon beim Programmstart geladen, gibt es keine Probleme.
Zum Debuggen solltest du auf jeden Fall Breakpoints in deinem Code aktivieren, um zu schauen, ob der Code aufgerufen wird. Meistens sind diese Exceptions nämlich Folgefehler, weil wir die Dinge nicht so machen, wie das Hilfesystem es erwartet. Na das liegt dann wohl an der äußerst ausführlichen Doku! :glaskugel:

Zu meinen Änderungen:
Der HelpSelektor wird jetzt nur noch einmal erzeugt, den könnte man aber auch denke ich problemlos wieder jedes Mal erzeugen. Aber registriert wird er immer noch bei jedem Aufruf. In UnderstandsKeyword wird jetzt die echte Anzahl an Ergebnissen übergeben, da könnte man aber auch wieder fest die 1 zurück liefern. Vielleicht kommt da die Suche dem Hilfesystem in die Quere.

MarcoWarm 8. Okt 2009 11:05

Re: [IDE-Experte] CustomHelp
 
Hallo Andre,

Zitat:

Zitat von a-s-z-work
Wie schon gesagt, der Fehler tritt teilweise auch unter D2009 auf, allerdings funktioniert nur der erste Aufruf nicht. Anschließende Aufrufe verursachen keine Probleme mehr. Außerdem gibt es das Problem nur, wenn ich das Package neu lade. Wird das Package schon beim Programmstart geladen, gibt es keine Probleme.
Zum Debuggen solltest du auf jeden Fall Breakpoints in deinem Code aktivieren, um zu schauen, ob der Code aufgerufen wird. Meistens sind diese Exceptions nämlich Folgefehler, weil wir die Dinge nicht so machen, wie das Hilfesystem es erwartet. Na das liegt dann wohl an der äußerst ausführlichen Doku! :glaskugel:

Zu meinen Änderungen:
Der HelpSelektor wird jetzt nur noch einmal erzeugt, den könnte man aber auch denke ich problemlos wieder jedes Mal erzeugen. Aber registriert wird er immer noch bei jedem Aufruf. In UnderstandsKeyword wird jetzt die echte Anzahl an Ergebnissen übergeben, da könnte man aber auch wieder fest die 1 zurück liefern. Vielleicht kommt da die Suche dem Hilfesystem in die Quere.

Dieser Fehler unter D2009 ist mir auch bekannt. Den HelpSelector hatte ich bewusst jedes mal neu erzeugt, da ich sonst die Schutzverletzung bekam.
Übringens: Breakpoints und deren Anwendung sind mir vertraut ;-) (nichts für ungut)
Die Exception tritt eben schon auf bevor ich irgendwas in meinen Klassen mache.

Ob understandskeyword die reale Resultatmenge zurückgibt ist dem Hilfesystem völlig egal... dort wird nur geprüft:
Delphi-Quellcode:
vFound := vViewer.UnderstandsKeyword(HelpKeyword) > 0;

a-s-z-work 8. Okt 2009 11:39

Re: [IDE-Experte] CustomHelp
 
Hallo Marco,

Zitat:

Zitat von MarcoWarm
Dieser Fehler unter D2009 ist mir auch bekannt. Den HelpSelector hatte ich bewusst jedes mal neu erzeugt, da ich sonst die Schutzverletzung bekam.

Na da haben wir ja vielleicht schon das Problem mit dem BDS2006 gefunden?

Zitat:

Zitat von MarcoWarm
Übringens: Breakpoints und deren Anwendung sind mir vertraut ;-) (nichts für ungut)
Die Exception tritt eben schon auf bevor ich irgendwas in meinen Klassen mache.

:lol: Das mit den Breakpoints usw. habe ich auch nicht anders erwartet. Bei mir war z.B. das Problem, das der Fehler später aufgetreten ist, wenn ich im Konstruktor AssignHelpSelector verwendet habe. Da wurden vor der Exception außerdem Methoden aufgerufen, die ich nicht vermutet hatte. Vielleicht werden da Seiteneffekte erzeugt. Und die konkrete Implementierung des BDS-Hilfesystems kann ja nicht einsehen ...

Zitat:

Zitat von MarcoWarm
Ob understandskeyword die reale Resultatmenge zurückgibt ist dem Hilfesystem völlig egal... dort wird nur geprüft:
Delphi-Quellcode:
vFound := vViewer.UnderstandsKeyword(HelpKeyword) > 0;

Ja, zumindest der aktuellen Implementierung :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 Uhr.
Seite 3 von 13     123 45     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz