Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2015, 20:44   #191
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
Выражения в фильтре не допускается ? Типа такого ?
Я думаю, такие не будут работать. Можно ещё попробовать OnFilterRecord обработчик сделать, там доступны любые вычисления, если быстродействие устроит, я думаю на больших таблицах может притормаживать.
Код:
method TMainForm.xDbf1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
  Accept = false;
  if Pos('РЕ', DataSet.FN('NAME').AsString) = 1 then Accept = True end;
end;
У xDBF соответственно Filtered нужно сделать в True как и с обычным фильтром...
Rik вне форума Ответить с цитированием
Старый 03.01.2015, 12:14   #192
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

https://cloud.mail.ru/public/e885aaa...Vor_150102.zip

Программку, можно сказать, закончил.Все что можно получить с TDBF применялось.
С фильтрацией все получилось. Она в любом случае медленная и приемлима только на небольших базах.

Глюк с поиском в главном окне остался.
vladrvv вне форума Ответить с цитированием
Старый 03.01.2015, 15:09   #193
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
https://cloud.mail.ru/public/e885aaa...Vor_150102.zip

Программку, можно сказать, закончил.Все что можно получить с TDBF применялось.
С фильтрацией все получилось. Она в любом случае медленная и приемлима только на небольших базах.

Глюк с поиском в главном окне остался.
Глюк похоже связан с индексацией, в Ray в поле поиска были только заглавные буквы, там все работало. Посмотрю что можно сделать, но только после выходных.

В Linux соответственно печать не работает..

ps.
Все таки лучше-бы FireBird вместо DBF, мощнее, быстрее, надежнее, даже в плане переносимости или портативной версии лучше, вся база в одном файле. FireBird embeded не требует установки SQL сервера, работает локально, зато при необходимости можно все развернуть в сети для полноценной работы не переписывая ни строчки кода. Бизнес-пак не зря на FireBird переехали...

Последний раз редактировалось Rik; 03.01.2015 в 15:41.
Rik вне форума Ответить с цитированием
Старый 05.01.2015, 15:45   #194
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Юрий, добрый день.
Хотел бы узнать о Ваших планах развития Дизеля.

В свою очередь сообщаю о выявленных замечаниях
1) Дизайнер
1.1 крайне неустойчивая работа- может закрыться безовсякого предупреждения, всё что делал , естественно исчезло;Причинно-следственная связь не установлена

1.2 Имеет место "прилипание" объектов, установленных на форме, к курсору.Щелкнул, к примеру,по объекту для того, чтобы перейти в окно его свойств. Мышку отпустил, по форме ведешь, а объект так же тащится за ней

1.3 И вообще сам Дизайнер, мягко говоря, не очень шустрый

1.4 Бывает проект не запускается с первого раза

2)ГроссМашина
2.1 Должна быть защита "от дурака". При ошибке при присваивании в имени поля - программа вылетает.
2.2 Про TDbf я уже писал (поиск).
vladrvv вне форума Ответить с цитированием
Старый 05.01.2015, 21:14   #195
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
Юрий, добрый день.
Хотел бы узнать о Ваших планах развития Дизеля.

В свою очередь сообщаю о выявленных замечаниях
1) Дизайнер
1.1 крайне неустойчивая работа- может закрыться безовсякого предупреждения, всё что делал , естественно исчезло;Причинно-следственная связь не установлена

1.2 Имеет место "прилипание" объектов, установленных на форме, к курсору.Щелкнул, к примеру,по объекту для того, чтобы перейти в окно его свойств. Мышку отпустил, по форме ведешь, а объект так же тащится за ней

1.3 И вообще сам Дизайнер, мягко говоря, не очень шустрый

1.4 Бывает проект не запускается с первого раза

2)ГроссМашина
2.1 Должна быть защита "от дурака". При ошибке при присваивании в имени поля - программа вылетает.
2.2 Про TDbf я уже писал (поиск).
vladrvv
Проблемы дизайнера имеют место.
1.1. Могу сказать, что пока так-же не могу установить причину, предполагаю, проблема связана с отрисовкой граббера(точки захвата выделенного объекта).

