Forth
http://www.fforum.winglion.ru/

Quark: message
http://www.fforum.winglion.ru/viewtopic.php?f=23&t=2644
Страница 1 из 1

Автор:  Hishnik [ Ср сен 01, 2010 01:58 ]
Заголовок сообщения:  Quark: message

По технологии временного перехвата сообщений от мышки, использованной white_Tigr-ом в отладчике, получилось вот такое сообщение.
Изображение
Код:
" bmp.fpm" L

// " Images/message_stone.bmp" CREATE-BMP24 MESSAGE.BACK[]
" Images/message_back3.bmp" CREATE-BMP24 MESSAGE.BACK[]

CREATE MESSAGE.RESTORE[] MESSAGE.BACK[] IMAGE-XSIZE MESSAGE.BACK[] IMAGE-YSIZE 1+ * CELLS ALLOT

300 VALUE MESSAGE.X
200 VALUE MESSAGE.Y

['] NOOP VALUE MESSAGE.OLDLMB^
QUAN MESSAGE.CLOSE

: MESSAGE.STORESCR
  MESSAGE.BACK[] IMAGE-YSIZE 1+ 0 DO
    I MESSAGE.Y + 2048 * MESSAGE.X + CELLS GETSCREEN +
    MESSAGE.RESTORE[] I MESSAGE.BACK[] IMAGE-YSIZE * CELLS +
    MESSAGE.BACK[] IMAGE-XSIZE MOVE
  LOOP
;

: MESSAGE.RESTORESCR
  MESSAGE.BACK[] IMAGE-YSIZE 1+ 0 DO
    MESSAGE.RESTORE[] I MESSAGE.BACK[] IMAGE-YSIZE * CELLS +
    I MESSAGE.Y + 2048 * MESSAGE.X + CELLS GETSCREEN +
    MESSAGE.BACK[] IMAGE-XSIZE MOVE
  LOOP
;

: MESSAGE.SHOWBACK
  MESSAGE.BACK[] MESSAGE.X MESSAGE.Y SHOW-BMP24
;

: MESSAGE.LMB
  -1 TO MESSAGE.CLOSE
;

: MESSAGE // STR --
  OPAQUE @ SWAP
  OPAQUE ON
  MESSAGE.STORESCR
  MESSAGE.SHOWBACK
  MESSAGE.BACK[] IMAGE-XSIZE 2 / OVER COUNT 4 * - MESSAGE.X + 8 /
  MESSAGE.Y MESSAGE.BACK[] IMAGE-YSIZE 2 / + 16 / GOTOXY 0xFF00 SETCOLOR PRINT
  FROM <MOUSE_LEFT> TO MESSAGE.OLDLMB^
  0 TO MESSAGE.CLOSE
  USE MESSAGE.LMB AS <MOUSE_LEFT>
  BEGIN
    $
  MESSAGE.CLOSE UNTIL
  MESSAGE.RESTORESCR
  MESSAGE.OLDLMB^ TO <MOUSE_LEFT>
  OPAQUE !
;

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/