Programación General > Delphi
¿cuál Es La Diferencias De Estos Códigos?
(1/1)
Deiv:
Estoy intentando capturar elementos no repetidos de una forma muy distinta sin utilizar Distinct de SQL y guardarlo en un Array, el primer código de abajo me funciona bien, pero el segundo no, ¿Por qué?
--- Código: Text ---procedure TForm1.FormCreate(Sender: TObject);type UnArray = array[0..100] of string;var i,j,x: integer; A:UnArray;const sqlElementos = ' Select * from elementos ';begin x:=0; ADOQuery1.Active:= False; ADOQuery1.Sql.text:= sqlElementos; ADOQuery1.Active:= True; with ADOQuery1 do begin first; while not eof do if (ComboBox1.Items.IndexOf(FieldByName('Tipo').AsString)=-1)then begin ComboBox1.Items.Add(FieldByName('Tipo').AsString); A[x]:=FieldByName('Tipo').AsString; inc(x); end; next; end;end;
--- Código: Text ---procedure TForm1.FormCreate(Sender: TObject);type UnArray = array[0..100] of string;var i,j,x: integer; A:UnArray; B:TStringList;const sqlElementos = ' Select * from elementos ';begin x:=0; B:= TStringList.Create; ADOQuery1.Active:= False; ADOQuery1.Sql.text:= sqlElementos; ADOQuery1.Active:= True; with ADOQuery1 do begin first; while not eof do if (B.IndexOf(FieldByName('Tipo').AsString)=-1) then begin ComboBox2.Items.Add(FieldByName('Tipo').AsString); A[x]:= FieldByName('Tipo').Value; inc(x); next; end; end;end; ¿Por qué la línea:
--- Código: Text ---if (B.IndexOf(FieldByName('Tipo').AsString)= -1) then No Trabaja Igual que este otro?:
--- Código: Text ---if (ComboBox1.Items.IndexOf(FieldByName('Tipo').AsString)= -1) then ¿Cómo corregir el segundo código para que trabaje como el primero?
Navegación
Ir a la versión completa