История изменений
Исправление X512, (текущая версия) :
В Обероне можно так:
MODULE A;
CONST
defaultShape = 1;
textShape = 2;
TYPE
MouseMsg = RECORD
x, y: INTEGER;
btns: SET;
shape: INTEGER;
END;
CharMsg = RECORD
ch: CHAR;
END;
Object = POINTER TO RECORD
END;
PROCEDURE (o: Object) HandleMessage (VAR msg: Message), NEW;
BEGIN
WITH
| msg: MouseMsg DO
msg.shape := textShape;
HandleMouse(o, msg);
| msg: CharMsg DO
InsertChar(o, msg.ch);
ELSE END;
END HandleMessage;
END A.
Исправление X512, :
В Обероне можно так:
MODULE A;
CONST
defaultShape = 1;
textShape = 2;
TYPE
MouseMsg = RECORD
x, y: INTEGER;
btns: SET;
shape: INTEGER;
END;
CharMsg = RECORD
ch: CHAR;
END;
Object = POINTER TO RECORD
END;
PROCEDURE (o: Object) HandleMessage (VAR msg: Message), NEW;
BEGIN
WITH
| msg: MouseMsg DO
msg.shape := textShape;
HandleMouse(o, msg);
| msg: CharMsg DO
InsertChar(v, msg.ch);
ELSE END;
END HandleMessage;
END A.
Исходная версия X512, :
В Обероне можно так:
MODULE A;
CONST
defaultShape = 1;
textShape = 2;
TYPE
MouseMsg = RECORD
x, y: INTEGER;
btns: SET;
shape: INTEGER;
END;
CharMsg = RECORD
ch: CHAR;
END;
Object = POINTER TO RECORD
END;
PROCEDURE (o: Object) HandleMessage (VAR msg: Message), NEW;
BEGIN
WITH
| msg: MouseMsg DO
msg.shape := textShape;
HandleMouse(o, msg);
| msg: CharMsg DO
UnsertChar(v, msg.ch);
ELSE END;
END HandleMessage;
END A.