Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Prism Tooltipp für eigene Klassenmethoden (https://www.delphipraxis.net/85201-tooltipp-fuer-eigene-klassenmethoden.html)

Jelly 27. Jan 2007 10:24


Tooltipp für eigene Klassenmethoden
 
Bewege ich den Mauszeiger über ein Funktion unter .NET, so zeigt mir der Editor ja eine kleine Hilfe zu an:

http://www.tp-soft.de/downloads/dp/tipp.gif

Irgendwo hab ich gehört, dass man das auch für eigene Methoden machen kann, und zwar indem man Attribute definiert. Aber ein Versuch mit
Code:
[Description('Addiert 2 ganze Zahlen')]
public int Add (int a, int b)
{
   return a+b;
}
hilft nicht weiter. Geht das überhaupt so über die Attribute? Ich möchte dass die Benutzer der assembly später über diesen Weg eine Beschreibung der dort enthaltenen Klassen und Funktionen bekommen!

Jürgen Thomas 27. Jan 2007 10:46

Re: Tooltipp für eigene Klassenmethoden
 
Code:
/// <summary>
/// Add addiert 2 ganze Zahlen
/// </summary>
/// <param name="a">der erste Summand</param>
/// <param name="a">der zweite Summand</param>      
public int Add (int a, int b)
{
   return a+b;
}
Siehe auch [oh]Empfohlene Tags für Dokumentationskommentare (C#-Programmierhandbuch)[/oh]

Gruß Jürgen

Jelly 27. Jan 2007 11:37

Re: Tooltipp für eigene Klassenmethoden
 
Das hatte ich auch schon versucht. Sind diese Kommentare nicht dafür gedacht, Dokumentationen in HTML zu erzeugen? In der IDE jedoch wird die Info nicht angezeigt. Es fehlt mir wohl der Name der Attributklasse.

Jürgen Thomas 27. Jan 2007 12:50

Re: Tooltipp für eigene Klassenmethoden
 
Zitat:

Zitat von Jelly
Das hatte ich auch schon versucht. Sind diese Kommentare nicht dafür gedacht, Dokumentationen in HTML zu erzeugen? In der IDE jedoch wird die Info nicht angezeigt. Es fehlt mir wohl der Name der Attributklasse.

Stimmt, sie sind für die Dokumentation vorgesehen. Aber spätestens nach dem ersten Kompilieren stehen sie auch in der IDE zur Verfügung. Es könnte allerdings sein, dass das nicht jede IDE macht wie gewünscht (siehe meine Signatur). Jürgen

Khabarakh 27. Jan 2007 12:55

Re: Tooltipp für eigene Klassenmethoden
 
Zitat:

Zitat von Jelly
Sind diese Kommentare nicht dafür gedacht, Dokumentationen in HTML zu erzeugen?

Auch, aber ebenso (besser gesagt wahscheinlich zehnmal so oft) für die Tooltips. Und ein C#-Editor, der XML-Kommentare nicht verarbeitet... - nunja, ich würde ihn hinsichtlich Komfort knapp über Editor.exe platzieren.

[edit]Lilablassblauer Kasten?
@Jürgen: Hm, dann würde ich ihn knapp über Wordpad ansiedeln :mrgreen: . Scherz beiseite, da jeder vernünftige Editor einen Parser enthält, sollte das sofortige Anzeigen kein Problem sein - ist es wohl auch nicht für #D und VS.

Jürgen Thomas 27. Jan 2007 13:14

Re: Tooltipp für eigene Klassenmethoden
 
Zitat:

Zitat von Khabarakh
@Jürgen: Hm, dann würde ich ihn knapp über Wordpad ansiedeln :mrgreen: . Scherz beiseite, da jeder vernünftige Editor einen Parser enthält, sollte das sofortige Anzeigen kein Problem sein - ist es wohl auch nicht für #D und VS.

Ich habe keine Probleme; aber ich kann nicht beurteilen, warum Jelly Probleme hat. Jürgen

Aber vielleicht wird das jetzt OT.

Jelly 27. Jan 2007 14:24

Re: Tooltipp für eigene Klassenmethoden
 
Als im BDS wird bei mir nix angezeigt. Und Compilate unter Sharp Develop kann ich wegen der .NET 1.1 Unterstützung von Delphi nicht einbinden, umd andersrum zu testen.

Liegt das also an Delphi, dass bei mir nix angezeigt wird.

Jelly 29. Jan 2007 14:10

Re: Tooltipp für eigene Klassenmethoden
 
Ich muss jetzt nochmal nachhaken, denn irgendwie will es bei mir immer noch nicht klappen. Ich habe dabei das gleiche Problem im VS auf der Arbeit, dass mir nix angezeigt wird.

Khabarakh 29. Jan 2007 14:44

Re: Tooltipp für eigene Klassenmethoden
 
Liste der Anhänge anzeigen (Anzahl: 2)
:gruebel: 03 oder 05?
Zu 03 kann ich nix sagen, das war vor meiner Zeit :mrgreen: , aber zu VS05 hier mal eine Probe aufs Exempel:
Neue Konsolenanwendung, unterhalb von Main neue Methode einfügen, "///" eine Zeile drüber generiert automatisch ein Summary-Tag, nun IntelliSense in Main aufrufen.

[edit]Whoops, so viel IDE brauchen wir nun wirklich nicht... [/edit]

Jelly 29. Jan 2007 15:55

Re: Tooltipp für eigene Klassenmethoden
 
So klappts bei mir auch, merk ich grad. Wenn ich jedoch eine assembly als Referenz dem Projekt hinzufüge, klappts nicht mehr. Die Kommentare hab ich in der assembly definiert. Fehlt da vielleicht noch eine Resourcendatei o.ä.

Jürgen Thomas 29. Jan 2007 16:33

Re: Tooltipp für eigene Klassenmethoden
 
Jetzt (mit Deiner letzten Bemerkung) kommt mir eine Idee, wann Du Probleme bekommst!

Wenn der Namespace per using eingebunden wird und Du nur die Klasse vor dem Punkt angibst, kannst Du Pech haben. Dann hat die IDE u.U. Probleme, in den Namespaces die betreffende Klasse schnell zu finden und zu den Methoden die Kommentare anzuzeigen. Wenn der Namespace direkt zur Klasse eingetragen wird, könnte es klappen.

Vielleicht braucht die IDE in den problematischen Fällen einfach zu lang, und der Entwickler will weiter schreiben.

Gruß Jürgen

Jelly 30. Jan 2007 14:48

Re: Tooltipp für eigene Klassenmethoden
 
Zitat:

Zitat von Jürgen Thomas
Wenn der Namespace direkt zur Klasse eingetragen wird, könnte es klappen.

Sorry für das verspätetet Feedback, kam nicht früher dazu.

Ich versteh nicht ganz was du meinst. Meine Dll aus Delphi.NET heist MyTestAssembly, und darin gibt eine Unit MyTestClass welche eine Klasse TMyTest enthält. Die macht so weltberauschende Sachen wie 2 Zahlen addieren, über die Add Methode.

Unter Visual Studio hab ich die dll als Referenz hinzugefügt, und im Beispielprojekt mittels

Code:
using MyTestAssembly.Units ;
binde ich den Namespace ein.

Die Methode aufrufen geschieht dann so:
Code:
private void button1_Click(object sender, EventArgs e)
{
      MyTestClass.TMyTest Test2 = new MyTestClass.TMyTest();
      label2.Text = Test2.Add(1, 2).ToString();
}
Ich versteh nicht, wie ich das anders einbinden könnte. Über Add ist kein Hilfetext zu finden, ausser die 2 Parameter, die erwartet werden.

.NET ist für mich noch absolutes Neuland. Es ist spannend, aber ich blicks noch nicht ganz :angel:

Khabarakh 30. Jan 2007 15:39

Re: Tooltipp für eigene Klassenmethoden
 
Zitat:

Zitat von Jelly
So klappts bei mir auch, merk ich grad. Wenn ich jedoch eine assembly als Referenz dem Projekt hinzufüge, klappts nicht mehr. Die Kommentare hab ich in der assembly definiert. Fehlt da vielleicht noch eine Resourcendatei o.ä.

Da Kommentare grundsätzlich nicht mitkompiliert werden, musst du deinen Compiler auffordern ("csc /doc"), die Intellisense-Tags in eine seperate XML-Datei zu schreiben. Gepaart mit der Assembly sollte nun VS (und ebenso NDoc/Sandcastle) die Kommentare auch ohne Zugriff auf den Code finden können :) .

Zitat:

Zitat von Jürgen Thomas
Wenn der Namespace per using eingebunden wird und Du nur die Klasse vor dem Punkt angibst, kannst Du Pech haben

Daran haben die Redmonder schon gewerkelt, in einem solchen Fall sollte ein "Der Dokumentationscache wird gerade erstellt [..]"-Tooltip aufklappen.
Zitat:

Dann hat die IDE u.U. Probleme, in den Namespaces die betreffende Klasse schnell zu finden und zu den Methoden die Kommentare anzuzeigen. Wenn der Namespace direkt zur Klasse eingetragen wird, könnte es klappen.
Im Vergleich zum Laden der Assembly, Parsen der XML-Datei und Aufbau des Caches sollte die reine Namensauflösung das Staubkorn im Playa sein ;) .


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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