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

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

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

Сообщение Deimos » 10.08.2016 22:30:21

тогда убираем вотэто за ненужностью


обоснуйте

Добавлено спустя 4 минуты 43 секунды:
Re: Базовый шаблон для создания редактора, с поддержкой вкладок
Не удержался )))


Можно работать с динамическими компонентами, без списка онных и указателя на конкретный? Просветите... Буду только рад
Deimos
постоялец
 
Сообщения: 130
Зарегистрирован: 17.01.2010 00:31:30

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

Сообщение zub » 10.08.2016 22:40:01

1) Даже если в указателях тут есть какаято необходимость (невижу в упор) - в данной реализации они всеравно длагополучно утекают - надо доводить до ума
2) atab:ttabsheet; - atab тут уже указатель (так устроены классы). и конструкция вида atab: ^ttabsheet; это масло маслятое - указатель на указатель на инстанс

>>Можно работать с динамическими компонентами, без списка онных и указателя на конкретный? Просветите... Буду только рад
разрешаю, можно!))
zub
долгожитель
 
Сообщения: 2048
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение Deimos » 10.08.2016 22:45:22

разрешаю, можно!


Зуб - без обид...

Срач с Айрином уже который день...

Много замечаний к моему - есть толковые.... Теоретические

Код давай. Поправь нас... Научимся - исправим..

Модераторам - закройте тему пожалуйста.
Deimos
постоялец
 
Сообщения: 130
Зарегистрирован: 17.01.2010 00:31:30

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

Сообщение zub » 10.08.2016 22:58:41

>>Зуб - без обид..
Какие обиды)) Ты тоже сильно не напрягайся - твой код реально неправильный

>>Много замечаний к моему - есть толковый.... Теоретические
Обоснованые. Проверь утечки в своей программе. Научить как?

>>Код давай. Поправь нас... Научимся - исправим..
Не надо ждать от меня полного кода. динамическое создание таба должно выглядеть примерно так
Код: Выделить всё
procedure TmForm.create_tab(path,fext:string);
var
   TEMPatab:ttabsheet;//просто класс, не указатель на класс
begin
   mform.BeginFormUpdate;
   //new(TEMPatab);//ненадо так
   TEMPatab:=ttabsheet.Create(pages);
   TEMPatab.PageControl:=pages;
   TEMPatab.Parent:=pages;
   TEMPatab.caption:=extractfilename(path);
   statusbar1.Panels[0].Text:=extractfilepath(path)+extractfilename(path);
   new(aedit);
   aedit^:=tsedit.create(TEMPatab,path);
   aedit^.Parent:=TEMPatab;
  ....

aedit - сам правь. дальнейшие вхождения тоже сам

кроме того, по мне необходимость aedit и atab в описании класса не обоснована (поэтому TEMPatab у меня стал локальной переменной). Если ты так не считаешь - дело твое и непринципиальное, тогда перекинь TEMPatab в класс

>>Модераторам - закройте тему пожалуйста.
Ишь какой. Выложил косячный пример и в кусты?))
zub
долгожитель
 
Сообщения: 2048
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение скалогрыз » 11.08.2016 00:22:56

имхо, zub намекает, что
1) вообще .lfm (или часть его) нужно держать как внешний ресусрный файл и подгружать по необходимости.
2) ещё было бы неплохо, цеплять скрипты динамически. При чём pascalscript, а какой-нить lua вешать, опционально
3) или вместо скриптовой реализации компилировать не лету в дин библиотеки.
(этакая альтернатива html+js)
конечно, потом все эти вещи можно будет погружать из сети. Но так или иначе RTTI это наше всё :mrgreen:

ну или хотя бы - убрать всё лишнее из примера
скалогрыз
долгожитель
 
Сообщения: 1630
Зарегистрирован: 03.09.2008 02:36:48

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

Сообщение Лекс Айрин » 11.08.2016 09:18:39

Deimos писал(а):Срач с Айрином уже который день...


Это не срач, пусть и выглядит так.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3714
Зарегистрирован: 19.02.2013 16:54:51

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

Сообщение zub » 11.08.2016 11:54:27

Срач с Айрином уже который день...

Вы срачей не видели))
Критика это всегда хорошо. я был бы рад если по моей работе ктонить бы также пробежался
zub
долгожитель
 
Сообщения: 2048
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение Deimos » 11.08.2016 12:03:16

zub писал(а):Критика это всегда хорошо


Абсолютно согласен. С утечками - мой косяк... Мне и самому далеко не весь код нравится ))) И мой, иногда, в том числе...