1.2. Прилипание возникает, когда происходит двойной щелчек на компоненте у которого при этом вызывается модальный редактор компонента (не модальные к проблеме не приводят). Я периодически возвращаюсь к этому, есть мысли как победить. Это следствие того, что кое-что я делал по аналогии с тем как было сделано в Delphi, там работало, здесь нет. Событие вызова редактора компонента при двойном щелчке нужно перенести из OnMouseDown в OnMouseUp, почему-то сходу перенести не удалось, думаю что скоро проблему решу.

1.3. Тут имеет место быть в основном неторопливость самой LCL, даже если в конечном итоге я выправлю то, что сам накосячил, все равно будет не так быстро как в Delphi.

1.4. Проект может не запускаться с первого раза из под дизайнера, по той причине, если процесс предыдущего запуска, по какой-то причине не завершился (долго завершается). В этом случае, если запущенный из под дизайнера процесс все ещё работает, на панели, кнопка "Сбросить выполнение программы" будет гореть красным цветом (эта кнопка расположена рядом с кнопкой запустить). В следующий раз перед очередным запуском из под дизайнера, обратите внимание, горит эта кнопка красным или нет, если горит - значит предыдущий процесс по какой-то причине все ещё работает и новый вы не запустите. Возможно поможет, если в деструктор главной формы или модуля данных, нужно добавить код закрытия всех открытых наборов данных, если на момент завершения работы программы имеются открытые.

2. КроссМашина

2.1. Если я Вас правильно понял и Вы имеется в виду: DataSet.FN('ErrorName').As.. = ..., тут FN вызывает FieldByName, он в случае если поле с именем отсутствует должен генерить соответствющую ошибку. Проверю, что там происходит. Или Вы о другом?

2.2. Пока работаю..

В остальном, в планах ещё есть вернуть русскую транскрипцию встроенных языков (пока отключено из-за невозможности сделать подсветка в редакторе). Возможно ещё добавлю какие-нибудь сервисы, что-бы формы с полями редактирования данных автоматом генерил. Само-собой ошибки пофиксить. В целом заложенный функционал меня устраивает, приложения содержащие примерно сотню модулей работают у меня без проблем на десятка рабочих мест в Windows и Linux, есть роботы, которые висят в трее месяцами с периодичностью в 15 минут проверяют и принимают почту, извлекают вложения, распаковывают из ZIP, загружают в базу данные, потом после обработки выгружают уже другие данные в XML и отправляют по Web сервисам. Есть ещё кое какие планы по отладчику, но это на более далекую перспективу да и сам интерпретатор не помешало-бы улучшить.
Наверно как-то так... Я ограничен своими потребностями, может у Вас идеи какие есть?

Последний раз редактировалось Rik; 05.01.2015 в 21:36.
Rik вне форума Ответить с цитированием
Старый 06.01.2015, 11:27   #196
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Цитата:
имеется в виду: DataSet.FN('ErrorName').As.. = ..., тут FN вызывает FieldByName
Да , этот случай.
Ещё горящий вопрос.
У CheckBox есть свойство Checked, а у DBCheckBox нет.
vladrvv вне форума Ответить с цитированием
Старый 06.01.2015, 15:31   #197
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
Да , этот случай.
Ещё горящий вопрос.
У CheckBox есть свойство Checked, а у DBCheckBox нет.
У DBCheckBox этого свойства и не должно быть. Меняется только через значение поля (DBCheckBox1.Field.AsBoolean или DataSet.FN('').AsBoolean). Ещё у "стандартного" DBCheckBox нет событий OnKeyDown, OnKeyPress, OnKeyUp, если эти события могут понадобиться, то лучше использовать TxDBCheckBox на закладке VisualTech.

Последний раз редактировалось Rik; 06.01.2015 в 15:37.
Rik вне форума Ответить с цитированием
Старый 06.01.2015, 21:17   #198
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

