LINUX.ORG.RU

История изменений

Исправление 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.