D4: hacer tcheckbox de datos cuenta con tdbedit

D4: hacer tcheckbox de datos cuenta con tdbedit


Simple manera de hacer que algunos de los componentes de datos. Alternativa de datos de casillas de verificación (y botones de radio) que se pueden organizar de manera más flexible.

a Pesar de que las versiones más recientes de Delphi pueden ofrecer mejores formas de visualización de datos-conocimiento de las colecciones de casillas de verificación y botones de radio, yo sigo con D4. Muchas veces he deseado un data-aware componente que (a) no incluye el biselado cuadro de D4 del grupo de botones de radio, (b) puede ser hecho para parecerse a algunos de los formularios en papel, más de cerca, (c) permisos más flexible disposición de los elementos en el grupo, y (d) los permisos de patrones inusuales de botones de 'on' y 'off' simultáneamente.

En resumen, más de flexibilidad.

creo que esta receta no esta, y también ilustra simples medios para la fabricación de algunos controles que no son compatibles con datos de adquirir esta capacidad a través de la cooperación con los que son.

delphi.jpg

La parte superior e inferior de las filas de casillas de verificación están representados en el código de Delphi a continuación por las clases TCheckboxCollection y TPersonalityCBCollection respectivamente. Cada una de estas clases es un contenedor de casilla de verificación de los descriptores y sus métodos, haga Clic en, GetValue y SetValue, establecer el comportamiento de los controles colectivamente, y organizar a asociar su valor colectivo asociada con el control de datos y, por lo tanto, con el almacén de datos.

La parte superior del conjunto de casillas de verificación se comporta como un conjunto de botones de radio. En contraste, más de uno de los de menor casillas de verificación puede comprobar a la vez, y el 'RESET' casilla de verificación, puede ser utilizado para eliminar los cheques de todo a la vez.

Sus comentarios son bienvenidos!

unidad Unit1



interfaz



usa

Windows, Messages, SysUtils, Classes, Graphics, Controles, Formularios, cuadros de diálogo,

Db, StdCtrls, Máscara, DBCtrls, DBTables, ExtCtrls



tipo



TCheckboxDescriptor = clase

// ocultar el comportamiento por defecto de la casilla de verificación en respuesta

// a un clic, y simplificar la manipulación de la encapsulado objeto

privada

preClickedState: TCheckBoxState

función GetState: TCheckBoxState

procedimiento SetState ( Estado: TCheckBoxState )

público

casilla de verificación: TCheckbox

propiedad Estado: TCheckBoxState leer GetState escribir SetState

constructor Crear (theCheckbox: TCheckbox)

fin



TCheckboxCollection = clase

// asociar una base de datos-consciente cuadro de edición y su valor con una colección

// de la casilla de verificación de los descriptores de comportamiento por defecto similar a los botones de la radio

checkboxDescriptors: TList

handlingClick: Boolean

privada

función FindSender ( Sender: TObject ): TCheckboxDescriptor

función GetValue : cadena

procedimiento SetValue ( NewValue: cadena )

público

associatedDBEdit: TDBEdit

constructor Crear ( DBEdit: TDBEdit theCheckboxes: array de TCheckbox )

procedimiento haga Clic en ( Sender: TObject )

propiedad Valor: cadena leer GetValue escribir SetValue

fin



TPersonalityCBCollection = clase ( TCheckboxCollection )

// clase derivada que permite que más de una casilla de verificación para ser revisadas en el

// un tiempo, y utiliza una casilla de verificación para el restablecimiento de los demás

privada

función GetValue : cadena

procedimiento SetValue ( NewValue: cadena )

público

propiedad Valor: cadena leer GetValue escribir SetValue

procedimiento haga Clic en ( Sender: TObject )

fin



TForm1 = clase(TForm)

Tabla1: TTable

DBEdit1: TDBEdit

DataSource1: TDataSource

CheckBox1: TCheckBox

2: TCheckBox

CheckBox3: TCheckBox

