Personalmente (nel mio piccolo) non ho capito niente, stai cercando castare mele con pere (e a volte fichi)
hai scritto:
al.delphi ha scritto:
if (PanelA.Controls is TLabeledEdit) AND ((PanelA.Controls as TLabeledEdit).Text <> EmptyStr) AND ((PanelA.Controls as TLabeledEdit).EditLabel.Caption = LabeledEdit.EditLabel.Caption) then
a parte i nomi dei componenti che confondono, stai castando una lista ad un oggetto cercando nella lista l'oggetto, molte idee ma molto ben confuse, cmq se usi una versione di delphi "aggiornata" ti consiglio l'uso della unit RTTI, invece in caso contrario allora un bel ripasso alla VCL non sarebbe male.
cmq
Il componente ( oggetto, classe chiamalo come vuoi) TPanel contiene dei controlli, e questi controlli sono elencati dalla property "controlcount" dunque, per semplificare, hai un array (che parte da 0) di TControl dentro il componente TPanel con un loop for vai a scandire tutti i TControl poi per ogniuno devi fare i debiti cast, il tuo codice dovrebbe diventare qualcosa del tipo (semplificato):
for i := 0 to PanelA.ControlCount - 1 do // per tutti i controlli presenti nel panel
begin
if (PanelA.Controls[i] is TLabeldeEdit) then // ok beccato TLabeledEdit
begin
if (PanelA.Controls[i] as TLabeledEdit).Text <> EmptyStr) AND
((PanelA.Controls[i] as TLabeledEdit).EditLabel.Caption = <nome e property del componente da confrontare>.Caption) then
<nome e property del componente da settare>.Text := (PanelA.Controls[i] as TLabeledEdit).Text;
end;
end;
Ma, ancora non riesco a capire cosa cerchi di ottenere...
W.