jQT
- Wie funktioniert die BCB-Hilfe?
|
|||
Was soll das? Ich habe diese Arbeit (es waren doch 2.5h) auf mich genommen, damit die, die vielleicht die Borland Hilfe noch nicht ganz begriffen haben, bzw. sie als lästig empfinden, einen Anhaltspunkt für die Suchmethodik innerhalb der Borlandhilfe bekommen. Die welche sich ab und zu etwas ungerecht von mir behandelt fühlen, weil ich sie im Forum einfach kalt und ohne weiteren Anhaltspunkt auf die Borlandhilfe verweise, möchte ich um Verständnis bitten. Ich bin wahrscheinlich nicht der Einzige der sich über Fragen nervt, welche man, ohne eine Ahnung vom Thema zu haben, einfach mit ein paar Klicksern durch die Borland Hilfe, beantworten kann. Ja, ich hör schon die ersten schreien: "Aber woher soll ich wissen wonach ich suchen soll?" Jungs: Übung macht den Meister. Ich selber habe insgesamt 3 Jahre gebraucht, um eine gewisse Intuition zu entwickeln, wo ich was finde. Aber das hab ich bestimmt nicht hingekriegt, indem ich bei jeder Frage in ein Forum gepostet habe. Das Suchen in der Hilfe hat zweierlei Vorteile: zum Einen gewöhnt man sich schnell an das Navigieren innerhalb dieses genialen Hilfesystems, zum Andern sieht man beim Suchen haufenweise Dinge, welche man vielleicht nicht für den Moment brauchen kann, aber an die man sich vielleicht später mal erinnert. "Wunschdenken" höre ich da aus der Menge der Lesenden. Ich kann aus Erfahrung sagen, dass ich Tausende von dingen schon gesehen habe, und schon x-fach in Foren genau auf diese erinnerungen gestützt, ohne einmal die Hilfe zur Hand zu nehmen eine Lösungsansatz liefern konnte. Und wenn es nur ein Satz war wie "Ich hab mal ne Funktion gesehen die hiess irgendwas mit Screensaver". Meist kann man dann z.B. bei groups.google.com genau einen Term in dieser Art benutzen um eine Lösung oder einen Newsgroup-Beitrag zu finden welcher dieses Problem behandelt. Nun aber genug der beLEERenden Worte.
Sit back and enjoy |
|||
Die (Un-)Logik in der Hilfe | |||
Ja, ich kenne das. Auch ich hatte das Problem, dass mir zu Beginn die Hilfe ausgesprochen unlogisch vorkam. Ich hab geflucht und gezetert. Allerdings lag das weniger daran, dass das Hilfesystem nicht durchdacht war, als vielmehr daran, dass ich einfach den Witz des Hilfesystems nicht begriffen hatte. Gundsätzlich ist das Hilfesystem exakt wie auch C++ Hiarchisch aufgebaut. Jedes Objekt (Klasse) wird in der selben Darstellungsweise beschrieben. | |||
Das Hauptfenster Der Titel enthält im aktuellen Fall den Klassennamen weist uns darauf hin, um welche Klasse es eigentlich geht, sprich welchen Typ-Identifier wir letztendlich im Code brauchen. Die
Navigationsleiste hilft uns dabei,
die zu der Klasse gehörenden Informationen wie Eigenschaften, Methoden
und - sofern vorhanden - Ereignisse zu finden. Klickt man auf einen dieser
Links (abgesehen von Hierarchie), öffnet sich ein weiteres Fenster,
in welchem eine Linkliste mit den Eigenschafts-, Methoden- oder Ereignissnamen. Die Headerangabe ist besonders dann interessant, wenn wir uns nicht ganz sicher sind, welche Headerfiles man includen muss. Das kann dann der Fall sein, wenn wir z.B. ein TMemo über den Code erstellen wollen. Fügt man ein TMemo zur Entwurfszeit ins Formular ein, so wird der Header automatisch eingebunden. Wenn das nicht der Fall ist, wäre es im konkreten Fall nötig, im Formularheader die Zeile #include <stdctrls.hpp> einzufügen. (Wer sich bei der Endung nicht sicher ist, sollte auf der Festplatte nach "stdctrls" suchen) |
|
||
![]() Abb. 2 |
Das Popup-Fenster |
||
Eine Eigenschaft
im Detail |
|
||
Ein Fallbeispiel
|
|||
Um das ganze Geschwafel etwas zu verdeutlichen, möchte ich an dieser Stelle ein Beispiel für die Herleitung einer Anweisung machen. Konkret geht es darum, eine Zeile zu einem Control mit dem Namen Memo1 hinzuzufügen. Das Control ist vom Typ TMemo um den obigen Beispielen treu zu bleiben.
Der erste Schritt ist bestimmt der, dass wir uns in der Hilfe mal schlau machen, welche Eigenschaft für den Inhalt im Memo1 verantwortlich ist. Geht man die Eigenschaften von TMemo durch, wird man schnell über die Eigenschaft Lines stossen, deren Beschreibung eigentlich genau das verspricht, was wir suchen:
Was wir also sicher entnehmen können ist, dass wir auf die Eigneschaft "Lines" zugreifen müssen. Diese Aussage löst zwar noch nicht unser Problem, aber immerhin kommen wir in unserer Programmzeile einen Schritt weiter:
Wie kommen wir nun aber soweit, dass wir einen String hinzufügen können? Die Eigenschaft "Lines" ist vom Typ "TStrings". Die Jungs von Borland waren so clever, aus TStrings bereits einen Link zu machen. Also klicken wir mal drauf. Es eröffnet sich uns ein vertrautes Bild. Wir durchsuchen sämtliche Methoden und Eigenschaften von TStrings, bis wir über eine interessante Memberfunktion stolpern:
Das bringt uns nun wirklich weiter. Ein Versuch ists wert. Wir ergänzen die Programmzeile also um den String "Add("Test");" um auszuprobieren obs denn nun wirklich so klappt.
Ein Test wirds zeigen, es funktioniert. Das Ende einer Odysee (: |