Lauftext - in Taskleiste à la WinAmp
-
Hi,
ich hab da mal was kleines gemacht, was für die Suchfunktion taugt. Wer Lauftext in der Taskleiste wie bei WinAmp haben will, der sollte folgendes machen: einen Timer auf die Form packen und eine globale AnsiString-Variable namens AppText erstellen. Mit folgendem Code war's das dann:__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { AppText = "This is a window that has a very long text"; Caption = AppText; AppText = AppText + " *** "; Application->Title = AppText; Timer1->Interval = 200; // Das war eine passende Geschwindigkeit } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { AnsiString first = AppText.SubString(1,1); AppText.Delete(1,1); AppText = AppText + first; Application->Title = AppText; } //---------------------------------------------------------------------------
[ Dieser Beitrag wurde am 12.03.2002 um 23:16 Uhr von Jansen editiert. ]
-
Hallo,
Geile funktion, läuft echt Super!!! Lässt sich bestimmt irgendwo einbinden. Ich sag da nur vielen dank. images/smiles/icon_biggrin.gif images/smiles/icon_wink.gif
-
Ist es auch möglich einen Text auf der Form nach oben laufen zu lassen? Wie bei einen Filmabspann oder ende eines Videospieles.
-
Ähem, Mini, das gehört nicht hierher. Der Lauftext wird in der Taskleiste eingeblendet und nicht auf einem Formular. Mach dafür nen neuen Thread auf!
-
Hallo
Probiert mal folgendes:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int x; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { //hd1 = THeaderControl auf Form platzieren - wo ist egal !!! hd1->Align = alNone; hd1->Left = 8; hd1->Width = 100; hd1->Top = 8; hd1->Height = 22; x = 100; Timer1->Interval = 40; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { x--; if (x < hd1->Width - (2*hd1->Width))x = hd1->Width; hd1->Canvas->TextOut(x, 4, "Demo für TextOut! "); } //---------------------------------------------------------------------------
@Mini: wenn du anstatt x in TextOut(x, 4... y(hier4) veränderst, hast du was du brauchst. Natürlich mußt du auch die THaederControl anpassen (in der Höhe).
-
Was ich noch vergessen habe: Leider funzt das nicht in der Taskleiste, auch nicht in der Statusleiste, sondern nur dort, wo Canvas zur Verfügung steht. Dafür sieht es aber flüssiger aus.