> -- GameHunter писал(а):
> Ясно, что при желании можно вызвать стандартные виндовские диалоги. А какое-нибудь более универсальное средство - для любой формы (возможно, специально спроектированной) - есть?Если WinApi устроит, тогда могу предложить тестовый модуль.
> -- Цитата:
> MODULE Box;	IMPORT StdLog, WinApi;			VAR	  h*, u*: INTEGER;				vv*, uu*: ARRAY 20 OF CHAR;				q*: ARRAY 20 OF SHORTCHAR;				d*: ARRAY 20 OF SHORTCHAR;					PROCEDURE StringToString* (in: ARRAY OF CHAR; OUT out: ARRAY OF CHAR);		VAR i, max: INTEGER;	BEGIN i := 0; max := LEN(out)-1;		WHILE (in[i] # 0X) & (i < max) DO			IF ORD(in[i]) < 256 THEN out[i] := in[i] END;			INC(i)		END;		out[i] := 0X	END StringToString;					PROCEDURE FBox*():INTEGER;		VAR			b, f: ARRAY 20 OF CHAR; uType: SET;			lpText, lpCaption: WinApi.PtrSTR; hWnd: WinApi.HWND;	BEGIN		hWnd := h;		StringToString(uu, b);		d := SHORT(b);		StringToString(vv, f);		q := SHORT(f);		lpText := d;		lpCaption := q;		uType := {2};		RETURN WinApi.MessageBox(hWnd, lpText, lpCaption, uType);	END FBox;		PROCEDURE OutLog*;		VAR n: INTEGER;	BEGIN		n := FBox();		StdLog.Int(n); StdLog.Ln	END OutLog;	END Box.(!)Box.OutLogСоздает и отобpажает блок диалога, содеpжащий указанное сообщение и заголовок, а также пpедопpеделенные пиктогpаммы и текстовые кнопки, в соответствии с паpаметpом uType:0 – Ок/Отмена1 – Прервать/ Повтор/Пропустить2 – Да/Нет4 -- Х5 -- ?6 -- i7 -- Ок	(Сообщение в правой стороне)8..31 -- Ок