Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2022
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Asignar variable a formulario

buenas tardes
tengo un formulario el cual puede ser llamado desde otro formularios
la idea es identificar a traves de una letra el origen

algo asi como
form1
frmGramaje._origen = 'P';
form2
frmGramaje._origen = 'E';
form3
frmGramaje._origen = 'X';
form4
frmGramaje._origen = 'L';

en el evento oncreate de frmGramajes tengo un if, pero el valor de _origen viene en blanco

como puedo capturar ese dato ('P','E', etc) ???
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 21-03-2022
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
tuve que hacer la pregunta en el activate y no en el create
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 22-03-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por oscarac Ver Mensaje
tengo un formulario el cual puede ser llamado desde otro formularios
la idea es identificar a traves de una letra el origen
El problema es que no vemos el resto de código que estás utilizando para crear y asignar ese valor. Así que no podemos sugerirte otra opción.

Cita:
Empezado por oscarac Ver Mensaje
tuve que hacer la pregunta en el activate y no en el create
El problema del evento OnActivate, es que se lanza continuamente (y seguramente más veces de las que necesitas).
A priori yo te sugeriría que utilizaras el OnShow o que utilices alguna otra forma de hacerlo (sobreescribiendo el OnCreate, por ejemplo).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 28-03-2022
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Código Delphi [-]
  frmCatalogoPlato := TfrmCatalogoPlato.Create(self);
  frmCatalogoPlato._Origen := 'I';
  frmCatalogoPlato.ShowModal;

cuando hago esto, la variable "_Origen" no toma el valor de 'I' antes del form.create

en el create tengo un case

case _origen = 'I'... haz esto
case _origen = 'P'... haz esto
case _origen = 'M'... haz esto



la pregunta es...
como puedo hacer para que el formulario CatalogoPlato inicie con el valor 'I' en la variable _Origen
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 28-03-2022
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola, oscarac.

Según tu última respuesta entiendo que estás tratando de manejar el valor de la variable en el evento OnCreate, pero cuando pasas de la creación y tratas de asignar el valor a la variable, ya el evento OnCreate fue llamado y no puedes manipular la variable allí.

Como te dice Neftalí, puedes hacer la asignación y manejarla en el evento OnShow, puedes sobrescribir el evento de construcción del form (Create) o puedes manejar un evento al asignar el valor de la propiedad,

Ej: acá tengo el Form2, al cual le he añadido las propiedades _Origen y _Origen2 que apuntan a la misma variable F_Origen; También he sobrecargado la creación del TForm añadiendo el manejo de la variable Origen.

Código Delphi [-]
type
  TForm2 = class(TForm)
    Edit1: TEdit;
    procedure FormShow(Sender: TObject);
  private
    F_Origen: string;
    procedure set_Origen2(const Value: string);
    { Private declarations }
  public
    constructor Create(AOwner: TComponent; Origen:string); overload;
    property _Origen: string read F_Origen write F_Origen;
    property _Origen2: string read F_Origen write set_Origen2;
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

{ TForm2 }

constructor TForm2.Create(AOwner: TComponent; Origen:string);
begin
  inherited Create(AOwner);

  F_Origen := Origen;
end;

procedure TForm2.FormShow(Sender: TObject);
begin
  Edit1.Text := Format('Origen: %s', [F_Origen]);
end;

procedure TForm2.set_Origen2(const Value: string);
begin
  F_Origen := Value;
  ShowMessage(Format('Origen: %s', [F_Origen]));
end;

end.

Desde otro formulario solo debo crear el formulario con el nuevo constructor

Código Delphi [-]
procedure TForm1.btnUseCreateClick(Sender: TObject);
  var
    lForm: TForm2;
begin
  lForm := TForm2.Create(Self, obtOrigen);
  try
    lForm.ShowModal;
  finally
    lForm.Free;
  end;
end;

Crear el formulario y asignar el valor de la propiedad _Origen

Código Delphi [-]
procedure TForm1.btnAssignPropClick(Sender: TObject);
  var
    lForm: TForm2;
begin
  lForm := TForm2.Create(Self);
  try
    lForm._Origen := obtOrigen;
    lForm.ShowModal;
  finally
    lForm.Free;
  end;
end;

o crear el formulario y asignar el valor de la propiedad _Origen2

Código Delphi [-]
procedure TForm1.btnAssignProp2Click(Sender: TObject);
  var
    lForm: TForm2;
begin
  lForm := TForm2.Create(Self);
  try
    lForm._Origen2 := obtOrigen;
    lForm.ShowModal;
  finally
    lForm.Free;
  end;
end;

En todos los llamados, el resultado es el mismo. En el evento OnShow alimenta un edit con el origen que haya seleccionado. Con la diferencia que en el caso de asignar el valor a _Origen2 presentará un mensaje antes de presentar el formulario.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #6  
Antiguo 28-03-2022
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
ya esta....
investigue en como modificar el constructor del create y me funciona.



cuando lo invoco

Código Delphi [-]
 frmCatalogoPlato := TfrmCatalogoPlato.Create(Owner, 'I', qryInsumosKOd.Asstring);
  frmCatalogoPlato.Show;


en el formulario....
Código Delphi [-]
 constructor Create(AOwner: TComponent; Origen, Codigo: String); virtual;

Código Delphi [-]
constructor TfrmCatalogoPlato.Create(AOwner: TComponent; Origen, Codigo: String);
 //procedure TfrmCatalogoPlato.FormCreate(Sender: TObject);
var strSql : string;
begin
  inherited create(Owner);
  dmGlobal.vResultVar := '';
  dmGlobal.vResultTexto := '';
  if Origen = 'M' then
    StrSql := 'Select * from TblPlato where Empresa = :Empresa order by Kod'
  else
    StrSql := 'Select * from TblPlato C ' +
              'Left Join tblPlatoD D on c.Empresa = d.empresa and c.KOD = d.kod ' +
              'where C.Empresa = :Empresa and d.codigo = ' + QuotedStr(Codigo);


funciona como quiero...
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
Respuesta



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
Asignar 2 combobox a una variable DOS Varios 18 04-10-2013 03:05:25
Asignar el valor de una variable de php a una variable js que puede no existir jandroruiz PHP 5 04-03-2013 12:23:02
Introducir una variable en una variable obtenida de un formulario jandroruiz PHP 4 28-02-2013 21:56:35
asignar el resultado de un sql a una variable Cañones SQL 2 14-04-2007 15:29:43
como asignar un valor a una variable juan Varios 6 18-06-2003 01:26:19


La franja horaria es GMT +2. Ahora son las 01:42:24.


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