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.


Anmelden zum Antworten