А
DBComboBox1.Items.LoadFromFile();
DBComboBox1.Items.SaveToFile();
vladrvv вне форума Ответить с цитированием
Старый 06.01.2015, 21:59   #199
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
А
DBComboBox1.Items.LoadFromFile();
DBComboBox1.Items.SaveToFile();
Что с ними не так? Для всех TStrings.SaveToFile и LoadFromFile работают.

Я обновил сборку. Исправил косяк дизайнера с залипанием.
По поводу поиска в TxDBF. В проекте DogoVor косяк был связан с конфликтом с xDBGrid, у него тоже есть автопоиск... Я автопоиск у TxDBGrid для TxDBF улучшил. Сейчас, если у TxDBF, TIBDataSet, TZDataSet есть индексированные или сортированные поля, сетка TxDBGRid будет автоматом отрисовывать иконку сортировки в заголовке столбца с таким полем (только для одного поля, если в сортировке участвуют более одного, берет первое попавшееся). По сортированному полю будет проходить автопоиск, обработка UTF8KeyPress и KeyDown не требуется (если в каждую гриду руками поиск прописывать можно убиться в большом проекте). Для автопоиска должны быть включены у TxDBGRid.Options.xgdAutoLocate, xgdRowSelect. Что-бы видно было, что ищем, в LacateInfoPanel назначить любую TPanel, в её свойство Caption будет выводиться, что набирается с клавиатуры для поиска. Если установить у TxDBGrid.AutoSort = True, то при нажатии на заголовок сетки произойдет автосортировка по этому столбцу. Для TxDBF это будет сопровождаться созданием (включением) индекса, поиск соответственно можно задать по любому сортированному столбцу на котором щелкнем.
У TxDBF при создании индекса указывать ixCaseIsensitive бесполезно, в заголовке индексных файлов (во всяком случае MDX), нет соответствующей опции, поэтому ixCaseIsensitive игнорируется и поиск будет всегда регистрозависимым. Для регистронезависимого поиска придется прибегать к хитростям. Ещё у TxDBGRid есть автофильтр, для этого включить свойство UserAutoFilter, после этого при нажатии на Ctrl+F можно вызвать окно фильтра. Фильтр работает по полю, в котором стоит курсор (активный курсор присутствует даже если у сетки в Options включено xgdRowSelect).
http://visual-t.ru/files/DogoVor_150106.7z

ps.
Ещё заметил, наличие в форме TMainMenu, может приводить к тому, что размер и позиционирование формы в дизайнере сбиваются (под Windows). Я не рекомендую использовать меню, особенно если требуется кросс-платформенность, в Linux типа Ubuntu меню приложения встраивается в главное системное меню юнити, извращение жуткое, лучше вообще без него (даже 1с8 похоже от меню избавились)...

Последний раз редактировалось Rik; 06.01.2015 в 22:47.
Rik вне форума Ответить с цитированием
Старый 07.01.2015, 20:26   #200
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Сейчас обновился. Работаю над другой задачей. Вообще из под дизайнера ГроссМашина перестала запускаться.

Теперь по поводу обновлений.Возможно я вас к этому подтолкнул, но мне кажется с Tdbf вы пошли по неправильному пути (так я считаю).Есть понятие частного и общего. Всякое обобщение при наличии плюсов ведет к потере гибкости (очевидный минус). Этот как перейти к строительству из блоков или монолитному вместо кирпичей. То что можно сделать из кирпичей никогда не сделаешь из блоков.
Так вот здесь появилась предопределенная панель и автоматом отрисовывается иконка сортировки и т.д.
Так и в 1С: сложные вещи делаются просто, простые - никак!

Теперь о другом.
Каждая программа содержит много справочников. А я хотел озадачить Вас : можно или нет и как создать класс формы на основе разработанного образца, чтобы его один использовать для большого количества различных, но подобных, справочников.
vladrvv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что же я написал? Sibedir Свободное общение 26 04.10.2010 05:01
Я написал текстовую игру... saggy Софт 11 05.06.2010 22:32
Написал редактор карт sasha1993 Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 18.07.2009 21:31
Написал прогу в паскале... deu4er Помощь студентам 2 19.11.2008 20:08
Написал бэкдор, оцените KORN Софт 7 18.11.2007 08:55