Hi ,
Could Any One help Me to writing Horizontal and vertical line to message window in Free Pascal as i MEM and MEMW function not supported in free pascal.
note : we can not use Video and CRT Unit both in single unit. i want to use CRT unit only.
below is the my sample code
PROCEDURE draw_window_outline(top_left_x,
top_left_y,
width,
height,
style,
fore,
back : BYTE);VAR
x,y : BYTE;
offset : INTEGER;
BEGIN
IF (style255) AND (width>2) AND (height>2) THEN
BEGIN
offset:=(top_left_x-1)*2
+(top_left_y-1)*160;
MEM[$B800:offset]:=top_left_corner[style];
MEM[$B800:offset+1]:=back*16+fore;
FOR x:=1 TO (width-2) DO
BEGIN
MEM[$B800:offset+x*2]:=horizontal[style];
MEM[$B800:offset+x*2+1]:=back*16+fore;
END;
MEM[$B800:offset+(width-1)*2]:=top_right_corner[style];
MEM[$B800:offset+(width-1)*2+1]:=back*16+fore;
FOR y:=1 TO (height-2) DO
BEGIN
MEM[$B800:offset+y*160]:=vertical[style];
MEM[$B800:offset+y*160+1]:=back*16+fore;
MEM[$B800:offset+(width-1)*2+y*160]:=vertical[style];
MEM[$B800:offset+(width-1)*2+y*160+1]:=back*16+fore;
END;
offset:=(top_left_x-1)*2
+(top_left_y+height-2)*160;
MEM[$B800:offset]:=bottom_left_corner[style];
MEM[$B800:offset+1]:=back*16+fore;
FOR x:=1 TO (width-2) DO
BEGIN
MEM[$B800:offset+x*2]:=horizontal[style];
MEM[$B800:offset+x*2+1]:=back*16+fore;
END;
MEMW[$B800:offset+(width-1)*2]:=bottom_right_corner[style];
MEM[$B800:offset+(width-1)*2+1]:=back*16+fore;
END;
END;Thanks,
Sudarshan
