BORRAR

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

BORRAR

Post by SALINETAS24 »

Hola a todos,
¿sería posible borrar un cuadro o una linea que ha sido dibujado con cualquiera de estas dos instrucciones, sin tener que borrarlo toda la pantalla..?

Gracias

Code: Select all

      DRAW LINE IN WINDOW <WindowName> AT <nRow>,<nCol>
            TO <nRow>,<nCol>
            [ PENCOLOR <anPenColor> ]
            [ PENWIDTH <nPenWidth> ]
 
      DRAW RECTANGLE IN WINDOW <WindowName> AT <nRow>,<nCol>
            TO <nRow>,<nCol>
            [ PENCOLOR <anPenColor> ]
            [ PENWIDTH <nPenWidth> ]
            [ FILLCOLOR <anFillColor> ]

Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
LOUIS
Posts: 203
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: BORRAR

Post by LOUIS »

Hola Amigo Salinetas

Sabe no tengo idea de solucionar lo suyo, aunque leí en otro post suyo mismo que decía que no se puede borrar los DRAW :roll:

Sin embargo, tengo una duda a ver si ud la puede despejar, quiero dibujar un círculo con Draw Ellipse, pero que sea transparente, o sea si tengo un número o letra previamente pintada, este círculo la encierre pero permitiendo ver su interior o contenido.

Si sabe, deme una manito y vamos con esa cervecita :mrgreen:

Saludos
Louis

P.D.- Ahora me doy cuenta que si hago el círculo con Draw, luego se quedará en la pantalla, al continuar el juego :oops:
User avatar
gfilatov
Posts: 1060
Joined: Fri Aug 01, 2008 5:42 am
Location: Ukraine
Contact:

Re: BORRAR

Post by gfilatov »

LOUIS wrote: Thu Feb 15, 2024 5:40 pm Hola Amigo Salinetas

Sabe no tengo idea de solucionar lo suyo, aunque leí en otro post suyo mismo que decía que no se puede borrar los DRAW :roll:

Sin embargo, tengo una duda a ver si ud la puede despejar, quiero dibujar un círculo con Draw Ellipse, pero que sea transparente, o sea si tengo un número o letra previamente pintada, este círculo la encierre pero permitiendo ver su interior o contenido.

Si sabe, deme una manito y vamos con esa cervecita :mrgreen:

Saludos
Louis

P.D.- Ahora me doy cuenta que si hago el círculo con Draw, luego se quedará en la pantalla, al continuar el juego :oops:
Hola Louis,

Thanks for your request :!:

This is possible if you use your own erase handling instead of the ERASE WINDOW command.

For example, you can use the AddDelGraph() function as below, i.e.

Code: Select all

   DRAW LINE IN WINDOW draw AT 10, 10 TO 500, 500
   AddDelGraph( cForm ) // add line
...
   // Delete some lines and redraw graph
   AddDelGraph( cForm, "D" ) // delete added lines
   AddDelGraph( cForm, "R" ) // redraw form
Please see the attached working sample along with its source. :arrow:
Attachments
draw-app.zip
Drawing application
(858.36 KiB) Downloaded 31 times
DRAW.ZIP
Drawing example
(1.36 KiB) Downloaded 28 times
Kind Regards,
Grigory Filatov

"Everything should be made as simple as possible, but no simpler." Albert Einstein
User avatar
LOUIS
Posts: 203
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: BORRAR

Post by LOUIS »

Hellow Mr. Grigory Filatov

Thank you very much for your kind answer.

No entendí muy bien su solución :oops:
Pero me dió una idea fantástica, para mí
A continuación comparto mi solución (gracias a Ud).

Code: Select all

#include "hmg.ch"

Function Main()
  DEFINE WINDOW ABC AT 0,0 WIDTH 500 HEIGHT 500 BACKCOLOR {0,125,250} MAIN
    @ 050,100 BUTTON B1 CAPTION 'DIBUJA' WIDTH 100 HEIGHT 40 ONCLICK DIBUJA()
    @ 050,220 BUTTON B2 CAPTION 'DESDIBUJA' WIDTH 100 HEIGHT 40 ONCLICK DESDIBUJA()
    @ 150,100 LABEL L1 VALUE "69" WIDTH 60 HEIGHT 50 FONT "TAHOMA" SIZE 36 BOLD FONTCOLOR WHITE TRANSPARENT
    ON KEY ESCAPE ACTION ABC.Release
  END WINDOW
  ABC.MAXIMIZE
  ABC.ACTIVATE
Return

*--------------
Function DIBUJA
DRAW LINE IN WINDOW ABC AT 158,098 TO 158,163				// ARRIBA
DRAW LINE IN WINDOW ABC AT 158,098 TO 202,098				// LADO IZQ
DRAW LINE IN WINDOW ABC AT 158,163 TO 202,163				// LADO DER
DRAW LINE IN WINDOW ABC AT 202,098 TO 202,163				// ABAJO

*-----------------
Function DESDIBUJA
DRAW LINE IN WINDOW ABC AT 158,098 TO 158,163 PENCOLOR {0,125,250}	// ARRIBA
DRAW LINE IN WINDOW ABC AT 158,098 TO 202,098 PENCOLOR {0,125,250}	// LADO IZQ
DRAW LINE IN WINDOW ABC AT 158,163 TO 202,163 PENCOLOR {0,125,250}	// LADO DER
DRAW LINE IN WINDOW ABC AT 202,098 TO 202,163 PENCOLOR {0,125,250}	// ABAJO
Regards
Louis

P.D.- Si la Function DIBUJA estuviera en modo BLINKER sería Fabuloso ...
Post Reply