Sistema de programación/next (anterior) en mdi editores
'Cómo' del programa el menú sistema de la ventana secundaria MDI de windows
de un MDI editor de texto o textwriter a cambio de Next y Prev
de la z-pila de ejecución de útiles de escritura/edición de tareas
Sistema de Programación/Next (Anterior) en MDI editores
Por Gene Fowler
[email protected]
la Escritura extendida de Blocs de notas es una práctica común, y el nuevo Bloc de notas
es casi siempre una aplicación MDI. TextEdit es una 'muestra' o
'demo' que ha estado en cada Delphi paquete. Escribí esto para mi
propia extendido el Bloc de notas que se inició en TextEdit, en 1997, por lo que
yo ni siquiera tienen que cambiar los nombres de las unidades para que usted ponga el código
en el editor de texto de la fuente, compilar y ejecutar las pruebas.
El MDI hijo menú de Sistema de la Siguiente ha cambiado desde el tiempo
inmemoriales. Es un programador de 'prueba de funcionamiento' de la z-pila de abrir
windows (editores, en nuestro caso). Abrir un número de archivos o editores.
Mantener golpear Sistema/Siguiente o Ctrl F6 y te sigue poniendo la parte superior
la tarjeta en la parte inferior de la pila. El uso de la (oculto) Sistema/Prev
golpear Shift F6 Ctrl y hacer un reverse run trayendo la parte inferior
tarjeta en la parte superior. Útil en pruebas alfa. No es útil en una
editor. Después de saltar entre las ventanas de un tiempo, el 'z-stack' no
ya no refleja la carga (o la ventana número) el orden y la de tener
una especie de azar de la ventana de acceso.
¿Qué sería útil para un escritor o editor sería mantener
intercambio de la parte superior de dos de windows y, después de saltar a otra ventana
o la apertura de uno nuevo, para volver a los dos y van de intercambio.
El siguiente código implementa esto. Sistema/Siguiente o Ctrl F6 va a hacer
el intercambio incorporar el siguiente a la parte superior a la parte superior. La última
dos posiciones son recordados después de cada uso de la Siguiente y, si
posiciones se desplazan, Shift Ctrl F6 restaurará los dos a
sus posiciones después de que el último Sistema/Siguiente o Ctrl F6. Esto le
trabajo en cualquier Delphi de 32 bits.
Si está compilando TextEdit en Delphi 5.0 o (después de la aplicación
el Paquete de Actualización) 5.01, usted tendrá un inestable TextEdit para poner
esta en. Cualquier programa MDI como TextEdit el uso combinado de los menús
descanso y bloqueo de seguridad cuando el interruptor al máximo windows. En Delphi 1
a través de 4 un menor gravedad del resultado producido. El botón [x] de
el nuevo editor de color gris, pero funcional. Este fue
porque no 'Restaurar ... Maximizar' entre corchetes el interruptor. Estos fueron
añadidos como una idea de último momento para forzar el menú en una útil
estado. En 5.0, el 'forzar código' fue quitado. Pero no horquillado
fue insertado. Por lo tanto, el total de choque. Soluciones para la D4 problema
apareció en el Delphi lista de Bugs (no de Borland). Uno de los
soluciones para resolver el D5 problema. Esta dirección URL se llevará a
artículo 0372 en el Delphi lista de errores:
http://www.jrsoftware.org/buglist/generated/entry0372.htm
Copia de Greg Chapman procedimiento (TCustomForm.MergeMenu) en un
archivo y guárdelo. Hacer una copia de los formularios.pas y reemplazar
procedimiento en las formas.pas con Chapman. Poner la alteración de las formas.pas
en el TextEdit directorio del proyecto y hacer una compilación de TextEdit.
he leído que se suministra fuente de la VCL no siempre coincide con la
DCU, pero esto parece no causar problemas. Aún así, es
una buena idea para limitar la alteración de la unidad individual de un proyecto MDI
directorios y no lo utilizan generalmente como nuevas formas.pas en su
ruta de la biblioteca.
El siguiente código es un controlador de mensajes para colocar en MDIEdit.pas
y dos de respuesta rutinas para colocar en MDIFrame.pas. Las declaraciones
también se encuentran aquí.
Código:
{ Este mensaje de controlador en el MDIEdit.pas de la unidad de la
& nbsp & nbsp Borland demo TextEdit utilizado como un banco de pruebas para este proyecto.
}
tipo
& nbsp & nbsp TEditForm = class(TForm)
& nbsp & nbsp ...
& nbsp & nbsp privada
& nbsp & nbsp & nbsp & nbsp ...
& nbsp & nbsp & nbsp & nbsp procedimiento WMSysCommand(var Msg: TWMSysCommand)
mensaje de WM_SYSCOMMAND
& nbsp & nbsp & nbsp & nbsp ...
procedimiento TEditForm.WMSysCommand(var Msg: TWMSysCommand)
begin
& nbsp & nbsp & nbsp Caso Msg.CmdType de
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SC_NextWindow:
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp FrameForm.GetNext
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp SC_PREVWINDOW:
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp FrameForm.GetPrev
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp demás heredado
& nbsp & nbsp & nbsp final
fin
{ Estas dos rutinas están en la MDIFrame.pas de la unidad de la
& nbsp & nbsp Borland demo TextEdit utilizado como un banco de pruebas para este proyecto.
}
tipo
& nbsp & nbsp TFrameForm = class(TForm)
& nbsp & nbsp & nbsp & nbsp ...
& nbsp & nbsp & nbsp & nbsp procedimiento GetNext
& nbsp & nbsp & nbsp & nbsp procedimiento GetPrev
& nbsp & nbsp & nbsp & nbsp ...
var
& nbsp & nbsp ...
& nbsp & nbsp IsMaxed: boolean
& nbsp & nbsp F6One: string
& nbsp & nbsp F6Two: cadena
aplicación
procedimiento TFrameForm.GetNext
begin
& nbsp & nbsp si MDIChildCount < 2, a continuación,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp messageBeep(0)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp LockWindowUpdate(Asa)
& nbsp & nbsp F6One := ActiveMDIChild.Título
& nbsp & nbsp si ActiveMDIChild.WindowState = wsMaximized, a continuación,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp IsMaxed := True
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ActiveMDIChild.WindowState := wsNormal
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp MDIChildren[1].BringToFront
& nbsp & nbsp si IsMaxed, a continuación,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp IsMaxed := False
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ActiveMDIChild.WindowState := wsMaximized
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp F6Two := ActiveMDIChild.Título
& nbsp & nbsp LockWindowUpdate(0)
fin
procedimiento TFrameForm.GetPrev
var
& nbsp & nbsp i: integer
begin
& nbsp & nbsp si MDIChildCount < 2, a continuación,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp messageBeep(0)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp final
& nbsp LockWindowUpdate(Asa)
& nbsp & nbsp si ActiveMDIChild.WindowState = wsMaximized, a continuación,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp IsMaxed := True
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ActiveMDIChild.WindowState := wsNormal
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp for i := 0 a MDIChildCount - 1 hacer
& nbsp & nbsp & nbsp & nbsp si MDIChildren[i].Caption = F6One, a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp MDIChildren[i].BringToFront
& nbsp & nbsp for i := 0 a MDIChildCount - 1 hacer
& nbsp & nbsp & nbsp & nbsp si MDIChildren[i].Caption = F6Two, a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp MDIChildren[i].BringToFront
& nbsp & nbsp si IsMaxed, a continuación,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp IsMaxed := False
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ActiveMDIChild.WindowState := wsMaximized
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp LockWindowUpdate(0)
fin
| Entrelazado Bibliografía |
empecé ad-libbing estos artículos en hacer algunas de las cosas que puedo hacer & nbsp en eWriter en el Delphi demo TextEdit (a partir de la cual he construido eWriter). & nbsp Es natural a acumular todas estas en una copia de la edición de textos. Y & nbsp usted podría tener que ir hacia atrás y adelante para llenar de nuevo, perdidas, o & nbsp cambió rutinas de compatibilidad. Caja notas que aparecen la mayoría de los lugares. Figura & nbsp está en curso 'tienda' conversación... |
- Sistema de Programación/Next (Anterior) en MDI editores
http://www.HowToDoThings.com/showarticle.asp?article=143
- Selectivo Mosaico en MDI Editores
http://www.HowToDoThings.com/showarticle.asp?article=147
- Ventana de Seguimiento de los Números en MDI Editores
http://www.HowToDoThings.com/showarticle.asp?article=154
- Párrafo 'verter' desde un editor de texto
http://www.HowToDoThings.com/showarticle.asp?article=178
|
Sistema de programacion/next (anterior) en mdi editores
Sistema de programacion/next (anterior) en mdi editores : Multi-millones de consejos para hacer su vida mas facil.
'Como' del programa el menu sistema de la ventana secundaria MDI de windows
de un MDI editor de texto o textwriter a cambio de Next y Prev
de la z-pila de ejecucion de utiles de escritura/edicion de tareas
Sistema de Programacion/Next (Anterior) en MDI editores
Por Gene Fowler
[email protected]
la Escritura extendida de Blocs de notas es una practica comun, y el nuevo Bloc de notas
es casi siempre una aplicacion MDI. TextEdit es una 'muestra' o
'demo' que ha estado en cada Delphi paquete. Escribi esto para mi
propia extendido el Bloc de notas que se inicio en TextEdit, en 1997, por lo que
yo ni siquiera tienen que cambiar los nombres de las unidades para que usted ponga el codigo
en el editor de texto de la fuente, compilar y ejecutar las pruebas.
El MDI hijo menu de Sistema de la Siguiente ha cambiado desde el tiempo
inmemoriales. Es un programador de 'prueba de funcionamiento' de la z-pila de abrir
windows (editores, en nuestro caso). Abrir un numero de archivos o editores.
Mantener golpear Sistema/Siguiente o Ctrl F6 y te sigue poniendo la parte superior
la tarjeta en la parte inferior de la pila. El uso de la (oculto) Sistema/Prev
golpear Shift F6 Ctrl y hacer un reverse run trayendo la parte inferior
tarjeta en la parte superior. Util en pruebas alfa. No es util en una
editor. Despues de saltar entre las ventanas de un tiempo, el 'z-stack' no
ya no refleja la carga (o la ventana numero) el orden y la de tener
una especie de azar de la ventana de acceso.
¿Que seria util para un escritor o editor seria mantener
intercambio de la parte superior de dos de windows y, despues de saltar a otra ventana
o la apertura de uno nuevo, para volver a los dos y van de intercambio.
El siguiente codigo implementa esto. Sistema/Siguiente o Ctrl F6 va a hacer
el intercambio incorporar el siguiente a la parte superior a la parte superior. La ultima
dos posiciones son recordados despues de cada uso de la Siguiente y, si
posiciones se desplazan, Shift Ctrl F6 restaurara los dos a
sus posiciones despues de que el ultimo Sistema/Siguiente o Ctrl F6. Esto le
trabajo en cualquier Delphi de 32 bits.
Si esta compilando TextEdit en Delphi 5.0 o (despues de la aplicacion
el Paquete de Actualizacion) 5.01, usted tendra un inestable TextEdit para poner
esta en. Cualquier programa MDI como TextEdit el uso combinado de los menus
descanso y bloqueo de seguridad cuando el interruptor al maximo windows. En Delphi 1
a traves de 4 un menor gravedad del resultado producido. El boton [x] de
el nuevo editor de color gris, pero funcional. Este fue
porque no 'Restaurar ... Maximizar' entre corchetes el interruptor. Estos fueron
añadidos como una idea de ultimo momento para forzar el menu en una util
estado. En 5.0, el 'forzar codigo' fue quitado. Pero no horquillado
fue insertado. Por lo tanto, el total de choque. Soluciones para la D4 problema
aparecio en el Delphi lista de Bugs (no de Borland). Uno de los
soluciones para resolver el D5 problema. Esta direccion URL se llevara a
articulo 0372 en el Delphi lista de errores:
http://www.jrsoftware.org/buglist/generated/entry0372.htm
Copia de Greg Chapman procedimiento (TCustomForm.MergeMenu) en un
archivo y guardelo. Hacer una copia de los formularios.pas y reemplazar
procedimiento en las formas.pas con Chapman. Poner la alteracion de las formas.pas
en el TextEdit directorio del proyecto y hacer una compilacion de TextEdit.
he leido que se suministra fuente de la VCL no siempre coincide con la
DCU, pero esto parece no causar problemas. Aun asi, es
una buena idea para limitar la alteracion de la unidad individual de un proyecto MDI
directorios y no lo utilizan generalmente como nuevas formas.pas en su
ruta de la biblioteca.
El siguiente codigo es un controlador de mensajes para colocar en MDIEdit.pas
y dos de respuesta rutinas para colocar en MDIFrame.pas. Las declaraciones
tambien se encuentran aqui.
Codigo:
{ Este mensaje de controlador en el MDIEdit.pas de la unidad de la
& nbsp & nbsp Borland demo TextEdit utilizado como un banco de pruebas para este proyecto.
}
tipo
& nbsp & nbsp TEditForm = class(TForm)
& nbsp & nbsp ...
& nbsp & nbsp privada
& nbsp & nbsp & nbsp & nbsp ...
& nbsp & nbsp & nbsp & nbsp procedimiento WMSysCommand(var Msg: TWMSysCommand)
mensaje de WM_SYSCOMMAND
& nbsp & nbsp & nbsp & nbsp ...
procedimiento TEditForm.WMSysCommand(var Msg: TWMSysCommand)
begin
& nbsp & nbsp & nbsp Caso Msg.CmdType de
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SC_NextWindow:
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp FrameForm.GetNext
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp SC_PREVWINDOW:
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp FrameForm.GetPrev
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp demas heredado
& nbsp & nbsp & nbsp final
fin
{ Estas dos rutinas estan en la MDIFrame.pas de la unidad de la
& nbsp & nbsp Borland demo TextEdit utilizado como un banco de pruebas para este proyecto.
}
tipo
& nbsp & nbsp TFrameForm = class(TForm)
& nbsp & nbsp & nbsp & nbsp ...
& nbsp & nbsp & nbsp & nbsp procedimiento GetNext
& nbsp & nbsp & nbsp & nbsp procedimiento GetPrev
& nbsp & nbsp & nbsp & nbsp ...
var
& nbsp & nbsp ...
& nbsp & nbsp IsMaxed: boolean
& nbsp & nbsp F6One: string
& nbsp & nbsp F6Two: cadena
aplicacion
procedimiento TFrameForm.GetNext
begin
& nbsp & nbsp si MDIChildCount < 2, a continuacion,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp messageBeep(0)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp LockWindowUpdate(Asa)
& nbsp & nbsp F6One := ActiveMDIChild.Titulo
& nbsp & nbsp si ActiveMDIChild.WindowState = wsMaximized, a continuacion,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp IsMaxed := True
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ActiveMDIChild.WindowState := wsNormal
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp MDIChildren[1].BringToFront
& nbsp & nbsp si IsMaxed, a continuacion,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp IsMaxed := False
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ActiveMDIChild.WindowState := wsMaximized
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp F6Two := ActiveMDIChild.Titulo
& nbsp & nbsp LockWindowUpdate(0)
fin
procedimiento TFrameForm.GetPrev
var
& nbsp & nbsp i: integer
begin
& nbsp & nbsp si MDIChildCount < 2, a continuacion,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp messageBeep(0)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp final
& nbsp LockWindowUpdate(Asa)
& nbsp & nbsp si ActiveMDIChild.WindowState = wsMaximized, a continuacion,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp IsMaxed := True
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ActiveMDIChild.WindowState := wsNormal
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp for i := 0 a MDIChildCount - 1 hacer
& nbsp & nbsp & nbsp & nbsp si MDIChildren[i].Caption = F6One, a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp MDIChildren[i].BringToFront
& nbsp & nbsp for i := 0 a MDIChildCount - 1 hacer
& nbsp & nbsp & nbsp & nbsp si MDIChildren[i].Caption = F6Two, a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp MDIChildren[i].BringToFront
& nbsp & nbsp si IsMaxed, a continuacion,
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp IsMaxed := False
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ActiveMDIChild.WindowState := wsMaximized
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp LockWindowUpdate(0)
fin
| Entrelazado Bibliografia |
empece ad-libbing estos articulos en hacer algunas de las cosas que puedo hacer & nbsp en eWriter en el Delphi demo TextEdit (a partir de la cual he construido eWriter). & nbsp Es natural a acumular todas estas en una copia de la edicion de textos. Y & nbsp usted podria tener que ir hacia atras y adelante para llenar de nuevo, perdidas, o & nbsp cambio rutinas de compatibilidad. Caja notas que aparecen la mayoria de los lugares. Figura & nbsp esta en curso 'tienda' conversacion... |
- Sistema de Programacion/Next (Anterior) en MDI editores
http://www.HowToDoThings.com/showarticle.asp?article=143
- Selectivo Mosaico en MDI Editores
http://www.HowToDoThings.com/showarticle.asp?article=147
- Ventana de Seguimiento de los Numeros en MDI Editores
http://www.HowToDoThings.com/showarticle.asp?article=154
- Parrafo 'verter' desde un editor de texto
http://www.HowToDoThings.com/showarticle.asp?article=178
|
Sistema de programación/next (anterior) en mdi editores
By Consejos Y Trucos
Sistema de programación/next (anterior) en mdi editores : Multi-millones de consejos para hacer su vida más fácil.