Programmieren mit C++

Code-Beispiele & Lösungen

Allgemeine visuelle Objektklassen

Automatische Tip-Anzeige

Die Komponente TTips implementiert eine Tip-Anzeige im Standard-Look, wie sie nahezu jede kommerzielle Anwendung heutzutage anbietet oder gandenlos aufdrängt.

Abbildung 7/2.1.1.28-1: Tip-Anzeige im Standard-Look

Der Dialog leistet die automatische Auswahl und Anzeige eines Tips aus einem Pool von mehreren Tips. Diese Tips werden zur Designzeit in ein TString-Property eingesetzt. Sie können jedoch auch zur Laufzeit, vor der ersten Anzeige, aus einer Datenbank in das entsprechende Property geladen werden. Dies wäre dann jedoch Aufgabe des Programmieres, der dafür zu sorgen hat, daß die Tips sich zum Zeitpunkt der Dialoganzeige in dem Tips-Property befinden.

Service

Der Aufbau der Oberfläche orientiert sich an den derzeitigen Standards, die zuerst durch Microsoft geprägt wurden. Die Tip-Texte verteilen sich auf vier Ebenen:

Oberflächenlayout

  • Fenstertitel
  • Überschrift
  • Hervorgehobener Text
  • Tip

Das Dislog-Layout der IDE zeigt die Zuordnung der Text-ebenen und deren Plazierung.

Abbildung 7/2.1.1.28-2: Layout der Texte

In der aktuellen Implementation der Oberfläche sind die oberen Ebenen stets gleich, da sie über Properties vorgegeben werden. Dies ließe sich ggfs. jedoch ändern, wenn ein anderes Verhalten gewünscht wäre, indem alle Texte außer der TipForm Caption-Zeile als TStrings implementiert würden.

Textebenen

Ebenso kann bei Bedarf neben der vorhandenen Zufallsauswahl des Tips über die Schaltfläche „Nächster Tip“ ein gezieltes Durchblättern über entsprechende Buttons mit jeweils zwei Zeilen Code analog zur Zufallsauswahl implementiert werden, was hier zugunsten der Optik jedoch unterblieb.

Tipauswahl

AnsiString Title

Der Inhalt des Property Title wird als Fenstertitel der Oberfläche angezeigt.

Property Title

AnsiString Header

Header bezeichnet die Kopfzeile oberhalb der farblich hervorgehobenen Anzeigefläche.

Property Header

AnsiString TipHelp

In TipHelp wird der fettgezeichnete Text oberhalb des eigentlichen Tips angezeigt. Durch Ändern des Datentyps String in TStringList kann diese Überschrift auch bezüglich der Tips individualisiert werden, indem zu jedem Tip auch eine eigene Überschrift eingesetzt wird.

Property TipHelp

TStringList Tips

Das Property Tips speichert die einzelnen Tiptexte, die jeweils in einer Zeile des Properties abgelegt sind.

Bei Bedarf kann diese Liste auch vor dem ersten Anzeigen anhand einer Datenbanktabelle – durch den Programmierer – aufgefüllt werden.

Property Tips

unsigned int TipsCount

Das Nur-Lesen-Property TipsCount liefert die Anzahl der vorhandenen Tips.

Property TipsCount

bool ShowAtStart

ShowAtStart legt den Zustand der Checkbox „Beim nächsten Start wieder anzeigen“ fest. Diese Checkbox wie auch das zugehörige Property sind eine passive Anzeige. So wird insbesondere durch das Setzen auf TRUE nicht bewirkt, daß der Tip-Dialog automatisch beim Start angezeigt wird. Vielmehr dient das Property nur der Information des Programms, das so den Wunsch des Anwenders entgegen nimmt.

Implementation

Die Implementation des Dialogs ist relativ simpel. Es soll daher nur erläutert werden, wie Tips ausgewählt und angezeigt werden, da sich hier ein prinzipieller Ansatzpunkt für Erweiterungen oder Änderungen der Komponente zeigt.

Die Auswahl des jeweils nächsten Tips erfolgt über das Erzeugen einer Zufallszahl im Bereich von 0 bis Anzahl der Tips minus 1.

Property ShowAtStart

__fastcall TTipForm::NextClick(
     TObject *Sender)
{
  NumTip = random( Tips.Count - 1 );
  TipText.Caption = Tips.Strings[ NumTip ];
}

Nachdem der Index in die Tips-Strings bekannt ist, erfolgt ein simpler Zugriff auf das Array. An dieser Stelle könnte auch ein zusätzlicher Zugriff auf ein TStringList mit Überschriften für den Tip im Property TipHelp erfolgen.

Darüber hinaus wäre es auch problemlos möglich, die Komponente dahingehend zu erweitern, die Tip-Texte gleich aus einer Datenbank zu laden. Dazu müßte lediglich der Auswahlmechanismus geändert werden:

Methode NextClick





Sachgebiet


© 2009-2012 by Alojado Publishing. Alle Rechte vorbehalten. Ausgewiesene Marken gehören ihren jeweiligen Eigentümern.
Mit der Benutzung dieser Seite erkennen Sie die Nutzungsbedingungen und die Datenschutzerklärung an. Der Betreiber übernimmt keine Haftung für den Inhalt verlinkter externer Internetseiten.
Seite erzeugt 2012-05-20 01:13:57 von textarchiv.alojado.de