Вверх ↑
Этот топик читают: Гость
Ответов: 4539
Рейтинг: 491
#16: 2020-06-26 17:49:45 ЛС | профиль | цитата
Joiner, спасибо, хороший стиль такой, а недостающие дорисую тогда в этом же стиле

p.s Вам как VIP клиентам можно даже не парится, всё что я доделаю до логического конца будет у Вас как обещал (есть ещё работы но они как всегда по тем или иным причинам попадаю в стадию заморозки. Как обычно вдохновения не хватает, а без вдохновения у меня нихрена не получается )

--- Добавлено в 2020-06-26 17:50:58

Сегодня постараюсь демку запилить простенькую для поюзать...

Редактировалось 1 раз(а), последний 2020-06-26 17:50:58
карма: 5

0
Ответов: 1565
Рейтинг: 114
#17: 2020-06-26 18:05:24 ЛС | профиль | цитата
andrestudio, вдохновение не хрен собачий!
Без него только деньги зарабатывать.
Только на краюшке, почти на пенсии, в удовольствие работал и шас тоже. - не умереть бы.
Хотел сказать,... видишь пьяный - отойди.
карма: 4

0
Ответов: 4539
Рейтинг: 491
#18: 2020-06-26 18:06:47 ЛС | профиль | цитата
Кому интересно возможности хотя бы 3 версии то можете ознакомится, портированный хелп в док и его гугл перевод, вполне читаемый
Кстати кто его приведёт в божеский вид то автоматом станет следующим кандидатом на пакет к нему

архив в прищепкеhttps://forum.hiasm.com/getfile/39045

--- Добавлено в 2020-06-26 18:10:06

flint2, а я только жить начинаю. Вот летом жениться надумал, так блин никак еще в закс не могу попасть документы о разводе отдать. Зае... уже этот коронный вирус...

Редактировалось 2 раз(а), последний 2020-06-26 18:10:44
карма: 5

0
файлы: 1Formula One 3.zip [1.9MB] [79]
Ответов: 1565
Рейтинг: 114
#19: 2020-06-26 18:16:40 ЛС | профиль | цитата
Я тоже всю жизнь изучал deutsch(Служил) и пользуюсь гугл перевод.
Кто внесёт всю сумму за квартиру, тот получит фирменную кепку.
А кто быстрее добежит до ...
Завязывай!
Тут осталось-то дурачков - раз, два и обчёлся и далеко не дураки!
А кто проходящие - те не задерживаются.

Редактировалось 3 раз(а), последний 2020-06-26 18:31:52
карма: 4

0
Ответов: 1565
Рейтинг: 114
#20: 2020-06-26 19:22:44 ЛС | профиль | цитата
Андрюха, ты дурак?
Какой тебе женится?! Сейчас прям? Пути господни неисповедимы!
В себя перейди!!!
Короче Склифосовский, ощущаю, что ты придурок хуже меня.
У меня хоть башка поехала от температуры, слабости и водки - добил я её.
Но ты-то хрен к носу приложи!
Стоять!
Дурак, всё равно обнимаю тебя.
Но если встретимся -нос набью, а может ты - улыбнусь.

Редактировалось 5 раз(а), последний 2020-06-26 20:15:00
карма: 4

0
Ответов: 4539
Рейтинг: 491
#21: 2020-06-26 20:25:25 ЛС | профиль | цитата
flint2 писал(а):
Андрюха, ты дурак?

Я сам знаю

Короче поюзать демку с дизайнером уже можно, диалоги пока не все работают
сама библиотека встроена в ехе, при запуске устанавливается в системную Temp папку профиля пользователя, по закрытии программы удаляется.
demo_test https://forum.hiasm.com/getfile/39046
карма: 5

0
файлы: 1DemoBook.zip [531.5KB] [4754]
Ответов: 1565
Рейтинг: 114
#22: 2020-06-26 20:31:19 ЛС | профиль | цитата
andrestudio, чего ты мне гонишь?
Она это не поймёт!?
Ещё чего умеешь делать?
Надо стать человеком, однако.

Редактировалось 1 раз(а), последний 2020-06-26 20:33:07
карма: 4

0
Ответов: 4539
Рейтинг: 491
#23: 2020-06-26 20:36:46 ЛС | профиль | цитата
flint2 писал(а):
Ещё чего умеешь делать?

Могу копать, могу не копать. Могу трезвым быть, как сегодня например
карма: 5

0
Ответов: 1565
Рейтинг: 114
#24: 2020-06-26 20:37:55 ЛС | профиль | цитата
Ну это зачёт!!!
p.s.
Однако, всё будет хорошо!
Колдун я однако.
Вот зря сказал, а может и не зря.

Редактировалось 3 раз(а), последний 2020-06-26 20:44:34
карма: 4

