Code: |
#define K_ALT_A 286 ... SETKEY(K_ALT_A, {||MemoEdit(F_files->MemoField), 2}) |
Code: |
SETKEY(K_ALT_A, {||MemoEdit(F_files->MemoField, nRow+1,nCol+1,nRow+11, nCol+49,,,200), 2}) |
Code: |
SetKey(K_ALT_A,{|lAdd| lAdd := .F.,pSclads := IF("│││" $ MLABEL->SCLADS,(lAdd := .T.,BEFORATNUM("│││",MLABEL->Sclads)),MLABEL->Sclads),MLABEL->(Comment()),IF(MLABEL->(RecLock()),(MLABEL->SCLADS := pSclads+IF(lAdd,"│││"+AFTERATNUM("│││",MLABEL->SCLADS,1),""),MLABEL->(dbUnLock())),NIL),pSclads := "" }) |
Code: |
aHotKey:={{},{},{{'A - Комментарий', K_ALT_A,{||MemoEdit(F_files->MemoField)},1}}} |
Дениска wrote: | ||
Делаю свой InitList. Хочу выводить на просмотр и редактировать мемо-поле, при этом чтобы вызов был стандартный по Alt-A, со стандартным окном (как в БЭСТ-е).
В Уроке 201 Событие "Прайс-лист" вижу текст:
Это то, что надо? Если да, то мне не понятно как с этим работать |
Code: |
FUNCTION Comment(lWrite,lView) |
Code: |
pSclads:=MEMOEDIT(pSclads,nTop+1,nLeft+1,nBottom-1,nRight-1,(lView==NIL),'FunBook',100) |
Code: |
FUNCTION CommentPart(lWrite,lView,cComm)
//--------------------------------------------------------------------------// // cComm - начальный текст комментария, передается по ссылке |
Code: |
cSclads:=MEMOEDIT(cSclads,nTop+1,nLeft+1,nBottom-1,nRight-1,(lView==NIL),'FunBook',100) |
Code: |
#define K_ALT_A 286 NETUSE("F_Var",LOADPATH() + "var.dbf") ... aHotKey:={{},{},{{'A - Комментарий', K_ALT_A,{||MyMemoEdit(F_Var->Var_Mem)},2}}} .... Function MyMemoEdit(aMemoField) Local nRow:=04, nCol:=14 Local aNewColor, aOldColor aNewColor := "14/9, 0/7, 0/0, 0/0, 15/1" aOldColor := SetColor(aNewColor) DISPBOX(nRow,nCol,nRow+16,nCol+50,( CHR( 201 ) + CHR( 205 ) + CHR( 187 ) + CHR( 186 ) + CHR( 188 ) + CHR( 205 ) + CHR( 200 ) + CHR( 186 )+' ' ),; "14/9") IF ValType(aMemoField) = "A" SayAndWait("Массивы пока не поддерживаются") Else MemoEdit(aMemoField, nRow+1,nCol+1,nRow+15, nCol+49,.T.,,254) EndIf SetColor(aOldColor) Return |
nordk wrote: |
Что касается типа А это уже означает что у Вас в memo-поле лежат массивы, а не символьные строки т стало быть Вам наверно правильнее memo-поле изначально скинуть в массив все содержимое преобразовать в форматированную текстовую строку и вот тогда это дело через MemoEdit. Инными словами не пытайтесь ничего толкать кроме символьной строки. Просто в отдельных случаях разработчик уверен что там не будет ничего другого и потому применяет сразу Memoedit. |
Дениска wrote: | ||
Как memo-поле в котором лежит массив преобразовать в форматированную текстовую строку? |
Дениска wrote: |
Проблема: "Изменение по Ctrl-W не сохраняются." |
nordk wrote: | ||
Выложил описание функции Comment(). Там увидите ответ на Ваш вопрос и собственно образец решения |
Code: |
Function Main() ... NETUSE("F_Var",LOADPATH() + "var.dbf") ... aHotKey:={{},{},{{'A - Комментарий', K_ALT_A,{||MyMemoEdit(F_Var->Var_mem)},2}}} ... Return Function MyMemoEdit(aMemoField) ... IF ValType(aMemoField) = "A" SayAndWait("Массивы пока не поддерживаются") Else aMemoField := MemoEdit(aMemoField, nRow+1,nCol+1,nRow+15, nCol+49,.T.,,254) EndIf If !aMemoField == aMemoFieldOld altd() select F_Var RecLock() REPLACE Var_Mem WITH aMemoField F_dbUnlock() COMMIT EndIf ... Return |
Code: |
select F_Var RecLock() REPLACE Var_Mem WITH aMemoField |
Code: |
... aHotKey:={{},{},{{'A - Комментарий', K_ALT_A,{||MyMemoEdit(F_Var->Var_mem, FileName, FieldName)},2}}} ... Function MyMemoEdit(aMemoField, FileName, FieldName) ... select FileName RecLock() REPLACE FieldName WITH aMemoField |
nordk wrote: |
Что касается типа А это уже означает что у Вас в memo-поле лежат массивы, а не символьные строки т стало быть Вам наверно правильнее memo-поле изначально скинуть в массив все содержимое преобразовать в форматированную текстовую строку и вот тогда это дело через MemoEdit. ... Изучаете структуру массива: 1. Какой он одномерный или многомерный 2.Какие значения могут лежат только ли символьные (нужно ли преобразовывать) 3.Дальше путем перебора в цикле или через AEVAL создаете символьную строку |
Code: |
c:=""
AEVAL(a,{|x|c+=x+";"}) |
output generated using printer-friendly topic mod. All times are GMT + 4 Hours