PDA

Ver la Versión Completa : esconder boton segun form de llamada


Nicolas_2011
27-06-2012, 15:16:59
Buen dia foreros tengo una duda tengo 2 formularios el cual en algun momento necesitan llamar a un formulario en comun para poder seleccionar de el. ahora yo puse dos botones para que puedan seleccionar. Mi problema es que. no logro esconder uno de los botones 'Seleccionar' cuando el formulario haya sido llamado desde el otro formulario no se si me explique correctamente, si alguien me da una mano.

roman
27-06-2012, 16:26:30
No es muy clara tu pregunta. ¿Dónde están los botones? ¿Uno en cada formulario? ¿Por qué no llamas modalmente al tercer formulario para no estarte peleando con esconder botones?

// Saludos

kapcomx
27-06-2012, 16:27:04
puedes usar la propiedad visible para ocultar un boton

por ejemplo en el form 1 tienes.

form2.button1.visible:=false;
form2.show;

Saludos...:cool:

Nicolas_2011
27-06-2012, 16:44:23
No es muy clara tu pregunta. ¿Dónde están los botones? ¿Uno en cada formulario? ¿Por qué no llamas modalmente al tercer formulario para no estarte peleando con esconder botones?

// Saludos

haber si me explico mejor. tengo un formulario en el cual se cargar productos, uno de los campos a llenar es el del proveedor
tengo otro formulario en el cual se cargar las facturas de compras uno de los campos a llenar es el del proveedor
para ambos casos uso un formulario que contiene un listado de todos los proveedores.
para SELECCIONAR un proveedor de ahi y mandarlo a qien lo necesite ( form. producto o form. factura) puse dos botones en el form_listado un boton manda el registro al formulario de productos y el otro boton manda al de la factura. Ahora.. lo q quiero hacer es que por ejemplo si yo lo llamo al listado desde el form de productos el boton SELECCIONAR que corresponde al de factura este invisible. i biseversa. Espero este mas claro ja

roman
27-06-2012, 18:00:42
Si está más claro y de hecho puedo sugerirte que cambies el enfoque. ¿Qué pasa si en el futuro necesitas seleccionar un proveedor para otros formularios? Sería muy engorroso añadir un botón "Seleccionar" en el listado de proveedores por cada formulario que lo necesite.

Piénsalo de esta forma: escoger un proveedor es, en cierto sentido, similar, por ejemplo, a escoger un archivo con el cuadro de diálogo de "abrir archivo" Windows. El cuadro de diálogo no tiene un botón por cada aplicación desde la cual se pueda escoger un archivo. Dicho cuadro no tiene ningún conocimiento de las otras aplicaciones, únicamente se limita a devolver a la aplicación que llama el nombre del archivo seleccionado por el usuario.

A tu listado de proveedores puedes añadirle alguna propiedad que indique el proveedor selecionado. La implementación exacta dependerá de la manera en que estés manejando tus datos, pero, por ejemplo, podría ser una propiedad Integer con el ID del proveedor (suponiendo que la llave primaria de tu tabla de proveedores sea un entero):


type
TListaProveedores = class(TForm)
private
FProveedorId: Integer;

public
property ProveedorId: Integer read FProveedorId write FProveedorId;
end;


Cuando el usuario oprima el (único) botón "Seleccionar" de la lista de proveedores, tú asignas a FProveedorID el ID del proveedor seleccionado. El formulario que mandó llamar la lista podrá leer dicho ID. Esta podría ser una forma de llamar la lista:


if ListaProveedores.ShowModal = mrOk then
begin
ShowMessage('El ID del proveedor es: ' + IntToStr(ListaProveedores.ProveedorId));
end;


// Saludos

Nicolas_2011
27-06-2012, 18:35:26
Si está más claro y de hecho puedo sugerirte que cambies el enfoque. ¿Qué pasa si en el futuro necesitas seleccionar un proveedor para otros formularios? Sería muy engorroso añadir un botón "Seleccionar" en el listado de proveedores por cada formulario que lo necesite.

Piénsalo de esta forma: escoger un proveedor es, en cierto sentido, similar, por ejemplo, a escoger un archivo con el cuadro de diálogo de "abrir archivo" Windows. El cuadro de diálogo no tiene un botón por cada aplicación desde la cual se pueda escoger un archivo. Dicho cuadro no tiene ningún conocimiento de las otras aplicaciones, únicamente se limita a devolver a la aplicación que llama el nombre del archivo seleccionado por el usuario.

A tu listado de proveedores puedes añadirle alguna propiedad que indique el proveedor selecionado. La implementación exacta dependerá de la manera en que estés manejando tus datos, pero, por ejemplo, podría ser una propiedad Integer con el ID del proveedor (suponiendo que la llave primaria de tu tabla de proveedores sea un entero):

Código Delphi [-] (http://www.clubdelphi.com/foros/#)type TListaProveedores = class(TForm) private FProveedorId: Integer; public property ProveedorId: Integer read FProveedorId write FProveedorId; end;


Cuando el usuario oprima el (único) botón "Seleccionar" de la lista de proveedores, tú asignas a FProveedorID el ID del proveedor seleccionado. El formulario que mandó llamar la lista podrá leer dicho ID. Esta podría ser una forma de llamar la lista:

Código Delphi [-] (http://www.clubdelphi.com/foros/#)if ListaProveedores.ShowModal = mrOk then begin ShowMessage('El ID del proveedor es: ' + IntToStr(ListaProveedores.ProveedorId)); end;


// Saludos

Perfecto me pondre a analizar esa manera, Muchas gracias! Amigo ya que tengo abierto este hilo.. acaba de ocurrirme un problema con el proyecto. cerre delphi lo abri de nuevo quise abrir elproyecto y me dice One or more lines were too long and have been truncated sabes que puede ser? hace un rato teniendo el proyecto abierto se me reinicio windows7 quiza sea eso,..

Nicolas_2011
27-06-2012, 18:43:24
puedes usar la propiedad visible para ocultar un boton

por ejemplo en el form 1 tienes.
Código Delphi [-] (http://www.clubdelphi.com/foros/#)form2.button1.visible:=false; form2.show;


Saludos...:cool:

gracias por tu tiempo :D

roman
27-06-2012, 18:46:29
ya que tengo abierto este hilo.. acaba de ocurrirme un problema con el proyecto.

Otro tema, otro hilo.

// Saludos