PDA

Ver la Versión Completa : Guardar muchos muchos Tedit


el-mono
26-09-2008, 16:22:20
Hola gente voy explicar mi problema espero ser claro.

Estoy desarrollando un sistema Oontologico y me quede trabado en lo que se llama FICHA PERIODENTAL que funciona asi:

Tengo 96 TEdit cada 3 TEdit corresponden a la primer pieza Dentaria los tres siguientes a la siguiente pieza dentaria y asi hasta completar todas las piezas dentarias , en los TEdit se escriben Numeros.

Lo que necesito es un procedimiento que se dispare al presionar el boton guardar y que controle que si al menos uno de los 3 Edit tiene un valor crear un registro en una tabla asi:

NroDiente Valor1 Valor 2 Valor 3

18 TEdit1 TEdit2 TEdit3
36 TEdit2 TEdit2 TEdit3
48 TEdit3 TEdit3 TEdit3

Si ninguno de los 3 TEdit que se corresponden a unapieza dentaria no crtear niungun registro. Utilizo Delphi 7, Firebird 2.1 y DBX para conexion.

Quizas con esto se entienda mas:

mi problema es que debo comprobar los 3 TEdit que pertenecen al Diente y recien si alguno de los tres tiene algo
grabar un registro para ese diente por ejemplo:

Diente 18
Edit1 := 5;
Edit2 := 0;
Edit3 := 0;

Diente 36
Edit1 := 0;
Edit2 := 0;
Edit3 := 0;



En la tabla debo de guardar los tres Edit asi:

Diente Dato1 Dato2 Dato3

18 5 0 0

Para el diente 36 Ningun registro y asi con todos.


Esperando una respuesta pronto y hallan entendido y ser claro.
Saludos
Mario

roman
26-09-2008, 16:35:27
Yo usaría frames. Creas un frame (File|New|Frame) al que llamas TFrameDiente o como quieras. Dentro colocas tres TEdit y agregas una propiedad pública NumeroDiente:


type
TTFrameDiente = class(TFrame)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
public
NumeroDiente: Integer;
end;


La conveniencia del Frame es que puedes diseñarlo aparte del formulario y reusarlo tantas veces como quieras en el formulario:

http://img217.imageshack.us/img217/5048/framekb2.png (http://imageshack.us)
http://img217.imageshack.us/img217/framekb2.png/1/w434.png (http://g.imageshack.us/img217/framekb2.png/1/)

Entonces, tendrías 32 frames de este tipo, uno por cada diente. A la hora de guardar los registros revisas cada frame y simplemente verificas el valor de cada edit del frame:


// Revisar diente 18

if (Frame18.Edit1.Text <> '') or (Frame18.Edit2.Text <> '') or (Frame18.Edit3.Text <> '') then
begin

{ Guardas el registro }

end;


// Saludos

el-mono
30-09-2008, 02:15:36
Muchas gracias Roman Eternamente agradecido!!!!:)

dec
30-09-2008, 02:51:20
Hola,

Siguiendo lo que dice Román, en lugar de esto:


// Revisar diente 18

if (Frame18.Edit1.Text <> '') or (Frame18.Edit2.Text <> '') or (Frame18.Edit3.Text <> '') then
begin

{ Guardas el registro }

end;


... el "Frame" podría incorporar algún método que nos echara una mano, como "IsEmptyEdits()", que nos podría servir para mejorar la legibilidad del código, en cuanto a que sería este método quien se encargarse de comprobar si los distintos "edits" están "vacíos" o qué. ;)

roman
30-09-2008, 06:40:33
"IsEmptyEdits()"

¿Que no sería más bien EstaLimpioElDiente? :D

Ya e serio, es buena idea :)

// Saludos