CheckBox4: TCheckBox

CheckBox5: TCheckBox

CheckBox6: TCheckBox

CheckBox7: TCheckBox

CheckBox8: TCheckBox

CheckBoxNA: TCheckBox

CheckBox9: TCheckBox

CheckBox10: TCheckBox

CheckBox11: TCheckBox

CheckBox12: TCheckBox

CheckBox13: TCheckBox

CheckBox14: TCheckBox

CheckBox15: TCheckBox

CheckBox16: TCheckBox

DBNavigator1: TDBNavigator

Label1: TLabel

Label2: TLabel

Label3: TLabel

Shape1: TShape

Label4: TLabel

DBEdit2: TDBEdit

procedimiento FormCreate(Sender: TObject)

procedimiento CheckBoxNAClick(Sender: TObject)

procedimiento DBEdit1Change(Sender: TObject)

procedimiento CheckBox9Click(Sender: TObject)

procedimiento DBEdit2Change(Sender: TObject)

privada

SeverityCBs: TCheckboxCollection

PersonalityCBs: TPersonalityCBCollection

público

fin



var

Form1: TForm1



aplicación



{$R *.DFM}



constructor TCheckboxDescriptor.Crear (theCheckbox: TCheckbox)

begin

heredado Crear

casilla de verificación:=theCheckbox

// conservar el estado de diseño de la casilla de verificación

preClickedState:=theCheckbox.Estado

fin



función TCheckboxDescriptor.GetState: TCheckBoxState

begin

resultado:=preClickedState

fin



procedimiento TCheckboxDescriptor.SetState ( Estado: TCheckBoxState )

begin

casilla de verificación.Estado:=Estado

preClickedState:=Estado

fin



constructor TCheckboxCollection.Crear ( DBEdit: TDBEdit theCheckboxes: array de TCheckbox )

var

i: integer

begin

heredado Crear

associatedDBEdit:=DBEdit

checkboxDescriptors:=TList.Crear

para i:=0 para alto ( theCheckboxes ) hacer

checkboxDescriptors.Agregar(TCheckboxDescriptor.Crear(theCheckboxes[i]))

handlingClick:=false

fin



función TCheckboxCollection.FindSender ( Sender: TObject ): TCheckboxDescriptor

var

c: integer

checkboxDescriptor: TCheckboxDescriptor

begin

checkboxDescriptor:=nil

para c:=0 para checkboxDescriptors.Count - 1 hacer begin

checkboxDescriptor:=checkboxDescriptors.Los elementos[c]

si checkboxDescriptor.casilla de verificación = Remitente entonces break

fin

resultado:=checkboxDescriptor

fin



procedimiento TCheckboxCollection.Haga clic en ( Sender: TObject )

var

clickedCBDescriptor, oneCBDescriptor: TCheckboxDescriptor

c: integer

begin

si handlingClick entonces salir

handlingClick:=true

clickedCBDescriptor:=FindSender ( Remitente )

si clickedCBDescriptor.Estado = cbChecked entonces clickedCBDescriptor.Estado:=cbUnchecked

persona begin

clickedCBDescriptor.Estado:=cbChecked

para c:=0 para checkboxDescriptors.Count - 1 hacer begin

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

si oneCBDescriptor <> clickedCBDescriptor entonces oneCBDescriptor.Estado:=cbUnchecked

fin

fin

associatedDBEdit.Origen de datos.Editar

associatedDBEdit.Texto:=Valor

handlingClick:=false

fin



procedimiento TPersonalityCBCollection.Haga clic en ( Sender: TObject )

var

clickedCB: TCheckbox

clickedCBDescriptor, oneCBDescriptor: TCheckboxDescriptor

c: integer

begin

si handlingClick entonces salir

handlingClick:=true

clickedCB:=Remitente como TCheckbox

clickedCBDescriptor:=FindSender ( Remitente )

si clickedCB.Nombre = 'CheckBox16' entonces

para c:=0 para checkboxDescriptors . Count - 1 hacer begin

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

