Ver Mensaje Individual
  #2  
Antiguo 03-05-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Siguiendo la POO:

Tu ventana hija debería ser así (centrate en GetCaption, SetCaption y Mostrar, cuando funcione, añade más propiedades):
Código Delphi [-]
type Tformahija = class(Tform)

private
   FCaption: string; // el caption de la ventana que siempre es fijo.
   FnumAux : integer;
   procedure SetnumAux(Value:integer);

  function GetCaption:string;
  procedure SetCaption(Value:string);
public

property numAux:integer read FnumAux write SetnumAux;
property Mostrar:string read GetCaption write SetCaption;
end;

implementation

procedure Tformahija.formahijaCreate(...); // evento de crear la ventana
begin 
 FnumAux := 0 ; // por defecto este valor.
 FCaption := 'Ventana de productos';
end;

procedure Tformahija.SetNumAux(value:integer);
begin
  // value es el valor que se quiere asignar a numAux.
  // FnumAux es el valor que tiene actualmente la propiedad numAux.
  if FnumAux <> Value then
  begin
    FnumAux := VAlue;
    // hacer otras cosas cuando se asigne esta propiedad.
  end;
end;

// aquí estaba el error, Value era de tipo integer, cuando en realidad es un string.
procedure Tformahija.SetCaption(value:string);
begin
  Caption := Fcaption + ' - ' + Value;
end;

function TFormahija.GetCaption:string;
var idx:integer;
begin
  // devolver solo la cadena ' - Seleccionar cantidad'
  idx := length(Fcaption);
  Result := Copy(Fcaption, idx+3, 255);
end;

Ahora, cuando hagas esta asignación:
Código Delphi [-]
childwindow.Mostrar := 'Seleccionar Cantidad';
automáticamente se ejecuta el procedimiento Set (SetCaption) que modifica el caption de la ventana inmediatamente.

Cuando hagas una lectura de la propiedad:
Código Delphi [-]
mistring := formahija.Mostrar
Se ejecuta la función Get (GetCaption), que devolverá solo la parte derecha del caption.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 03-05-2007 a las 18:18:41.
Responder Con Cita