Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Salvare le impostazioni (Delphi7)

    In due TEdit digito di frequento la user e la pass vorrei che questi dati venissero memerozati in un file di nome, Config.ini ho comuinciato cosi il codice basandomi su un codice che uso di solito per salvare del testo.
    codice:
    procedure TForm2.Save1Click(Sender: TObject);
    begin
    if RzSaveDialog1.Execute then
    begin
    Messaggio.Lines.SaveToFile(RzSaveDialog1.Filename);
    StatusBar.Panels[3].Text:='Salvato il file: '+RzSaveDialog1.Filename;
    end;
    end;
    come posso salvare i dati di un Tedit in un file di testo?

  2. #2

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Per semplificare al massimo, potresti usare semplicemente la classe TStringList (unit Classes).
    Puoi trovare un esempio calzante in questa pagina.

    Per salvare il contenuto della lista di stringhe, usa il metodo SaveToFile, per ricaricarlo usa LoadFromFile.

    La lista di stringhe può essere usata per inserire all'interno più valori associati nella forma chiave=valore, usando la proprietà Values.

    Fai riferimento alla documentazione ufficiale per maggiori informazioni sulle funzionalità disponibili.

    Per esigenze più complesse, è possibile ricorrere a soluzioni più elaborate come questa, oppure al meccanismo di streaming delle proprietà di Delphi per salvare classi con i valori delle impostazioni che discendono da TPersistent, ma si tratta come dicevo di soluzioni già più articolate e complesse.

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

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

  4. #4
    Ho Fatto in questo modo:
    codice:
    procedure TForm2.Exit1Click(Sender: TObject);
    begin
    Username.Items.SaveToFile('Config.ini');
    close;
    end;
    end;
    ma mi da questo errore:
    [Error] Invio.pas(532): Undeclared identifier: 'Items'

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da camaleonteplus
    Ho Fatto in questo modo:
    codice:
    procedure TForm2.Exit1Click(Sender: TObject);
    begin
    Username.Items.SaveToFile('Config.ini');
    close;
    end;
    end;
    ma mi da questo errore:
    [Error] Invio.pas(532): Undeclared identifier: 'Items'
    L'errore indica che il compilatore non è in grado di trovare nulla che si chiami Items nell'oggetto identificato dal nome Username.

    Non sapendo cosa sia né l'uno né l'altro, non posso dire molto altro, se non rinnovare l'invito a non andare a caso, facendosi qualche domanda; ad esempio, che cos'è Username? A che tipo (classe) appartiene? Che metodi ha quella classe? Tra questi membri (metodi e proprietà) della classe c'è quella che sto utilizzando? Se no, sto usando la classe o l'oggetto giusto? Non riesco a determinarlo... ho letto la documentazione a riguardo? Non riesco a trovare nulla perché non so cos'è un metodo o una proprietà, o anche una classe... non conviene reperire documentazione sulla programmazione ad oggetti per approfondire questi concetti fondamentali per poter usare il linguaggio Delphi?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  6. #6
    scusa hai ragione Username si riferisce ad un TEdit che uso come Autenticazione per l'invio della posta elettronica, in effetti andrebbe aggiunto anche Pass che è sempre un TEdit.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da camaleonteplus
    scusa hai ragione Username si riferisce ad un TEdit che uso come Autenticazione per l'invio della posta elettronica, in effetti andrebbe aggiunto anche Pass che è sempre un TEdit.
    TEdit non possiede alcuna proprietà Items, e nemmeno Lines, ma solo Text, ma è irrilevante in questo caso, poiché non devi fare uso di alcun metodo specifico di TEdit per salvare i dati, che vanno memorizzati attraverso TStringList (vedi gli esempi di utilizzo sui siti suggeriti).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  8. #8
    Per scrivere il file Ini ho fatto in questo modo.
    codice:
    procedure TForm2.Exit1Click(Sender: TObject);
    var
        ini:Tinifile;
    begin
        ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
        ini.WriteString('Dati','Username',Username.text);
        ini.WriteString('Dati','Password',Password.text);
        ini.WriteString('Rete','HeloName',Helo.text);
        close
    end;
    il file viene creato perfettamente.
    Per leggere il file ini ho fatto cosi.
    codice:
    var
        ini:Tinifile;
        Username,Password,HeloName:string;
    begin
        ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
        Username:= ini.ReadString('Dati','Username',Username.text);
        Password:= ini.ReadString('Dati','Password',Password.text);
        HeloName:= ini.ReadString('Rete','HeloName',Helo.text);
        Username.text:= Username:
        Password.text:= Password:
        Helo.Text:= HeloName;
        end;
    e qui ho il problema mi da questo errore:
    [Error] Invio.pas(247): Record, object or class type required
    su questa riga:
    codice:
    Username:= ini.ReadString('Dati','Username',Username.text);
    dove l'errore?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Originariamente inviato da camaleonteplus
    e qui ho il problema mi da questo errore:
    [Error] Invio.pas(247): Record, object or class type required
    su questa riga:
    codice:
    Username:= ini.ReadString('Dati','Username',Username.text);
    dove l'errore?
    codice:
        ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
        Username.text:= ini.ReadString('Dati','Username','');
        Password.text:= ini.ReadString('Dati','Password','');
        Helo.text:= ini.ReadString('Rete','HeloName','');

  10. #10
    continua a darmi lo stesso errore:
    [Error] Invio.pas(247): Record, object or class type required

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