oneCBDescriptor.Estado:=cbUnchecked

fin

persona caso clickedCBDescriptor.Estado de de

cbChecked: clickedCBDescriptor.Estado:=cbUnchecked

persona clickedCBDescriptor.Estado:=cbChecked

fin

associatedDBEdit.Origen de datos.Editar

associatedDBEdit.Texto:=Valor

handlingClick:=false

fin



función TPersonalityCBCollection.GetValue : cadena

var

c, modulo, resultAsInt: integer

oneCBDescriptor: TCheckboxDescriptor

begin

resultAsInt:=0

modulo:=1

para c:=0 para checkboxDescriptors . Conde - 2 hacer begin

si c > 0 entonces modulo:=modulo * 2

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

si oneCBDescriptor.casilla de verificación.Estado = cbChecked entonces

resultAsInt:=resultAsInt modulo

fin

resultado:=IntToStr ( resultAsInt )

fin



función TCheckboxCollection.GetValue : cadena

var

c: integer

oneCBDescriptor: TCheckboxDescriptor

begin

para c:=0 para checkboxDescriptors . Count - 1 hacer begin

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

si oneCBDescriptor.casilla de verificación.Estado = cbChecked entonces begin

si oneCBDescriptor.casilla de verificación.Caption = 'N/a' resultado:='0'

persona resultado:=oneCBDescriptor.casilla de verificación.Título

break

fin

fin

fin



procedimiento TPersonalityCBCollection.SetValue ( NewValue: cadena )

var

c, modulo, patrón: integer

oneCBDescriptor: TCheckboxDescriptor

begin

si NewValue = ' salir

si handlingClick entonces salir

handlingClick:=true

modulo:=1

patrón:=StrToInt(NewValue)

para c:=0 para checkboxDescriptors . Count - 1 hacer begin

si c = 0 entonces modulo:=1 de persona modulo:=modulo * 2

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

si (patrón de y de módulo) <> 0 entonces oneCBDescriptor.Estado:=cbChecked

persona oneCBDescriptor.Estado:=cbUnchecked

fin

handlingClick:=false

fin



procedimiento TCheckboxCollection.SetValue ( NewValue: cadena )

var

c: integer

oneCBDescriptor: TCheckboxDescriptor

begin

si NewValue = ' salir

si handlingClick entonces salir

handlingClick:=true

para c:=0 para checkboxDescriptors . Count - 1 hacer begin

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

oneCBDescriptor.Estado:=cbUnchecked

fin

c:=StrToInt(NewValue)

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

oneCBDescriptor.Estado:=cbChecked

handlingClick:=false

fin



procedimiento TForm1.FormCreate(Sender: TObject)

begin

SeverityCBs := TCheckboxCollection . Crear ( DBEdit1,

[ CheckBoxNA,las casillas 1, 2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8 ] )

PersonalityCBs:=TPersonalityCBCollection.Crear ( DBEdit2,

[ CheckBox9, CheckBox10, CheckBox11, CheckBox12, CheckBox13, CheckBox14, CheckBox15, CheckBox16 ] )

Tabla1.Abierto

fin



procedimiento TForm1.CheckBoxNAClick(Sender: TObject)

begin

SeverityCBs.Haga clic en(Remitente)

fin



procedimiento TForm1.DBEdit1Change(Sender: TObject)

begin

SeverityCBs.SetValue(DBEdit1.De texto)

fin



procedimiento TForm1.CheckBox9Click(Sender: TObject)

begin

PersonalityCBs.Haga clic en(Remitente)

fin



procedimiento TForm1.DBEdit2Change(Sender: TObject)

begin

PersonalityCBs.SetValue(DBEdit2.De texto)

fin



fin.


& nbsp







D4: hacer tcheckbox de datos cuenta con tdbedit


D4: hacer tcheckbox de datos cuenta con tdbedit : Multi-millones de consejos para hacer su vida mas facil.


