Ver Mensaje Individual
  #2  
Antiguo 20-10-2023
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 933
Reputación: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Estimado le propongo la siguiente opción.

Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.ValEdit, Vcl.StdCtrls;

type
  TDatos=record
   FieldName:String;
   FieldValue:String;
  end;

  TDatosList=TArray;

  TForm1 = class(TForm)
    Button1: TButton;
    vlData: TValueListEditor;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function GetDatos(AFields:Array Of String): TDatosList;

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
Var
  Datos:TDatosList;
  i: Integer;
begin
     Datos:=GetDatos(['Campo 1','Campo 2','Campo3']);

     for i := Low(Datos) to High(Datos) do
        vlData.Values[Datos[i].FieldName]:=Datos[i].FieldValue;

     SetLength(Datos,0);
end;

function TForm1.GetDatos(AFields:Array Of String): TDatosList;
var
   i:Integer;
begin
     SetLength(result,length(AFields));

     for i := Low(AFields) to High(AFields) do
     begin
          result[i].FieldName := AFields[i];
          result[i].FieldValue:= 'Valor de '+AFields[i];
     end;
end;

end.

Saludos cordiales

Última edición por cloayza fecha: 20-10-2023 a las 21:44:25.
Responder Con Cita