Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress (часть 4)

Автор: andreybear
Дата сообщения: 01.06.2014 18:02
Возникла проблема со стилями.
Использовал в проекте стили. Затем решил от них отказаться. Отключил стили в Modify Skin Options, удалил из uses ссылки на модули в каждом unit'e, однако размер exe не уменьшился. При компиляции появляются dcu файлы скинов.
При подключении/отключении скинов размер exe не меняется.
Среда Delphi xe3, Developer Express VCL 2012 vol 1.6, система Windows 7.
Кто-нибудь сталкивался с этой проблемой?
Как избавиться от скинов?
Автор: Andryshok
Дата сообщения: 01.06.2014 20:40
andreybear Знчит гдето цепляешь скины... стопроцентно
Автор: dred2k
Дата сообщения: 01.06.2014 21:36
andreybear
Было такое. Ищи модуль - где-то остались "заветные" юзес.
Автор: andreybear
Дата сообщения: 02.06.2014 07:00

Цитата:
Знчит гдето цепляешь скины... стопроцентно


Цитата:
Было такое. Ищи модуль - где-то остались "заветные" юзес.

Я понимаю, что где-то должны цепляться скины...
Открываю все модули, смотрю uses - нигде нет.
Запускаю поиск по модулям, например, скин Caramel - не находит.
Кидаю на главную форму TdxSkinController, пытаюсь выбрать скин - список пуст. Набираю с клавиатуры "Caramel", устанавливаю NativeStyle=False и UseSkins=True. Запускаю проект - скин Caramel применяется ко всем окнам проекта и компонентам на них.
Открываю TotalCommander, запускаю поиск по слово Caramel, находит в exe и в одном dcu файле. Смотрю внимательно, dcu оказывается от модуля, который я удалил из проекта пару месяцев назад, но он остался в папке с проектом. Открываю код модуля и вижу, что в uses прописаны скины. Удалил, перекомпилировал, размер exe изменился до ожидаемого.
Жаль, что до этого потратил кучу времени - надо было сразу поискать TotalCommander'ом.
Andryshok
dred2k
Спасибо за правильное направление!
Автор: dred2k
Дата сообщения: 02.06.2014 07:48
andreybear
Рад, что получилось!
Небольшое дополнение: удобнее искать по подстроке "Skin", присутствует во всех именах причастных файлов.

Добавлено:
G787

Цитата:
наоборот больше, ставлю 21


Редакторы не по умолчанию в колонках используешь (комбо там, или еще чего)? У них тоже бывают высоты....
Автор: G787
Дата сообщения: 02.06.2014 10:27
dred2k
Нет не использую.

Если колонки располагаются в ряд то всё нормально и высота меняется, но если расположить одну колонку под другой то они магически сокращаются до 18.

Это 100% их касяк.

Как отправить баг репорт Девам ?
Автор: G787
Дата сообщения: 02.06.2014 23:19
Если присоединить к гриду ImageList то начинает работать RowHeight. а header нет
Автор: dred2k
Дата сообщения: 03.06.2014 06:26
G787

У девов форум есть, изучал ? Может это все очень военная хитрость.
Кстати, а попробуй без добавления имадж-листа гриду явно установить всем колонкам редактор, ну типа Text для начала. Может получиться с высотой...
Автор: Prot_XT
Дата сообщения: 03.06.2014 10:45
Я так понял никто не подскажет что такое ItemLink.RealItemLink в девках...?
Автор: dred2k
Дата сообщения: 03.06.2014 12:40
Prot_XT
Дружище, у тебя же исходники перед глазами! К тому же, даже в хелпе имеется кое-какая информация.
Автор: Prot_XT
Дата сообщения: 03.06.2014 17:27
Ну да... только мне из этого ничего непонятно...
Автор: dred2k
Дата сообщения: 03.06.2014 17:35
Prot_XT
В бар-менеджере создаешь итем. Потом итем можно "размножить" на многие тулбары, менюшки. При этом он физически один, а на места приписки идут линки на него. Вот тут и получают реальный итем-линк, который типа главный.
Как-то так. Поэкспериментируй.
Автор: Prot_XT
Дата сообщения: 03.06.2014 17:50
Хмм... довольно внятно-таки... Бум тыкать и пробовать. Просто я думаю, что как это прыгание с курсором можно отключить, раз эта фича используется для этого.
Автор: dred2k
Дата сообщения: 03.06.2014 18:45
Prot_XT
К переходу на другие контролы формы это не имеет никакого отношения. Я думаю.