0
Ответов: 4539
Рейтинг: 491
#25: 2020-06-26 20:42:39 ЛС | профиль | цитата
Вот так вот я библиотеку расчихляю, можно ещё попробовать раз из памяти погрузить, не уверен что получится правда
procedure CreateTmpAX;
var
Buffer: array[0..MAX_PATH] of Char;
AXData: PStream;
begin
GetTempPath(SizeOf(Buffer) - 1, Buffer);
AXTmpFile := Buffer + F1Book_library;
if not FileExists(AXTmpFile) then
begin
AXData := NewWriteFileStream(AXTmpFile);
AXData.Position := 0;
AXData.Write(LibAxData,LibAxSize);
AXData.Position := 0;
AXData.Free;
end;
end;


initialization
// создадим файл в временной папке
CreateTmpAX;
CoInitialize(nil);
finalization
CoFreeUnusedLibraries();
CoUninitialize();
FreeLibrary(DllHandle);
// удаляем при закрытии программы
DeleteFile(PChar(AXTmpFile));

Редактировалось 1 раз(а), последний 2020-06-27 07:15:46
карма: 5

0
Ответов: 1565
Рейтинг: 114
#26: 2020-06-26 20:50:38 ЛС | профиль | цитата
Паузу возьми.
Кто не поймёт - тот не поймёт, а кто поймёт - смеяться будет.
Завязывай!
карма: 4

0
Ответов: 4539
Рейтинг: 491
#27: 2020-06-26 20:52:23 ЛС | профиль | цитата
Блин забыл FreeLibrary(DllHandle); (может не удалится)
ну да ладно, добавил
flint2 писал(а):
Паузу возьми.
Кто не поймёт - тот не поймёт, а кто поймёт - смеяться будет.
Завязывай!


беру

Редактировалось 1 раз(а), последний 2020-06-26 20:52:50
карма: 5

0
Ответов: 4539
Рейтинг: 491
#28: 2020-06-27 07:34:39 ЛС | профиль | цитата
Так, есть заминка. Не могу сообразить как организовать стек для методов Undo/Redo
Есть методы ReadFromBlob и WriteToBlob, WriteToBlobEx
что там с памятью будет для 20-30 отмен x.z Может у кого есть какие соображения
карма: 5

