Veja esta Procedure
Procedure TFDigSoci.ZeraCombos;
var i,j:Integer;
MatCombo:Array[1..22] of TComboBox;
begin
j:=1;
For i := 0 to ComponentCount -1 do
if Components[i].ClassName=´TComboBox´ then begin
MatCombo[j]:=Components[i].;//como encher esta matriz
inc(j);
end;
//Obs.: tenho 22 combos com os nomes CB1 até CB22.
end;
Preciso encher a matriz com os combobox, alguém sabe como?
var i,j:Integer;
MatCombo:Array[1..22] of TComboBox;
begin
j:=1;
For i := 0 to ComponentCount -1 do
if Components[i].ClassName=´TComboBox´ then begin
MatCombo[j]:=Components[i].;//como encher esta matriz
inc(j);
end;
//Obs.: tenho 22 combos com os nomes CB1 até CB22.
end;
Preciso encher a matriz com os combobox, alguém sabe como?
Pedro Dias
Curtidas 0
Respostas
Rafael Heise
14/11/2003
arrume sua função dessa forma:
Procedure TFDigSoci.ZeraCombos; var i,j:Integer; MatCombo:Array[1..22] of TComboBox; begin j:=1; For i := 0 to ControlCount -1 do if Controls[i] is TComboBox then begin MatCombo[j] := Controls[i]; inc(j); end;
GOSTEI 0
Pedro Dias
14/11/2003
Deu o seguinte erro
[Error] UDigSoci.pas(124): Incompatible types: ´TComboBox´ and ´TControl´
[Error] UDigSoci.pas(124): Incompatible types: ´TComboBox´ and ´TControl´
GOSTEI 0
Marcelo Saviski
14/11/2003
MatCombo[j] := TComboBox(Controls[i]);
GOSTEI 0
Rafael Heise
14/11/2003
MatCombo[j] := (Controls[i] as TComboBox);
Eu pessoalmente prefiro dessa forma por causa de umas coisas que podem acontecer uns erros e talz... masss vai de cada um!
GOSTEI 0
Beppe
14/11/2003
MatCombo[j] := (Controls[i] as TComboBox);
O operador [b:c890d9c745]as[/b:c890d9c745] é bom pra garantir que um objeto é daquela classe(ou então uma exceção é criada). Mas neste caso, o [b:c890d9c745]is[/b:c890d9c745] te diz: ´É garantido pode passar!´. Então uma simples cast dá conta do recado.
GOSTEI 0