Не являюсь, но пользуюсь давно с 3 версии.
» Вопросы по Ehlib
Цитата:
Хотя посмотрел другой топ где вы собираетесь покупать сабж
Что он только не собирается тут делать, во всех темах гиперактивный.
Цитата:
Что он только не собирается тут делать, во всех темах гиперактивный.
Много вопросов накопилось, не знал с кем обсудить.
У меня такая проблема:
Необходимо в комбобоксе выбрать вариант, варианты с рисунками, но не 16*16, а я сделал 48*48 (так лучше видно).
Вообще для таких вещей есть TComboBoxEx, в нём всё хорошо, но почему-то выпадающий список в высоту только на одну картинку и никак не получилось у меня раздвинуть. Я попробовал TDBComboBoxEh, у него с этим всё впорядке, но другая проблема, дело в том что картинки обрезаются и становятся в высоту по 16. Просьба: кто имеет прямую связь с (Богом) автором сказать ему об этом. И ещё там кнопка для вывода списка по высоте не всегда правильно растягивается. Я пробовал писать в техподдержку, но что-то молчёк.
Необходимо в комбобоксе выбрать вариант, варианты с рисунками, но не 16*16, а я сделал 48*48 (так лучше видно).
Вообще для таких вещей есть TComboBoxEx, в нём всё хорошо, но почему-то выпадающий список в высоту только на одну картинку и никак не получилось у меня раздвинуть. Я попробовал TDBComboBoxEh, у него с этим всё впорядке, но другая проблема, дело в том что картинки обрезаются и становятся в высоту по 16. Просьба: кто имеет прямую связь с (Богом) автором сказать ему об этом. И ещё там кнопка для вывода списка по высоте не всегда правильно растягивается. Я пробовал писать в техподдержку, но что-то молчёк.
видимо твоя проблема не очень серьёзная -))
мне ток один раз он не ответил, и то я как раз думаю, что бага просто не очень существенная, а он занят новой веткой
мне ток один раз он не ответил, и то я как раз думаю, что бага просто не очень существенная, а он занят новой веткой
Что-то я сходу не соображу - а реально ли отследить клик по индикатору (фиксированному столбцу слева на котором появляется треугольник для текущей записи)?
SIgor33
У меня не получилось отследить такой клик
Мне это было нужно, чтобы обойти ограничение по выделение по Ctrl при CellMultiSelect. Когда я это не обошел, пришлось изменить чужой код от DevExpress
У меня не получилось отследить такой клик
Мне это было нужно, чтобы обойти ограничение по выделение по Ctrl при CellMultiSelect. Когда я это не обошел, пришлось изменить чужой код от DevExpress
Cryogen2003
А что менял посмотреть можно?
А что менял посмотреть можно?
SIgor33
Сорри, я только потом посмотрел, что это относиться к EhLib. Я от этого пакета избавился во всех своих проектах в пользу DevExpress. Таких глюков, как в EhLib я давно не встречал и очень рад, что больше этого пакета не будет в моих проектах.
Сорри, я только потом посмотрел, что это относиться к EhLib. Я от этого пакета избавился во всех своих проектах в пользу DevExpress. Таких глюков, как в EhLib я давно не встречал и очень рад, что больше этого пакета не будет в моих проектах.
Cryogen2003
Да вроде как с 5 версии EhLib хвалят.
Да вроде как с 5 версии EhLib хвалят.
SIgor33
Это честно говоря уже перерастает в оффтоп, но скажу что не понравилось:
1) Частые глюки с футерами (очень часто выдавались AV в футерах при обновлении всего в гриде)
2) Очень часто выдавались AV при обычном обновлении датасета, вплоть до деления на 0, особенно когда это происходит из другого процесса.
3) Часто бывало так, что канвасы блочились, но забывались вернуться из блокировки
+ какие-то глюки (какие не помню точно) как в их MemTable, так и в их DataDriver. Единственно, нареканий вот не помню на их лукап, хотя может быть просто забыл.
Это честно говоря уже перерастает в оффтоп, но скажу что не понравилось:
1) Частые глюки с футерами (очень часто выдавались AV в футерах при обновлении всего в гриде)
2) Очень часто выдавались AV при обычном обновлении датасета, вплоть до деления на 0, особенно когда это происходит из другого процесса.
3) Часто бывало так, что канвасы блочились, но забывались вернуться из блокировки
+ какие-то глюки (какие не помню точно) как в их MemTable, так и в их DataDriver. Единственно, нареканий вот не помню на их лукап, хотя может быть просто забыл.
Cryogen2003
Работал с 3-ей версии до последней. Ничего такого не было! (с мемтабле не работал). Отличный грид, если пользователю с ним работать, а не любоваться. Обязательно буду переходить на 5-ю
Работал с 3-ей версии до последней. Ничего такого не было! (с мемтабле не работал). Отличный грид, если пользователю с ним работать, а не любоваться. Обязательно буду переходить на 5-ю
Не подскажите где можно скачать рабочую последнюю версию EHLib?
Cryogen2003
Цитата:
я вот в последнее время тоже стал подумывать об этом По поводу MemTbl тоже соглашусь. Похоже, там на букмарках память утекает. А вот одно из свежих после пошаговой отладки и закрытия приложения из IDE
А это только v. 4.5.xx (с 5.xx не разбирался). Увы. С добавлением новых фич, похоже, мелкие баги не исправляются из-за недостатка времени, а зря. Пользование ею вызывает все больше раздражения и тут уже ни о какой покупке не помышляешь.
Цитата:
Я от этого пакета избавился во всех своих проектах в пользу DevExpress. Таких глюков, как в EhLib я давно не встречал и очень рад, что больше этого пакета не будет в моих проектах.
я вот в последнее время тоже стал подумывать об этом По поводу MemTbl тоже соглашусь. Похоже, там на букмарках память утекает. А вот одно из свежих после пошаговой отладки и закрытия приложения из IDE
А это только v. 4.5.xx (с 5.xx не разбирался). Увы. С добавлением новых фич, похоже, мелкие баги не исправляются из-за недостатка времени, а зря. Пользование ею вызывает все больше раздражения и тут уже ни о какой покупке не помышляешь.
А можно уточнение, это что за "умник" такую информацию выдает?
(я про утечку памяти)
(я про утечку памяти)
maxsv2
Это выдает FastMM.
Это выдает FastMM.
maxsv2
Цитата:
Это манагер памяти. Включаешь его первым номером в uses файла проекта (*.dpr) и получаешь верного помощника. Компонент опенсорсовый, есть локализация сообщений (на рисунке это видно). Загрузить можно тут
http://sourceforge.net/projects/fastmm/files/
Цитата:
что за "умник" такую информацию выдает?
Это манагер памяти. Включаешь его первым номером в uses файла проекта (*.dpr) и получаешь верного помощника. Компонент опенсорсовый, есть локализация сообщений (на рисунке это видно). Загрузить можно тут
http://sourceforge.net/projects/fastmm/files/
Как определить на DblClick в DBGridEh были клики по записи или по свободной части грида?
1. Можно ли для каждой строки отдельно прописать показ RowDetailPanel? что ни делаю либо во всех строках рисует плюсы и при нажатии на плюс раскрывается доп.панель либо плюсы нигде не рисует...
2. Можно-ди используя механизм мастер-деталь построить дерево? учитывая что данные мастера и детали хранятся в разных таблицах? собирать их в одну таблицу, а уже потом строить дерево?
2. Можно-ди используя механизм мастер-деталь построить дерево? учитывая что данные мастера и детали хранятся в разных таблицах? собирать их в одну таблицу, а уже потом строить дерево?
Использую RAD Studio 2010 и Ehlib 5.0.2
На форме есть компонент DBGridEh1 который корректно отображает и редактирует данные в базе, так же в этой таблице настроена вложенная таблица DBGridEh2
которая включается свойством RowDetailPanel.Active. В DBGridEh1 включена опция перемещения по таблице с помощью Enter. Проблема в следующем: при отключенной вложенной таблице редактирование в главном гриде DBGridEh1 происходит без проблем, т.е. если поле сфокусировано то при наборе на клавиатуре поле автоматически редактируется. А вот если активировать вложенную таблицу то в главном гриде я больше не могу вносить изменения простым набором текста, приходится щелкать мышкой дважды для редактирования поля. Может кто подскажет как от это избавиться?
На форме есть компонент DBGridEh1 который корректно отображает и редактирует данные в базе, так же в этой таблице настроена вложенная таблица DBGridEh2
которая включается свойством RowDetailPanel.Active. В DBGridEh1 включена опция перемещения по таблице с помощью Enter. Проблема в следующем: при отключенной вложенной таблице редактирование в главном гриде DBGridEh1 происходит без проблем, т.е. если поле сфокусировано то при наборе на клавиатуре поле автоматически редактируется. А вот если активировать вложенную таблицу то в главном гриде я больше не могу вносить изменения простым набором текста, приходится щелкать мышкой дважды для редактирования поля. Может кто подскажет как от это избавиться?
Скажите а subj с юникодом работает в RAD Studio 2010 ?
TuMOXA123
в 2010 Delphi работает, видать с юникодом тоже. http://ehlib.com/
Если кто знает ответ на мой вопрос про DblClick просьба подсказать
Цитата:
в 2010 Delphi работает, видать с юникодом тоже. http://ehlib.com/
Если кто знает ответ на мой вопрос про DblClick просьба подсказать
Цитата:
Как определить на DblClick в DBGridEh были клики по записи или по свободной части грида?
Знатоки, подскажите, плиз, как создать поля TMemTableEh и индекс программно
snike555
Цитата:
Может есть способ и прямее, но навскидку так:
Код:
procedure YouHandler.OnDblClick(Sender: TObject);
var
AMousePos : TPoint;
ARow : integer
begin
AMousePos := TDbGridEh(Sender).ScreenToClient(Mouse.CursorPos);
ARow := TDbGridEh(Sender).MouseCoord(AMousePos.X, AMousePos.Y).Y;
if ARow = -1 then Exit;
...
end;
Цитата:
Как определить на DblClick в DBGridEh были клики по записи или по свободной части грида?
Может есть способ и прямее, но навскидку так:
Код:
procedure YouHandler.OnDblClick(Sender: TObject);
var
AMousePos : TPoint;
ARow : integer
begin
AMousePos := TDbGridEh(Sender).ScreenToClient(Mouse.CursorPos);
ARow := TDbGridEh(Sender).MouseCoord(AMousePos.X, AMousePos.Y).Y;
if ARow = -1 then Exit;
...
end;
В версии 4.5 верхняя строка фильтра была светло-серого цвета, что визуально отделяло ее от данных, а в версии 5.x она стала такого-же цвета, как и данные, что не очень удобно. Никаких свойств на этот счет я не нашел. Может кто-нибудь знает нормальный способ изменить цвет строки фильтра без изменения кода самого компонента?
Вопрос по MemTableEh.
Не могу создать поля TMemTableEh программно. Использую FieldDefs, IndexDefs и SetDataDriver.
Ошибок не выдает, но в гриде не отображается. Подскажите, плиз, как решить проблему.
[more=Фрагмент кода]
.....
with tbMemTable do
begin
Active := False;
with FieldDefs do
begin
Clear;
Add('IdRows',ftString,10,False);
Add('Column_01_Cal',ftInteger,0,False);
Add('Column_01_Sec',ftLargeInt,0,False);
Add('Column_01_Time',ftString,5,False);
Add('Column_02_Cal',ftInteger,0,False);
Add('Column_02_Sec',ftLargeInt,0,False);
Add('Column_02_Time',ftString,5,False);
Add('Column_03_Cal',ftInteger,0,False);
Add('Column_03_Sec',ftLargeInt,0,False);
Add('Column_03_Time',ftString,5,False);
Add('Column_04_Cal',ftInteger,0,False);
Add('Column_04_Sec',ftLargeInt,0,False);
Add('Column_04_Time',ftString,5,False);
Add('Column_05_Cal',ftInteger,0,False);
Add('Column_05_Sec',ftLargeInt,0,False);
Add('Column_05_Time',ftString,5,False);
Add('Column_06_Cal',ftInteger,0,False);
Add('Column_06_Sec',ftLargeInt,0,False);
Add('Column_06_Time',ftString,5,False);
Add('Column_07_Cal',ftInteger,0,False);
Add('Column_07_Sec',ftLargeInt,0,False);
Add('Column_07_Time',ftString,5,False);
Add('Column_08_Cal',ftInteger,0,False);
Add('Column_08_Sec',ftLargeInt,0,False);
Add('Column_08_Time',ftString,5,False);
end;
with IndexDefs do
begin
Clear;
with AddIndexDef do
begin
Name := 'IdRowsIdx';
Fields := 'IdRows';
Options := [ixCaseInsensitive];
end;
end;
CreateDataSet;
Active := True;
end;
.....
[/more]
Не могу создать поля TMemTableEh программно. Использую FieldDefs, IndexDefs и SetDataDriver.
Ошибок не выдает, но в гриде не отображается. Подскажите, плиз, как решить проблему.
[more=Фрагмент кода]
.....
with tbMemTable do
begin
Active := False;
with FieldDefs do
begin
Clear;
Add('IdRows',ftString,10,False);
Add('Column_01_Cal',ftInteger,0,False);
Add('Column_01_Sec',ftLargeInt,0,False);
Add('Column_01_Time',ftString,5,False);
Add('Column_02_Cal',ftInteger,0,False);
Add('Column_02_Sec',ftLargeInt,0,False);
Add('Column_02_Time',ftString,5,False);
Add('Column_03_Cal',ftInteger,0,False);
Add('Column_03_Sec',ftLargeInt,0,False);
Add('Column_03_Time',ftString,5,False);
Add('Column_04_Cal',ftInteger,0,False);
Add('Column_04_Sec',ftLargeInt,0,False);
Add('Column_04_Time',ftString,5,False);
Add('Column_05_Cal',ftInteger,0,False);
Add('Column_05_Sec',ftLargeInt,0,False);
Add('Column_05_Time',ftString,5,False);
Add('Column_06_Cal',ftInteger,0,False);
Add('Column_06_Sec',ftLargeInt,0,False);
Add('Column_06_Time',ftString,5,False);
Add('Column_07_Cal',ftInteger,0,False);
Add('Column_07_Sec',ftLargeInt,0,False);
Add('Column_07_Time',ftString,5,False);
Add('Column_08_Cal',ftInteger,0,False);
Add('Column_08_Sec',ftLargeInt,0,False);
Add('Column_08_Time',ftString,5,False);
end;
with IndexDefs do
begin
Clear;
with AddIndexDef do
begin
Name := 'IdRowsIdx';
Fields := 'IdRows';
Options := [ixCaseInsensitive];
end;
end;
CreateDataSet;
Active := True;
end;
.....
[/more]
EugeneBoss3
У меня Ваш код сработал. Т.е. если dataSource настроить на tbMemTable, и настроить grid на этот datasource, то в гриде появляются все колонки.
У меня Ваш код сработал. Т.е. если dataSource настроить на tbMemTable, и настроить grid на этот datasource, то в гриде появляются все колонки.
Vladkyr
Цитата:
В том виде как был - не работает. Изменил немного код - все ОК!
[more=Исправленный код]
.....
with tbMemTable do
begin
Active := False;
with FieldDefs do
begin
Clear;
Add('IdRows',ftString,10,False);
Add('Column_01_Cal',ftInteger,0,False);
Add('Column_01_Sec',ftLargeInt,0,False);
Add('Column_01_Time',ftString,5,False);
Add('Column_02_Cal',ftInteger,0,False);
Add('Column_02_Sec',ftLargeInt,0,False);
Add('Column_02_Time',ftString,5,False);
Add('Column_03_Cal',ftInteger,0,False);
Add('Column_03_Sec',ftLargeInt,0,False);
Add('Column_03_Time',ftString,5,False);
Add('Column_04_Cal',ftInteger,0,False);
Add('Column_04_Sec',ftLargeInt,0,False);
Add('Column_04_Time',ftString,5,False);
Add('Column_05_Cal',ftInteger,0,False);
Add('Column_05_Sec',ftLargeInt,0,False);
Add('Column_05_Time',ftString,5,False);
Add('Column_06_Cal',ftInteger,0,False);
Add('Column_06_Sec',ftLargeInt,0,False);
Add('Column_06_Time',ftString,5,False);
Add('Column_07_Cal',ftInteger,0,False);
Add('Column_07_Sec',ftLargeInt,0,False);
Add('Column_07_Time',ftString,5,False);
Add('Column_08_Cal',ftInteger,0,False);
Add('Column_08_Sec',ftLargeInt,0,False);
Add('Column_08_Time',ftString,5,False);
end;
with IndexDefs do
begin
Clear;
with AddIndexDef do
begin
Name := 'IdRowsIdx';
Fields := 'IdRows';
Options := [ixCaseInsensitive];
end;
end;
CreateDataSet;
dsMemTable.DataSet:= tbMemTable;
DBGridEh1.DataSource:= dsMemTable;
DBGridEh1.Columns.AddAllColumns(true);
Active := True;
end;
.....
[/more]
Цитата:
У меня Ваш код сработал.
В том виде как был - не работает. Изменил немного код - все ОК!
[more=Исправленный код]
.....
with tbMemTable do
begin
Active := False;
with FieldDefs do
begin
Clear;
Add('IdRows',ftString,10,False);
Add('Column_01_Cal',ftInteger,0,False);
Add('Column_01_Sec',ftLargeInt,0,False);
Add('Column_01_Time',ftString,5,False);
Add('Column_02_Cal',ftInteger,0,False);
Add('Column_02_Sec',ftLargeInt,0,False);
Add('Column_02_Time',ftString,5,False);
Add('Column_03_Cal',ftInteger,0,False);
Add('Column_03_Sec',ftLargeInt,0,False);
Add('Column_03_Time',ftString,5,False);
Add('Column_04_Cal',ftInteger,0,False);
Add('Column_04_Sec',ftLargeInt,0,False);
Add('Column_04_Time',ftString,5,False);
Add('Column_05_Cal',ftInteger,0,False);
Add('Column_05_Sec',ftLargeInt,0,False);
Add('Column_05_Time',ftString,5,False);
Add('Column_06_Cal',ftInteger,0,False);
Add('Column_06_Sec',ftLargeInt,0,False);
Add('Column_06_Time',ftString,5,False);
Add('Column_07_Cal',ftInteger,0,False);
Add('Column_07_Sec',ftLargeInt,0,False);
Add('Column_07_Time',ftString,5,False);
Add('Column_08_Cal',ftInteger,0,False);
Add('Column_08_Sec',ftLargeInt,0,False);
Add('Column_08_Time',ftString,5,False);
end;
with IndexDefs do
begin
Clear;
with AddIndexDef do
begin
Name := 'IdRowsIdx';
Fields := 'IdRows';
Options := [ixCaseInsensitive];
end;
end;
CreateDataSet;
dsMemTable.DataSet:= tbMemTable;
DBGridEh1.DataSource:= dsMemTable;
DBGridEh1.Columns.AddAllColumns(true);
Active := True;
end;
.....
[/more]
Vladkyr
Примерно так:
1. объявляем свой класс-наследник от TDBGridEhStyle (например, TMyDBGridEhStyle);
2. наследуем его метод HighlightNoDataCellColor;
3. в нем проверяем тип ячейки, выставляем цвет по желанию (естественно, поменять можно не только цвет - что угодно), и вызываем родительский метод:
Код:
begin
if (CellType.HorzType = hctDataEh) and (CellType.VertType = vctSubTitleEh) then
AColor := <желаемый цвет строки>;
Result := inherited HighlightNoDataCellColor(
AGrid, ACol, ARow, DataCol, DataRow,
CellType, AState, InMultiSelect,
AColor, AFont
);
end;
Примерно так:
1. объявляем свой класс-наследник от TDBGridEhStyle (например, TMyDBGridEhStyle);
2. наследуем его метод HighlightNoDataCellColor;
3. в нем проверяем тип ячейки, выставляем цвет по желанию (естественно, поменять можно не только цвет - что угодно), и вызываем родительский метод:
Код:
begin
if (CellType.HorzType = hctDataEh) and (CellType.VertType = vctSubTitleEh) then
AColor := <желаемый цвет строки>;
Result := inherited HighlightNoDataCellColor(
AGrid, ACol, ARow, DataCol, DataRow,
CellType, AState, InMultiSelect,
AColor, AFont
);
end;
Страницы: 1234567891011121314151617181920212223
Предыдущая тема: Конвертация char в ASCII код; c
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.