0
Ответов: 12
Рейтинг: 5
#29: 2020-06-28 05:49:14 ЛС | профиль | цитата
Практически всё можно сделать, используя только стандартные компоненты.
Add(MainForm,2953706,14,56)
{
Width=861
Height=567
Point(Handle)
link(onCreate,9404130:doEvent1,[])
}
Add(UseActiveX,15397503,420,315)
{
Top=188
Width=845
Height=340
Align=5
CLSID="{B0475003-7740-11D1-BDC3-0020AF9F8E6E}"
}
Add(MTStrTbl,5816951,462,98)
{
Width=845
Height=188
Align=2
WinStyle=3
Name="excel"
Columns=#7:Артикул|8:Название|6:Кол-во|7:Ед.изм.|4:Цена|5:Сумма|0:|
Redaction=0
}
Add(Hub,9404130,63,70)
{
OutCount=6
link(onEvent1,3893624:doWork,[(137,76)(137,84)])
link(onEvent2,1512985:doEnum,[(130,83)(130,118)])
link(onEvent3,11227433:doSaveToStream,[(123,90)(123,216)])
link(onEvent4,5249391:doData,[(116,97)(116,321)])
link(onEvent5,10889132:doString,[(109,104)(109,377)])
link(onEvent6,8387900:doEnum,[(91,111)(91,517)])
}
Add(StrList,13732325,301,63)
{
Strings=#56:23544122;Carbon disc ?44,7/38,3x5,8mm;10;PC;16,92;169,20|56:23544122;Carbon disc ?44,7/38,3x5,8mm;10;PC;16,92;169,20|54:23544122;Carbon disc ?44,7/38,3x5,8mm;2;PC;16,92;33,84|64:21200159;Top part UNIFL3/4 for steel bot.part;25;PC;30,09;752,25|57:24400111;Hose f. pump compl. UNIWASH;153;PC;10,58;1618,74|58:13225;Piston complete for valve UNIWASH3;4;PC;27,09;108,36|60:12200105;Vacuumgauge glycerine ?100mm 3/8";5;PC;40,57;202,85|54:21200141;Thread bush UNIFLOW3 steel;130;PC;1,93;250,90|45:25100146;O-ring ?16,1x1,6mm;175;PC;0,36;63,00|57:21200127;Holder rocking lever, UNIFLOW3;170;PC;0,26;44,20|50:21200131;Rocking lever UNIFLOW3;150;PC;0,89;133,50|65:25200132;Valve button inside UNIFLOW3 steel FA;225;PC;0,72;162,00|61:21200129;Bar closing device UNIFLOW3 steel;225;PC;1,09;245,25|55:25200124;Valve flap outside UNIFLOW3;225;PC;1,56;351,00|60:14400212;Solenoid valve sgl. invensys 230vac;5;PC;8,50;42,50|62:14400213;Solenoid valve dobb. invensys 230vac;5;PC;14,13;70,65|48:21200131;Rocking lever UNIFLOW3;20;PC;0,89;17,80|63:25200132;Valve button inside UNIFLOW3 steel FA;20;PC;0,72;14,40|43:25100146;O-ring ?16,1x1,6mm;20;PC;0,36;7,20|55:21200127;Holder rocking lever, UNIFLOW3;20;PC;0,26;5,20|58:21200130;Bar closing device UNIFLOW3 steel;20;PC;0,34;6,80|58:25200119;Guard bracket UNIFLOW3 steel SBS;20;PC;3,38;67,60|55:13474;Valve flap exterior UNIFLOW3 SBS;20;PC;1,56;31,20|59:26400104;Terminal wheel for lock guide str;20;PC;1,12;22,40|67:25215022;Rubber liner UNIFL. 15022-?22 UNIFLEX FA;96;PC;2,39;229,44|55:14800695;Hose guide f. SAC115 complete;10;PC;9,17;91,70|36:14306;Filter for IDC;20;PC;0,40;8,00|51:25515435;Rubber hose ?27/16 mm - FA;15;M;5,24;78,60|63:13930;Double-action Quickstart II rem. L=740mm;1;PC;98,66;98,66|54:13100201;Spray gun for udder washer;20;PC;17,77;355,40|0:|
}
Add(ArrayEnum,1512985,315,112)
{
link(onItem,7011876:doMTString,[])
link(onEndEnum,4139610:doColAction,[(354,125)(354,153)])
link(Array,13732325:Array,[])
}
Add(MT_String,7011876,364,98)
{
link(onResult,3501424:doRowAction,[])
}
Add(MST_RowAction,3501424,413,98)
{
MSTControl="excel"
}
Add(WinExec,9940243,224,70)
{
FileName="regsvr32.exe"
Param="TTF16.ocx"
}
Add(MST_ColAction,4139610,413,147)
{
Action=9
Index=-2
MSTControl="excel"
}
Add(DoData,5249391,273,315)
{
Data=String(EditPaste)
link(onEventData,4175318:doWork2,[])
}
Add(Clipboard,2176761,413,210)
{
Unicode=0
}
Add(Convertor,3193568,350,210)
{
Mode=11
link(onResult,2176761:doPutText,[])
}
Add(MST_Save,11227433,287,203)
{
Delimiter="\t"
SaveColumn=1
SaveColProp=1
MSTControl="excel"
link(onSaveToStream,3193568:doConvert,[])
}
Add(Check,3893624,143,78)
{
Check=1
link(onEvent,9940243:doExec,[(200,84)(200,76)])
}
Add(MST_ArrayCols,13036376,154,455)
{
MSTControl="excel"
}
Add(ArrayEnum,8387900,154,511)
{
link(onItem,3410904:doSplit,[])
link(Array,13036376:ColumnArray,[])
}
Add(MT_AddData,9923152,329,518)
{
Count=3
link(onAdd,15397503:doSetProp,[(403,524)(403,335)])
link(Data1,10977283:Value,[])
link(Data2,4421315:Result,[(342,509)(321,509)(321,558)(279,558)])
link(Data3,3410904:Left,[(349,509)(368,509)(368,572)(237,572)])
}
Add(Memory,10977283,329,448)
{
Default=String(ColText)
}
Add(Math,4421315,273,518)
{
Op2=1
ResultType=0
link(onResult,9923152:doAdd,[])
link(Op1,8387900:Index,[(279,502)(223,502)(223,551)(167,551)])
}
Add(StrPart,3410904,231,511)
{
Char="="
Point(Left)
link(onPart,4421315:doOperation,[])
}
Add(FormatStr,10889132,210,371)
{
Mask="SetColWidthAuto;-1;1;-1;6;False"
link(onFString,12521588:doMT,[])
}
Add(MT_String,12521588,273,364)
{
link(onResult,4175318:doWork3,[(326,370)])
}
Add(HubEx,4175318,322,315)
{
link(onEvent,15397503:doExecute,[])
}


Двойной клик ПКМ на компоненте ActiveX вызывает внутренний редактор.
Снимок.PNG

Если убрать заголовки строк и ограничить количество выводимых строк и столбцов то таблица будет выглядеть как MTStrTbl с работающими формулами внутри.
Снимок2.PNG

Редактировалось 3 раз(а), последний 2020-06-28 06:57:12
карма: 1

1
Голосовали:Tad
Ответов: 4539
Рейтинг: 491
#30: 2020-06-28 09:50:07 ЛС | профиль | цитата
Gunta, это всё ясно что так можно сделать и будет работать
Но есть одно НО ActiveX нужно для этого зарегистрировать (пользователю это будет сделать невозможно без прав) в моём случае он просто подключает библиотеку типов как обычную dll (прав не нужно)
А что если усложнить задачу? например как Undo/Redo + история (что собственно толку от такого редактора без отката)
Ну и с событиями не очень удобно (тягать линки по всем мультикам) у меня это один компонент с выбором нужного события
Дале настроить книгу (шрифты,холст,заголовки и т.д по умолчанию) это сколько линков нужно прокинуть с компонентами

Остальные хотелки всплывут по ходу дела

Undo/Redo + история почти доделал.

Редактировалось 1 раз(а), последний 2020-06-28 09:58:57
карма: 5

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)