Newsgroup: it.comp.lang.delphi
Titolo: Macro

Salve a tutto l'NG e BUON NATALE.
Una domanda facile facile, almeno x chi é esperto
Nel mio codice ho diciamo:   Label1
                                            Label2
                                            Label3
                                            Label4
                                            Label5
                                            Label6
                                            Label7
                                            Label8
In clipper era possibile creare in un ciclo for ... For I = 1 to 8
&('Label' + Alltrim(Str(I)) := "Pippo"
Questa funzione si può ricreare in delphi
Spero di essere stato abbastanza chiaro

 wrote in message
news:G0AN9.16932$Q%4.54...@news1.tin.it...

Guarda sull'help l'utilizzo dell'array Controls e simili.
Saluti


Mi pare che ci sia la possibilita' di avere un array di controlli, anche se
al momento non ho il manuale sottomano...
Alla fine dovresti avere Label[1], Label[2] eccetera...
La funzione da richiamare a quel punto sarebbe:
Label[i] := 'Pippo';
Spero che qualcuno aggiunga qualche dettaglio.

 Salve a tutto l'NG e BUON NATALE.
anche a te,

in Delphi devi scorrere tutti i componenti presenti sulla form
for i := 0 to Pred(Form1.ComponentCount) do
testare che il componente corrente sia un TLabel
if Form1.Components[i] is TLabel then
in caso affermativo devi fare un cast di tipo
TComponent->TLabel e modificarne le proprietà
TLabel(Form1.Components[i]).Caption := 'Etichetta '+ IntToStr(i);
oppure
(Form1.Components[i] as TLabel).Caption := 'Etichetta ' + IntToStr(i);
la differenza tra il primo e il secondo mettodo per fare il cast e che 
il secondo solleva un'eccezione nel caso di cast di oggetti differenti.
Per renderti conto su una form metti alcune label e un button poi al 
click del button esegui prima
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to Pred(Form1.ComponentCount) do
    (Form1.Components[i] as TLabel).Caption:='Etichetta '+IntToStr(i);
end;
e poi
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to Pred(Form1.ComponentCount) do
    TLabel(Form1.Components[i]).Caption:='Etichetta '+IntToStr(i);
end;
Ciao, Antò.

 Label[i] := 'Pippo';
AArgh! Eretico! Quello si fa in VB :D
(che comunque è l'unica cosa che ha in meno :))
--
Jax

"Jax" <rispo...@newsgroup.grazie> ha scritto nel messaggio
news:3sBN9.17186$Q%4.54...@news1.tin.it...

Non riesco a capire. in Delphi non puoi usare un array di controlli? Sono
sicuro che si puo' fare, magari creandoli dinamicamente a runtime.

> > Label[i] := 'Pippo';
Non e' corretto in quanto Label[i] restituisce un oggetto TLabel.
In teoria dovrebbe essere  Label[i].Caption := 'Pippo';
^__^
Ciao
--
Buon      .-""",
 Natale    /____, \
          {_____}`{} 
Buone    (/ . . \)
 Feste   {`-=^=-`}
         {   `   }
          {     }jgs
Morde.     `-,-`

 wrote in message
news:au6p5n$3re$1...@newsreader.mailgate.org...

Non lo fai a design time, ma a runtime lo fai senza problemi.

 In teoria dovrebbe essere  Label[i].Caption := 'Pippo';
Eh, ma quanto siamo pignoli... :-)
Effettivamente hai ragione... Eppure sono mesi che non uso piu' VB, si vede
che la disintossicazione ancora non e' terminata... :-)


Gabriele, il post di jax ha dato un tono scherzoso al thread!!!
Non volevo fare il pignolo, credevo non avessi capito la risposta e ho voluto
chiarire il senso "tecnico"!
Ciao!


 Non lo fai a design time, ma a runtime lo fai senza problemi.
Perché no?
Basta selezionare tutti i controlli e modificare la caption.
Andrea

 In clipper era possibile creare in un ciclo for ... For I = 1 to 8
anche tu da clipper?
Azz! Siamo in tanti! :))
Bye
A.


    ABLS Team (
www.abls.it
)
········································