Cita:
El asunto es que pretendo enviar la expresión como una propiedad tipo string, Expresion := ' FieldNombre + FieldApellido' y luego (no se cómo) asociarla al título así: Titulo := Expresion, esperando que en el título me quede Titulo = 'Martino Carrasquin'.
|
Hola gustavosv.
Realmente no sé si entendí lo que deseas hacer, pero este código hace estrictamente lo que solicitas arriba. Es decir, brindando los nombres de campos devuelve una cadena con sus contenidos.
Código Delphi
[-]
type
TForm1 = class(TForm)
...
procedure Button1Click(Sender: TObject);
private
FExpresion: string;
function GetExpresion: string;
procedure SetExpresion(const Value: string);
public
property Expresion: string read GetExpresion write SetExpresion;
end;
...
implementation
function TForm1.GetExpresion: string;
var
TS: TStrings;
i,j: Integer;
begin
TS:= TStringList.Create;
try
TS.Delimiter:= '+';
TS.DelimitedText:= FExpresion;
for i:= 0 to TS.Count-1 do
for j:= 0 to DataSet.FieldCount-1 do
if DataSet.Fields[j].FieldName = TS[i] then
Result:= Result +' '+ DataSet.Fields[j].AsString;
finally
TS.Free;
end;
end;
procedure TForm1.SetExpresion(const Value: string);
begin
if (FExpresion <> Value) and (Value > '') then
FExpresion:= UpperCase(Value);
end;
...
Llamada de ejemplo:
Código Delphi
[-]
begin
Caption:= '';
Expresion:= 'Nombre + Apellido+Domicilio+ Telefono +ID';
Caption:= Expresion;
end;
Tendrías que adecuar el código a tu clase y de ser necesario alguna otra evaluación en el procedimiento
SetExpresion.
Saludos.