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

    [Delphi 7] Creare oggetto da nome

    Ciao a tutti!
    Vorrei creare tante TStringList ognuna delle quali avente nome diverso (passato come stringa) in modo che poi tramite la FindComponent riesco a referenziarmi...come posso fare?

    Grazie mille!


    Ciaooo!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    La soluzione puoi trovarla usando proprio la classe TStringList che, all'occorrenza, diventa un dizionario.

    Al posto del metodo Add, puoi usare AddObject per inserire nella lista una stringa a cui associare un oggetto che, nel tuo caso, sarà un'istanza di TStringList.

    Se dai un'occhiata alla Guida in linea, troverai anche i metodi e le proprietà di TStringList che ti consentono di risalire all'oggetto corrispondente ad una determinata stringa.

    Il metodo FindComponent, dato che non è tendenzialmente performante, soprattutto se usato ripetutamente, andrebbe evitato anche quando si tratta di cercare componenti: sempre meglio usare una lista o una classe affine a cui aggiungere i riferimenti a componenti e controlli creati a runtime, oppure a designtime ricercandoli con FindComponent ma solamente la prima volta, provvedendo ad ispezionare la lista in seguito che conterrà solo i componenti e i controlli di interesse.

    Ciao!
    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
    Grazie mille ma preferisco la soluzione classica (non tramite TStringList) in quanto creo poche istanze.
    Per ora ho fatto cosi :

    c : TComponent;
    str : TStringList;

    c := TComponent.Create(nil);
    c.Name := 'nome';
    str := TStringList(c);


    A questo punto come posso accedere ai vari TStringList creati in precedenza?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da alanf1981
    Grazie mille ma preferisco la soluzione classica (non tramite TStringList) in quanto creo poche istanze.
    [...]
    A questo punto come posso accedere ai vari TStringList creati in precedenza?
    La soluzione classica è inapplicabile e il codice che hai scritto non alcun senso (stai "castando" un componente generico a TStringList ).

    Non vedo cosa c'è che non fa nel mio approccio, che continuo a suggerire.
    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, hai ragione!
    Ok scelgo il tuo metodo!
    Potresti farmi un esempio?
    Mettiamo che voglio creare 20 TStringList con nome "str1", "str2", "str3", ...

    Come dovrei fare?

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.