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

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

Автор: vcrank
Дата сообщения: 07.05.2014 05:53
dred2k
Да, вариант хороший, но не для институтского задания
Автор: dred2k
Дата сообщения: 07.05.2014 08:43
vcrank

Цитата:
Да, вариант хороший, но не для институтского задания


Да простит меня Великий Модер, насчет институтского задания было прикольное дело году эдак в 2004. Моему корешу по волейболу (младше меня лет на 7) в его универе, отнюдь как бы не "мелком", задали задание по программированию: типа там что-то ввести и вывести. Ну, кореш мой меня и подключил, а я, подключившись, не выключился из того, чем плотно занимался. Ну сделал я ему "задание", потратил времени ну час-полтора. В принципе, все тривиально. Окно, маленький лог в виде мемо, пара кнопок, акции с динамическим разрешением-запрещением, коллекции, ... Вроде все должно "прокатить", НО (мой кореш прогу сдал, оценку получил). Однако, в его авторство не поверил никто _на факультете_, причем его препод слезно просил не заныкать исходник.

Я к чему. В "этих ваших институтах" сплошь шаблонка, что "с одной стороны приятно".
А так, что профессионалу пластилин - то непричастному камень. Миры разные.

P.S. Чисто философское отступление.

Автор: NightSpawn
Дата сообщения: 08.05.2014 02:39
Ребят, подскажите пожалуйста, как определить в TcxGridDBBandedTableView текущую выбранную запись?
Автор: exteris
Дата сообщения: 08.05.2014 07:05
NightSpawn
GridDBBandedTableView.Controller.FocusedRecord
GridDBBandedTableView.Controller.FocusedRecordIndex
Автор: Andryshok
Дата сообщения: 08.05.2014 10:58
NightSpawn Подозреваю что нужно получить первичный ключ набора данных датасета ?
Автор: G787
Дата сообщения: 11.05.2014 17:01
Где взять Английский ini файл локализации
Автор: G787
Дата сообщения: 11.05.2014 21:02
Или Английский Res файл ?
Автор: ChSerg
Дата сообщения: 11.05.2014 23:05
G787

А что там разве используются res и ini-файлы для локализации?
Автор: LadyOfWood
Дата сообщения: 12.05.2014 00:17

Цитата:
Где взять Английский ini файл локализации

Локализации чего? В девах все изначально на английском.
Автор: dred2k
Дата сообщения: 12.05.2014 05:26
G787
Там все просто.
За работу с локализациями отвечает класс TcxLocalizer - и писать, и читать он умеет. По нему есть вполне человечный хелп. А если что, как пример для затравки - вот модуль, который я просто добавляю к проекту, и весь Дев на этапе исполнения становится русским (в ресурсе - как раз инишник). Для всякого - сделаешь по вкусу (сорцы девов есть же, глянь)...


Код:
unit xxxUtils.DevEx.Lang;

interface

uses SysUtils, Classes, cxLocalization;

const
DefLanguageIndexRussian : Integer = 1049;

// Перевод строковых констант DevExpress
procedure DevExpressTranslate(const ALanguageIndex : Integer = 1049);

implementation

{$RESOURCE 'xxxUtils.DevEx.Lang.res'}

var
FL : TcxLocalizer = nil;

procedure DevExpressTranslate(const ALanguageIndex : Integer);
begin
if(not Assigned(FL)) then
FL := TcxLocalizer.Create(nil);
with FL do
begin
Active := False;
StorageType := lstResource;
Active := True;
LanguageIndex := ALanguageIndex;
end;
end;

initialization
begin
DevExpressTranslate(DefLanguageIndexRussian);
end;

finalization
begin
if(Assigned(FL)) then
FreeAndNil(FL);
end;

end.
Автор: G787
Дата сообщения: 12.05.2014 07:51
dred2k
LadyOfWood

У меня ситуация такая, по дефолту девки русские, уже не помню как я это сделал.
По этому и ищу английскую локаль, там ini или Res
Автор: exteris
Дата сообщения: 12.05.2014 08:48
G787
Если девки локализовались заменой pas-файлов то проще, наверное, переустановить.
Автор: dred2k
Дата сообщения: 12.05.2014 14:40
G787
Английская локаль - дефолтная для девок, поэтому она уже "встроена". Попробуй использовать мой код, только убери подключение файла ресурсов. Код языка - это на самом деле код локали (http://ru.wikipedia.org/wiki/%CB%EE%EA%E0%EB%FC).
Для английского будет 1033. При желании сможешь в рантайм выгрузить английский в виде отдельной инишки (в коде вроде все очевидно...). Насчет русификации pas-файлами ничего не скажу, надо посмотреть (нет сейчас девок под рукой).
Автор: Blindfold
Дата сообщения: 14.05.2014 07:49
Коллеги,

подскажите, пожалуйста, возможное решение задачи:

Есть cxGrid с TcxGridDBTableView на нем. Необходимо чтобы при удалении записи в гриде (кнопкой из навигатора или кнопкой Del на клавиатуре, не важно) запись не пропадала из грида. Потому как она физически не удаляется, а меняется ее статус в базе данных. И она должна просто подсвечиваться красным бэкграундом. Вся возня с данными происходит в датасете. Используется SDAC для доступа к базе. В SQLDelete прописан запрос который вместо удаления делает апдейт и замечательно справляется с задачей. Если после коммита сделать рефреш, то в гриде опять появляется удаленная запись, подсвеченная как надо и все замечательно. Проблема в том, то я не могу делать рефреш после каждого удаления, так как нужно использовать CachedUpdates, и весь мой кэш слетает после рефреша.

Есть ли способ заставить грид не удалять запись при удалении? Но чтобы при этом до датасета дошла команда на удалениее записи.
Автор: dred2k
Дата сообщения: 14.05.2014 11:03
Blindfold
А зачем тогда SQLDelete? Обновляйте поле флага удаления, создайте запрос его обновления (или добавьте это поле в уже существующий запрос обновления записи). Это же CachedUpdates... Тогда все сойдется. Если в запросе SQLDelete творится всякое, кроме чистого апдейта поля, эту логику лучше вынести в соответствующий триггер (на обновление поля). У DBTableView события удаления есть, и "перехватить" процесс удаления наверняка можно. Ну, а отталкиваясь от "флага удаленности" можно раскрасить по вкусу и выставить разрешение на акцию удаления (запрет повторного).
Автор: Shepot
Дата сообщения: 14.05.2014 12:30
Blindfold
Нажатие кнопки удаления записи в навигаторе можно перехватить:
[DBTableView]-Navigator-Buttons-OnButtonClick


Код: procedure TMainForm.DBTableViewNavigatorButtonsButtonClick(Sender: TObject;
AButtonIndex: Integer; var ADone: Boolean);
begin
if AButtonIndex = NBDI_DELETE then
begin
..........
ADone := True;
end;
end;
Автор: Andryshok
Дата сообщения: 16.05.2014 06:28
Blindfold Ну а в чем проблема... например сделать в событии BeforeDelete датасета - обработчик типа
датасет.едит
Датасет,поле<которое меняется при удалении> = Флаг_удаления, например 1 или что там у тебя.
И запостить датасет
и потом Abort.

и все раскрасится. Запрос который срабатывает у тебя при удалении убрать. Он становится ненужным.
Автор: Dencel2
Дата сообщения: 16.05.2014 14:56
Здравствуйте, не получается в cxLabel изменить цвет заливки через cxEditStyleController, все остальные значения меняются нормально. При переключении cxLabel.Enable := False цвет заливки подхватывается нормально из cxEditStyleController.StyleDisabled. И вообще странно почему при наличии скина в dxSkinController даже стандартные компоненты меняют стиль а Label и cxLabel остаются без изменений.
Автор: prand1
Дата сообщения: 17.05.2014 08:46
Здравствуйте. Помогите настроить cxGrid, чтобы можно было менять ширину крайнего столбца в band'е при выключенном BandsHeader. Т.е когда хедеры бендов видны, то за них можно растягивать границу бенда, а если их скрыть и оставить только хедеры самих столбцов, то крайний столбец в бенде не растянуть. Один раз у меня это получилось, случайно, а сейчас повторить не могу.

Вопрос в графическом виде
http://i63.fastpic.ru/big/2014/0517/74/25632a497fcf18dd23d9bd5c93460374.png
Автор: StredaX
Дата сообщения: 19.05.2014 09:41
prand1
Width у Band'а - 0?
Автор: svs123456789
Дата сообщения: 19.05.2014 12:48
подскажите плиз, если надо отображать и редактировать поле содержащее текст в формате RTF , то какой компонент попроще использовать - cxDBRichEdit ?
Автор: dred2k
Дата сообщения: 19.05.2014 13:21
svs123456789
Ну, отвечая в духе вопроса - какой первый попался.
А так - есть толковые компоненты, TRichEdit - один из них.
Автор: drSerj
Дата сообщения: 20.05.2014 11:04
Извиняюсь, если где-то пролетало.
Имеется cxGrid. Фильтруем данные по одной из колонок. Когда выбираем список значений фильтра в другой колонке - там присутствуют данные, которых в таблице после первого фильтра нет. Как бы сделать так, что бы в списке данных фильтра в других колонках оставались только те, которые актуальны после фильтрации?
Автор: StredaX
Дата сообщения: 20.05.2014 14:54
drSerj
Filtering.ColumnFilteredItemsList
Автор: drSerj
Дата сообщения: 21.05.2014 08:45
StredaX
Огромное спасибо

Нашел еще один вариант DataController.Filter.AutoDataSetFilter. Только не могу понять, в чем разница? Поведение, вроде, одинаковое.
Автор: StredaX
Дата сообщения: 21.05.2014 11:23
drSerj
Ну собственно, вот в чем разница.

AutoDataSetFilter
If the AutoDataSetFilter property is set to True, the FilterText property is automatically assigned to the TDataSet.Filter property when filter criteria are changed. In this instance, the dataset itself filters records.

ColumnFilteredItemsList
Set the ColumnFilteredItemsList property to True, to display only filtered items (selected items) in filter dropdowns.
Автор: drSerj
Дата сообщения: 21.05.2014 11:29
StredaX
Благодарствую.
Автор: prand1
Дата сообщения: 22.05.2014 20:42
StredaX, спасибо, заработало как надо.

Цитата:
Width у Band'а - 0?


А как подключить свою функцию сортировки?
Автор: svs123456789
Дата сообщения: 23.05.2014 11:00
хотелось бы редактировать поле в БД содержащее текст в формате RTF (в BLOB)
в контексте данного топика, т.е. компонентами DevExpress
Автор: Prot_XT
Дата сообщения: 25.05.2014 03:45
Господа, столкнулся с неприятной вещью, которую не пойму как победить. Использую Ribbon от DevExpress - все замечательно, нравится. Добавил контролы на панели инструментов, среди них есть и Edit-ы... или TDxBarEdit. Мне необходимо реализовать поиск или фильтрацию данных, нажимая клавишу Enter. Обрабатываю это событие, все отработало и сразу же после этого курсор не остается в этом же Edit, а перелетает на следующий контрол. Бился с этой гадостью довольно долго, но понял, что это зашито где-то в девках далеко, попробуй разберись.. И зачем это вообще кому то нужно...
Кто знает, что можно сделать?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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