Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cómo creo un arrays de columnas??? (https://www.clubdelphi.com/foros/showthread.php?t=40540)

waly2k1 20-02-2007 16:32:07

Cómo creo un arrays de columnas???
 
Y una vez más yo...
Pido disculpas, ya que no pretendo spamear el foro, pero estoy a punto de terminar un desarrollo importante en Delphi y tengo muchas dudas y problemitas, las mayoría los resuelvo a prueba/error pero otros me superan. Y la ayuda en formato 'hlp' de Delphi 7 es una porq..., es dificil encontrar algo cuando se necesita, después aparece...

Al grano:
Creé un form de búsqueda genérico, al cual le paso como parámetro una sentencia SQL con los campos de tablas que quiero buscar, realizo la consulta y redefino los campos de la DBGrid permitiendo ordenar ASC/DESC, buscar, etc. por cualquier campo, defino un array de tipo string donde van a estar los headers de los campos, por ej
['Legajo', 'Nombre', 'D.N.I.', 'Categoría' ]

Bien hasta ahí, ahora: Cómo paso por parámetro un array ???
quiero asignar a un array el valor de otro array por ej.
frmFind.aHeader := aOtroArray

y NOOOO esto:
frmFind.aHeader[0] := 'Legajo';
frmFind.aHeader[1] := 'Nombre';
.....

Me da errores de tipo de datos ó cualquier tipo de errores pero no se deja..
Debe existir una manera mucho más sencilla de resolver esto, pero estoy muy verde en el tema de Arrays en Delphi. Así que apelo a uds. abusando de sus conocimientos(nuevamente).

Muchas gracias

Lepe 20-02-2007 20:19:13

Aqui tienes un esbozo.

Los arrays no tienen una asignación directa, puedes usar un bucle:
Código Delphi [-]
Procedure mio(a : array of string);
begin 
  SetLength(Aheader, high(a)); // igualo los tamaños de ambos arrays.
  for i:= low(a) to high(a) do
    aheader[i] := a[i];
end;

saludos

waly2k1 20-02-2007 20:33:26

Gracias Lepe!!!
 
Gracias Lepe, supuse que había una asignación directa, de manera de clonar 2 arrays y no elemento por elemento, ya sea usando for o 1 a 1, muchas gracias!!!

roman 20-02-2007 23:40:07

En el caso de arreglos dinámicos se puede usar Copy:

Código Delphi [-]
b := Copy(a);

// Saludos

Lepe 21-02-2007 10:51:32

Cita:

Empezado por roman
En el caso de arreglos dinámicos se puede usar Copy:

Código Delphi [-]
b := Copy(a);

// Saludos


:eek: :eek: :eek: ¿Copy? ¿el simple Copy?:eek: :eek: :eek:

PD: Nunca te acostarás sin saber algo más... y eso que estoy recien levantado...;)

waly2k1 21-02-2007 17:56:52

Copy ??
 
Juás! de tan sencillo que no merecía la pena probarlo.
Probé con MemCopy o Copymem no recuerdo pero si no realizaba antes GetMem no se dejaba.

Me gustaría que vean esto, donde adjunté un Form y me gustaría que sugieran mejoras al mismo. Acá necesitaba el tema de asignación de arrays

¿Cómo publicar DBGridColumns?
http://www.clubdelphi.com/foros/showthread.php?t=40536&goto=newpost

Saludos y muchas gracias!


La franja horaria es GMT +2. Ahora son las 21:40:47.

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