Newsgroup: it.comp.lang.delphi
Titolo: leggere file INI

Salve,
ho una form che deve caricarmi dei campi in base alla scelta della classe in 
una dropdownlist...
Se scelgo art1 deve farmi vedere X campi...
Se scelgo art2 altri campi ed alcuni dell'Art1 etc etc
Volevo creare un file INI dal quale poter leggere queste info in base alle 
scelte:
[Art1]
campo1.visible:=true
campo2.visible:=false
campo3.visible:=false
[Art2]
campo1.visible:=true
campo2.visible:=true
campo3.visible:=false
etc etc
La domanda č...esistono tutorials o siete in grado di darmi del codice per 
leggere questo tipo di info ?
Ve ne sarei davvero grato !

 classe in una dropdownlist...
Dunque, le problematiche sono due, una semplice e l'altra forse un po' meno.
La prima, leggere e scrivere un file ini, è molto semplice perché Delphi
mette a disposizione la classe TIniFile. Se leggi la guida vedrai che è
veramente intuitivo usarla.
La seconda è come interfacciare il file con le proprietà.
Se leggi qualsiasi cosa da un file ini, rappresenterà una stringa (o un
numero, o un boolean), e non puoi referenziare una proprietà o un oggetto
mediante una stringa.
(in poche parole, se hai due variabili s1 = 'campo1' e s2 = 'visible', non
puoi fare s1.s2 := True, anche se sarebbe bello :) )
La problematica poi si divide ulteriormente in due, a seconda di cosa vuoi
parametrizzare.
Se la proprietà è sempre la stessa per tutti i componenti (per esempio
visible), devi parametrizzare solo il nome del componente, e quindi la cosa
è semplice in quanto nell'ini avrai
[Art1]
campo1=1    (TIniFile non scrive True o False ma 1 o 0)
e nel programma dovrai solo fare un ciclo (usando il metodo
ReadSectionValues di TIniFile) che legge la sezione Art1 e, per ogni entry,
fa più o meno
 (FindComponent(slSezione.Names[i]) as TControl).Visible :=
    slValoriSezione.ValueFromIndex[i];
(scusa ma non ho testato il codice)
Se invece vuoi parametrizzare tutto, compreso le proprietà, lì si deve
ricorrere alle RTTI, in questo caso passo la palla perché non ne so
assolutamente niente :)
-- 
Jax
====
Forse l'amore è soltanto uno tra i numerosi espedienti che abbiamo a
disposizione per riempire il nostro vuoto esistenziale, per superare
provvisoriamente le vacuità della nostra vita.

Innanzitutto GRAZIE, mi studio la Tinifile, mi hai delucidato a riguardo e 
credo proprio di farcela.
Ora dò una sbirciatina alla classe poi mi arrangio con google | gruppi...
Grazie





 allora sei visible...dovrebbe funzionare, provo...
Meglio ancora, visto che la proprietà Visible *è* boolean, puoi fare
pippo.visible := ReadBool(...)
così ti eviti un if..then...else
-- 
Jax 

 leggere questo tipo di info ?
Ho scritto qualcosa che potrebbe esserti utile:
http://www.marco.breveglieri.name/index.php?page_id=20
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

 
http://www.marco.breveglieri.name/index.php?page_id=20
Bella guida davvero, complimenti, come al solito :)
Aggiungerei un vantaggio dei file INI rispetto al registry: se il sistema 
per qualche motivo non č piů accessibile (vedi scheda madre partita, win che 
non parte piů...), č abbastanza impegnativo accedere al registry. E' molto 
piů facile recuperare un file INI.
Inoltre, quando si ha un'applicazione che gira in rete, usando un file INI č 
possibile condividere le stesse opzioni per tutti quelli che la usano 
(questo puň essere uno svantaggio ma anche un vantaggio).
-- 
Jax

 più facile recuperare un file INI.