Simple manera de hacer que algunos de los componentes de datos. Alternativa de datos de casillas de verificacion (y botones de radio) que se pueden organizar de manera mas flexible.

a Pesar de que las versiones mas recientes de Delphi pueden ofrecer mejores formas de visualizacion de datos-conocimiento de las colecciones de casillas de verificacion y botones de radio, yo sigo con D4. Muchas veces he deseado un data-aware componente que (a) no incluye el biselado cuadro de D4 del grupo de botones de radio, (b) puede ser hecho para parecerse a algunos de los formularios en papel, mas de cerca, (c) permisos mas flexible disposicion de los elementos en el grupo, y (d) los permisos de patrones inusuales de botones de 'on' y 'off' simultaneamente.

En resumen, mas de flexibilidad.

creo que esta receta no esta, y tambien ilustra simples medios para la fabricacion de algunos controles que no son compatibles con datos de adquirir esta capacidad a traves de la cooperacion con los que son.

delphi.jpg

La parte superior e inferior de las filas de casillas de verificacion estan representados en el codigo de Delphi a continuacion por las clases TCheckboxCollection y TPersonalityCBCollection respectivamente. Cada una de estas clases es un contenedor de casilla de verificacion de los descriptores y sus metodos, haga Clic en, GetValue y SetValue, establecer el comportamiento de los controles colectivamente, y organizar a asociar su valor colectivo asociada con el control de datos y, por lo tanto, con el almacen de datos.

La parte superior del conjunto de casillas de verificacion se comporta como un conjunto de botones de radio. En contraste, mas de uno de los de menor casillas de verificacion puede comprobar a la vez, y el 'RESET' casilla de verificacion, puede ser utilizado para eliminar los cheques de todo a la vez.

Sus comentarios son bienvenidos!

unidad Unit1



interfaz



usa

Windows, Messages, SysUtils, Classes, Graphics, Controles, Formularios, cuadros de dialogo,

Db, StdCtrls, Mascara, DBCtrls, DBTables, ExtCtrls



tipo



TCheckboxDescriptor = clase

// ocultar el comportamiento por defecto de la casilla de verificacion en respuesta

// a un clic, y simplificar la manipulacion de la encapsulado objeto

privada

preClickedState: TCheckBoxState

funcion GetState: TCheckBoxState

procedimiento SetState ( Estado: TCheckBoxState )

publico

casilla de verificacion: TCheckbox

propiedad Estado: TCheckBoxState leer GetState escribir SetState

constructor Crear (theCheckbox: TCheckbox)

fin



TCheckboxCollection = clase

// asociar una base de datos-consciente cuadro de edicion y su valor con una coleccion

// de la casilla de verificacion de los descriptores de comportamiento por defecto similar a los botones de la radio

checkboxDescriptors: TList

handlingClick: Boolean

privada

funcion FindSender ( Sender: TObject ): TCheckboxDescriptor

funcion GetValue : cadena

procedimiento SetValue ( NewValue: cadena )

publico

associatedDBEdit: TDBEdit

constructor Crear ( DBEdit: TDBEdit theCheckboxes: array de TCheckbox )

procedimiento haga Clic en ( Sender: TObject )

propiedad Valor: cadena leer GetValue escribir SetValue

fin



TPersonalityCBCollection = clase ( TCheckboxCollection )

// clase derivada que permite que mas de una casilla de verificacion para ser revisadas en el

// un tiempo, y utiliza una casilla de verificacion para el restablecimiento de los demas

privada

funcion GetValue : cadena

procedimiento SetValue ( NewValue: cadena )

publico

propiedad Valor: cadena leer GetValue escribir SetValue

procedimiento haga Clic en ( Sender: TObject )

fin



TForm1 = clase(TForm)

Tabla1: TTable

DBEdit1: TDBEdit

DataSource1: TDataSource

CheckBox1: TCheckBox

2: TCheckBox

CheckBox3: TCheckBox

CheckBox4: TCheckBox

