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

» Использование DevExpress 2

Автор: Dronton2
Дата сообщения: 21.01.2008 11:12
ivmregV
Используй TOracleDataSet.OnApplyRecord и там укажи:
case action of 'I', 'U', 'D': Applied := true;
end;
или что-то типа этого.
Автор: brookson
Дата сообщения: 21.01.2008 17:26
привет All!

вопрос такого плана. есть cxGrid, у которого DbTableView, все поля нормальные, а одно хотел сделать непривязанное к таблице - типа CheckBox. оно сделалось, но сделать его checked никак не удаётся. хотя Editing=true и у него, и у вью.

возможно такое вообще? или например в такой же дбвью воткнуть поле, не привязаное к таблице, и редактируемое?

дело в том, что использовать датасет в памяти не хотелось бы. сама исходная таблица большая, а выбрать записей в нём (или отредактировать поля) надо всего пару штук.
Автор: ivmregV
Дата сообщения: 21.01.2008 21:25
Dronton2
Спасибо! Верное направление, все работает, единственное - пришлось дописать отдачу RowID при Insert'e
:

Код:
procedure TMDIChild.DSEApplyRecord(Sender: TOracleDataSet; Action: Char;
var Applied: Boolean; var NewRowId: String);
begin
case action of 'I', 'U', 'D': Applied := true;
end;

NewRowId:='0';
end;
Автор: A_V
Дата сообщения: 21.01.2008 23:00
brookson
проставь DataBinding.ValueType в Boolean у колонки
Автор: clear2121
Дата сообщения: 22.01.2008 09:04
ПРивет ВСЕМ!
Подскажите, как можно сделать такое.Пояснение:
когда создается в среде компонет, напрмер Label, то ему присваивается имя Label1, следующему Label2 , Label3 и тд. Я же когда создаю компонент пишу TLabel *Lab (к примеру). Ну потом все оформление. А далее мне надо создать Lab1, Lab2, lab3 и т.д. И вот как подставить в TLabel *LabN (где N порядковый номер) требуемое название я не знаю. Сколько будет компонентов я не знаю, поэтому заранее N указать невозможно. Подскажите ПЖЛ!

СПАСИБО!
работаю в C++ Builder 2006.
Автор: korobovmax
Дата сообщения: 22.01.2008 09:47
clear2121,
1. Вопрос не по DevExpress;
2. Чуть больше разъясни, что нужно получить.
Автор: clear2121
Дата сообщения: 22.01.2008 10:32
korobovmax, спасибо за участие!
ПРостите, он конечно не совсем сюда, но работая с Девками и возник этот вопрос. Смысл вот в чем. Мне нужно создавать TdxMemData (компонент). В общем случае создаю так - TdxMemData *tmpData; и потом все остальное. Но потом мне надо создать TdxMemData *tmpData1; и так далее (2,3,4,...). Сколько - я не знаю. И вот, к своему удивлению и стыду, я не могу создать 1,2,3,..., если явно не указываю tmpDataN. Вот и вопрос - как мне динамически создавать имена, чтоб подсовывать в TdxMemData *tmpDataN

СПАСИБО!
Автор: korobovmax
Дата сообщения: 22.01.2008 13:17
clear2121, как насчет динамического массива?

Лишней памяти это не занимает, а создавать и обращаться к объекту - просто через его индекс. Убивать еще удобно
Автор: shulum
Дата сообщения: 22.01.2008 15:55
clear2121

если я правильно уловил смысл происходящего

СОЗДАЕМ
var
i: integer;
m: TdxMemData;
begin

for i:=0 to 10000 do
begin
m:=TdxMemData.create(self);
m.name:='my_name_for_tdxmemdata_'+inttostr(i);
end;

end;

РАБОТАЕМ С НИМ
if self.FindComponent('my_name_for_tdxmemdata_'+inttostr(индекс убиваемого memdata))<>nil then
TdxMemData(self.FindComponent('my_name_for_tdxmemdata_'+inttostr(индекс убиваемого memdata))).его свойства


