Thanks Friendesgici wrote:Hats to the airesgici wrote: I'll try![]()
Extremely appreciated dr.![]()
You are a true life-saving hidalgo![]()
Best regards

Moderator: Rathinagiri
Thanks Friendesgici wrote:Hats to the airesgici wrote: I'll try![]()
Extremely appreciated dr.![]()
You are a true life-saving hidalgo![]()
Best regards
Code: Select all
aColor1 := ACLONE( aColor )
aColor2 := ACLONE( aColor )
DRAW BORDER WINDOW cWindowName CONTROL cControlName UPCOLOR aColor1 DOWNCOLOR aColor2 SPACE nWidness
Very good!!!esgici wrote:Hi Dr.
My teacher said me : "Stay away from macro substitutions whenever possible"![]()
How about a solution like this![]()
( Tested and approved in my sideCode: Select all
aColor1 := ACLONE( aColor ) aColor2 := ACLONE( aColor ) DRAW BORDER WINDOW cWindowName CONTROL cControlName UPCOLOR aColor1 DOWNCOLOR aColor2 SPACE nWidness
)
Best regards
"Very good" was finding what the cause of the problemsrvet_claudio wrote: Very good!!!
Code: Select all
#include <hmg.ch>
#define nMaxPenWidth 10
PROCEDURE Main()
aWinBackColor := { 0xF0, 0xF0, 0xF0 }
aColorS := { YELLOW ,;
PINK ,;
RED ,;
FUCHSIA ,;
BROWN ,;
ORANGE ,;
GREEN ,;
PURPLE ,;
BLACK ,; // WHITE ,;
GRAY ,;
BLUE }
nLineBRow := 0 // Line Beg. Row
nLineBCol := 0 // Line Beg. Column
nLineERow := 0 // Line End Row
nLineECol := 0 // Line End Column
nLinePenW := 0 // Line colour ( form background colour, when erasing )
nLineColr := 0 // Line Pen Width
DEFINE WINDOW frmEraseLine ;
AT 138 , 235 ;
WIDTH 560 ;
HEIGHT 380 ; // BACKCOLOR GRAY ;
TITLE "Erasing drawn line" ;
MAIN ;
BACKCOLOR aWinBackColor ;
ON INIT frmEraseLine.btnEras.Enabled := .F.
ON KEY ESCAPE ACTION frmEraseLine.Release
@ 280, 100 BUTTON btnDraw CAPTION "&Draw" ACTION Draw1Line()
@ 280, 230 BUTTON btnEras CAPTION "&Erase" ACTION Eras1Line( nLineBRow, nLineBCol, nLineERow, nLineECol, aWinBackColor, nLinePenW)
@ 280, 360 BUTTON btnExit CAPTION "E&xit" ACTION frmEraseLine.Release
END WINDOW // frmEraseLine
frmEraseLine.Center
frmEraseLine.Activate
RETURN // Main()
*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._
PROCEDURE Draw1Line()
LOCAL nOldColor := nLineColr
nLineBRow := HB_RandomInt( 0, frmEraseLine.WIDTH / 2 )
nLineBCol := HB_RandomInt( 0, frmEraseLine.HEIGHT / 2 )
nLineERow := HB_RandomInt( nLineBRow , frmEraseLine.WIDTH )
nLineECol := HB_RandomInt( nLineBCol, frmEraseLine.HEIGHT )
nLinePenW := HB_RandomInt( 1, nMaxPenWidth )
WHILE nOldColor = nLineColr
nLineColr := HB_RandomInt( 1, LEN( aColorS ) )
ENDDO
DRAW LINE IN WINDOW frmEraseLine AT nLineBRow, nLineBCol ;
TO nLineERow, nLineECol ;
PENCOLOR aColorS[ nLineColr ] ;
PENWIDTH nLinePenW
frmEraseLine.btnDraw.Enabled := .F.
frmEraseLine.btnEras.Enabled := .T.
RETURN // Draw1Line()
*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._
PROCEDURE Eras1Line(;
nBRow,; // Line Beg. Row
nBCol,; // Line Beg. Column
nERow,; // Line End Row
nECol,; // Line End Column
aWBCLr,; // Line erase colour ( form background colour)
nPenW ) // Line Pen Width
DRAW LINE IN WINDOW frmEraseLine AT nLineBRow, nLineBCol ;
TO nLineERow, nLineECol ;
PENCOLOR aWinBackColor ;
PENWIDTH nLinePenW
frmEraseLine.btnDraw.Enabled := .T.
frmEraseLine.btnEras.Enabled := .F.
RETURN // Eras1Line()
*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._