I tried to use DC MULTI LINE as a simple text line editor. A number of functions are called from this editor that can change this line. It turns out, but the above error occurs. Is this how it should be if I change the line outside of DC MULTI LINE? Maybe try using another function like MemoEdit()?
Code: Select all
************************************************************************************************
********* Простой текстовый редактор для работы с сообщениями: Crypton-messenger
************************************************************************************************
FUNCTION Messenger()
LOCAL cText, GetList[0], GetOptions, nWidth, cFont, cOutString, oMemo, oButton
************************************************************************************************
***** Текстовый редактор сообщений *************************************************************
CrLf = CHR(13)+CHR(10) // Конец строки (записи)
IF .NOT. FILE('Message.txt')
cOutString = REPLICATE('=',170) + CrLf +;
'Это файл сообщения, которое можно зашифровать и послать в облако.' + CrLf +;
'Дата и время сообщения: '+DTOC(DATE())+"-"+TIME() + CrLf +;
REPLICATE('=',170) + CrLf
StrFile(cOutString, 'Message.txt') // Запись файла обсуждения в папку Inp_data
ELSE
cOutString = ALLTRIM(FILESTR('Message.txt')) // Считывание файла обсуждения для редактирования
cOutString = cOutString + CrLf + CrLf + REPLICATE('-',25)+DTOC(DATE())+"-"+TIME()+REPLICATE('-',126) + CrLf
ENDIF
cFont = Pad('12.Courier',40)
nWidth = 1500
@2.7, 0 DCMULTILINE cOutString SIZE 248,40 FONT Alltrim(cFont) OBJECT oMemo
d = 5
w = 2
mStr = IF(mLanguage=1,'Помощь','Help')
@43.3, 0 DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| cOutString := MessHelp(), DC_GetRefresh(GetList) }
mStr = IF(mLanguage=1,'Создать ключ','Create key')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| cOutString := CreateKey(), DC_GetRefresh(GetList) }
mStr = IF(mLanguage=1,'Показать ключ','View key')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| cOutString := ViewKey(), DC_GetRefresh(GetList) }
mStr = IF(mLanguage=1,'Каталог сообщений','Message catalog')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| cOutString := HypLinksMess(), DC_GetRefresh(GetList) }
mStr = IF(mLanguage=1,'Стереть','Erase')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| cOutString := Erase(), DC_GetRefresh(GetList) }
mStr = IF(mLanguage=1,'Зашифровать в TXT','Encrypt in TXT')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| cOutString := CryptonMess(cOutString), DC_GetRefresh(GetList) }
mStr = IF(mLanguage=1,'Закодировать в BMP','Encode in BMP')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| TXTtoBMPMess(cOutString), DC_GetRefresh(GetList) }
mStr = IF(mLanguage=1,'Показать BMP','View BMP')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| ViewBMP(), DC_GetRefresh(GetList) }
mStr = IF(mLanguage=1,'Записать в облако','Write to the cloud')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| SaveCloud(cOutString), DC_GetRefresh(GetList) }
*********************************
mStr = IF(mLanguage=1,'Скачать из облака','Download from the cloud')
@43.3, DCGUI_COL+d+20 DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| cOutString := LoadCloud(), DC_GetRefresh(GetList) }
mStr = IF(mLanguage=1,'Форматировать текст','Format Text')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {||cOutString := DC_FormatMemoToWidth(cOutString,248,cFont), DC_GetRefresh(GetList), oMemo:setFontCompoundName(Alltrim(cFont))}
mStr = IF(mLanguage=1,'Расшифровать из TXT','Decrypt from TXT')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| cOutString := DecipherMess(), DC_GetRefresh(GetList) }
mStr = IF(mLanguage=1,'Расшифровать из BMP','Decrypt from BMP')
@43.3, DCGUI_COL+d DCPUSHBUTTON CAPTION mStr SIZE LEN(mStr)+w, 1.5 OBJECT oButton ACTION {|| cOutString := BMPtoTXTMess(), DC_GetRefresh(GetList) }
*********************************
*DCGETOPTIONS SAYWIDTH 76 SAYRIGHTBOTTOM
DCREAD GUI FIT TITLE '(C°) Crypton-messenger' ;
OPTIONS GetOptions ;
EVAL {||PostAppEvent(xbeP_Activate,,,oButton)}
************************************************************************************************
RETURN NIL
************************************************************************************************