Обсуждение компонентов. Сравнение, фичи, проблемы - все в эту тему
(Rect.Top+(Rect.Bottom-Rect.Top-Can->TextHeight(Pag->Pages[TabIndex]->Caption))-2)/2+2,Pag->Pages[TabIndex]->Caption);
в плане использования памяти и быстродействия программы. Ну и помимо этого - она плохо читаема. В функцию стоит передавать уже рассчитанные переменные.
В код переисовки опять же подобное лучше не размещать - нарисовать все можно один раз - потом просто копировать нарисованное.
Спасибо.
возникла странная проблема, связываю в TTable 2 таблицы, в cxGrid вывожу записи используя группировку по полю. есть 2 типа записей - завершённое действие и активное, дык вот по умолчанию отображаются только активные.
Снимаю галку "скрывать завершённые" (это реализовано через TPopupMenu и свойства Filter/Filtered) и начинаются чудеса =)))), а именно:
- Тыкаюсь в запись, чтобы её редактировать, на редактирование открывается абсолютно случайная запись из таблицы;
- тыкаюсь в галку "завершить" для того, чтобы поставить или снять её - снимается или ставится галка на абсолютно случайной записи;
- Соотвессна из-за этого постоянно прыгает скроллинг, т.к. активная запись постоянно меняется на абсолютно случайную...
В чем косяк? понять не могу, из кода пользую только вот это:
[highlight=delphi]
procedure TFOrders.SetFilter;
var s_filter: String;
begin
s_filter := '';
if _client_id > 0 then s_filter := 'client_id=' + IntToStr(_client_id);
if PPmi_hideDone.Checked then
begin
if Length(s_filter) > 0 then s_filter := s_filter + ' and ';
s_filter := s_filter + 'done = 0';
end;
with FDBMain.TOrders do
if Length(s_filter) > 0 then
begin
Filter := s_filter;
Filtered := True;
end
else
begin
Filter := '';
Filtered := false;
end;
end;
procedure TFOrders.PPmi_hideDoneClick(Sender: TObject);
begin
PPmi_hideDone.Checked := not PPmi_hideDone.Checked; // меняем статус флажка
SetFilter; // ставим фильтр
view_.ViewData.Expand(True); // разворачиваем все сгруппированные записи
end;
procedure TFOrders.view_CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
FDBMain.TClients.Open; // открываем таблицу
FOrderEdit.ShowForEdit(); // показываем форму
FDBMain.TOrders.Refresh;
view_.ViewData.Expand(True);
end;
[/highlight]
пробовал обновлять сразу после применения фильтра... но как-то не спасает. "Иногда" весь этот трабл лечится обновлением таблички:
[highlight=delphi]
procedure TFOrders.N5Click(Sender: TObject);
begin
FDBMain.TOrders.Refresh;
view_.ViewData.Expand(True);
end;
[/highlight]
но как-то каждый раз тыкаться в менюшку... не йас. (напомню, я пытался обновить сразу после фильтрования - не помогает).
Вопросы собссна следующие:
1. кто-нибудь с таким сталкивался?
2. это может быть глюк компонента или всё таки мне надо подпилить мозг? :)
3. с какого чёрта курсор таблицы прыгает как ему вздумается???!!!
Как бы всё.
UPD: среда - Delphi 10 Lite, компоненты - DevExpress.ExpressQuantumGrid.v.6.22
UPD2: товарищи модераторы =) похоже я немного не в тот раздел запостил, если не сложно (и если я действительно ошибся), то перенесите отдельной темкой или в нужную тему :) Спасибо!
Спасибо.
желательно указывать версию компонента и откуда взято.
Кроме того - ВСЕ телепаты в отпуске - потому если вы удаляете ссылку на комопнент и возникает ошибка - ее тоже желательно привести. Возможно это остатки от когдато установленного компонента, с самим TComPort вроде проблем быть не должно.
Откуда взят компонент сказать не могу, не могу найти ту ссылку. Версия 2.63
Откуда взят компонент сказать не могу, не могу найти ту ссылку. Версия 2.63. Может быть Вы знаете, где взять хороший компонент?
Откуда взят компонент сказать не могу, не могу найти ту ссылку. Версия 2.63
Чтобы добавить этот компонент в палитру и работать с ним в дизайнере, очевидно нужен пакет DsgnCPort2007.bpl (там находится механизм взаимодействия компонента с IDE в режиме разработки - редакторы св-в и т.п.) его и надо устанавливать, а CPortLib2007.bpl это ран-тайм пакет т.е. фактически сам компонент
[ILINK32 Error] Error: Unresolved external '__tpdsc__ System::String' referenced from C:\C++BUILDER COMPONENT\TCOMPORT4BETA\CPORTU\SOURCE\CPORT.OBJ
[ILINK32 Error] Error: Unresolved external '__fastcall System::TObject::NewInstance(System::TMetaClass *)' referenced from C:\C++BUILDER COMPONENT\TCOMPORT4BETA\CPORTU\SOURCE\CPORT.OBJ
[ILINK32 Error] Error: Unresolved external '__fastcall Sysutils::Exception::Exception(const System::AnsiString)' referenced from C:\C++BUILDER COMPONENT\TCOMPORT4BETA\CPORTU\SOURCE\CPORT.OBJ
[ILINK32 Error] Error: Unresolved external '__fastcall Forms::DeallocateHWnd(unsigned int)' referenced from C:\C++BUILDER COMPONENT\TCOMPORT4BETA\CPORTU\SOURCE\CPORT.OBJ
[ILINK32 Error] Error: Unresolved external 'System::__linkproc__ __fastcall FillChar(void *, int, char)' referenced from C:\C++BUILDER COMPONENT\TCOMPORT4BETA\CPORTU\SOURCE\CPORT.OBJ
[ILINK32 Error] Error: Unresolved external '__fastcall Forms::AllocateHWnd(void __fastcall __closure(*)(Messages::TMessage&))' referenced from C:\C++BUILDER COMPONENT\TCOMPORT4BETA\CPORTU\SOURCE\CPORT.OBJ
...
В чем моя ошибка?
а то не работают старые программки мои... или возможно их скачать откуда нибудь???... всё перерыл.. нету.. заранее благодарен!
На моём компе всё ок работает, скины меняются.
Как запускаю на другом .exe файл скины куда пропадают и в общем всё по умолчанию как в 98 винде. Как это дело исправить?
Как запускаю на другом .exe файл скины куда пропадают и в общем всё по умолчанию как в 98 винде
Или носи скины за собой, или интегрируй в экзешник (в скин менеджере есть для этого соответствующие опции)
PS: от аналога требуются функции изменения количества строк, столбцов, заполнения ячейки, прокручивания таблицы, изменения ширины столбца и выделения строки.
Но в принципе на подобный объем данных - вероятно размер памяти примерно соотвествующий. Я предпочитаю использовать EhLib-компоненты - тем более что они имели версию фри для экс-СССР. Они вроде по памяти более оптимальны.
Память жалко? :D 10МБ это на сегодняшких ПК ничто.