Следующий вариант не прошел...
Кстати, есть вариант. На форме с поиском поставь KeyPreview := True, навесь на форму OnKeyDown, в нем если Enter и шифты отжаты (ну, по вкусу), проверяй - если активна нужная тебе строка ввода, то присваивай Value, как у меня в примере, ищи и AKey := 0 (т.е. дальше клавиша не пойдет). Если нет условий, нет поиска - просто не трож AKey.
Должно сработать, по идее (так нажатие не дойдет до риббона, но ты свое дело сделаешь). Пробуй.


Мда, "вещь в себе" этот риббон у девок... Все перехватывает, на форму клавиша не приходит.
И все же я его обманул!
Вот код (вставь для правого поиска в моем примере, что я ранее высылал):

Код:
procedure TForm3.cxBarEditItem1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var tmpFL : Pointer;
tmpB : Boolean;
i : Integer;
tmpStr : String;
begin
if((Key = VK_RETURN) and (Shift = [])) then
begin
tmpFL := DisableTaskWindows(dxRibbon1.Handle);
tmpB := TcxTextEditProperties(TcxBarEditItem(Sender).Properties).AutoSelect;
try
TcxTextEditProperties(TcxBarEditItem(Sender).Properties).AutoSelect := False;
TcxBarEditItem(Sender).EditValue := TcxBarEditItem(Sender).CurEditValue;
tmpStr := nvl(TcxBarEditItem(Sender).EditValue, '');
ShowMessage('Search:' + #13 + tmpStr);
finally
Key := 0;
EnableTaskWindows(tmpFL);
TcxTextEditProperties(TcxBarEditItem(Sender).Properties).AutoSelect := tmpB;
TcxBarEditItem(Sender).SetFocus;
for i := 0 to Length(tmpStr) - 1 do
begin
keybd_event(VK_RIGHT, MapVirtualKey(VK_RIGHT, 0), 0, 0);
keybd_event(VK_RIGHT, 0, KEYEVENTF_KEYUP, 0);
end;
end;
end;
end;
Автор: Prot_XT
Дата сообщения: 04.06.2014 06:49
Посмотрел вчера на семерке... работает красиво... жалко только что текст очищается после Enter... поковрыяю... попробую под себя подделать. Спасибо.
Автор: dred2k
Дата сообщения: 04.06.2014 07:47
Prot_XT

Цитата:
жалко только что текст очищается после Enter

Это наговоры!
Ты скачал проект, который в крайнем письме (внизу)? Там ничего не очищается, все проверено...
Автор: prand1
Дата сообщения: 05.06.2014 12:14
[more] Знающие люди, объясните вопрос по cxGrid!

Вот есть Record и Row параметры Index и RecordIndex.
Как я понимаю:
Index - это порядковый номер строки в гриде на экране в данный момент и меняется при скроллировании, сортировке и пр. визуальных манипуляций.
RecordIndex - это индекс записи в датасете и он не зависит от визуальных манипуляций в гриде.

В собитии onCellClick ACellViewInfo: TcxGridTableDataCellViewInfo,
функция Index := ACellViewInfo.RecordViewInfo.Index возвращает номер строки из грида т.е первая видимая это 0 (в датасете она может быть любой), если грид сортирован или прокручен вниз, то функция Sender.DataController.Values[Index, MyField.Index] вернет значение не из записи на которой кликнули. Это согласуется с моим представлением о Index и RecordIndex.

Но вот смотрю пример из хелпа "Example: Changing Selected Records in Provider and Unbound Modes" проход по всем выделенным записям:
var
I: Integer;
ARowIndex: Integer;
ARowInfo: TcxRowInfo;
begin
with tvOrders.DataController do
for I := 0 to GetSelectedCount - 1 do
begin
ARowIndex := GetSelectedRowIndex(I);
ARowInfo := GetRowInfo(ARowIndex);
Values[ARowInfo.RecordIndex, tvOrdersSaleDate.Index] := Now();

и если в Values ARowInfo.RecordIndex заменить ARowIndex т.е Values[ARowIndex, tvOrdersSaleDate.Index] := Now(), то результат будет верным независимо от сортировок и скроллинга и это не согласуется с моим представлением о Index и RecordIndex т.к результаты должны быть разными.

Внесите ясность.
Спасибо за внимание.


[/more]
Автор: G787
Дата сообщения: 06.06.2014 13:22
- -
.|.
\ /
Автор: Prot_XT
Дата сообщения: 06.06.2014 23:36
dred2k

Цитата:
Это наговоры!
Ты скачал проект, который в крайнем письме (внизу)? Там ничего не очищается, все проверено...


Да нет не наговоры... скачал проект, но запустил его на Delphi 7, DevExpress v38. Закоментировал ShowMessage и при наборе текста после Enter текст очищается, но курсор остается в поле...
Автор: dred2k
Дата сообщения: 07.06.2014 05:04
Prot_XT

Цитата:
скачал проект, но запустил его на Delphi 7, DevExpress v38


Поздравляю...
Ты б еще по-древнее девки применил. Скомпилированный тест работает корректно. И уже давно было сказано, что все это для XE6 (ну, тут возможны варианты) и DevExpress 2013.2.5.
Автор: Prot_XT
Дата сообщения: 07.06.2014 08:53

Цитата:
Ты б еще по-древнее девки применил. Скомпилированный тест работает корректно. И уже давно было сказано, что все это для XE6 (ну, тут возможны варианты) и DevExpress 2013.2.5.


OK! Сегодня же все проверю на XE6 + DevExpress 2013.2.5.
Автор: DogmatIGWT
Дата сообщения: 12.06.2014 18:53
Коллеги, очень интересует dll со скинами, которая заявлена в шапке. Ссылка выдает, что файл не найден. Поделитесь пожалуйста.
Автор: vovag
Дата сообщения: 22.06.2014 20:43
DogmatIGWT
Если еще интересно, могу вечером поискать на компе и выложить.
Автор: G787
Дата сообщения: 23.06.2014 21:49
------
Автор: nevermind00
Дата сообщения: 07.07.2014 08:51
тоже вопрос по скинам:
в uses автоматически прописываются все библиотеки скинов. мне этого не надо. удаляю, они опять прописываются, от чего ехе-шник сильно раздувается. как это убрать?
Автор: dred2k
Дата сообщения: 07.07.2014 09:14
nevermind00
Project - Skin options (типа того)
Все отключи и поставь чек Default
Потом сохраняйся
Иногда все же полезно пройтись, на всякий случай, по модулям pas и вручную убрать модули по маске *Skin* (ну, кроме своих, ессно ).
Автор: nevermind00
Дата сообщения: 07.07.2014 09:37
dred2k
Спасибо большое!
Автор: SuPriTo
Дата сообщения: 08.07.2014 09:41
dred2k
Спасибо, тоже вот разобрался. Забыл, где глядеть. А тут понял и заработало. Больно уж их скины увеличивают размер файла.
Автор: dred2k
Дата сообщения: 08.07.2014 11:01
SuPriTo

Цитата:
Больно уж их скины увеличивают размер файла.


Ага. Особый смак, когда ведется групповая разработка, и вот у кого-то где-то почему-то не выключены скины. Собираешь проект, а размер жестокий. Оказывается, чел редактировал только один юнит, в него-то скины и "пробрались"...
Автор: mdid
Дата сообщения: 09.07.2014 13:18

Категория это дата в виде 11.11.2013 14, где последняя цифра это час. Так вот, мне надо спрятать все наименования категорий и оставить только 11.11.2013, 12.11.2013 и тд.

проблема в том, что если я обрабатываю CategoriesGetValueDisplayText
то, мало того, что он влияет на отображение GetValueHint, так еще и отображает

надеюсь, объяснил понятно.

Данные идут из таблицы, где на каждую дату, есть данные на каждый час работы
то есть 11.11.2013 14,11.11.2013 15,11.11.2013 16 и тд. А надо отобразить 11.11.2013,12.11.2013,13.11.2013 без часов

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.