CheckBox5: TCheckBox

CheckBox6: TCheckBox

CheckBox7: TCheckBox

CheckBox8: TCheckBox

CheckBoxNA: TCheckBox

CheckBox9: TCheckBox

CheckBox10: TCheckBox

CheckBox11: TCheckBox

CheckBox12: TCheckBox

CheckBox13: TCheckBox

CheckBox14: TCheckBox

CheckBox15: TCheckBox

CheckBox16: TCheckBox

DBNavigator1: TDBNavigator

Label1: TLabel

Label2: TLabel

Label3: TLabel

Shape1: TShape

Label4: TLabel

DBEdit2: TDBEdit

procedimiento FormCreate(Sender: TObject)

procedimiento CheckBoxNAClick(Sender: TObject)

procedimiento DBEdit1Change(Sender: TObject)

procedimiento CheckBox9Click(Sender: TObject)

procedimiento DBEdit2Change(Sender: TObject)

privada

SeverityCBs: TCheckboxCollection

PersonalityCBs: TPersonalityCBCollection

publico

fin



var

Form1: TForm1



aplicacion



{$R *.DFM}



constructor TCheckboxDescriptor.Crear (theCheckbox: TCheckbox)

begin

heredado Crear

casilla de verificacion:=theCheckbox

// conservar el estado de diseño de la casilla de verificacion

preClickedState:=theCheckbox.Estado

fin



funcion TCheckboxDescriptor.GetState: TCheckBoxState

begin

resultado:=preClickedState

fin



procedimiento TCheckboxDescriptor.SetState ( Estado: TCheckBoxState )

begin

casilla de verificacion.Estado:=Estado

preClickedState:=Estado

fin



constructor TCheckboxCollection.Crear ( DBEdit: TDBEdit theCheckboxes: array de TCheckbox )

var

i: integer

begin

heredado Crear

associatedDBEdit:=DBEdit

checkboxDescriptors:=TList.Crear

para i:=0 para alto ( theCheckboxes ) hacer

checkboxDescriptors.Agregar(TCheckboxDescriptor.Crear(theCheckboxes[i]))

handlingClick:=false

fin



funcion TCheckboxCollection.FindSender ( Sender: TObject ): TCheckboxDescriptor

var

c: integer

checkboxDescriptor: TCheckboxDescriptor

begin

checkboxDescriptor:=nil

para c:=0 para checkboxDescriptors.Count - 1 hacer begin

checkboxDescriptor:=checkboxDescriptors.Los elementos[c]

si checkboxDescriptor.casilla de verificacion = Remitente entonces break

fin

resultado:=checkboxDescriptor

fin



procedimiento TCheckboxCollection.Haga clic en ( Sender: TObject )

var

clickedCBDescriptor, oneCBDescriptor: TCheckboxDescriptor

c: integer

begin

si handlingClick entonces salir

handlingClick:=true

clickedCBDescriptor:=FindSender ( Remitente )

si clickedCBDescriptor.Estado = cbChecked entonces clickedCBDescriptor.Estado:=cbUnchecked

persona begin

clickedCBDescriptor.Estado:=cbChecked

para c:=0 para checkboxDescriptors.Count - 1 hacer begin

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

si oneCBDescriptor <> clickedCBDescriptor entonces oneCBDescriptor.Estado:=cbUnchecked

fin

fin

associatedDBEdit.Origen de datos.Editar

associatedDBEdit.Texto:=Valor

handlingClick:=false

fin



procedimiento TPersonalityCBCollection.Haga clic en ( Sender: TObject )

var

clickedCB: TCheckbox

clickedCBDescriptor, oneCBDescriptor: TCheckboxDescriptor

c: integer

begin

si handlingClick entonces salir

handlingClick:=true

clickedCB:=Remitente como TCheckbox

clickedCBDescriptor:=FindSender ( Remitente )

si clickedCB.Nombre = 'CheckBox16' entonces

para c:=0 para checkboxDescriptors . Count - 1 hacer begin

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

