Подскажите, а как заполнить cxDBComboBox что бы он заполнялся данными (а не первым значение) и их можно было выбирать. Делаю я следуюющее. Ложу кверю. Делаю выборку всех данных без исключений. Ложу датасоурце и привязываю к квере. Выкладываю сабж (или cxDBLookupComboBox), указываю на датасорце. Толи делаю кверю актив, толи открываю при открытии окна - результат один - появляется только 1 первая запись из таблицы.
» Использование DevExpress (часть 3)
afiget
Когда день над чем нить пробьешься, то как говорил Шарапов "..глаз замыливается, и даже чего не было замечаешь" Теперь вот еще проблему надыбал, правда не такую глобальную.. Как бы это его автоматом (через cxPropertieStore) сохранить TStrings из Memo...
Когда день над чем нить пробьешься, то как говорил Шарапов "..глаз замыливается, и даже чего не было замечаешь" Теперь вот еще проблему надыбал, правда не такую глобальную.. Как бы это его автоматом (через cxPropertieStore) сохранить TStrings из Memo...
Meister Floh
Цитата:
А автомат кто/что спускать будет ? И что имелось ввиду через cxPropertieStore? А сохранять в файл? Путь/Имя файла где брать автомату? В общем вопросов масса
Добавлено:
Dimrix
Для Вашей задачи cxDBComboBox не подойдет. Вам нужен, как и написали cxDBLookupComboBox, только не "или", а "именно". И DataSource нужно привязывать не к свойству DataSource, а к свойству ListSource. Еще необходимо установить значение свойств KeyField и ListField.
Цитата:
Как бы это его автоматом (через cxPropertieStore) сохранить TStrings из Memo
А автомат кто/что спускать будет ? И что имелось ввиду через cxPropertieStore? А сохранять в файл? Путь/Имя файла где брать автомату? В общем вопросов масса
Добавлено:
Dimrix
Для Вашей задачи cxDBComboBox не подойдет. Вам нужен, как и написали cxDBLookupComboBox, только не "или", а "именно". И DataSource нужно привязывать не к свойству DataSource, а к свойству ListSource. Еще необходимо установить значение свойств KeyField и ListField.
vladman - cохранить TStrings из MEMO при помощи cxPropertieStore в ini файл. Автоматом значит cxPropertieStore->Active = true;
Meister Floh
Ok, теперь ясно. Дело в том, что cxPropertieStore на данный момент не может сохранять TStrings. Девэкспресы с 01.08.2006 обещают это поправить. Ну раз еще не поправили, можно немного обработать эту ситуацию.
Идея очень простая - перед сохранением в файл/реестр компонентом cxPropertieStore, сохранить содержимое свойства типа TStrings в свойсво типа String и указать это свойство в cxPropertieStore как сохраняемое.
Я использую для таких случаев свойство Hint, но можно и любое другое текстовое поле, например HelpKeyword, все зависит от того какое из них не используется в данном проекте.
Итак, в обработчике onClose формы выполняем
<YourcxMemo>.Hint := <YourcxMemo>.Lines.DelimitedText;
а в обработчике onCreate формы выполняем
<YourcxMemo>.Lines.DelimitedText := <YourcxMemo>.Hint;
<YourcxMemo>.Hint := ''; // ну, или ваш хинт если он используется
Вот, собственно и все.
Ok, теперь ясно. Дело в том, что cxPropertieStore на данный момент не может сохранять TStrings. Девэкспресы с 01.08.2006 обещают это поправить. Ну раз еще не поправили, можно немного обработать эту ситуацию.
Идея очень простая - перед сохранением в файл/реестр компонентом cxPropertieStore, сохранить содержимое свойства типа TStrings в свойсво типа String и указать это свойство в cxPropertieStore как сохраняемое.
Я использую для таких случаев свойство Hint, но можно и любое другое текстовое поле, например HelpKeyword, все зависит от того какое из них не используется в данном проекте.
Итак, в обработчике onClose формы выполняем
<YourcxMemo>.Hint := <YourcxMemo>.Lines.DelimitedText;
а в обработчике onCreate формы выполняем
<YourcxMemo>.Lines.DelimitedText := <YourcxMemo>.Hint;
<YourcxMemo>.Hint := ''; // ну, или ваш хинт если он используется
Вот, собственно и все.
vladman
А в этом случае переносы строк нормально сохраняются или все же бьются?
А в этом случае переносы строк нормально сохраняются или все же бьются?
afiget
Цитата:
имелось ввиду #13#10?
Да, нормально. После восстановления все один в один.
Добавлено:
Кстати так же сохраняю и MRU Lists
Цитата:
А в этом случае переносы строк нормально сохраняются или все же бьются?
имелось ввиду #13#10?
Да, нормально. После восстановления все один в один.
Добавлено:
Кстати так же сохраняю и MRU Lists
vladman
Понятно, спасибо за инфу.
А фильтры в гриде сам сохраняешь по предлагаемому разработчиками сценарию или что-то свое?
ЗЫ
Кстати, SQL-запросы пробовал так сохранять. Проблем не возникало? А то у меня старый проект есть на поддержке, разработчики писали всю логику на клиенте и обновлять не очень удобно. Давно собирался изменить такое положение дел, вот и вспомнил.
Понятно, спасибо за инфу.
А фильтры в гриде сам сохраняешь по предлагаемому разработчиками сценарию или что-то свое?
ЗЫ
Кстати, SQL-запросы пробовал так сохранять. Проблем не возникало? А то у меня старый проект есть на поддержке, разработчики писали всю логику на клиенте и обновлять не очень удобно. Давно собирался изменить такое положение дел, вот и вспомнил.
afiget
Цитата:
Да, StoreToRegistry, StoreToIniFile с установленными TcxGridStorageOption = (gsoUseFilter, gsoUseSummary);
Цитата:
Нет, не пробовал, не было надобности. Думаю что проблем не должно быть.
Цитата:
А фильтры в гриде сам сохраняешь по предлагаемому разработчиками сценарию
Да, StoreToRegistry, StoreToIniFile с установленными TcxGridStorageOption = (gsoUseFilter, gsoUseSummary);
Цитата:
Кстати, SQL-запросы пробовал так сохранять. Проблем не возникало?
Нет, не пробовал, не было надобности. Думаю что проблем не должно быть.
afiget
vladman
Спасибо, такая примерно мысль и была.. Только я пытался, разместить что-то, что будет в паблишед, и будет обладать неким свойством UnicodeString (или String, AnsiString, WideString и т.п.) Потому как сохранять SQL, а в нем не критичны перевод строки возврат каретки, но раз и они сохраняются - все гут...
vladman
Спасибо, такая примерно мысль и была.. Только я пытался, разместить что-то, что будет в паблишед, и будет обладать неким свойством UnicodeString (или String, AnsiString, WideString и т.п.) Потому как сохранять SQL, а в нем не критичны перевод строки возврат каретки, но раз и они сохраняются - все гут...
Товарищи, у меня (или не у меня) очередной клинч.
Девки43, Ribbon. Хочу в заголовке Tab Group забамбахать Dialog Launcher. Всё делаю "по инструкции". В дезайн-тайме вижу эту пиндюлинку внизу-справа, а в ран-тайме -- ну хоть ты кол на голове чеши, ни хрена.
Может секрет есть?
Спасибо...
Девки43, Ribbon. Хочу в заголовке Tab Group забамбахать Dialog Launcher. Всё делаю "по инструкции". В дезайн-тайме вижу эту пиндюлинку внизу-справа, а в ран-тайме -- ну хоть ты кол на голове чеши, ни хрена.
Может секрет есть?
Спасибо...
vladman
Еще одна трабла выскочила.. Открываю мемо, вставляю туда текст из клипбоард, закрываю, открываю по новой, мемо пустой.. Логически понимаю, что внесенный текст не пишется в Lines. Но найти, чем его туда записать не получилось.. Написал на мемо обработчик OnExit в котором написал memo->PostEditValue(); - не помогло.. В чем трабла?
Добавлено:
ZalivkoDenis
Решил.. В событии формы OnActivate добавляем 2 строки:
Код:
YourTdxBarWithDialogLuncher->CaptionButtons->BeginUpdate();
YourTdxBarWithDialogLuncher->CaptionButtons->EndUpdate();
Еще одна трабла выскочила.. Открываю мемо, вставляю туда текст из клипбоард, закрываю, открываю по новой, мемо пустой.. Логически понимаю, что внесенный текст не пишется в Lines. Но найти, чем его туда записать не получилось.. Написал на мемо обработчик OnExit в котором написал memo->PostEditValue(); - не помогло.. В чем трабла?
Добавлено:
ZalivkoDenis
Решил.. В событии формы OnActivate добавляем 2 строки:
Код:
YourTdxBarWithDialogLuncher->CaptionButtons->BeginUpdate();
YourTdxBarWithDialogLuncher->CaptionButtons->EndUpdate();
Meister Floh
М-да, конечно, лучше, чем ничего, НО, если есть несколько табов, то беда. ланчер отрисовывается только в табах первого рибон-таба В последующих - нет. Пробовал Вашу связку забамбахать на OnTabChanged -- один хрен -- не рисует. Видимо, это недосмотренная бага 43-ей сборки. Потому как в предыдущих сборках всё было гут...
Может у Вас найдётся ещё одно оригинальное решение (так вот осторожненько спрашиваю )?
Спасибо.
М-да, конечно, лучше, чем ничего, НО, если есть несколько табов, то беда. ланчер отрисовывается только в табах первого рибон-таба В последующих - нет. Пробовал Вашу связку забамбахать на OnTabChanged -- один хрен -- не рисует. Видимо, это недосмотренная бага 43-ей сборки. Потому как в предыдущих сборках всё было гут...
Может у Вас найдётся ещё одно оригинальное решение (так вот осторожненько спрашиваю )?
Спасибо.
Meister Floh
Цитата:
Цитата:
Почти все верно, только нужно в другом обработчике это реализовать, и, может быть, немного универсальней
Код: procedure <TYourForm>.<YourBarEditItemProperties>CloseUp(Sender: TObject);
begin
TcxMemo(TcxPopupEdit(Sender).Properties.PopupControl).PostEditValue;
end;
Цитата:
Еще одна трабла выскочила..
Цитата:
Написал на мемо обработчик OnExit в котором написал memo->PostEditValue(); - не помогло..
Почти все верно, только нужно в другом обработчике это реализовать, и, может быть, немного универсальней
Код: procedure <TYourForm>.<YourBarEditItemProperties>CloseUp(Sender: TObject);
begin
TcxMemo(TcxPopupEdit(Sender).Properties.PopupControl).PostEditValue;
end;
ZalivkoDenis
Если нужно могу выслать тебе перекомпиленую dcldxRibbonC12.bpl - с ней диалог лунчер работает - для этого свое мыло мне в ПМ..
Если нужно могу выслать тебе перекомпиленую dcldxRibbonC12.bpl - с ней диалог лунчер работает - для этого свое мыло мне в ПМ..
Ситуация: приложение с использованием DockLib от Devx. FloatingOnTop - False. Есть несколько открытых Dock-панелей во Float-состоянии (откреплены от DockSite и выглядят как формы). Если при этом открыть в модальном режиме диалоговое окно, перейти к другому приложению по Alt+Tab, а потом вернуться к моему - модальное окно оказывается под открытыми Dock-панелями. Неопытных юзеров такое поведение пугает до уср.чки
Delphi 2007, WinXP SP2, Devx 42.
Есть соображения?
Спасибо.
Delphi 2007, WinXP SP2, Devx 42.
Есть соображения?
Спасибо.
infomSB
Знаю, что это похоже на "... с пушки по воробьям". Но все же. Очень нужно именно такой вид. Большая кнопка несет информациооный характер. Она изменяется в зависимости от данных.
Знаю, что не оптимально. Но, красота требует жертв. Если б только эти жертвы можно было б уменьшить...
Знаю, что это похоже на "... с пушки по воробьям". Но все же. Очень нужно именно такой вид. Большая кнопка несет информациооный характер. Она изменяется в зависимости от данных.
Знаю, что не оптимально. Но, красота требует жертв. Если б только эти жертвы можно было б уменьшить...
Требуется текст в ячейке cxGrid отобразить разным цветом. Например, первый символ красным цветом, а третий символ - синим. Как можно это сделать, подскажите пожалуйста ! Пробовала через InternalTextOut в событии onCustomDrawCell, но смогла сделать только что-то одно из требуемого, т.е. либо первый символ красным, либо третий символ синим. А надо одновременно и то, и другое !
QwertyMag
можно попробывать использовать RichEdit в Properties для колонки... Вот здесь приблизительно тоже самое спрашивали...
можно попробывать использовать RichEdit в Properties для колонки... Вот здесь приблизительно тоже самое спрашивали...
Запутался я совсем. И из справки не могу понять. Как выполнить цикл по видимым записям cxGrid. cxGrid не привязан к базе. Но может быть отфильтрован или сгруппирован средствами самого грида.
Этот код выполняет цикл по все записям
Код:
for iCurRec := 0 to Grid1.DataController.RecordCount - 1 do begin
//даже если запись спрятана, всё равно идёт в расчёт
sAD := Grid1.DataController.Values[iCurRec, colText.Index];
...
Этот код выполняет цикл по все записям
Код:
for iCurRec := 0 to Grid1.DataController.RecordCount - 1 do begin
//даже если запись спрятана, всё равно идёт в расчёт
sAD := Grid1.DataController.Values[iCurRec, colText.Index];
...
X11
Цитата:
Обратить внимание на <YourTcxGridTableView>.DataController.FilteredRecordCount
Цитата:
TcxCustomDataController.FilteredRecordCount - ms-help://borland.bds5/ExpressDataController.BDS5/ExpressDataController/IDH_TcxCustomDataController_FilteredRecordCount.htm
TcxCustomDataController.RowCount - ms-help://borland.bds5/ExpressDataController.BDS5/ExpressDataController/IDH_TcxCustomDataController_RowCount.htm
Цитата:
Как выполнить цикл по видимым записям cxGrid
Обратить внимание на <YourTcxGridTableView>.DataController.FilteredRecordCount
Цитата:
И из справки не могу понять.
TcxCustomDataController.FilteredRecordCount - ms-help://borland.bds5/ExpressDataController.BDS5/ExpressDataController/IDH_TcxCustomDataController_FilteredRecordCount.htm
TcxCustomDataController.RowCount - ms-help://borland.bds5/ExpressDataController.BDS5/ExpressDataController/IDH_TcxCustomDataController_RowCount.htm
f3ka
Спасибо за ссылку! Это то, что надо! Все получилось.
Спасибо за ссылку! Это то, что надо! Все получилось.
У меня следующая проблема, с которой не могу справиться.
Использую DevExpress x.42. Есть TcxGridTableView и есть стили. Один стиль с картинкой. Я пытаюсь определенному столбцу присвоить этот стиль и ничего не происходит. Если убрать картинку и поставить просто цвет, то все отлично.
В чем может быть моя проблема?
Заранее благодарен
Использую DevExpress x.42. Есть TcxGridTableView и есть стили. Один стиль с картинкой. Я пытаюсь определенному столбцу присвоить этот стиль и ничего не происходит. Если убрать картинку и поставить просто цвет, то все отлично.
В чем может быть моя проблема?
Заранее благодарен
ilyakoles
что значит определенному столбцу присвоить? <TcxGridColumn>.Styles.Content ???
оно почему то не работает, но если присвоить <TcxTableView>.Styles.Content этот же стиль то работается для всех колонок...
что самое странное что если в OnGetContentStyle и для <TcxGridColumn> и для <TcxTableView> в AStyle пихать этот же стиль то не работает
что значит определенному столбцу присвоить? <TcxGridColumn>.Styles.Content ???
оно почему то не работает, но если присвоить <TcxTableView>.Styles.Content этот же стиль то работается для всех колонок...
что самое странное что если в OnGetContentStyle и для <TcxGridColumn> и для <TcxTableView> в AStyle пихать этот же стиль то не работает
Интересно, а такая хрень у всех Девок или нет?
ilyakoles
Цитата:
Проблема в том, что стиль с битмапом для колонки не поддерживается в настоящий момент (не реализован)
Подробнее - _http://www.devexpress.com/Support/Center/p/Q99175.aspx
а именно -
Цитата:
Цитата:
У меня следующая проблема, с которой не могу справиться... В чем может быть моя проблема?
Проблема в том, что стиль с битмапом для колонки не поддерживается в настоящий момент (не реализован)
Подробнее - _http://www.devexpress.com/Support/Center/p/Q99175.aspx
а именно -
Цитата:
I'm sorry, but the bitmaps, set via the column's Styles, aren't supported at present.
Народ. Кто использует девок с локализатором. Там грамматическая ошибочка в переводе мелкая.
"Предыдущие" пишется с одной буквой "д".
Я пока не нашёл, где это в файле с переводом. Но вот оно на картинке.
http://pic.ipicture.ru/uploads/090518/VKDZwIVphl.png
Это если в свойствах грида DateTimeHandling->Filters включить доп. пункты в выпадающем фильтре.
Добавлено:
Вот оно
scxGridLastTwoWeeks="Предыдущие 2 недели"
"Предыдущие" пишется с одной буквой "д".
Я пока не нашёл, где это в файле с переводом. Но вот оно на картинке.
http://pic.ipicture.ru/uploads/090518/VKDZwIVphl.png
Это если в свойствах грида DateTimeHandling->Filters включить доп. пункты в выпадающем фильтре.
Добавлено:
Вот оно
scxGridLastTwoWeeks="Предыдущие 2 недели"
Есть DBVerticalGrid, LayoutStyle = lsSingleRecordView
как в обработчике TcxDBEditorRow OnEditPropertiesOnChange(Sender: TObject)
на основе данных Sender'a вычислить имя связанного поля БД?
или, как альтернатива, как выяснить, для какого поля вызывается обработчик грида:
OnGetContentStyle(Sender: TObject; AEditProp: TcxCustomEditorRowProperties; AFocused: Boolean;
ARecordIndex: Integer; var AStyle: TcxStyle);
как в обработчике TcxDBEditorRow OnEditPropertiesOnChange(Sender: TObject)
на основе данных Sender'a вычислить имя связанного поля БД?
или, как альтернатива, как выяснить, для какого поля вызывается обработчик грида:
OnGetContentStyle(Sender: TObject; AEditProp: TcxCustomEditorRowProperties; AFocused: Boolean;
ARecordIndex: Integer; var AStyle: TcxStyle);
Добрый день! Подскажите, пожалуйста, можно ли в QuantumGrid, в DBTableView добавить "внутренний "столбец - номер по порядку. Такой, чтобы переситывался (не менялся) при сортировках, группировках и т.д.
zaroman
Вообще-то есть где-то на сайте у Дев.
Но мне проще скопипастить из проекта.
Добавляем колонку Num в View1.
Обрабатываем OnGetDisplayText для нее.
procedure TBaseDocWithRows.View1NumGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; var AText: string);
var
Row: Integer;
begin
inherited;
// if ShowNumCol then
// begin
Row := Sender.GridView.DataController.GetRowIndexByRecordIndex(ARecord.RecordIndex, False)+1;
AText := IntToStr(Row);
// end;
end;
Вообще-то есть где-то на сайте у Дев.
Но мне проще скопипастить из проекта.
Добавляем колонку Num в View1.
Обрабатываем OnGetDisplayText для нее.
procedure TBaseDocWithRows.View1NumGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; var AText: string);
var
Row: Integer;
begin
inherited;
// if ShowNumCol then
// begin
Row := Sender.GridView.DataController.GetRowIndexByRecordIndex(ARecord.RecordIndex, False)+1;
AText := IntToStr(Row);
// end;
end;
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
Предыдущая тема: Delphi: tcp клиент в потоке
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.