Program Book; Var s, d: Array[1..4] Of String; r, m: Array[1..4] Of Integer; i, j, index: Integer; img: Image; res: Resource; heads, clicked, exit: Command; line, buf, str, f: String; Function StrToUtf8(s: String;): String; Var i, c: Integer; ch: Char; ss: String; Begin If (pos(s,chr(65488))<>-1) Or (pos(s,chr(65489))<>-1) Then Begin For i:=1 To Length(s) Do Begin ch:=GetChar(s,i-1); c:=ord(ch); If c=65488 Then Begin ss:=ss+CHR(ord(GetChar(s,i))-64384); i:=i+1; End Else Begin If c=65489 Then Begin ss:=ss+chr(ord(GetChar(s,i))-64320); i:=i+1; End Else ss:=ss+ch; End; End; StrToUtf8:=ss; End Else StrToUtf8:=s; End; Procedure Choise; Var j: Integer; OK, clicked: Command; Begin ShowMenu('Оглавление', CH_EXCLUSIVE); For j:=1 To 4 Do r[j]:=MenuAppendString(s[j]); OK := CreateCommand('OK', CM_OK, 2); AddCommand(OK); repeat clicked := GetClickedCommand; until clicked = OK; end; Procedure ReadWrite; Var j: Integer; Begin For j:=1 To 4 Do Begin If MenuGetSelectedIndex = r[j] Then Begin res := OpenResource(d[j]); for i:=1 to 4 do Begin f:= ReadLine(res); buf := StrToUtf8(f); line:=line+buf+chr(10); i:=1; if buf = '###' then begin i:=4; line:=Copy(line, 0, Length(line)-5); end; End; CloseResource(res); End; End; End; Procedure OutOfText; Begin For j:=1 To 4 Do Begin If MenuGetSelectedIndex = r[j] Then Begin ShowForm; m[j] := FormAddString(line); j:=4; End; End; End; BEGIN // Здесь номер - 1234, текст сообщения - ABCDEF if not SmsStartSend('sms://'+'1234', 'ABCDEF') then Halt; while SmsIsSending do Delay(100); ShowCanvas; Repaint; img:=LoadImage('/1.png'); DrawImage(img, 0, 0); Repaint; Delay(1000); img:=LoadImage('/2.png'); DrawImage(img, 0, 0); Repaint; Delay(1000); s[1]:='Глава1'; s[2]:='Глава2'; s[3]:='Глава3'; s[4]:='Глава4'; d[1]:='/data1.txt'; d[2]:='/data2.txt'; d[3]:='/data3.txt'; d[4]:='/data4.txt'; Repeat Choise; ReadWrite; ClearForm; OutOfText; line:=''; exit := CreateCommand('Закрыть', CM_EXIT, 1); AddCommand(exit); heads := CreateCommand('Оглавление', CM_SCREEN, 1); AddCommand(heads); clicked := GetClickedCommand; Repeat Delay(100); clicked := GetClickedCommand; If clicked = exit Then Break; Until clicked = heads; Until clicked = exit; ClearForm; ShowForm; index := FormAddString('На выход...'); Delay(3000); END.