Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 25 su 25
  1. #21
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Dunque, ho trovato StringReplace che dovrebbe fare al caso mio ma provandolo non funziona e non ho nessun messaggio di errore.
    Per semplificarmi il debug ho semplicemente caricato il sorgente della pagina html in una label solo per verificare che il replace funzioni:

    IdHTTP1.Connect('192.168.1.246', 80);
    LabelDisplay.Caption := IdHTTP1.Get(StringReplace('http://192.168.1.246/display.html','style="background-color: rgb(0, 153, 0); color: rgb(0, 0, 0);"', 'style="background-color: #fff; color: #000; size: 12px"', [rfReplaceAll,rfIgnoreCase]));


    Non mi sembra di aver sbagliato qualcosa e posso assicurare che il testo da sostituire è corretto visto che ho semplicemente fatto un copia/incolla. Da cosa può dipendere?
    www.beppegrillo.it
    Il blog di Beppe!!

  2. #22
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Sono riuscito a capire dove sbagliavo e ho anche capito che non posso fare il replace.

    Questo è il codice ma dovrebbe essere corretto:

    IdHTTP1.Connect('192.168.1.246', 80);
    MemoDisplay := 'http://192.168.1.246/display.html';
    MemoDisplay := StringReplace(MemoDisplay,'<caption>Remote display</caption>', '<caption></caption>', [rfReplaceAll,rfIgnoreCase]);
    BrowserDisplay.Navigate(MemoDisplay);
    www.beppegrillo.it
    Il blog di Beppe!!

  3. #23
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,487
    Originariamente inviato da colde
    Sono riuscito a capire dove sbagliavo e ho anche capito che non posso fare il replace.
    Ma tu stai sostituendo roba nella stringa che passi al componente TIdHTTP per ottenere la pagina?

    La stringa che costituisce la richiesta va bene così com'è.

    Le sostituzioni vanno fatte nella stringa che ottieni come risposta dal server web (o dal dispositivo) che costituisce la pagina vera e propria ottenuta dal server.

    Inoltre, il metodo Navigate del WebBrowser non accetta come parametro il "contenuto da visualizzare" in formato HTML, ma l'indirizzo della risorsa da cui prelevare la pagina.

    Originariamente inviato da colde
    Questo è il codice ma dovrebbe essere corretto:
    IdHTTP1.Connect('192.168.1.246', 80);
    MemoDisplay := 'http://192.168.1.246/display.html';
    MemoDisplay := StringReplace(MemoDisplay,'<caption>Remote display</caption>', '<caption></caption>', [rfReplaceAll,rfIgnoreCase]);
    BrowserDisplay.Navigate(MemoDisplay);
    Non capisco in base a cosa affermi che debba essere corretto.
    Imposti la stringa con un indirizzo HTTP e, successivamente, usi StringReplace per sostituire valori all'interno della stringa che sai benissimo che non ci sono, visto che l'hai inizializzata nell'istruzione precedente.

    Tutto quanto è privo di logica. Non capisco onestamente cosa stai cercando di fare, qual è lo scopo finale di tutto questo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #24
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Hai ragione, ho fatto un po di macello sbagliando a postare le istruzioni.

    Ora ho sistemato il codice e fatto alcune prove:

    IdHTTP1.Connect('192.168.1.246', 80);
    MemoDisplay := IdHTTP1.Get('http://192.168.1.246/display.html');
    MemoDisplay := StringReplace(MemoDisplay,'<caption>Remote display</caption>', '<caption></caption>', [rfReplaceAll,rfIgnoreCase]);
    LabelDisplay.Caption := MemoDisplay;

    In questo modo vedo il sorgente html con il replace funzionante e quindi la procedura è corretta.

    Per visualizzare la pagina invece ho usato questo codice:

    IdHTTP1.Connect('192.168.1.246', 80);
    MemoDisplay := IdHTTP1.Get('http://192.168.1.246/display.html');
    MemoDisplay := StringReplace(MemoDisplay,'<caption>Remote display</caption>', '<caption></caption>', [rfReplaceAll,rfIgnoreCase]);
    BrowserDisplay.Navigate(MemoDisplay);

    Mi visualizza "impossibile visualizzare la pagina". Deduco che il problema sia appunto del metodo Navigate che accetta l'url e non il sorgente, come mi hai già detto.

    Sto guardando la guida ma ancora non ho trovato il componente giusto. Mi sai dire almeno se la strada che sto percorrendo è corretta?


    N.B.:
    forse ho tralasciato una cosuccia importante. La pagina html che devo caricare si auto-aggiorna ogni secondo e non mantiene nessun dato in cache. Da un tuo messaggio sui gruppi di google ho visto che hai avuto il mio stesso problema nel 2002 e che è fattibile salvare il sorgente html in locale per poi aprirlo col metodo navigate; non so se può andare bene nel mio caso ma dubito fortemente, visto che ogni secondo dovrebbe salvare la pagina e visualizzarla. Mi sembra alquanto macchinoso, non so se quante risorse si ciuccia in questo modo ma preferirei un caricamento in streaming, non so se mi spiego. Carico il sorgente, lo modifico e lo passo direttamente a WebBrowser. Sarebbe fattibile?
    www.beppegrillo.it
    Il blog di Beppe!!

  5. #25
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,487
    Per visualizzare pagine HTML, il controllo di riferimento - a meno che non si faccia ricorso a controlli di terze parti - è sempre il TWebBrowser, che è semplicemente un "wrapper" del controllo ActiveX di Internet Explorer.

    Per caricare direttamente un "flusso HTML" nel controllo, fai riferimento a questo tip.

    Nella stessa sezione, ve n'è un altro che si occupa di modificare il colore dello sfondo, come da te richiesto precedentemente.

    Esplora la sezione per trovare tanti altri tip.

    Ad ogni modo, l'argomento corrente è totalmente sbilanciato rispetto a quello iniziale che riguardava tutta un'altra cosa.

    Se è necessario approfondire ulteriormente discorsi sul WebBrowser, apri una discussione dedicata.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.