Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802

    [Delphi] Access violation e assegnazioni caption su varie form

    Ciao a tutti,
    sto creando la funzione di multilingua su un'applicazione e praticamente vado a prelevare da un file txt il testo nella lingua corretta.

    Finchè il testo devo utilizzarlo nel form corrente, nessun problema ma quando assegno un caption presente in un'altra form o frame, mi da errore di accesso violato.

    La riga del codice è questa:
    GestioneGareFrame.TextDisplay.Caption := S[7];

    GestioneGareFrame è il frame che viene caricato nel form principale;
    TextDisplay è il nome di un GroupBox;
    S[7] è la riga che contiene il testo da inserire nel caption;

    Durante la compilazione non mi viene dato nessun errore e tutto sembra a posto ma quando avvio il programma mi appare la finestra con l'errore.
    Dove sbaglio?

    Grazie
    www.beppegrillo.it
    Il blog di Beppe!!

  2. #2
    non ti so dire se il problema dipende solo da quella riga, ma ti suggerisco di analizzare tramite debug se S[7] contiene veramente una stringa...


  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Dico la mia e punto il mio gruzzolo sul fatto che il Frame non sia istanziato quando vai a caricare la stringa al suo interno.

    Facendo comunque un po' di sano "debug passo per passo" e soffermandoti sulla riga incriminata, si fa presto a capire il motivo per cui ottieni l'errore, verificando il valore che cerchi di impostare e la corretta assegnazione dei riferimenti agli oggetti, come la variabile che "punta" al Frame in questione.

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

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

  4. #4
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Grazie dei consigli ma cercando qualche info su delphi nel gruppo di google, ho trovato molto più interessante gestire il multilingua con un file INI e quindi dovrò cambiare un po il mio codice sperando di saltare il problema del mio post.

    Ora avrei bisogno di un consiglio: vorrei far interagire ogni form presente nella mia applicazione con il file INI in modo da caricare la lingua e i testi ad ogni caricamento dei form. In questo modo posso gestire il multilingua anche in runtime e mi sembra un'ottima soluzione; il mio unico dubbio è la paura di rallentare parecchio l'applicativo dato che ogni form/frame dovrà controllare il file INI. Potete darmi un vostro parere?

    Grazie mille.
    www.beppegrillo.it
    Il blog di Beppe!!

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da colde
    Grazie dei consigli ma cercando qualche info su delphi nel gruppo di google, ho trovato molto più interessante gestire il multilingua con un file INI e quindi dovrò cambiare un po il mio codice sperando di saltare il problema del mio post.
    Non credo che il problema sia dovuto alla gestione del file INI in sé, ma in generale come puoi dare per scontato che lo sia?

    Originariamente inviato da colde
    Ora avrei bisogno di un consiglio: vorrei far interagire ogni form presente nella mia applicazione con il file INI in modo da caricare la lingua e i testi ad ogni caricamento dei form. In questo modo posso gestire il multilingua anche in runtime e mi sembra un'ottima soluzione; il mio unico dubbio è la paura di rallentare parecchio l'applicativo dato che ogni form/frame dovrà controllare il file INI. Potete darmi un vostro parere?
    Non vedo un grosso problema di rallentamento in quanto i testi vengono caricati (spero) all'apertura o al caricamento del form una volta sola; tutt'al più, ci vorrà qualche istante impercettibile per ottenere il form pronto, nulla di più.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  6. #6
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Sto tentando di usare il file INI ma naturalmente ho giusto qualche piccolo problema:

    public
    { Public declarations }
    procedure LoadPage(APageClass: TPageFrameClass);
    procedure ReadSection(const Section: string; Strings: TStrings);

    uses
    IniFiles;

    procedure TMainForm.LoadPage(APageClass: TPageFrameClass);

    var
    MyIniFile: TIniFile;
    lang: string;
    textlanguage: string;
    S: TStringList;

    begin

    try
    MyIniFile := TIniFile.Create('Config\conf.ini');
    lang := ReadSection('Lang', 'Language');
    if lang = 'it' then
    language.Caption := ReadSection('Label', 'Language');
    finally
    MyIniFile.Free;
    end;


    ERRORI:
    procedure ReadSection(const Section: string; Strings: TStrings);
    [Pascal Error] Main.pas(58): E2065 Unsatisfied forward or external declaration: 'TMainForm.ReadSection'

    lang := ReadSection('Lang', 'Language');
    [Pascal Error] Main.pas(91): E2010 Incompatible types: 'TStrings' and 'string'

    language.Caption := ReadSection('Label', 'Language');
    [Pascal Error] Main.pas(93): E2010 Incompatible types: 'TStrings' and 'string'
    www.beppegrillo.it
    Il blog di Beppe!!

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da colde
    Sto tentando di usare il file INI ma naturalmente ho giusto qualche piccolo problema [...]
    Non sono problemi legati al file INI, ma ad un uso scorretto del linguaggio: hai dichiarato un metodo ReadSection nella classe del Form (presumo) ma non l'hai implementato; in quel metodo, accetti un parametro string e un parametro di tipo TStrings ma poi tenti di passare a quest'ultimo un valore sempre di tipo string.

    Insomma, sembra un po' codice scritto alla rinfusa o per tentativi... :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  8. #8
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    E per implementarlo cosa dovrei fare allora? Ho seguito il tuo articolo sul blog e ora sto provando a fare qualche test ma qualcosa non mi è ancora del tutto chiara dalla tua spiegazione per cui facendo dei test dovrei riuscire alla fine ad avere le idee chiare.
    www.beppegrillo.it
    Il blog di Beppe!!

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da colde
    E per implementarlo cosa dovrei fare allora? Ho seguito il tuo articolo sul blog e ora sto provando a fare qualche test ma qualcosa non mi è ancora del tutto chiara dalla tua spiegazione per cui facendo dei test dovrei riuscire alla fine ad avere le idee chiare.
    Hai letto male quello che è riportato nell'articolo.

    I metodi di cui si parla, ovviamente, sono quelli appartenenti alla classe TIniFile (più in generale, alle classi che discendono da TCustomIniFile), come si vede anche negli esempi riportati alla fine dell'articolo.

    Non mi pare sia scritto che i metodi vadano implementati sul Form, anche perché non avrebbe molto senso.

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

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

  10. #10
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Grazie dell'intervento, ho riletto con più attenzione l'articolo e ora sembra che funzioni correttamente.
    www.beppegrillo.it
    Il blog di Beppe!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.