Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   combo box (https://www.clubdelphi.com/foros/showthread.php?t=34711)

anto1178 18-08-2006 14:39:37

combo box
 
Hola!
Estoy haciendo una aplicación en Delphi, en la cual tengo un combobox con 2 items (A o B). Lo que debo hacer es pasar lo que el usuario selecciona a un array. Pero no funciona.
Pienso que puede ser que esté tratando con tipos incompatibles (aunque he probado con char y string pero igual no funciona) o seguramente, estoy haciendo mal la definición del array.

Si me podrian explicar como definir un array, se los agradecería, porque estoy confundida si ponerlo en la parte de TYPE o en VAR. Así, voy descartando los posibles errores.

Muchisimas gracias.:)

luisgutierrezb 18-08-2006 15:38:54

porque no mejor pones tu codigo y vemos en que te podemos ayudar? como quiera, a ver si te sirve:
Código Delphi [-]
var
  a_cad: Array[1..100] of String;
Begin
  For i:= 0 to combobox1.Items.ItemCount -1 Do
    a_cad[i] := ComboBox1.Items[i];
end;
con eso haces un arreglo de 100 elementos y le asignas los elementos del combobox

Lepe 18-08-2006 15:51:03

el array se puede definir donde más te convenga, si es una variable, pues te obliga a repetir la definición una y otra vez:

Código Delphi [-]
procedure mio;
var A: array [0..100] of string;;
begin 
with Combobox2 do
  if itemindex <> -1 then // si el usuario ha elegido algo:
    A[0] := items[itemindex];

end;

procedure Mio2;
var A:array [0..100] of string;
begin
end;

si es un TYPE es más como de usar;
Código Delphi [-]
type TElegido = array [0..100] of string;

....
procedure mio;
var A: Telegido;
begin 
end;

procedure Mio2;
var A:Telegido;
begin
end;
Como ves, con un TYPE, si tienes que modificar el tamaño del array, solo tienes que cambiarlo en 1 sitio.


Saludos.

Lepe 19-08-2006 12:29:02

Me respondo yo mismo, en este caso, ajustaría el tamaño del Array dinamicamente, así no desperdiciamos memoria, además, si el combo tiene más de 100 elementos fallaría el programa:
Código Delphi [-]

type TElegido = array of string;
...


var a :TElegido
begin
if combobox1.items.itemcount > 0 then
begin
  setlength(a,combobox1.items.itemcount); // a empezará en cero y el combo igual
  // ahora el bucle de luisgutierrezb
end;

Saludos


La franja horaria es GMT +2. Ahora son las 06:56:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi