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
  #6  
Antiguo 13-06-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
elrayo76,

Cita:
Empezado por elrayo76
...necesito es ver como se puede hacer para pasar por parámetro en una función un enumerado genérico...similar a lo que permite C#...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TEnumA = (A1=10, A2=11, A3=12, A4=13, A5=14);
  TEnumB = (B1=20, B2=21, B3=22, B4=23, B5=24);
  TEnumC = (C1=30, C2=31, C3=32, C4=33, C5=34);
  TEnumD = (D1=40, D2=41, D3=42, D4=43, D5=44);
  TEnumE = (E1=50, E2=51, E3=52, E4=53, E5=54);

var
  Form1: TForm1;

implementation

{$R *.dfm}

function SumEnumValue(const EnumValue : Array of Variant) : Integer;
var
   i : Integer;

begin

   Result := 0;

   for i := Low(EnumValue) to High(EnumValue) do
      Result := Result + EnumValue[i];

end;

procedure TForm1.Button1Click(Sender: TObject);
var
   TotEnumValue : Integer;

begin

   TotEnumValue := SumEnumValue([A1,B1,C1,D1,E1,
                                 A2,B2,C2,D2,E2,
                                 A3,B3,C3,D3,E3,
                                 A4,B4,C4,D4,E4,
                                 A5,B5,C5,D5,E5
                                ]);

   MessageDlg(Format('Sumatoria EnumValues = %d',[TotEnumValue]),mtInformation,[mbOK],0);

end;

end.
El código anterior en Delphi 7 sobre Windows 7 Profesional x32, Ejemplifica como pasar a una función N cantidad de valores de tipo Enumerado por medio de un Arreglo Dinámico de tipo Variant, como se muestra en la siguiente imagen:



Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 13-06-2015 a las 17:33:28.
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
Imprimir reporte enumerado no desde 1 zugazua2001 Impresión 1 20-04-2009 11:42:02
procedimiento de asignación genérico gushynet OOP 23 09-09-2008 10:50:15
Enumerado Guillermo80 Varios 8 09-03-2008 18:06:57
enumerado bosterito Varios 3 15-01-2007 20:42:53
reporte generico piyugo Impresión 8 07-05-2004 18:20:03


La franja horaria es GMT +2. Ahora son las 06:37:26.


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