С указателями намудрил действительно-лишнего.

Убрал утечки )))

Потом прикинул и таки поменял на экшены...

Ну и код чуть причесал в паре процедур
Deimos
постоялец
 
Сообщения: 130
Зарегистрирован: 17.01.2010 00:31:30

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

Сообщение zub » 12.08.2016 00:35:16

Красота. Но зачем тут указатели?

Сейчас еще меняем
Код: Выделить всё
    aedit: ^Tsedit;
    atab: ^ttabsheet;

на
Код: Выделить всё
    aedit: Tsedit;
    atab: ttabsheet;

трём все строки с new и dispose
поиском и заменой меняем везде aedit^ и atab^ на aedit и atab соответственно

Чудеса - всё работает без указателей - они не нужны для динамического создания классов

Можно работать с динамическими компонентами, без списка онных и указателя на конкретный? Просветите... Буду только рад

Можно и без списков и без указателей.
Списки уже заботливо есть внутри owner`ов, И если своему динамически созданому контролу назначить owner`а - указатель на него сохранится в внутреннем списке дочерних контролов хозяина и будет в дальнейшем убит вместе с хозяином.
Указателем уже является сама классовая переменная.
Код: Выделить всё
procedure TmForm.create_tab(path,fext:string);
var
   TEMPatab:ttabsheet;//TEMPatab по сути это указатель на инстанс класса ttabsheet
...
begin
   TEMPatab:=ttabsheet.Create(pages);//тут в куче создается инстанс ttabsheet, адрес его сохраняется в TEMPatab, муть с new\dispose ненужна
                                                             //также раз указан владелец - указатель на созданый таб сохраняеися внутри pages


Указатели нужны чтобы создавать в куче например рекорды, обжекты, простые массивы. Классы, динмассивы, длинные стринги это уже указатели по своему внутреннему устройству.
Сохранять указатели в списках\переменныч\ещеекакто - в принципе обязательно чтоб работать с созданными данными и потом не забыть уничтожить их. Но в данном случае нам на помощь приходит LCL с своими "механизмами" owner и sender. Если потребуется чтото большее чем убийство контрола вместе с хозяином или "вспоминание" о контроле только при событии от него в виде содержимого sender - TEMPatab придется гдето-както сохранять
zub
долгожитель
 
Сообщения: 2048
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение Deimos » 12.08.2016 00:55:38

zub писал(а):Красота. Но зачем тут указатели?


Пока я только поправил бяки )))
Deimos
постоялец
 
Сообщения: 130
Зарегистрирован: 17.01.2010 00:31:30

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

Сообщение Ichthyander » 12.08.2016 11:18:11

Кстати, а есть ли возможность, техническая и юридическая, вычленить/форкнуть редактор кода Lazarus в отдельное приложение и уже его развивать по открытой лицензии?
Аватара пользователя
Ichthyander
постоялец
 
Сообщения: 264
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

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

Сообщение Deimos » 12.08.2016 20:41:50

Ichthyander писал(а):Кстати, а есть ли возможность, техническая и юридическая


Юридическая есть - Lazarus лицензирован под GPL
Deimos
постоялец
 
Сообщения: 130
Зарегистрирован: 17.01.2010 00:31:30

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

Сообщение Лекс Айрин » 12.08.2016 21:05:08

В принципе, и техническая есть... просто открыть как проект и тупо удалить поддержку компилятора и прочего "левого" инструментария... правда, надо найти где именно он расположен.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3714
Зарегистрирован: 19.02.2013 16:54:51

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

Сообщение Ichthyander » 12.08.2016 21:05:40

Deimos писал(а):
Ichthyander писал(а):Кстати, а есть ли возможность, техническая и юридическая


Юридическая есть - Lazarus лицензирован под GPL

Ну под этой лицензией и оставить, проблем нет

Добавлено спустя 7 минут 35 секунд:
Лекс Айрин писал(а):В принципе, и техническая есть... просто открыть как проект и тупо удалить поддержку компилятора и прочего "левого" инструментария... правда, надо найти где именно он расположен.

Да, наверное, в основном техническая. А так неплохо бы отталкиваться от этого функционала. Как бы уже есть к нему некая привычка и расширять мог бы каждый под себя или совместно...
Аватара пользователя
Ichthyander
постоялец
 
Сообщения: 264
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

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

Сообщение Лекс Айрин » 12.08.2016 21:14:54

Кстати, есть отдельный модуль SourceEditor... можно и попробовать отделить...
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3714
Зарегистрирован: 19.02.2013 16:54:51

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru