Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    145

    [Delphi 7] Accedere ad un componente

    Ciao a tutti!
    Nella mia form ho i seguenti frame :

    FrameProcesso1: TFrameProcesso;
    FrameRelazioni1: TFrameRelazioni;
    FrameObiettivo1: TFrameObiettivo;


    In runtime vorrei poter accedere a uno di questi oggetti...
    come posso fare? Non posso usare la findComponent visto che il tipo di component è diverso per ognuno giusto?


    Grazie mille!


    Ciaoooo!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    E' sufficiente usare il nome del Frame, come se si trattasse di qualsiasi altro controllo.
    :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    145
    Ok, quindi come posso ottenere il riferimento?


  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da alanf1981
    Ok, quindi come posso ottenere il riferimento?
    Seguendo il tuo esempio:
    codice:
      // ...
      FrameProcesso1.Align := alClient;
      // ...
    (L'uso della proprietà Align è pretestuoso, serve solo a mostrare un esempio di utilizzo).

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

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    145
    Ops mi sa che mi sono espresso male! :rollo:

    Nella mia form ci sono tanti frame, ad ognuno dei quali ho aggiunto diverse procedure/attributi.

    Nella mia procedura (per evitare di ripetere tante volte le stesse istruzioni) recupero il nome del frame che devo utilizzare e lo metto in una string.
    Es :
    FrameObiettivo1: TFrameObiettivo; ---> s := 'FrameObiettivo1'


    Dal nome 'FrameObiettivo1' come posso ottenere il riferimento all'oggetto FrameObiettivo1?

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Puoi usare il metodo FindComponent del Form, ma non è la prassi che avrei seguito io in quanto questo metodo, passando il nome del componente/controllo come parametro, scandisce TUTTI i componenti presenti, e questo ovviamente si ripete per ogni ricerca effettuata.

    L'ideale sarebbe creare i Frame a runtime, inserendo il loro riferimento all'interno di una lista (istanza di TList).

    Anche perchè l'uso di FindComponent non risolve tutti i problemi; infatti, una volta che hai ottenuto il riferimento ad uno dei Frame che ti interessano, se vuoi chiamare un metodo specifico che appartiene esclusivamente solo a quella classe di Frame, devi effettuare un "cast".

    In questo caso, la soluzione migliore dipende dall'impiego dei Frame, dal loro significato, dall'impostazione dell'intera applicazione Delphi.

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