Страница 4 из 5

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 28.10.2016 12:25:25
sa_t_an
Надо было docmanager обозвать... Это типа менеджер работы с документами... Ну... я видал и dokumentprovodnik название...

А монолит... Там практически все связан, toolbar только отдельно, но по ходу для 1300 строк кода это не критично?

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 28.10.2016 18:17:18
zub
>>Это типа менеджер работы с документами...
понял
>>но по ходу для 1300 строк кода это не критично?
Не думаю что это зависит от колва строк. Если это "базовый шаблон" - должно предпологаться легкое расширение функционала без правки кода "базы"

Допустим возьму я ваш код, но мне нужен поиск по шаблону и замена... переформошлепывать?

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 28.10.2016 20:22:05
sa_t_an
Так это не "базовый шаблон" - это "до кучи"...
То есть взяли "базовый шаблон" и воткнули туда из "до кучи", благо что посмотреть можно не напрягаясь в 20000 строк...
Например сохранение, открытие и закрытие файлов... :D

Добавлено спустя 16 минут 53 секунды:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
К стати для шаблонных решений нужен архитектор кода. Иначе получим попку с ручками закостылинную под определённое решение. Ну... вроде SynEdit-а.
С неимоверно раздутым кодом который можно было впихнуть строчек в 3000-5000!

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 28.10.2016 21:05:47
zub
Где он этот архитектор... ато куда не глянь везде жопа с ручкой((

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 28.10.2016 21:49:53
Deimos
sa_t_an писал(а):для шаблонных решений нужен архитектор кода


Простите мое незнание... О чем идет речь?

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 28.10.2016 21:56:40
sa_t_an
Wiki

Добавлено спустя 15 минут 23 секунды:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
zub писал(а):Где он этот архитектор... ато куда не глянь везде жопа с ручкой((

Это да... Поэтому лучше стараться писать минимум кода с максимумом отдачи.
Если бы в своё время Mike Lischke оттолкнулся от того, что редактор - это представление дерева, то всё было бы в порядке с архитектурой! И фолдинг и строки.
А уж если бы он в своё время высчитывал пиксели отталкиваясь от величины глифа... Оооо... :D Шрифт Arial в SynEdit-е был бы похож на шрифт Arial!!! :)

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 28.10.2016 23:38:19
Deimos
sa_t_an писал(а):Wiki


Это понятно и самому найти не сложно )

Можно посмотреть пример толковой реализации для простого шаблона? Если-вдруг есть у кого...

ато куда не глянь везде жопа с ручкой((


Добавлено спустя 5 минут 16 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
выбор структурных элементов и их интерфейсов, с помощью которых составлена система, а также их поведения в рамках сотрудничества структурных элементов;
соединение выбранных элементов структуры и поведения во всё более крупные системы;
архитектурный стиль, который направляет всю организацию — все элементы, их интерфейсы, их сотрудничество и их соединение


Например это, которое из вики... Утверждать, доподлинно, я не в праве, но мне кажется, что нечто подобное есть в одной майкросовфте с их подходами к созданию Осей... Ну может в яблоках тоже... Но в никсах ни разу не видел... Любопытствует конкретный простенький пример ))) Который выходит за рамки "ШАЯ" (если о нем кто помнит)...

Добавлено спустя 3 минуты 54 секунды:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
sa_t_an писал(а):Иначе получим попку с ручками закостылинную под определённое решение.


99% современного софта написаны именно так... я ошибаюсь?

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 29.10.2016 00:04:16
sa_t_an
Deimos писал(а):одной майкросовфте с их подходами к созданию Осей

Не... это поделка...
Пример архитектурного проектирования операционных систем - эээ... Ну это Николай Вольдемарович во всей красе тут Оберон
В нативном Обероне множество подобных шаблонов расширяемых систем! :)

Добавлено спустя 1 минуту 10 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
sa_t_an писал(а):99% современного софта написаны именно так... я ошибаюсь?

