* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Maggio 01, 2024, 01:57:53 am

Inserisci il nome utente, la password e la durata della sessione.

261 Visitatori, 0 Utenti

Autore Topic: Scorrere ticker web su form  (Letto 8750 volte)

aserini

  • Newbie
  • *
  • Post: 4
  • Karma: +0/-0
Scorrere ticker web su form
« il: Dicembre 21, 2012, 06:56:36 pm »
Salve e auguri a tutti.
Sono un neofita di Lazarus con sufficienti nozioni di Delphi 4/5 e sto realizzando una semplicissima procedura di gestione code per un servizio al pubblico che aggiorna il numero da servire in base al servizio richiesto.
Mi è stato chiesto di poter far scorrere alla base della form uno di quei ticker con le news dal sito della Adnkronos.
Ci sono esempi di codice da studiare?
Grazie

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:Scorrere ticker web su form
« Risposta #1 il: Dicembre 22, 2012, 09:34:17 am »
ciao aserini e auguri anche a te ;)

Per lo scorrimento di una label non credo serva cercare in giro, potresti giocare sulla proprietà Left della TLabel decrementandola di 1 con un timer.
Se ti va di fare qualcosa di più "spericolato", si potrebbe usare un TCanvas nascosto su cui scrivere con TextOut (così lo puoi creare della lunghezza necessaria per tutta la label e puoi anche farci qualche disegnino natalizio o robe del genere): un po' come si fa per i videogiochi insomma. Con il timer calcoli l'offset e disegni una porzione del canvas nascosto in un altro canvas visibile. Credo che così potresti raggiungere un bel risultato.

Riguardo le info da prelevare, ho visto che su Adnkronos (ovviamente) hanno anche gli RSS...
Se dai un'occhiata al link qua sotto magari trovi qualche spunto utile
http://www.lazarus.freepascal.org/index.php/topic,18925.msg107605.html#msg107605
L'idea sarebbe quella di prelevare info dal sito tramite RSS e poi mostrarle con la tecnica vista sopra.

ciao e facci sapere ;)
Imagination is more important than knowledge (A.Einstein)

aserini

  • Newbie
  • *
  • Post: 4
  • Karma: +0/-0
Re:Scorrere ticker web su form
« Risposta #2 il: Dicembre 22, 2012, 10:05:01 pm »
Grazie per la dritta; dopo lo smaltimento dei panettoni (leggi dal 7 gennaio) proverò a scaricare easyrss e a giocarci un po'.
Se riesco a farlo passerò il codice, magari ci sono altri newbies a cui servirà.
 :) 

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:Scorrere ticker web su form
« Risposta #3 il: Dicembre 24, 2012, 10:09:07 am »
che ci sono altri a cui servirà ci puoi contare ;)
intanto auguri per lo smaltimento, ne abbiamo bisogno tutti ;)
Imagination is more important than knowledge (A.Einstein)

aserini

  • Newbie
  • *
  • Post: 4
  • Karma: +0/-0
Re:Scorrere ticker web su form
« Risposta #4 il: Gennaio 02, 2013, 09:31:59 am »
Ciao, come promesso torno a dirvi dei miei "progressi" (è una parolona!).
Ho scaricato il pacchetto TRSSParser-master, che vuole l'installazione del package synapse40, e con quello scarico l'RSS di ADNKronos in due TStringList, una con i titoli e una con il corpo delle news.
Poi ho messo un timer che ha nell'evento OnTimer un semplice codice:
if length(trim(label1.caption) )=0 then
 begin
   label1.caption:='';
   Timer1.Enabled:= False;
   label1.Visible:= false;
 end
 else
 begin
   label1.Visible:= true;
   label1.caption:= RightStr(label1.caption,
   Length(label1.caption)-1);
   Timer1.Enabled:= True;
 end;
Ora devo lavorare per ripulire le stringhe del corpo delle news dai codici html, penso che il componente THTMLViewer dovrebbe fare al mio caso, che ne pensate?
Spero che possa servire ad altri, magari alla fine posso mettere a disposizione tutto il codice anche se è veramente poca roba.
Ciao

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Scorrere ticker web su form
« Risposta #5 il: Gennaio 02, 2013, 11:22:43 am »
Se vuoi giocare pixel per pixel va bene come diceva nomorelogic, ma se vuoi usare THTMLViewer come motore di rendering, allora ti consiglio di giocare sui caratteri e fare il loop di scorrimento con il gioco delle tre carte.
Mi spiego.
Fai sparire il carattere alla posizione [1] della stringa.
Con una bella move, sposti tutti i caratteri (dal 2 in poi) alla posizione 1.
Se vuoi fare in modo che ricompaiano alla fine, la cosa è molto semplice da realizzare.
Salvi il carattere 1 in una variabile, sposti tutta la stringa a sinistra, copi il carattere salvato all'ultima posizione.
Con un numero sufficiente di spazi alla fine del testo originale, poi far capire che l'anello è ripartito. In pratica è come fanno le radio per farti vedere il terso che "sborda" dal display con l'RDS ... per darti l'idea dell'effetto finale.
Se vuoi che il testo "rimbalzi" a destra e a sinistra, decidi quanti caratteri "nascondere" e poi inverti il ciclo di spostamento. Prima a sinistra, poi a destra.
...
Ok, mi divertivo a fare queste cavolate in seconda superiore con turbo pascal 3.3. Il  prof di fisica di gasava come un mostro a vedere queste cavolate. Mi alzava il voto delle prove di laboratorio in questo modo ... ;)
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Scorrere ticker web su form
« Risposta #6 il: Gennaio 02, 2013, 11:31:43 am »
Se non ricordo male, per lo scroll del testo c'era qualcosa nella libreria Jedi  :)

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Scorrere ticker web su form
« Risposta #7 il: Gennaio 02, 2013, 11:34:10 am »
Certo Legolas Luke SkyWalker, ma era verticale e non orrizonatale, se la memoria mi è d'aiuto ;)
(Che la forza sia con te ;) )
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Scorrere ticker web su form
« Risposta #8 il: Gennaio 02, 2013, 11:41:33 am »
Ecco, adesso mi hai messo la pulce nell'orecchio e devo installarmi la JVCL per controllare  ;D

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:Scorrere ticker web su form
« Risposta #9 il: Gennaio 02, 2013, 11:47:50 am »
a memoria le JVCL non sono compatibili con FCL
le funzioni JCL invece in qualche modo si possono convertire
Imagination is more important than knowledge (A.Einstein)

Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Scorrere ticker web su form
« Risposta #10 il: Gennaio 02, 2013, 11:53:48 am »
Eh, infatti... Forse era la libreria RX?  ???

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Scorrere ticker web su form
« Risposta #11 il: Gennaio 02, 2013, 11:56:24 am »
Che ha SecretPanel,  con il controllo di direzione dello scroll (verticale e orrizontale, come opzioni possibili)
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:Scorrere ticker web su form
« Risposta #12 il: Gennaio 02, 2013, 11:57:30 am »
non ricordo...
ho una certa età :P
Imagination is more important than knowledge (A.Einstein)

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Scorrere ticker web su form
« Risposta #13 il: Gennaio 02, 2013, 12:00:41 pm »
Nomore, ho installato RXLib su Lazarus.
Ho controllato, le properties, ricordavo il componente... ma non cosa faceva di preciso ;)
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

aserini

  • Newbie
  • *
  • Post: 4
  • Karma: +0/-0
Re:Scorrere ticker web su form
« Risposta #14 il: Gennaio 03, 2013, 09:58:28 am »
Se vuoi giocare pixel per pixel va bene come diceva nomorelogic, ma se vuoi usare THTMLViewer come motore di rendering, allora ti consiglio di giocare sui caratteri e fare il loop di scorrimento con il gioco delle tre carte.
Mi spiego.
Fai sparire il carattere alla posizione [1] della stringa.
Con una bella move, sposti tutti i caratteri (dal 2 in poi) alla posizione 1.
Se vuoi fare in modo che ricompaiano alla fine, la cosa è molto semplice da realizzare.
Salvi il carattere 1 in una variabile, sposti tutta la stringa a sinistra, copi il carattere salvato all'ultima posizione.
Con un numero sufficiente di spazi alla fine del testo originale, poi far capire che l'anello è ripartito. In pratica è come fanno le radio per farti vedere il terso che "sborda" dal display con l'RDS ... per darti l'idea dell'effetto finale.
Se vuoi che il testo "rimbalzi" a destra e a sinistra, decidi quanti caratteri "nascondere" e poi inverti il ciclo di spostamento. Prima a sinistra, poi a destra.

Ciao e grazie; ho usato in parte il tuo suggerimento, con una piccola modifica: invece di ripartite con la stessa caption in modo "circolare" uso una variabile globale per il testo da scorrere. Quando ho scritto l'ultimo carattere (length(trim(caption)) = 0) ricarico la variabile nella caption. L'ho fatto perchè sto preparando un altro timer che ogni x minuti rilegge le news dal feed RSS e/o cicla su più feed. In questo modo il timer della label ricarica la variabile che nel frattempo è stata aggiornata dall'altro processo. Quanto al rendering per ora mi fermo ai titoli delle news, modello RDS della radio per citarti, per problemi di visualizzazione degli elementi multimediali (video, immagini ecc.) che richiederebbero un panel apposito e occuperebbero troppo spazio nella form.

Bye e buon lavoro a tutti


 

Recenti

How To

Utenti
Stats
  • Post in totale: 18784
  • Topic in totale: 2236
  • Online Today: 465
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 261
Total: 261

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.