![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#17
|
|||
|
|||
|
Hola a todos.
Sitrico, probe el FastMM y tampoco funciona, por la informacion que brindaba en la pagina talvez me podria servir, pero el error sigue apareciendo. Seguro el FastMM servira para otras cosas, pero no especificamente para este caso. Gracias igual. Lepe, tenes razon en todo lo que decis. Tené en cuenta que soy un programador novato, que se puso a trabajar en un proyecto muy grande (por lo menos para mi). Te explico porque no use un solo form y despues lo repito en tiempo de ejecucion, como dijo Sitrico (o alguna variante que permite crear los forms en tiempo de ejecucion): For i = 0 to CantidadAgendas do Begin f[i] := tAgendaDetallada.Create(self); f[i].SetIdAgendaDetallada(i); // aqui escribes un case qure diferencia los parametros de las agendas End;Me parece que de esta forma todos los eventos de todos los forms seran los mismos y si es asi yo no tengo forma de saber en que gabinete se esta realizando alguna opèracion. Para que entiendas mejor te comento para en donde se utilizara el sistema. El sistema es para una empresa que brinda servicios de SPA (sesiones de masajes, esteticas, hidroterapias, etc.). Hay clientes que dicen "quiero tener un dia de SPA". Entonces actualmente existe una agenda manual (papel), en donde existen todos los gabinetes disponibles hasta ahora (en total 20). Como las personas encargadas de realizar las reservas y organizar las sesiones que puede tomar un cliente (varias sesiones de estetica facial, corporal, etc.), NECESITAN tener una vision de todos los gabinetes para organizar las sesiones (actualmente les lleva algunos segundos organizar por ejemplo para un cliente varias sesiones, mentalmente por lo menos, diciendo por ejemplo: entra al establecimiento a las 10:00hs, 10:15 clase de relajacion en gabiente 4, 11:30hs hidroterapia en gabinete 12, 12:30hs almuerzo en gabiente 18, 14:00hs estetica facial en gabiente 2, etc. Este tipo de operacion se realiza constantemente lo que me obliga a tener en todo momento todos los gabinetes, por esta razon yo opte por mostrar en cada form 5 gabinetes, con un total de 20 gabientes en 4 forms en donde se brindan sesiones de un determinado tipo, otro form con 10 gabientes en donde se brindan sesiones de otro tipo que no es necesario mostrar tanta informacion por lo que pude poner 10 gabinete, 2 form mas en donde puse 8 gabiente en cada uno. "Un total de 46 gabinetes". De estos 46 gabinetes los que mas se usan son los primeros 20, los cuales se pueden llegar a mostrar en la pantalla organizandola en forma de mozaico horizontal (gracias al ser los forms del tipo fsMDIChild). Los forms no solo muestran las reservas, sino que tambien permiten agregar reservas, muestra el estado de la reserva (por ejemplo de color verde si el cliente ya esta en el establecimiento, amarillo si todavia no llego, tambien muestra un color verde si la sesion ya fue pagada o un color rojo si falta pagar la sesion; al tener que mostrar mucha informacion en un espacio muy chico, opte por una codificacion de colores para brindar mucha informacion), tambien permite agendar sesiones con un solo click, algo muy similar a elegir un cliente, y despues de una lista de sesiones elegir una sesion y arrastarla hasta un gabinete, y de esta forma el cliente queda agendado en un gabinete dado, a una hora especifica. Por esta razon yo utilizo varios forms, para que por ejemplo para agendar una sesion en un gabinete xx de un formx se produzca el siguiente evento: procedure Tagendadetallada4.Edit314Click(Sender: TObject); begin enhor := 25; engab := 11; agendarsesion; end; Ya en el procedimiento "agendarsesion" determino que el gabiente es 11 y la hora es 25, ya despues disparo la instruccion que actualiza la tabla de reservas, con la informacion necesaria, finalmente actualizo la pantalla, con la reserva dada mediante una instruccion (simplificada): procedure mostrarreservaenpantalla; begin pla[engab,enhor,1].Text := agen[cli].nombre + ' ' +agen[cli].nombre2; pla[engab,enhor,1].color := xcolor; pla[engab,enhor,2].Text := agen[cli].numsesio[nrosesion].servisio; pla[engab,enhor,2].color := xxcolor; end; siendo "pla" un array de punteros a tedits: pla: array[1..46,1..96,1..2] of ^Tedit; siendo 1..46 los gabinetes disponibles, 1..96 la hora: 1 representa la hora 00:00hs, 2 representa la hora 00:15hs, 3 representa la hora 00:30hs,etc. El array se carga con la direccion de memoria de los tedits cuando se crea el form: procedure Tagendadetallada4.FormCreate(Sender: TObject); begin ... pla[11,1,1] := @edit117; pla[11,2,1] := @edit118; pla[11,3,1] := @edit119; pla[11,4,1] := @edit120; pla[11,5,1] := @edit121; pla[11,6,1] := @edit176; pla[11,7,1] := @edit122; ... end; Lepe, si pudiste leer todo lo anterior te daras cuenta que si bien todos los archivos agendadetalladasxxxx.dpr son iguales, lo unico que cambia son los archivos agendadetalladasxxx.pas, mas precisamente todos los eventos. (oncreate del form; onclick, ondblclick, onmouseenter, onmouseleave de los tedits, en la mayoria solo cambia el valor de la variable "engab", que guarda el gabinete. Cuando estuve realizando las agendadetalladas me di cuenta que era demasiado desperdicio de recursos, pero fue la unica forma que encontre de realizar lo que yo necesitaba. Si existe alguna forma de crear en tiempo de ejecucion todos los forms y que en los eventos de los tedis pueda determinar a que gabinete pertenece seguro seria "mucho meyor". |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Crear proyecto cliente / servidor | Aprendiendo | Conexión con bases de datos | 1 | 02-01-2006 15:28:49 |
| Crear Instalador para proyecto en Delphi | mieltxo | Varios | 1 | 14-12-2005 12:05:38 |
| En mi aplicacion MDI quiero crear una ventana hija desde otra ventana hija | Durbed | Varios | 8 | 05-07-2005 11:51:54 |
| Error en proyecto? | danytorres | Varios | 1 | 05-12-2003 15:35:29 |
| Como pasar parametros de una forma hija a otra forma hija | luisreg | OOP | 3 | 17-09-2003 18:18:50 |
|