oneCBDescriptor.Estado:=cbUnchecked

fin

persona caso clickedCBDescriptor.Estado de de

cbChecked: clickedCBDescriptor.Estado:=cbUnchecked

persona clickedCBDescriptor.Estado:=cbChecked

fin

associatedDBEdit.Origen de datos.Editar

associatedDBEdit.Texto:=Valor

handlingClick:=false

fin



funcion TPersonalityCBCollection.GetValue : cadena

var

c, modulo, resultAsInt: integer

oneCBDescriptor: TCheckboxDescriptor

begin

resultAsInt:=0

modulo:=1

para c:=0 para checkboxDescriptors . Conde - 2 hacer begin

si c > 0 entonces modulo:=modulo * 2

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

si oneCBDescriptor.casilla de verificacion.Estado = cbChecked entonces

resultAsInt:=resultAsInt modulo

fin

resultado:=IntToStr ( resultAsInt )

fin



funcion TCheckboxCollection.GetValue : cadena

var

c: integer

oneCBDescriptor: TCheckboxDescriptor

begin

para c:=0 para checkboxDescriptors . Count - 1 hacer begin

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

si oneCBDescriptor.casilla de verificacion.Estado = cbChecked entonces begin

si oneCBDescriptor.casilla de verificacion.Caption = 'N/a' resultado:='0'

persona resultado:=oneCBDescriptor.casilla de verificacion.Titulo

break

fin

fin

fin



procedimiento TPersonalityCBCollection.SetValue ( NewValue: cadena )

var

c, modulo, patron: integer

oneCBDescriptor: TCheckboxDescriptor

begin

si NewValue = ' salir

si handlingClick entonces salir

handlingClick:=true

modulo:=1

patron:=StrToInt(NewValue)

para c:=0 para checkboxDescriptors . Count - 1 hacer begin

si c = 0 entonces modulo:=1 de persona modulo:=modulo * 2

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

si (patron de y de modulo) <> 0 entonces oneCBDescriptor.Estado:=cbChecked

persona oneCBDescriptor.Estado:=cbUnchecked

fin

handlingClick:=false

fin



procedimiento TCheckboxCollection.SetValue ( NewValue: cadena )

var

c: integer

oneCBDescriptor: TCheckboxDescriptor

begin

si NewValue = ' salir

si handlingClick entonces salir

handlingClick:=true

para c:=0 para checkboxDescriptors . Count - 1 hacer begin

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

oneCBDescriptor.Estado:=cbUnchecked

fin

c:=StrToInt(NewValue)

oneCBDescriptor:=checkboxDescriptors.Los elementos[c]

oneCBDescriptor.Estado:=cbChecked

handlingClick:=false

fin



procedimiento TForm1.FormCreate(Sender: TObject)

begin

SeverityCBs := TCheckboxCollection . Crear ( DBEdit1,

[ CheckBoxNA,las casillas 1, 2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8 ] )

PersonalityCBs:=TPersonalityCBCollection.Crear ( DBEdit2,

[ CheckBox9, CheckBox10, CheckBox11, CheckBox12, CheckBox13, CheckBox14, CheckBox15, CheckBox16 ] )

Tabla1.Abierto

fin



procedimiento TForm1.CheckBoxNAClick(Sender: TObject)

begin

SeverityCBs.Haga clic en(Remitente)

fin



procedimiento TForm1.DBEdit1Change(Sender: TObject)

begin

SeverityCBs.SetValue(DBEdit1.De texto)

fin



procedimiento TForm1.CheckBox9Click(Sender: TObject)

begin

PersonalityCBs.Haga clic en(Remitente)

fin



procedimiento TForm1.DBEdit2Change(Sender: TObject)

begin

PersonalityCBs.SetValue(DBEdit2.De texto)

fin



fin.


& nbsp

D4: hacer tcheckbox de datos cuenta con tdbedit

D4: hacer tcheckbox de datos cuenta con tdbedit : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación