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

    [Delphi] Recuperare il NAME di un componente

    ciao a tutti.
    sono tornato dalle ferie e rieccomi con un problema:

    ho creato un frame con dentro una ValueListEditor.
    Un pulsante genera un frame con dentro il suddetto componente ogni volta che lo si preme.

    una procedura del genere gestisce la creazione dei frame:
    codice:
    procedure TMainForm.btnGeneraListaClick(Sender: TObject);
    begin
      with  TFrame.Create(contenitore) do
        begin
          parent:=contenitore;
          left:=sn;
          top:=115;
          Inc(sn,250);
          name:=MioFrame+IntToStr(nframe);
          Inc(nframe);
        end;
    end;
    in questo modo cliccando 3 volte, ad esempio,
    l'utente si vede generate le 3 ValueListEditor contenute in 3 frame differenti chiamati
    MioFrame1
    MioFrame2
    MioFrame3.

    Il problema sorge ora: vorrei che al click del tasto RETURN oppure sotto una certa condizione, OGNI contenuto di OGNUNA delle ValueListEditor venisse salvato in un file differente.
    per cui,
    MioFrame1->Value1 salva in MioFile1.TXT
    MioFrame2->Value2 salva in MioFile2.TXT
    MioFrame3->Value3 salva in MioFile3.TXT

    il problema è che non so come diavolo fare.
    avevo pensato di prelevare dal nome del frame il numero e poi riattaccarlo al nome del file:
    codice:
    ... with TFrame do
    begin
      nomeDaModificare:=Name;
      Delete(nomeDaModificare,1,7); //così rimane solo il numero
      ValueLIst.Items.SaveToFile(path\MioFile'+NomeDaModificare+'.TXT');
    end;
    solo che così mi dice che la proprietà NAME è inaccessibile..

    avreste un altra idea per fare sta cosa?

    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    TFrame identifica la classe. La proprietà Name non può essere letta usando l'identificatore TFrame, poichè sono le istanze vere e proprie ad avere un nome, e non la classe stessa.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    50
    Devi ricordare che le classi in se per se sono astratte. Mentre gli oggetti sono l'istanziamento delle classi e quindi sono concrete e occupano uno spazio fisico. Per il tuo problema basta che accedi all'oggetto e non alla classe.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da Angbis
    Per il tuo problema basta che accedi all'oggetto e non alla classe.
    Ottima sintesi.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    50
    Non spammare con messaggi inutili se no johnny ci fucila :quote:

  6. #6
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Beh è il suo lavoro fucilarci se sbagliamo :gren: :gren: :gren:

  7. #7
    Non spammare con messaggi inutili se no johnny ci fucila
    questo si che è amore platonico!!! :gren:







    ...
    ...Terrible warlords, good warlords, and an english song

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Si scherzava, ovviamente.

    Non volevo generare un'orda di «messaggi inquinanti»...ma solamente fare i complimenti ad Angbis per la sintetizzazione.

    Io, purtroppo, non riesco sempre ad esprimere i concetti in maniera concisa.

    Ma...uno dei miei soci dice sempre che "non si può avere tutto nella vita". :quipy:

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

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

  9. #9
    x alka:

    credo che tu non abbia afferrato del tutto "LA SOTTILE LOGICA" del mio post ... e neppure quella di Angbis (nel precedente post)

    ma, leggendo questo capirai:
    http://forum.html.it/forum/showthrea...hreadid=506015

    ...Terrible warlords, good warlords, and an english song

  10. #10
    le vostre sintesi non mi aiutano perchè avevo già intuito le cose da voi dette.

    vi ringrazio cmq per le risposte, ma incalzo nuovamente affinchè, se vi andasse, mi inviaste un mini-esempio esemplificativo, perchè non so veramente come uscirne.

    NON riesco ad accedere all'oggetto vero e proprio, perchè se uso la proprietà

    MioFrame.Name:
    1) il nome non è ancora stato stabilito, poichè il frame ottiene un nome solo dopo essere stato generato, dunque, non essendo ancora stato creato in fase di programmazione non so che cosa prelevare
    2) se pure provassi a fare una cosa del genere, ricevo un errore tipo: "chiamata ricorrente all'unità"...

    grazie ancora e spero di risentirvi presto con un aiuto!


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.