Infatti, sembra che con .NET si faccia un passo indietro (per modo di 
dire) inserendo la configurazione in file XML: in sostanza, si cerca la 
giusta mediazione tra portabilità delle impostazioni prediligendo file 
di testo ma organizzati in modo adeguato per essere malleabili (in 
questo frangente, i file INI sono un po' limitati).
P.S.: grazie mille per il complimenti, sempre troppi! visto che qui 
siamo OT, se ci sono considerazioni aggiuntive da fare, l'articolo ha 
anche uno spazio dedicato ai commenti. ;-)


 ha scritto nel messaggio 
news:3rbqfuF...@individual.net...


 Sei un grande !
'sagerat, per cosě poco... Marco Breveglieri sě che č un grande, vorrei 
avere metŕ della sua pazienza e un quarto della sua bravura, e un decimo 
della sua modestia.
Non penso proprio di essere il solo che la pensa cosě...
Marco, prima o poi ci incontreremo, voglio stringerti la mano.
-- 
Jax 

 ha scritto nel messaggio 
news:4350f...@newsgate.x-privat.org...



per questo problema puoi sempre mettere questa parte di codice
all'interno del ciclo, assegnando ad n il valore di offset fra un campo
e l'altro;
if campo.visible then
  begin
    x := x + n;
    campo.top := x;
  end;
p.s. mi associo a Jax per la bravura e la pazienza di Marco

 una sorta di animazione che me li stringe muovendoli in top...andando a
if campo.visible then


 Marco, prima o poi ci incontreremo, voglio stringerti la mano.
Marco, mettiti le mutande di ferro...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 l'impresa !
procedure VisualizzaCampo(var TopPos: Integer; C: TuoOggetto);
begin
  if C.Visible then 
   TopPos := TopPos+10;
end;
VisualizzaCampo(TopPos, A);
VisualizzaCampo(TopPos, B);
VisualizzaCampo(TopPos, C);


 Marco, mettiti le mutande di ferro...
ROTFL!
-- 
Jax
====
Andiamo sulla luna, ma un microbo può ucciderci.

 ROTFL!
Jax, non me ne volere, ti ho conosciuto di persona, ho avuto il piacere di
pranzare insieme a te e spero che non ti offenderai se, leggendo il tuo
post, ho pensato che stessi per dire un'altra cosa alla frase "Marco, prima
o poi ci incontreremo, voglio stringerti l....".
Credimi, un sorriso me l'ha proprio strappato quella frase ;-)
Ciao!
P.S.
a parte il fatto che coltivo il perenne sogno di vedere Salvati e Laforgia
stringersi.. la mano ad una cena di ICLDers.... :-D
-- 
Morde. 
ICLDweb: 
http://www2.samatel.com/icld/

 Laforgia stringersi.. la mano ad una cena di ICLDers.... :-D
Ri-ROTFL
-- 
Jax
====
<Jeedo> hey baby, whats up?
<Indidge> umm....nothing?
<Jeedo> So....want me to like come over today so we can fuck?
<Indidge> Wait....did you want to speak to my daughter?
<Jeedo> Yes  Mrs.Miller.. :-/


Assieme ad una invasione di locuste e ad un software MS che non ha 
bisogno
di patch, credo che questo sia uno dei segnali citati nella Bibbia che 
annunciano
la prossima venuta dell'Apocalisse.
:-)
Ciao
-- 
ACSH
[D4]
Chi fa da se', fatica il doppio

 stringersi.. la mano ad una cena di ICLDers.... :-D
Sarebbe meglio orientare i propri sogni su ben altri orizzonti ;-)
Il termine "ICLDer" mi fa venire la pelle d'oca...


Chi fa da se', fatica il doppio
	Ciao
	MassimoB
 
---------------------------------
http://www.massimobeschi.it/
---------------------------------
Se tu pagare come dici tu ...
Io lavorare come dico io ...
Se tu pagare come dico io ...
Io lavorare come dici tu ...
---------------------------------