УБИВАЕМ
if self.FindComponent('my_name_for_tdxmemdata_'+inttostr(индекс убиваемого memdata))<>nil then
self.FindComponent('my_name_for_tdxmemdata_'+inttostr(индекс убиваемого memdata)).Free;
Автор: brookson
Дата сообщения: 22.01.2008 18:03
A_V
Да, работает, спасибо!
Автор: DmitryZzz
Дата сообщения: 23.01.2008 10:46
Добрый день, уважаемые.
А как отключить возможность докинга в dxBar (6 версия, если что)? То есть отдельные тулбары могут перемещаться внутри своего общего дока, но сделать им UnDock (чтобы отдельное окно было) - запретить?
Автор: clear2121
Дата сообщения: 23.01.2008 12:48
korobovmax
shulum
Спасибо!
Такие ходы я тоже пробовал, но хотелось что то проще.
Автор: shulum
Дата сообщения: 24.01.2008 11:38
DmitryZzz
"Поиграйся" с Dockable для конкретной панели
Автор: DmitryZzz
Дата сообщения: 24.01.2008 17:59
shulum
для какой-такой панели?
Если речь про TPanel - их нету на форме.
Если имеются ввиду TdxBar - такого свойства Dockable нету. Есть свойства "куда не докить", "куда докить". Если первое установить в none, то вытянув тулбар из дока, ты его не можешь вернуть обратно. Если второе установить в none - то тулбар сразу в дизайнмоде выскакивает из дока и вернуть его обратно тоже нельзя. Во как.
Автор: f3ka
Дата сообщения: 24.01.2008 22:05
Товарищи, использую cxGrid (QuantumGrid6), в нем обычный TableView (не DB).
Возникла проблема с при использовании DataControllera

Код:
TableView.DataController.Append;
TableView.DataController.Values[TableView.DataController.FocusedRecordIndex, i] := SomeValue; // i индекс необходимой колонки
TableView.DataController.Post;
Автор: Czechoslovak
Дата сообщения: 25.01.2008 08:54
f3ka]
А просто через колонку нельзя значение присвоить, без ДатаКонтроллера? Может поможет!?
Автор: f3ka
Дата сообщения: 25.01.2008 09:38
Czechoslovak подскажи тогда как?
Как добавить запись в TableView без DataController?

Код:
//Как добавить запись?
TableView.Columns[i].??? := SomeValue;
//Как ее сохранить?
Автор: Czechoslovak
Дата сообщения: 25.01.2008 09:48
f3ka
Ну я это и имел в виду...

Я дума что ДатаКонтроллер не присваевает значение так как для него еще запись не существует , а в гриде еще есть Контролер для него уже row существует , поэтому через ЭдитВалуе все нормально работает
Автор: shulum
Дата сообщения: 25.01.2008 09:48
f3ka

TableView.DataController.InsertRecord(TableView.DataController.RecordCount);
TableView.DataController.SetValue(TableView.DataController.RecordCount-1,I,SomeValue);
TableView.DataController.Post;
Автор: f3ka
Дата сообщения: 25.01.2008 11:37
shulum
Ну скорее всего это работает даже без POST.
Я пробывал еще так

Код:
RecIndex := TableView.DataController.AppendRecord;
TableView.DataController.Values[RecIndex, i] := SomeValue; // i индекс необходимой колонки
Автор: shulum
Дата сообщения: 26.01.2008 10:49
f3ka
Да - согласен, обработки OnBeforePost и OnAfterPost не происходит при таком способе изменения данных ... но, собственно, а зачем тебе эти события вообще использовать? ты же изначально знаешь, что туда передаешь. А события OnBeforePost и OnAfterPost отлавливают изменения, когда ты производишь ввод данных через интерфейс.
Но это так .. риторика, в общем твой вариант

TableView.DataController.Append;
TableView.Columns[i].EditValue := SomeValue;
TableView.DataController.Post;

работает - возму на заметку, спасибо

Добавлено:
DmitryZzz
Sorry - немного не туда капнул ...
А для dxBar - поставь свойство NotDocking в [dsNone]
ну или NotDocking -> dsNone поставь в true
тогда, при условии что запрет докинга по левой, правой, верхней и нижней сторонам не стоит, бар будет плавать по границам..., а выползти наружу не сможет.
Автор: DmitryZzz
Дата сообщения: 26.01.2008 14:09

Цитата:
DmitryZzz
Sorry - немного не туда капнул ...
А для dxBar - поставь свойство NotDocking в [dsNone]
ну или NotDocking -> dsNone поставь в true
тогда, при условии что запрет докинга по левой, правой, верхней и нижней сторонам не стоит, бар будет плавать по границам..., а выползти наружу не сможет.

Спасибо, удивительно - но получилось

Добавлено:
Добрый день, уважаемые. Хочу посоветоваться по-поводу цыетовых решений для cxGrid. Приложение мое работает как на XP со схемой XP, так и стандартной, часто и в терминальном режиме в 256 цветов. Не устраивает следующее в штатных цветах cxGrid:
запись в режиме Selected (или Focused? все время их путаю) - серого цвета, сливается с цветом заголовка столбцов. То есть если показать грид, загрузить в него данные, но мышкой не кликать, то первая (если первая) запись сливается с заголовком. Что посоветуете - настроить схему? Или как-то сделать чтобы всегда Focused = Selected? Такое можно?
PS Другая тема с dxBar. Два бара рядом - один с 256цветными значками, второй - с типа cxEdit. Когда в терминальном режиме на все дается 256 цветов - первый бар меняет свой фон на зеленоватый. второй - серый, как и положено. Что посоветуете? Уменьшать цветность приложения? Или можно зафиксировать цвет бара?


Добавлено:
Уважаемые, еще один вопрос по cxGrid. Посоветуйте:
Знаю как поменять цвет текста/фона у отдельной ячейки. А возможно ли поменять цвет у *части* текста? Например - в гриде набор данных, применяю свой некий поиск - хочу чтобы во всем гриде подсветились *части* текста в ячейках, которые совпадают с моим поиском?
Спасибо.
Автор: shulum
Дата сообщения: 26.01.2008 19:49
DmitryZzz

Цитата:
Не устраивает следующее в штатных цветах cxGrid:
запись в режиме Selected ...


Используй стили и тебе, обязательно, повезет ...


Цитата:
во всем гриде подсветились *части* текста в ячейках, которые совпадают с моим поиском?


ищи в топиках - обсуждалось
Автор: GREETINGS_TO_ALL
Дата сообщения: 28.01.2008 12:03
Подскажите пожалуйста,как в квантиумгриде в определенном столбце перебрать все записи и присвоить им определенное значение, не могу понять,через что получить доступ к нужным данным
Автор: Gaivoronsky
Дата сообщения: 30.01.2008 00:46
Собрал новую тему в стиле мак-ос для devexpress Skin http://rs349.rapidshare.com/files/87673349/Mac_OS.rar - смотрите.
Автор: shulum
Дата сообщения: 30.01.2008 10:22
GREETINGS_TO_ALL
несколько постов выше ..., или читать религия не позволяет?
Автор: DmitryZzz
Дата сообщения: 30.01.2008 12:21
Столкнулся с похожей проблемой
http://www.devexpress.com/Support/Center/p/B91667.aspx?searchtext=frame&tid=dee0f498-9b49-42c9-bee9-5530e0ea67f6&pid=277d4f09-d600-4865-a4cd-01fd2eea91db

По-русски: если dxBar лежит во фрейме, и на форме лежит этот фрейм (например в TabSheet), то когда фокус уходит с фрейма, окно-владелец теряет фокус

Что посоветуете?
Автор: GREETINGS_TO_ALL
Дата сообщения: 30.01.2008 13:44
shulum позволяет ,я уже разобрался
Автор: Dronton2
Дата сообщения: 30.01.2008 13:46
Gaivoronsky
Интересно. А скриншот какой-нибудь есть?
Автор: clear2121
Дата сообщения: 30.01.2008 17:29
Привет всем!
Не могу понять в чем причина. В проге использую TcxTreeList. Поле установлено типа Label. И вот при сравнении
if ( Form2->GR_UMAX->Items[i]->Values[7] != "3" )
получаю [C++ Warning] main.cpp(514): W8011 Nonportable pointer comparison
Но стоит убрать кавычки - все проходит. Эта ошибка возникает даже при
if ( Form2->GR_UMAX->Items[i]->Values[10] != "ДА" ). Выход нашел такой - при сравнении цифр не ставлю кавычки. Если слова, то так
if ( (String)Form2->GR_UMAX->Items[i]->Values[10] != "ДА" )

Может кто подскажет в чем дело?

СПАСИБО!

Добавлено:
Привет всем!
Не могу понять в чем причина. В проге использую TcxTreeList. Поле установлено типа Label. И вот при сравнении
if ( Form2->GR_UMAX->Items[i]->Values[7] != "3" )
получаю [C++ Warning] main.cpp(514): W8011 Nonportable pointer comparison
Но стоит убрать кавычки - все проходит. Эта ошибка возникает даже при
if ( Form2->GR_UMAX->Items[i]->Values[10] != "ДА" ). Выход нашел такой - при сравнении цифр не ставлю кавычки. Если слова, то так
if ( (String)Form2->GR_UMAX->Items[i]->Values[10] != "ДА" )

Может кто подскажет в чем дело?

СПАСИБО!

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

Предыдущая тема: Язык программирования на русском языке


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