Ага, ошибочка, не 99% а 99.999%

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 29.10.2016 09:36:49
Лекс Айрин
sa_t_an, боюсь, это тоже ошибка. Идеально правильных расширяемых систем единицы. И, к сожалению, кроссплатформенность только увеличивает хаос.

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 29.10.2016 12:50:32
sa_t_an
Так я ж сейчас не про идеал... А про грамотное проектирование систем. Например Native Oberon. Если посмотреть исходный код, то в принципе понимаешь, что и как там грамотно всё спроектировано. С учётом на будущее. При этом, учитывая, что он писался 20 лет назад. При этом, тогда и понятия никто не имел про FAT32-NTFS и т.д. а вкрутить можно очень запросто. Да и вообще, если изучать как работают операционные системы, то проще, легче и приятнее на Оберонах, чем на Никсах...

Добавлено спустя 10 минут 29 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
Ну вот например, про Lazarus и SynEdit... Ну почему не сделать изначально как то так...

Код: Выделить всё
TSynItem = class
  srt: string;
  left,right,prev: TSynItem;
  expanded: boolean;
  charwidth: array [0..255] of integer;
  .......
end;


Вот уже тебе и фолдинг в будущем, и бегай по строчкам туда-сюда. И код в 2000 строк. Понять можно за два часа как что работает.
При изменении шрифта - for i:=0 to 255 do charwidth[i]:=Canvas.TextWidth(char(i));
вот и прорисовка любого шрифта в любой системе.

И это учитывая, что я не архитектор и не планировщик, а просто логически продумал что надо от текстового отображения!

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 29.10.2016 13:11:30
zub
>>Ну почему не сделать изначально как то так...
Я не понял про что это но почему у вас всего 256 букв? их чуток побольше))

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 29.10.2016 13:50:44
sa_t_an
Ну... я ж про изначально... Utf8 и т.д. только грузят систему...
Вы любите читать комментарии на китайском?
А если учитывать и Utf то символов отображения все равно 256... Так вот устроен контроллер клавиатуры...

Добавлено спустя 5 минут 48 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
Но строку charwidth: array [0..255] of integer; заменить в одном месте на charwidth: array [0..255,0..codebase] of integer проще намного

Добавлено спустя 2 минуты 8 секунд:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
Я вообще не могу до конца понять прелестей utf? Мож кто разъяснит поподробнее...?

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 29.10.2016 17:22:05
zub
>>Вы любите читать комментарии на китайском?
А вы писать на русском?
>>А если учитывать и Utf то символов отображения все равно 256... Так вот устроен контроллер клавиатуры...
Вы изобрели машину времени и пишете из девяностых? при чем тут клавиатура?
>>Но строку charwidth: array [0..255] of integer; заменить в одном месте на charwidth: array [0..255,0..codebase] of integer проще намного
проще не использовать массив для этого. экономней. и о "все равно 256" можно будет забыть

>>Ну почему не сделать изначально как то так...
а как там сделано изначально?

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 29.10.2016 20:30:52
sa_t_an
zub писал(а):при чем тут клавиатура?


Потому, что средством отображения информации является терминал (как бы он не выглядел, в этом случае SynEdit) а устройством ввода (как бы оно не выглядело) является клавиатура.
zub писал(а):проще не использовать массив для этого. экономней.

Так проще или экономней? И что использовать для экономии? Проще массива только одиночная переменная?
И чем отличается программирование 90-х и 16-х? Алгоритмы всегда одинаковы.

К стати Брезенхейм от времени не стареет почему-то! :)

Re: Базовый шаблон для создания редактора, с поддержкой вкла

СообщениеДобавлено: 29.10.2016 21:19:22
zub
sa_t_an писал(а):Потому, что средством отображения информации является терминал (как бы он не выглядел, в этом случае SynEdit) а устройством ввода (как бы оно не выглядело) является клавиатура.

Не уловил, ну да ладно
sa_t_an писал(а):Так проще или экономней? И что использовать для экономии? Проще массива только одиночная переменная?
И чем отличается программирование 90-х и 16-х? Алгоритмы всегда одинаковы.

Отличается размерами - pаньше 640кб хватало всем. 255 байтов хватало на описание ширин всех знаков.
Сейчас и проще и экономнее использовать чтонибудь вроде TMap для этого
sa_t_an писал(а):К стати Брезенхейм от времени не стареет почему-то!

Нифига, сейчас всем с алиасингом подавай. И вытянулся он конкретно - осваивал я его га экране 256×192 сейчас не использую на 2560x1440))