Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - TESTO SCORREVOLE....HELP!!!
Forum - Delphi - TESTO SCORREVOLE....HELP!!!

Avatar
lom89 (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/02/2010

Segnala al moderatore
Postato alle 16:47
Martedì, 16/02/2010
CIAO A TUTTI!!!
E' da un pò ke mi scervello, ho realizzato un lettore mp3 e volevo visualizzare in una label il nome della canzone in esecuzione, xò facendo scorrere il testo...ho pensato a un timer...nn ho proprio idea...qualcuno può dirmi come fare???
Un gazie anticipato!

PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 17:12
Martedì, 16/02/2010
il problema qual'è?
non riesci a far spostare la label o non riesci a prelevare il nome della canzone?

PM Quote
Avatar
lom89 (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/02/2010

Segnala al moderatore
Postato alle 17:49
Martedì, 16/02/2010
no forse mi sono espresso male...voglio che il nome della canzone...si muova...TRASPOSIZIONE DEL TESTO!!!

PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 19:15
Martedì, 16/02/2010
per far muovere l'intera label che contiene il nome della canzone prendi un timer e mettici

Codice sorgente - presumibilmente Plain Text

  1. label1.left:= label1.left + 1;




se invece vuoi far muovere il testo all'interno della label, credo che ti debba scrivere del codice tu..

una cosa del genere potrebbe andare

Codice sorgente - presumibilmente Delphi

  1. implementation
  2. var nome:string; ricomposizione:boolean;
  3. {$R *.dfm}
  4.  
  5. function nuovacaption(caption:string; bool:boolean):string;
  6. var i:integer;temp:string;
  7. begin
  8. for i:=1 to length(caption)-1 do
  9. begin
  10.   temp:=temp+caption[i];
  11. end;
  12. if bool = false then
  13.   nome:=nome+caption[length(caption)]
  14.   else
  15.   nome:= temp;
  16.  
  17. nuovacaption:=temp;
  18. end;
  19.  
  20. procedure TForm1.Timer1Timer(Sender: TObject);
  21. begin
  22. if length(trim(label1.caption) )=0 then
  23.   begin
  24.     ricomposizione:= true;
  25.     label1.caption:='';
  26.   end;
  27.   if (ricomposizione) then
  28.   begin
  29.     label1.caption:=label1.caption + nome[length(nome)];
  30.     nuovacaption(nome,true);
  31.     if length(nome) = 0 then
  32.     ricomposizione :=false;
  33.   end
  34.   else
  35.   if (length(label1.caption) >20) then
  36.     label1.caption:= ' '+ nuovacaption(label1.caption, false )
  37.   else
  38.     label1.caption:= ' '+label1.caption;
  39.  
  40.  
  41. end;





cmq te l'ho messo nel file allegato


Anonymous ha allegato un file: Project1.zip (3245 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da Anonymous il 16/02/2010 alle 19:17
PM Quote
Avatar
lom89 (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/02/2010

Segnala al moderatore
Postato alle 19:24
Martedì, 16/02/2010
grazie ora lo provo!!!

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 11:11
Mercoledì, 17/02/2010
Io ho anche provato questo modo più scarno di codice ma quindi molto più sempliciotto...

Codice sorgente - presumibilmente Delphi

  1. procedure TForm1.Timer1Timer(Sender: TObject);
  2. begin
  3.    Label2.Left:= Label2.Left - 1;
  4.    If Label2.Left = - Label2.Width Then Label2.Left:= Label2.Width + Panel1.Width;
  5. end;



Cioè inserisci la label in un pannello alla sua estremità sinistra e regoli il suo spostamento in base alla larghezza del pannello e della label.
NB: devi impostare il Pannello su BevelOuter = bvNone

PM Quote