![]() |
Re: [IDE-Experte] CustomHelp
Danke... ich schau es mal durch :-)
|
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/...? |
Re: [IDE-Experte] CustomHelp
Hi,
es gibt die Möglichkeit eine Volltextsuche im IHxSession durchführen
Delphi-Quellcode:
entweder im kompletten Artikeltext mittels des NavDataMonikers
IHxSession.Query
Delphi-Quellcode:
oder nur in den Keywords mittels
'!DefaultFullTextSearch'
Delphi-Quellcode:
. Ersteres ist bereits eingebaut... letzteres bringt manchmal weniger Resultate als das suchen über den Slot.
'!DefaultKeywordIndex'
|
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 |
Re: [IDE-Experte] CustomHelp
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Marco,
Zitat:
Nach langem Rumprobieren und Studieren des Quellcodes der HelpIntf.pas habe ich viel hinbekommen:
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:
|
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.
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:
Ich denke das liegt an dem Punkt
+ $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 Zitat:
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. |
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.
|
Re: [IDE-Experte] CustomHelp
Hallo Marco,
Zitat:
Zitat:
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. |
Re: [IDE-Experte] CustomHelp
Hallo Andre,
Zitat:
Ü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;
|
Re: [IDE-Experte] CustomHelp
Hallo Marco,
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz