![]() |
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. |
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.
|
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. |
Cita:
Saludos. |
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.
|
Hola duilioisola y ecfisa
Muchas gracias por vuestra ayuda Ha funcionado correctamente.
Un saludo y de nuevo gracias. |
| La franja horaria es GMT +2. Ahora son las 03:53:03. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi