Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Ehlib

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Открыть новую тему     Написать ответ в эту тему

landy



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
То есть Вы из "благих" побуждений, безвозмездно и самостоятельно, будете всем клиентам нашей необъятной родины, тем которые на Delphi7, именно Вы будете им пропихивать и устанавливать FastMM? Я думаю многие из них даже не знают что это.  

Честно говоря, не понял вопроса. Те, кто испытывал проблемы с родным ММ из семерки - прекрасно знают о FastMM и много лет его используют.
 
Что до cxGrid - во-первых тред про EhLib, а во-вторых - в каждом конкретном случае разработчик сам решает, переводить свой проект или нет (обычно решение созревает после нескольких попыток), тут гарантий никто не дает. Я лишь за то, чтобы совместимость крупных сторонних библиотек с семеркой не отрезали без веских причин.

Всего записей: 576 | Зарегистр. 17-01-2003 | Отправлено: 17:19 06-01-2015
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Я лишь за то, чтобы совместимость крупных сторонних библиотек с семеркой не отрезали без веских причин.

Ну причина одна и та же. Я тоже пишу компонентики которые до сих пор поддерживают D7. Два дня убил на восстановление этой поддержки - в коде появилось много "морщин" (я так директивы называю), гораздо больше чем от всех остальных Delphi которые выше. Работая с D7 я ощущаю лишь убогость, ни капли ностальгии. Прикрутил я свои TWideStringField, они да позволяют работать - из корректного файла я получаю корректный WideString, но в процессе попадания строки в контролы, где-то Delphi их конвертирует и реальные ценные данные о нестандартных для рус-енгл буквах теряются. Такой софтиной легко похоронить трудом добытые, адекватные данные на отличных языках. (добавлено, кстати Delphi2006 тоже гробит юникод, думаю нормально только начиная с 2010)
 
Причина одна - те кто занимаются поддержкой D7, думаю так же сильно чувствуют убогость происходящего.
 

Цитата:
Честно говоря, не понял вопроса. Те, кто испытывал проблемы с родным ММ из семерки - прекрасно знают о FastMM и много лет его используют.  

Ну и наивный Вы человек. На старые проекты нанимают программистов со стажем 1 год. Вы что с луны чтоли? Не обижайтесь, но они не знают никакой FastMM, не знают что такое менеджер памяти, не понимают почему загрузив 350мб, потом освободив память, потом через 5 минут отладки не известно где ловят OutOfMemory. Сомневаюсь что у всех клиентов D7 сейчас сидят программисты хотя бы с 15летним стажем. Не будут они использовать FastMM если Вы не возьмёте на себя обязанность донести им своё решение проблем каменного века. Я так и думал - поспорить хотите, простите за резкость.
 
 
Добавлено:
landy
Ещё
1) За что люблю EhLib, - так или иначе использую его протектные методы тоже. Но потом нахожу для EhLib адекватное решение, которое позволяет избавиться от протектных методов.
 
2) Я добавил в наш комплекс ПО много EhLib гридов, и прикрутил много приятных плюшек. И всегда выкладываю дистрибутив 30-и библиотек компонентов, которые используем. А Вы не думали, что после меня придёт молодой активный программист, который обновит компоненты? А все плюшки слетят - это точно, да и не воспроизведёт он их. С одной стороны будет злорадство, с другой стороны труд то всё равно был загроблен.

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 19:58 06-01-2015 | Исправлено: xpin2013, 18:29 07-01-2015
landy



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Прикрутил я свои TWideStringField, они да позволяют работать - из корректного файла я получаю корректный WideString, но в процессе попадания строки в контролы, где-то Delphi их конвертирует и реальные ценные данные о нестандартных для рус-енгл буквах теряются

Далеко не каждому приложению нужен юникод, большинство может обойтись своей кодовой страницей и латиницей. Если действительно есть обоснованное требование поддержки более двух языков - выбор, конечно, не особо велик - нужно портировать.
 
Добавлено:

Цитата:
На старые проекты нанимают программистов со стажем 1 год. Вы что с луны чтоли? Не обижайтесь, но они не знают никакой FastMM, не знают что такое менеджер памяти

Не уверен, что сейчас "программисты Delphi со стажем 1 год" - массовое явление. Сейчас всем преподают C#...

Всего записей: 576 | Зарегистр. 17-01-2003 | Отправлено: 22:39 06-01-2015
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
landy

Цитата:
Не уверен

То-то и оно. В нашей конторе проект стали делать когда ещё D7 не было. А портал делали на веб-сервисах C#. Так что я и то и другое делал, но за всё время нанимали программистов в помощь. Повидал много, уверяю, программисты Delphi со стажем 1 год - массовое явление. Лучший, кого я оценил, когда увидел, что я в файле директив начинаю что-то писать закричал на мена - "нельзя этого делать это они объявили переменные...". У меня был двойной ступор, почему нельзя и как бы этот файл я своими ручками создавал, библиотека просто моя. А если сейчас это лучшие?
 
Добавлено:
ps
Хочется подытожить. Первый раз когда я решился отказаться от поддержки - это была Delphi3. Это полное убожество. Помню, сколько времени потратил вычищая директивы, в результате получил весьма красивый текст. 2 года назад на работе переехал с D7 на D2010. Заметил что D7 пол года не запускал, а там ещё и компонентов куча. Решил что запускаю на работе последний раз, по этому последний раз сделал поддержку D7. Планирую скоро покинуть D2010. Одному как то скучно говорить гудбай D7, вот за компанию и предлагаю D7 помахать ручкой. Мне всё равно, а "клиентов" с D7 мне жалко, вдруг им кто ни будь новые компоненты начнёт устанавливать. Я понимаю молодое желание идеального мира, но благими намерениями устлана дорога в ад. Ничего положительного в поддержке D7 новыми компонентами я не вижу, только горе нанимателям.

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 23:41 06-01-2015 | Исправлено: xpin2013, 00:00 07-01-2015
mrUlugbek



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HotTrack Не работает VCL Style Ligth? Как исправить? В остальных vcl style работает но только Light не работает
Заранее благодарен

Всего записей: 879 | Зарегистр. 04-04-2011 | Отправлено: 10:27 31-01-2015
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую.
Есть старая программа, всё на BDE + Paradox + TTable + Ehlib, D2007.
Открыл, проект нормально компилируется, и даже работает.
 
Проблема заключается в том, что DBGridEh теперь при сортировке выдаёт исключение:

Цитата:
Exception
TSQLDatasetFeaturesEh can not sort data in dataset in local mode

 
Проверил в EhLib версии 5 и 7. В более старых версиях Ehlib локальная сортировка работала.
 
EhLibBDE в USES присутствует.
 
Переделывать всё не хочется на TQuery или на другую сетку.
Или Ehlib уже не хочет нормально работать с TTable? Автор поломал?

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:08 28-02-2015
tarakan19831



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
У меня такая проблема: На форме 2 грида с checkbox'ами "Группа товаров" и "Товары", нужно, чтобы при смене статуса чекбокса "группы товаров" менялся статус чекбоксов у товаров этой всей группы. Как можно это организовать так, чтобы это было моментально, при использовании количества записей >2000. Дело в том что у меня сейчас жуткие тормоза.

Всего записей: 171 | Зарегистр. 22-11-2009 | Отправлено: 19:07 09-03-2015
XPerformer



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tarakan19831

Цитата:
Дело в том что у меня сейчас жуткие тормоза.

Не хотите нам поведать, каким именно способом вы организовали эти тормоза, дабы не повторяться в советах? не говоря уже о том, какую БД используете

Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 19:18 09-03-2015
tarakan19831



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Использую Delphi XE2 + Firebird.
Использую Master - Detail

Код:
 
procedure TFmTov.DBGridEh1SelectionChanged(Sender: TObject);
begin
  DBGridEh2.SelectedRows.SelectAll;
end;
 

 
Извините, не туда посмотрел

Код:
 
try
    Screen.Cursor := crSQLWait;
    DBGridEh2.DataSource.DataSet.DisableControls;
    if DBGridEh1.SelectedRows.CurrentRowSelected then
      begin
        DBGridEh2.DataSource.DataSet.First;
        while not DBGridEh2.DataSource.DataSet.Eof do
          begin
            DBGridEh2.SelectedRows.CurrentRowSelected := True;
            if TIDList.IndexOf(DBGridEh2.Fields[0].AsString) < 0 then
              TIDList.Add(DBGridEh2.Fields[0].AsString);
            DBGridEh2.DataSource.DataSet.Next;
          end;
      end
        else
          begin
            DBGridEh2.Selection.Clear;
            DBGridEh2.DataSource.DataSet.First;
            while not DBGridEh2.DataSource.DataSet.Eof do
              begin
                TIDList.Delete(TIDList.IndexOf(DBGridEh2.Fields[0].AsString));
                DBGridEh2.DataSource.DataSet.Next;
              end;
          end;
  finally
    DBGridEh2.DataSource.DataSet.First;
    DBGridEh2.DataSource.DataSet.EnableControls;
    TIDPrintLbl.Caption := IntToStr(TIDList.Count);
    Application.ProcessMessages;
    Screen.Cursor := crDefault;
  end;
 
 
Дело в том, что мне нужен еще список выбранных ID для дальнейших манипуляций...

Всего записей: 171 | Зарегистр. 22-11-2009 | Отправлено: 19:24 09-03-2015 | Исправлено: tarakan19831, 19:31 09-03-2015
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tarakan19831
А если тот запрос, который в  DBGridEh2.DataSource.DataSet, выполнить в IBExpert на том же сервере в той же базе  в режиме «Execute and fetch all», то сколько времени он (запрос) выполняется?

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 10:06 10-03-2015
tarakan19831



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
«Execute and fetch all»

А не подскажете как его выполнить?

Всего записей: 171 | Зарегистр. 22-11-2009 | Отправлено: 13:48 10-03-2015
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
А не подскажете как его выполнить?

Shift+F9

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 14:11 10-03-2015
tarakan19831



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Shift+F9

Извените, сразу с просони не понял, что имеется ввиду.
У меня конечно не IB Expert, но на том же сервере в той же базе  в режиме «Execute and fetch all» получилось 1,086 сек.

Всего записей: 171 | Зарегистр. 22-11-2009 | Отправлено: 14:15 10-03-2015
Ded0k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tarakan19831
У вас тормоза потому что вы идете в цикле по мастер-датасету, а в детейл-датасете при этом каждый раз происходит переоткрытие датасета. Соответственно выполняется куча запросов SELECT, UPDATE.
Если хотите сделать быстро - сделайте UPDATE одним отдельным запросом, так же можете одним отдельным запросом вытащить нужные вам ID-шники. 2 больших запроса всяко быстрее выполнятся чем куча мелких.

Всего записей: 87 | Зарегистр. 02-11-2004 | Отправлено: 16:16 09-04-2015
deyatel1974

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как без лишних усилий передавать в грид строчки из памяти без датасета? пытаюсь обойтись событиями в TDataSetDriverEh со структурой получилось а сами данные не передаются
 
procedure TForm1.drvTest1ReadRecord(DataDriver: TDataDriverEh;
    MemTableData: TMemTableDataEh; MemRec: TMemoryRecordEh; var ProviderEOF: Boolean);
begin
  MemRec.DataValues['ID', dvvValueEh] := 1;
  MemRec.DataValues['State', dvvValueEh] := 'state';
  ProviderEOF := (MemRec.HashCode >= 10);
end;
 
отображаются олько пустые строки

Всего записей: 23 | Зарегистр. 10-08-2014 | Отправлено: 20:54 27-06-2015 | Исправлено: deyatel1974, 20:56 27-06-2015
ASerpik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 1 | Зарегистр. 28-07-2015 | Отправлено: 13:01 28-07-2015
Zlodeyz



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите как сделать чтобы группа раскрывалась когда тыкаешь на строку группы, а то в плюсик тяжело попасть на сенсорном экране.

Всего записей: 189 | Зарегистр. 18-11-2006 | Отправлено: 08:57 24-11-2015
Volniy_Strelok



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Подскажите как сделать чтобы группа раскрывалась когда тыкаешь на строку группы, а то в плюсик тяжело попасть на сенсорном экране.

DBGridEh1.RowDetailPanel.Visible := true;

Всего записей: 85 | Зарегистр. 08-02-2007 | Отправлено: 16:47 23-05-2016
jhtiger



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь встречал реализацию DataDriverEh-a под SDAC от DevArt?

Всего записей: 194 | Зарегистр. 15-09-2003 | Отправлено: 13:21 01-07-2016 | Исправлено: jhtiger, 13:23 01-07-2016
zealotfan



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как сделать так,чтобы в SearchPanel поиск работал не по всему DBGridEh, а только по определённому столбцу?

Всего записей: 234 | Зарегистр. 25-02-2016 | Отправлено: 15:49 06-07-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Ehlib


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru