![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cambiar propiedad boton Unit1 desde evento Unit2
Hola. A ver si alguno me podéis ayudar, por favor.
Tengo un form con sus correspondientes botones y demás componentes en una unit1 principal (SDIMAIN), que hace uso de una unit2 (BasDat), con los componentes propios de acceso a base de datos. Deseo utilizar el evento ondatachange de un datasource que está definido en BasDat, para modificar una propiedad de un botón definido en SDIMAIN, en concreto boton.enabled := true, cuando haya un cambio de datos en una tabla. Muy simplificado quedaría un código así: unit SDIMAIN ... uses BasDat... ... boton.enabled := false ... unit BasDat ... procedure TBasDat.DatosNotasDataChange(Sender: TObject; Field: TField); begin if TablaNotas.Modified then (ttable) 'poner boton de la otra unit a true'end; Gracias y un saludo. |
#2
|
||||
|
||||
Teniendo la unidad destino en el USES debes escribir Unit.Componente.Propiedad := ???
De todos modos es mejor hacerlo mediante métodos. De esta forma, si luego agregas un label u otro botón o cualquier cosa que dependa de que esté habilitado o no, solo deberás cambiar la parte de SDIMAIN y no el resto de units que lo utilizan.
Última edición por duilioisola fecha: 28-02-2012 a las 14:16:40. |
#3
|
|||
|
|||
Código Delphi [-]unit SDIMAIN
uses BasDat ... boton.enabled := false ... ------------------------------ unit BasDat uses SDIMAIN ... procedure TBasDat.DatosNotasDataChange(Sender: TObject; Field: TField); begin if TablaNotas.Modified then (ttable) SDIMAIN.Boton.Enabled := True; end; Hola, una vez realizados los cambios, al compilar produce el siguiente error [DCC Fatal Error] BasDat.pas(8): F2047 Circular unit reference to 'BasDat' Se produce una referencia de SDIMAIN en BasDat y viceversa. ¿Alguna alternativa para solucionarlo? Un saludo. |
#4
|
||||
|
||||
Si, incluí las unidades luego de la declaración de implementación:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
||||
|
||||
Tienes dos partes en una unit: Interfaces e implemantation.
Ambas tienen una sección uses. Deberás poner una en un uses de una parte y otra en la otra.
|
#6
|
|||
|
|||
Hola duilioisola y ecfisa
Muchas gracias por vuestra ayuda Ha funcionado correctamente.
Un saludo y de nuevo gracias. Última edición por jocaro fecha: 28-02-2012 a las 19:24:16. Razón: Formateo incorrecto de sintaxis delphi |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
llamar al evento click de un boton q se encuentra en un form desde otro form | TURBOIGOR | OOP | 6 | 02-12-2008 14:50:16 |
Evento de un boton | juanpe | Varios | 4 | 19-02-2007 15:54:53 |
Llamar evento OnClick de un boton desde otro Form | Peterman | OOP | 7 | 17-10-2006 18:12:31 |
Llamar a una propiedad de un boton | zvf | OOP | 2 | 12-04-2006 18:37:04 |
Adicionar propiedad a boton | mosorio | OOP | 9 | 14-05-2003 09:54:08 |
![]() |
|