PDA

Ver la Versión Completa : [Sintaxis] Uso del raton para ampliar un registro de CmList


Breew
25 de mayo de 2018, 22:58
Hola.

Quisiera conseguir que al posicionarme con el raton , se abriera un cuadro de dialogo , ampliando la informacion contenida en el registro del cmlist.

No tengo ni idea de como identificar la posicion del raton y si es posible hacer lo que quiero.

¿Alguien me puede orientar?

Gracias

Kuk
26 de mayo de 2018, 09:19
Breew, quieres hacer algo parecido a la lupa de Windows?

https://www.portalprogramas.com/milbits/imagenes/Vistas.jpg
http://www.reviversoft.com/blog/wp-content/uploads/2013/09/Windows_Accessibility_Features_Magnifier.jpg

Breew
26 de mayo de 2018, 15:57
Hola Kuk.

No, me he explicado mal. No queria que me saliera el tipo de letra aumentado, sino mas bien , que al posicionarme sobre un registro, aparecieran mas campos , es decir, que me salgan mas informacion .
el evento click lo tengo ocupado para modificar campos.

Gracias

Kuk
26 de mayo de 2018, 23:04
Breew, puedes cambiar el modificado de campos al evento DblClick o incluso añadir un botón nuevo "Modificar" que modifica los datos del registro seleccionado (si es que hay uno seleccionado).

Si lo que quieres es algo tipo "ToolTip" (texto flotante), sin hacer selección va a ser complicado, por no decir imposible. Porque podrías hacer cálculos sobre un control fijo. Pero teniendo ScrollBar, que tiene, digamos, vida propia, y es el que controla el desplazamiento de los registros... Lo veo realmente muy chungo de hacer. Habría que entrar en el subclassing del control CmList, jugar con WinAPI e incluso añadir funcionalidades nuevas al control.

Breew
26 de mayo de 2018, 23:42
Exactamente era eso lo que queria hacer, que fuera tooltip.
Pero no tengo conocimientos para poder jugar hasta conseguirlo ;-)

Tendre que limitarme a cambiar el modificado y no sera tan chulo, pero seguro que es practico.

Gracias

Kuk
27 de mayo de 2018, 21:07
Breew, puedes simular el ToolTip, cogiendo un CmStatic, jugando con su propiedad Visible y que ira "flotando" cambiándole la posición obtenida vía GetCursorPos function (Windows) (https://msdn.microsoft.com/en-us/library/windows/desktop/ms648390(v=vs.85).aspx)

Pero eso sí - sin clic en el registro no va poder ser ;)

Hrmcobol
29 de mayo de 2018, 01:31
Hola Breew, no se si te sirve, tengo una lista y quiero saber historia de un registro de la tabla, pongo una columna con algun icono que me muestre lo que puede ampliar, hago click en el icono y se abre un sub-texto (pintado en azul) que se mantiene (F01), como ves puedo hacerlo mas de una vez (F02), para borrarlo hago click con el botón izquierdo y desaparece(F03).
Saludos
Hrm

Breew
30 de mayo de 2018, 07:44
Hola Hrmcobol.

Me gusta mucho la idea.
Me puedes dar detalles ?
es un ctList?
No lo tengo muy por la mano.

Gracias

---------- Post añadido : 07:44 ---------- Post anterior : 07:43 ----------

hola Kuk.

Me lo mirare, pero no tengo ni idea de como implementar esa funcion.

Gracias

Hrmcobol
2 de junio de 2018, 13:56
Hola Breew, si es un CtList de Dbi, otra que se me ocurre es que al cmlist le setees la opcion IsCheqBtn y logras el efecto que te mando en la imagen, podes buscar que item que esta marcado y acceder a la info del mismo
Saludos

Breew
2 de junio de 2018, 17:29
Hola Hrmcobol.

La idea del ctlist , me ha encantado.

Como incorporas el texto en azul?.

Gracias

Hrmcobol
3 de junio de 2018, 14:09
Hola Breew, te paso las lineas para mostrar el SubText en el el CtList.
Ojo corte rápido las lineas, ya que estoy de vacaciones, no te fijes en la lógica.
En principio necesitas un 01. que contenga los datos a mostrar y saber la longitud desde el inicio del texto hasta el ultimo carácter distinto de espacios (wl-longi) y definir desde que columna queres que empiece a mostrar.
Empeza a probar y lo vamos viendo.
Por sino teles el Help del CtList te mando una foto.



ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.

01 WL-LONGI PIC S9(9) COMP-5. *> longitud del texto a mostrar

01 WL-ALARMA.
02 WL-TABALR.
03 AL-VENCI PIC X(012) VALUE "Vto: ".
03 AL-FECHA PIC X(010).
03 AL-FILL PIC X(001).
03 AL-DESCRI PIC X(070).
03 AL-0D0A PIC X(002).

LINKAGE SECTION.
01 POW-NINDEX PIC S9(9) COMP-5.
01 POW-NCOLUMN PIC S9(4) COMP-5.
PROCEDURE DIVISION USING POW-NINDEX POW-NCOLUMN.

**>*--------------------------------------------------------------------------------------------------------------------
MOVE ZEROS TO "ListSubHeight"(POW-NINDEX) OF CtList

MOVE 3 TO "SubColumnStart" OF CtList *> columna del CtList donde comienza el SUbTexto en Azul

MOVE WL-ALARMA(01:WL-LONGI) TO "ListSubText" (POW-NINDEX) OF CtList
INVOKE CtList "CalcSubTextHeight" USING POW-NINDEX RETURNING WL-CANTI
MOVE WL-CANTI TO "ListSubHeight"(POW-NINDEX) OF CtList

**>*-------------------------------------------------------------------------------------------------------

*> si el click es en la column zero borro en SubTexto
IF POW-NCOLUMN = ZEROS
MOVE ZEROS TO "ListSubHeight"(POW-NINDEX) OF CT-011101
EXIT PROGRAM.
**>*-------------------------------------------------------------------------------------------------------