![]() |
Lauftext in der Titelleiste ?
hallo
kann man in der titelleiste eines fensters einen text laufen lassen,wenn ja wie ??? mfg vader |
Re: Lauftext in der Titelleiste ?
die JEDI-Komponenten liefern da was - TJvAnimTitle
|
Re: Lauftext in der Titelleiste ?
hallo
ohne die JEDI geht das nicht ??? mfg vader |
Re: Lauftext in der Titelleiste ?
Wenn eine Jedi-Kompo das kann, ist es natürlich auch möglich, das selber zu entwickeln.
|
Re: Lauftext in der Titelleiste ?
Ganz einfach ist es natürlich mit einem Timer einfach vor dem Titel nach und nach ein Leerzeichen einzufügen und die Caption des Forms zu aktualisieren. Sieht evtl. nicht so schön aus, ist aber schnell realisierbar.
|
Re: Lauftext in der Titelleiste ?
Hallo,
meine erste Anfangslösung, da es mich selbst interessiert hat. Aber irgendwie komme ich nun nicht mehr weiter. Das ganze wirkt ob der Farbgebung doch recht merkwürdig. Vielleicht kann man ja dem Canvas einen transparenten Hintergrund verschaffen?
Delphi-Quellcode:
C++ Quellcode Datei
//--------------------------------------------------------------------------- #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) { x = 200; FLAG = 0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { if (FCanvas) { if (x == 80) FLAG = 1; if (x == 200) FLAG = 0; SetNewPos(); FCanvas->TextOutA(x,8,"Lauftext"); } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormShow(TObject *Sender) { FCanvas = new TCanvas; FCanvas->Handle = GetWindowDC(Handle); FCanvas->Brush->Color = clGreen; FCanvas->Font->Color = clWhite; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { delete FCanvas; } //--------------------------------------------------------------------------- void __fastcall TForm1::SetNewPos() { if (FLAG == 0) x--; else x++; }
Delphi-Quellcode:
Sorry für den C++ Code, hatte keine Zeit das in Pascal zu ändern...
//---------------------------------------------------------------------------
#ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include <ComCtrls.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TTimer *Timer1; void __fastcall Timer1Timer(TObject *Sender); void __fastcall FormShow(TObject *Sender); void __fastcall FormClose(TObject *Sender, TCloseAction &Action); private: // User declarations void __fastcall SetNewPos(); public: // User declarations __fastcall TForm1(TComponent* Owner); TCanvas* FCanvas; int FLAG; }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif Wie gesagt es funktioniert teilweise, die Farbgebung stimmt nicht, aber einfach selbst testen... |
Re: Lauftext in der Titelleiste ?
Zitat:
Es gibt schon genug Blinki-Bunti-Anwendungen für Windows (WinAmp und Konsorten). Da muss man nicht mit Gewalt den User dazu bringen, sich alles zu "verschönern". Was willst Du eigentlich mit der Laufschrift erreichen? |
Re: Lauftext in der Titelleiste ?
hallo
das ist ein ganz kleines programm für einen arbeitskollegen,und der kollege hat immer so einen bestimmten spruch drauf und als witz wollte ich seinen spruch in der titelleiste laufen lassen mfg vader |
Re: Lauftext in der Titelleiste ?
ist zwar nicht ganz sauber und bin mir nicht sicher ob es richtig funzt aber so ungefähr sollte es gehen:
Code:
:cheers:
procedure TDeineForm.Animate( Speed: Byte );
var buf: char; str: String; l, i: Integer; procedure InitLength; begin if clientwidth < 500 then l:= clientwidth div 5 else l:= clientwidth div 4; end; begin str:= Caption; while not Application.Terminated do begin Application.ProcessMessages; InitLength; if length( str ) < l then for i := length( str ) to l do str:= str + ' '; buf:= str[1]; delete( str, 1, 1 ); str:= str + buf; caption:= str; sleep( speed ); // 50 - 100 = optimal end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 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 by Thomas Breitkreuz