Страница 4 из 5
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 28.10.2016 11:25:25
sa_t_an
Надо было docmanager обозвать... Это типа менеджер работы с документами... Ну... я видал и dokumentprovodnik название...
А монолит... Там практически все связан, toolbar только отдельно, но по ходу для 1300 строк кода это не критично?
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 28.10.2016 17:17:18
zub
>>Это типа менеджер работы с документами...
понял
>>но по ходу для 1300 строк кода это не критично?
Не думаю что это зависит от колва строк. Если это "базовый шаблон" - должно предпологаться легкое расширение функционала без правки кода "базы"
Допустим возьму я ваш код, но мне нужен поиск по шаблону и замена... переформошлепывать?
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 28.10.2016 19:38:58
sa_t_an
Так это не "базовый шаблон" - это "до кучи"...
То есть взяли "базовый шаблон" и воткнули туда из "до кучи", благо что посмотреть можно не напрягаясь в 20000 строк...
Например сохранение, открытие и закрытие файлов...
Добавлено спустя 16 минут 53 секунды:Re: Базовый шаблон для создания редактора, с поддержкой вкладокК стати для шаблонных решений нужен архитектор кода. Иначе получим попку с ручками закостылинную под определённое решение. Ну... вроде SynEdit-а.
С неимоверно раздутым кодом который можно было впихнуть строчек в 3000-5000!
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 28.10.2016 20:05:47
zub
Где он этот архитектор... ато куда не глянь везде жопа с ручкой((
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 28.10.2016 20:49:53
Deimos
sa_t_an писал(а):для шаблонных решений нужен архитектор кода
Простите мое незнание... О чем идет речь?
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 28.10.2016 21:12:03
sa_t_an
WikiДобавлено спустя 15 минут 23 секунды:Re: Базовый шаблон для создания редактора, с поддержкой вкладокzub писал(а):Где он этот архитектор... ато куда не глянь везде жопа с ручкой((
Это да... Поэтому лучше стараться писать минимум кода с максимумом отдачи.
Если бы в своё время Mike Lischke оттолкнулся от того, что редактор - это представление дерева, то всё было бы в порядке с архитектурой! И фолдинг и строки.
А уж если бы он в своё время высчитывал пиксели отталкиваясь от величины
глифа... Оооо...

Шрифт
Arial в SynEdit-е был бы похож на шрифт
Arial!!!

Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 28.10.2016 22:47:29
Deimos
sa_t_an писал(а):Wiki
Это понятно и самому найти не сложно )
Можно посмотреть пример толковой реализации для простого шаблона? Если-вдруг есть у кого...
ато куда не глянь везде жопа с ручкой((
Добавлено спустя 5 минут 16 секунд:Re: Базовый шаблон для создания редактора, с поддержкой вкладоквыбор структурных элементов и их интерфейсов, с помощью которых составлена система, а также их поведения в рамках сотрудничества структурных элементов;
соединение выбранных элементов структуры и поведения во всё более крупные системы;
архитектурный стиль, который направляет всю организацию — все элементы, их интерфейсы, их сотрудничество и их соединение
Например это, которое из вики... Утверждать, доподлинно, я не в праве, но мне кажется, что нечто подобное есть в одной майкросовфте с их подходами к созданию Осей... Ну может в яблоках тоже... Но в никсах ни разу не видел... Любопытствует конкретный простенький пример ))) Который выходит за рамки "ШАЯ" (если о нем кто помнит)...
Добавлено спустя 3 минуты 54 секунды:Re: Базовый шаблон для создания редактора, с поддержкой вкладокsa_t_an писал(а):Иначе получим попку с ручками закостылинную под определённое решение.
99% современного софта написаны именно так... я ошибаюсь?
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 28.10.2016 23:05:26
sa_t_an
Deimos писал(а):одной майкросовфте с их подходами к созданию Осей
Не... это поделка...
Пример архитектурного проектирования операционных систем - эээ... Ну это Николай Вольдемарович во всей красе тут
ОберонВ нативном Обероне множество подобных шаблонов расширяемых систем!
Добавлено спустя 1 минуту 10 секунд:Re: Базовый шаблон для создания редактора, с поддержкой вкладокsa_t_an писал(а):99% современного софта написаны именно так... я ошибаюсь?
Ага, ошибочка, не 99% а 99.999%
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 29.10.2016 08:36:49
Лекс Айрин
sa_t_an, боюсь, это тоже ошибка. Идеально правильных расширяемых систем единицы. И, к сожалению, кроссплатформенность только увеличивает хаос.
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 29.10.2016 12:01:01
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 12:11:30
zub
>>Ну почему не сделать изначально как то так...
Я не понял про что это но почему у вас всего 256 букв? их чуток побольше))
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 29.10.2016 12:58:40
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 16:22:05
zub
>>Вы любите читать комментарии на китайском?
А вы писать на русском?
>>А если учитывать и Utf то символов отображения все равно 256... Так вот устроен контроллер клавиатуры...
Вы изобрели машину времени и пишете из девяностых? при чем тут клавиатура?
>>Но строку charwidth: array [0..255] of integer; заменить в одном месте на charwidth: array [0..255,0..codebase] of integer проще намного
проще не использовать массив для этого. экономней. и о "все равно 256" можно будет забыть
>>Ну почему не сделать изначально как то так...
а как там сделано изначально?
Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 29.10.2016 19:30:52
sa_t_an
zub писал(а):при чем тут клавиатура?
Потому, что средством отображения информации является терминал (как бы он не выглядел, в этом случае SynEdit) а устройством ввода (как бы оно не выглядело) является клавиатура.
zub писал(а):проще не использовать массив для этого. экономней.
Так проще или экономней? И что использовать для экономии? Проще массива только одиночная переменная?
И чем отличается программирование 90-х и 16-х? Алгоритмы всегда одинаковы.
К стати Брезенхейм от времени не стареет почему-то!

Re: Базовый шаблон для создания редактора, с поддержкой вкла
Добавлено: 29.10.2016 20:19:22
zub
sa_t_an писал(а):Потому, что средством отображения информации является терминал (как бы он не выглядел, в этом случае SynEdit) а устройством ввода (как бы оно не выглядело) является клавиатура.
Не уловил, ну да ладно
sa_t_an писал(а):Так проще или экономней? И что использовать для экономии? Проще массива только одиночная переменная?
И чем отличается программирование 90-х и 16-х? Алгоритмы всегда одинаковы.
Отличается размерами - pаньше 640кб хватало всем. 255 байтов хватало на описание ширин всех знаков.
Сейчас и проще и экономнее использовать чтонибудь вроде TMap для этого
sa_t_an писал(а):К стати Брезенхейм от времени не стареет почему-то!
Нифига, сейчас всем с алиасингом подавай. И вытянулся он конкретно - осваивал я его га экране 256×192 сейчас не использую на 2560x1440))