Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Duda] Colorear una línea del ListView (https://www.cobolforo.es/showthread.php?t=752)

Xavier 31 de octubre de 2017 11:59

Colorear una línea del ListView
 
Hola Foro
Estoy intentando colorear, en un ListView, las líneas en función de un valor. He cogido un ejemplo de Visual Basic y lo he intentado "traducir" a PowerCobol, pero me da error.

Este es el código en VB:
Código VB:
  1. ListView1.ListItems(Linea).ForeColor = Color
Este es el código que intento implementar en PowerCobol:
Código COBOL:
  1.      MOVE POW-COLOR-RED TO "ForeColor" OF "ListItems"(Linea) OF CmListView1
y este es el error que me da:
Código:

    Create C:\PowerCobol\ListView\Prueba\Debug\MainForm.cob...
    MainForm MainForm-Opened(60) : F5DC410302I-E Property or method definition for POW-0010 is not found.

Si alguien sabe como hacerlo agradecería que lo publicase.
Un saludo a todos

Kuk 31 de octubre de 2017 16:58

Xavier, el control ListView que viene en el pack de PowerCOBOL no es estándar ni es el de VB. Así que, toca hacer bricolaje: [Aporte] ListView con Colores - COBOL Foro

jemet80 30 de septiembre de 2018 23:25

De casualidad pudiste solucionar lo de las lineas en color????

Kuk 1 de octubre de 2018 08:06

jemet80, échale un vistazo al enlace de mi post anterior.

Josber 1 de octubre de 2018 13:14

Cita:

Citación del post de Kuk (Mensaje 4542)
jemet80, échale un vistazo al enlace de mi post anterior.

Revisa el enlace Kuk, que no lleva a ningún sitio, al menos a mi.

Un saludo.-

Kuk 1 de octubre de 2018 15:38

Josber, correcto! Lo acabo de corregir.

Es que los enlaces antiguos en http: no funecionan desde que nos hemos pasado a https:...

Tengo que hacer un REPLACE en la base pero nunca tengo tiempo...

Joseg 29 de noviembre de 2019 11:47

Cita:

Citación del post de Kuk (Mensaje 3662)
Xavier, el control ListView que viene en el pack de PowerCOBOL no es estándar ni es el de VB. Así que, toca hacer bricolaje: [Aporte] ListView con Colores - COBOL Foro

Ola!

Tentei fazer isto:

Código COBOL:
  1.      PERFORM 100 TIMES
  2.              INVOKE CmListView1 "Add" USING 1 1 RETURNING WK-INDEX
  3.              MOVE "COLUMNA1" TO "Text"(1) OF "ListItems"(WK-INDEX) OF CmListView1
  4.              MOVE "COLUMNA2" TO "Text"(2) OF "ListItems"(WK-INDEX) OF CmListView1
  5.              MOVE "COLUMNA3" TO "Text"(3) OF "ListItems"(WK-INDEX) OF CmListView1
  6.              MOVE "COLUMNA4" TO "Text"(4) OF "ListItems"(WK-INDEX) OF CmListView1
  7.              MOVE "COLUMNA5" TO "Text"(5) OF "ListItems"(WK-INDEX) OF CmListView1
  8.          
  9.              DIVIDE WK-INDEX BY 2 GIVING RESULT REMAINDER REST
  10.              IF REST = ZEROS
  11.                 CALL "SendMessageA" WITH STDCALL USING BY VALUE LV-HWND
  12.                                                     BY VALUE LVST
  13.                                                     BY VALUE 0
  14.                                                     BY VALUE 16711680
  15.                 END-CALL
  16.              ELSE
  17.                 CALL "SendMessageA" WITH STDCALL USING BY VALUE LV-HWND
  18.                                                     BY VALUE LVST
  19.                                                     BY VALUE 0
  20.                                                     BY VALUE 255
  21.                 END-CALL
  22.              END-IF
  23.              CANCEL "SendMessageA"
  24.              
  25.      END-PERFORM.

Para por uma linha de cada cor, mas não consegui :(
Existe alguma alternativa (usando obrigatoriamente o CmListView do Power).

Gracias

Kuk 1 de diciembre de 2019 19:47

Joseg, échale un ojo esto: [Aporte] OCX para alterar ListView - COBOL Foro

Joseg 1 de diciembre de 2019 20:35

Cita:

Citación del post de Kuk (Mensaje 5182)

Sim, já conhecia, mas eu queria usar apenas a Listview do PowerCobol para não ter que instalar o runtime do VB6 (e fazer o registo de um OCX adicional).

Gracias,

Kuk 1 de diciembre de 2019 22:32

Joseg, no se puede hacer tal cual. Habrá que pelear con WinAPI y Custom Draw por cara ListItem. Nunca lo he hecho, en aquel entonces me parecía demasiado complicado.

Imposible no es, pero costará bastante trabajo. Aquí tienes información sobre ello: ListView Alternating Row Colours (Using Windows API) - CodeProject

Otra posibilidad sería crear una DLL en C o C++ (mirando el ejemplo) y llamar esa DLL via LoadLibrary o definiendo las funciones en el fichero COBOL85.CBR.


La franja horaria es GMT +2. Ahora son las 03:59.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.