Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2007
Byfed Byfed is offline
Miembro
 
Registrado: oct 2006
Posts: 18
Poder: 0
Byfed Va por buen camino
funcion genérica para cargar combos

Hola a todos de nuevo,

Como ya comenté en otro post, suelo diseñar las aplicaciones haciendo que cada opción del programa active el frame que corresponda. Al seleccionar la opción del menú, se llama al procedimiento init, que siempre pongo en todos los frames. Este procedimiento se encarga de limpiar los formularios si es preciso, cargar los combos que pueda haber y por último, de mostrar el formulario.

Para cargar los combos (con datos de una tabla mysql) suelo hacer lo siguiente:

he declarado una variable en private como

valores: array of integer;

y para cargar el combo hago:

Código:
procedure TFrame.Cargar_valores();
var
   sSql: String;
   SoloQuery : TQuery;
   i: integer;
begin
   Ssql := 'Select * from tabla';
   SoloQuery := TQuery.Create(nil);
   SoloQuery.DatabaseName := 'basededatos';
   SoloQuery.SessionName := 'session';
   SoloQuery.SQL.Clear;
   SoloQuery.SQL.Add(sSql);
   SoloQuery.ExecSQL;
   SoloQuery.Active := True;
   SoloQuery.Open;

   Combobox.ClearSelection;
   Combobox.Items.Clear;
   Combobox.Text := 'Selecciona valor';
   Combobox.ItemIndex := Combobox.Items.Count - 1;
   SetLength(valores, 0);
   while (not SoloQuery.EOF) do
   begin
      Combobox.Items.Add(SoloQuery.FieldByName('texto').AsString);
      i := Length(valores);
      SetLength(valores, i + 1);
      Valores[i] := SoloQuery.FieldByName('valor').AsInteger;
      SoloQuery.Next;
   end;
   SoloQuery.Close;
   SoloQuery.Destroy;
end;
Esto lo hago por cada combo que tenga que cargar y en ocasiones son unos cuantos. Para cada combo hago un procedimiento. Lo que estoy buscando es la forma de crear UN SOLO PROCEDIMIENTO GENERAL para cargar los distintos combos, pasándole como parámetros los datos del combo que se trate cada vez. Las llamadas serían del estilo:

cargarCombo(NombreCombo, ArrayValores, Tabla, CampoTexto, CampoValor)

He intentado hacerlo, pero cometo algún error al pasar el array. Imagino que el problema estará en que paso el array por valor y se debe pasar por referencia. No estoy seguro. También he intentado hacerlo con una función y que la llamada fuera así:

ArrayValores := CargarCombo(NombreCombo,Tabla, CampoTexto, CampoValor)

Pero no puedo definir la función para que devuelva un array de enteros.

¿A Alguien se le ocurre cómo podría realizar esta tarea? Me ahorraría muchas horas de tecleo.

Gracias y un saludo.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Función Genérica radaalvaro .NET 0 28-06-2006 16:51:29
Problema con impresora generica solo texto escullar Impresión 0 30-05-2005 12:22:30
Ejecutar función al cargar formulario lic_francisco Varios 1 03-05-2005 09:05:49
Error com impresora generica de texto rogeriobeltran Impresión 2 17-08-2004 16:20:03
cargar tabla en varios combos Delphos Conexión con bases de datos 2 04-10-2003 19:09:11


La franja horaria es GMT +2. Ahora son las 02:53:52.


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
Copyright 1996-2007 Club Delphi