![]() |
checkbox
Tengo un formulario con muchos checkbox, y quiero que todos ellos me abran un mismo formulario, pero con una peculiaridad; que el caption del check sea el caption de ese nuevo formulario y ademas que pueda almacenar el nombre del check en una variable. Es un poco enreversado, pero, ¿puede hacerse?
|
Hola
Es sencillo. Tienes que hacer que todos los combos apunten al mismo procedimiento y en el poner algo asi Código:
procedure TForm1.ComboBox1Change(Sender: TObject); Espero te sirva |
Claro que sí, pero para hacerlo desacoplado y que puedas usarlo en otras situacione s(osea no ligarlo al CheckBox por aquello de que hoy es checkbox mañana es primavera en el corte inglés :p (vamos que puede cambiar))
Supon que el formulario a crear es: TMiMaravillosoForm Haz, por ejemplo: Variable o Propiedad o Función (pública) por la que le pases un string a almacenar (por ejemplo, el nombre del checkbox). Ahora, el truco está en saber que el Sender de un evento es el objeto sobre el cual se realiza la acción (click, drag, etc...) Llama a este form (supongamos que estamos en la función que crea el Form, por ejemplo, en el OnCheck, que tiene un parámetro Sender). MiCheckBoxCheck(Sender: TObject); begin // un poner with TMiMaravillosoForm.Create(Self) try Caption := TCheckBox(Sender).Text; MiPropiedadMagica := TCheckBox(Sender).Name; ShowModal; finally free; end; end; Obviemente deberías declarar en TMiMaravillosoForm algo tal que: TMiMaravillosoForm = class(TForm) private // solo si caso b FNombreAGuardar: string; public // a procedure AsignaNombreAGuardar(const Nombre: string); // b property NombreAGuardar: string read FNombreAGuardar write FNombreAGuardar; // c NombreAGuardar: string; // antes que esto, mejor b. end; Como verás, he usado b, pero con otro nombre...:D |
ahora se me plantea otro problema, y es que desde el nuevo form que he hecho (hay muchos check y se me abre un unico form) quiero pasar el contenido de un memo al form de donde proceden los checks, y esto :
formprincipal.TDBMEMO(findcomponent('MEM'+ numero.caption).text:=formsecundario.memo.Text; no me sirve (me da error seguido de "formprincipal.") ¿Como lo puedo hacer?:confused: :confused: :confused: |
La franja horaria es GMT +2. Ahora son las 17:41:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi