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

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

Автор: X11
Дата сообщения: 26.03.2009 19:32
Не помогает. При старте дельфи

Цитата:
Приложению не удалось запуститься, поскольку dclcxSchedulerD12.bpl не был найден. Повторная установка приложения может исправить эту проблему.
Автор: Felias Fogg
Дата сообщения: 26.03.2009 19:34
Если CalcEdit лежит на панели, например, то можно высчитывать высоту так:


Код:

procedure <YourForm>.<YourcxCalcEdit>PropertiesInitPopup(Sender: TObject)
begin
<YourcxCalcEdit>.Style.Font.Size := 8;
end;

procedure <YourForm>.<YourcxCalcEdit>PropertiesPopup(Sender: TObject);
begin
<YourcxCalcEdit>.Style.Font.Size := 18;
<YourcxCalcEdit>.PopupWindow.Top := <YourcxCalcEdit>.PopupWindow.Top +
<YourcxCalcEdit>.Height div 2 - 1;
end;
Автор: X11
Дата сообщения: 26.03.2009 19:36
Я заметил, что проблема возникает, например, если в приложении используется dxSideBar

Интересует, есть ли замена у девок этому компоненту и какого перца dxSideBar1 связан как-то с шедулером? Т.к. при запуске дельфи загружается последний проект, на главной и единственное форме, которого расположен этот dxSideBar1. Вываливается ошибка, нажимаю ОК, продолжает загружаться проект, появляется форма, но на ней нет dxSideBar1.

Добавлено:
Как удалить из проекта dxDockPanel1?

Добавлено:
Закрываю проет, появляется надпись
Access violation at address 00000000. Read of address 00000000.


Девки в моих глазах падают ниже плинтуса.
Автор: vladman
Дата сообщения: 26.03.2009 20:28
Felias Fogg
Тогда чтоб совсем положение popup'a не зависело от размера шрифта, предлагаю немного подправить обработчик <YourcxCalcEdit>PropertiesPopup

Код:
procedure <YourForm>.<YourcxCalcEdit>PropertiesPopup(Sender: TObject);
var
vOldCalcEditHeight: Integer;
begin
vOldCalcEditHeight := <YourcxCalcEdit>.Height;
<YourcxCalcEdit>.Style.Font.Size := 48; //при 48, например, ... + <YourcxCalcEdit>.Height div 2 - 1 сработает некорректно
<YourcxCalcEdit>.PopupWindow.Top := <YourcxCalcEdit>.PopupWindow.Top + <YourcxCalcEdit>.Height - vOldCalcEditHeight;
end;
Автор: X11
Дата сообщения: 26.03.2009 20:52
Переустановил девок. Создал новый проект. Всё нормально. Уже использую NavBar. Создаю в проекте DataModule. Вываливается опять:

Цитата:
Приложению не удалось запуститься, поскольку dclcxSchedulerD12.bpl не был найден. Повторная установка приложения может исправить эту проблему.


По моему этот шедулер цепляется за всё что ни попадя.

Добавлено:
Что посоветуете для отображения дерева?
dxDBTreeView или cxDBTreeList?

Добавлено:
cxDBTreeList не поддерживает юникод
Автор: X11
Дата сообщения: 26.03.2009 23:45
То ли лыжи не едут, то ли DevExpress...

Здесь заявлено, что с версии 39 можно создавать юникодные приложения:
devexpress.com/Home/Announces/Unicode_Delphi_Components.xml

У меня версия 42, что я делаю не так? Ведь родной ДБгрид отображает юникод нормально.
http://pic.ipicture.ru/uploads/090326/OiGYjHWryh.png

D2009, FB 2.5, база в кодировке UTF8, FibPlus 6.9.6 для D2009.
Автор: dc
Дата сообщения: 27.03.2009 08:28
X11: такая же проблема...

D2009, FB 2.1, кодировка базы и подключения UTF8, FibPlus 6.9.6 для D2009.


http://lh4.ggpht.com/_sKAlIjaIY8g/ScvdcmC2xKI/AAAAAAAACyM/jLx1P1Tv9Z4/untitled.JPG
Автор: sldaac
Дата сообщения: 27.03.2009 09:38

Цитата:
Не помогает. При старте дельфи

Мне помогло переустановкой компонента, не всех девок.
И еще посмотри пути все прописаны.
Автор: Raniw
Дата сообщения: 27.03.2009 13:45
Может кто подскажет свойство VGridControl аналогичное SetFocusedValue у GridControl.
Автор: X11
Дата сообщения: 27.03.2009 21:04

Цитата:
http://lh4.ggpht.com/_sKAlIjaIY8g/ScvdcmC2xKI/AAAAAAAACyM/jLx1P1Tv9Z4/untitled.JPG

not found

Добавлено:

Цитата:
И еще посмотри пути все прописаны.

Какие все? там один путь к девкам, один!
C:\Program Files\Developer Express Inc\Library\Delphi12
Автор: dc
Дата сообщения: 27.03.2009 22:00
X11: found found :) со второго раза.

ты проблему решил?
Автор: X11
Дата сообщения: 28.03.2009 20:42
Как же я решу, если девки в D2009 упорно не хотят поддерживать юникод. Я до сих пор не нашёл дерева для D2009, с поддержкой юникода и баз данных. Самому можно строить, конечно. Но пока ни к спеху, то подожду, может девки к новому году раздупляться и станут поддерживать юникод в D2009

Добавлено:
У меня есть ещё FIBExTrees Library. Но там нет опять же поддержки D2009.
Автор: dc
Дата сообщения: 28.03.2009 23:11
странно то что с TableView такого нет.
всё работает нормально
http://lh4.ggpht.com/_sKAlIjaIY8g/Sc6EG6x-wrI/AAAAAAAACyU/QdJmGVzjvX0/untitled2.JPG

п.с.
поделись FIBPlus для 2009
Автор: X11
Дата сообщения: 28.03.2009 23:18
dc, это у тебя работает, а у остальных не работает. Неужели на нормальный сервис картинку не выложить?
Автор: dc
Дата сообщения: 28.03.2009 23:18
и когда ячейка в едит моде то тоже всё ок.

Добавлено:
http://www.ljplus.ru/img4/d/u/dumitru/untitled2.JPG
так пойдет?
Автор: X11
Дата сообщения: 28.03.2009 23:26

Цитата:
X11: такая же проблема...

D2009, FB 2.1, кодировка базы и подключения UTF8, FibPlus 6.9.6 для D2009.

но ты же писал, что у тебя проблема О_о

так есть проблема или нет?
Автор: dc
Дата сообщения: 29.03.2009 08:02
проблема есть:
http://www.ljplus.ru/img4/d/u/dumitru/untitled.JPG

и это проблема когда прикреплен TcxGridDBTableView

а если использовать TcxGridTableView для грид-а то проблемы уже нет.
http://www.ljplus.ru/img4/d/u/dumitru/untitled2.JPG

и что интересно что если ячейка грид-а в едит моде то в ней показывается всё нормально
http://www.ljplus.ru/img4/d/u/dumitru/untitled3.JPG
Автор: asvet
Дата сообщения: 29.03.2009 10:01
Добрый день

Есть LabelControl, привязанный к DataTable.
Как установить для него денежный формат?
Автор: Katy_Ekb
Дата сообщения: 29.03.2009 10:32
после обновления компонент NavBar с версии 34 (21.03.2008) до версии 42 ( 10.02.2009 )
изменился немного интерфейс ( пример на рисунке )



подскажите пожалуйста где задаются эти цвета.
Автор: X11
Дата сообщения: 29.03.2009 12:56

Цитата:
и это проблема когда прикреплен TcxGridDBTableView

а если использовать TcxGridTableView для грид-а то проблемы уже нет.


Бред какой-то, извини за выражение... Куда прикреплён? Что ты имеешь ввиду под словом прикреплён? Можешь по человечески описать?
Автор: vladman
Дата сообщения: 29.03.2009 16:51
asvet

Цитата:
Есть LabelControl, привязанный к DataTable.

Что такое LabelControl и что такое DataTable. Желательно указывать ТИП контролов (компонент) для получения правильного ответа.

Katy_Ekb

Цитата:
подскажите пожалуйста где задаются эти цвета.

Какой стиль использовался для NavBar? И если этот стиль использует скины, то какой скин использовался. А лучше же, конечно, сопровождать такие вопросы примерами.

X11

Цитата:
Бред какой-то, ...

Ну зачем так, человек помог, потратил время, а вы бред...
Насколько я понял, проблема существует, когда используется TcxGridDBTableView, т.е TableView опираеться на DataSource (data-aware). При использовании cxGridTableView (не data-aware весрия TableView) проблем нет. Более того, при переходе инплейс редактора в режим редактирования, даже при использовании TcxGridDBTableView ( data-aware), отображение юникод символов корректно.

Это всего лишь мое понимание поста dc. D2009 пока не использую, посему проверить не могу.
Автор: X11
Дата сообщения: 29.03.2009 17:45
vladman, ну я извинился.

Цитата:
т.е TableView опираеться на DataSource (data-aware).

аааа, вот оно что?
Ещё раз приношу извинения.
Автор: sldaac
Дата сообщения: 30.03.2009 17:32

Цитата:
Какие все? там один путь к девкам, один!
C:\Program Files\Developer Express Inc\Library\Delphi12


я указывал путь полность на папку где исходники с шедулером находятся
Автор: Katy_Ekb
Дата сообщения: 31.03.2009 11:26
vladman

Цитата:
Какой стиль использовался для NavBar? И если этот стиль использует скины, то какой скин использовался. А лучше же, конечно, сопровождать такие вопросы примерами.

скины не используются. ViewStyle : AdvExplorerBarView
Извините, действительно разумно было выложить пример: http://rapidshare.com/files/215648951/prime_nav_bar.rar.html
Автор: Postscriptum
Дата сообщения: 01.04.2009 07:05
Задавал этот вопрос в ветке по компонентам, направили сюда.
В DbGridEh компонента EHLib есть свойство DrawColumnCell. У меня там такя штука:

procedure TForm1.GridDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
var
OldC: TColor;
begin
if not (gdFocused in State) then
begin
{$B+}
if T1.Active then
begin
if T1.AdsIsRecordDeleted(T1.AdsGetRecordNum) then
begin
OldC := Grid.Canvas.Brush.Color;
Grid.Canvas.Brush.Color := clRed;
Grid.Canvas.FillRect(Rect);
Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Grid.Canvas.Brush.Color := OldC;
end;
if T1.IsEmpty then
begin
Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
end;
end;

т.е. выделяются красным цветом удаленные записи.
Не пойму, как такую вещь сделать в Девках. Подскажите, плиз.
Пробовал так:
procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
OldC: TColor;
begin
if AdsTable1.Active then
begin
if AdsTable1.AdsIsRecordDeleted(AdsTable1.AdsGetRecordNum) then
begin
oldc:=Acanvas.Canvas.Brush.Color;
ACanvas.Canvas.Brush.Color := clRed;
if AViewInfo.Focused
then ACanvas.Canvas.Brush.Color := oldc;
if AViewInfo.Selected then ACanvas.Canvas.Brush.Color := oldc;
end;
end;
end;
Когда открываю табличку, удаленные записи красным не помечаются - только когда я курсром по ним перемещаюсь, и при удалении записи все помечаются красным, и отметка убирается, когда я по ним перемещаюсь.
Автор: sldaac
Дата сообщения: 01.04.2009 09:18
Приветствую всех
подкажите компонент типа ajax. Суть проблемы, есть таблица с N-количеством полей, самые небходимые показываются используя TcxGrid+..... тут все сделано правильно. Надо при клике на записи или на кнопке, всплывал компонент в котором я могу поместить всю инфу по одной записи из других полей и показать юзеру. Организовывать вертикал грид или что-то другое нет возможности из-за отсутствия места на форме, да и дополнительная информация не всегда нужна.
Спсб всем.
сорри за повтор, не все смотрят другие ветки форума
Автор: vladman
Дата сообщения: 01.04.2009 12:40
Postscriptum
Ошибка в том, что
Цитата:
AdsTable1.AdsGetRecordNum
остается неизменной, и вы опираясь на это значение хотите раскрасить весь грид.
Для верной раскраски используйте AViewInfo для получения значений раскрашиваемой ячейки, либо сроки/столбца, в которой находится эта ячейка.

sldaac

Цитата:
Организовывать вертикал грид или что-то другое нет возможности из-за отсутствия места на форме, да и дополнительная информация не всегда нужна

При такой ситуации как нельзя лучше подходит ExpressDocking Library, в который можно и поместить эту дополнительную информацию, в том числе и в вертикалгрид.
Автор: X11
Дата сообщения: 01.04.2009 19:12

Цитата:
т.е. выделяются красным цветом удаленные записи.
Не пойму, как такую вещь сделать в Девках.

Кинь на форму cxStyleRepository, на строй там пару стилей

обрати внимание, что цвет текста задается свойством TextColor

Код:
procedure TfmScanner.Grid1StylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
begin

if ARecord.Values[Grid1Med.Index] = true then
AStyle := cxStyle13;

if ARecord.Values[Grid1CP.Index] = true then
AStyle := cxStyle12;

Автор: vladman
Дата сообщения: 02.04.2009 00:41
Katy_Ekb
По поводу нововведений, изменений и исправленных ошибках в новых релизах полезно смотреть
* New Features in This Release
* Fixed Issues and Implemented Suggestions
* Breaking Changes
_http://www.devexpress.com/Support/WhatsNew/VCL/ - это для информации.

По поводу вашего конкретного случая есть пояснения к 38 релизу
_http://www.devexpress.com/Support/WhatsNew/VCL/files/38.xml а именно
ExpressNavBar v2
* S91300 - Provide the capability to change the TdxNavBarSeparator's color
_http://www.devexpress.com/Support/Center/p/S91300.aspx
Согласен, что из полезной информации - там только то, что они это сделали

Посему подсмотрев в исходниках, легко понять, что
SeparatorColor = GroupViewInfo.BorderColor
TdxNavBarGroupViewInfo.BorderColor = CaptionBackColor2
CaptionBackColor2 = CaptionStyle.BackColor2
CaptionStyle - сложно вычисляется в зависимости от активности, "нажатости", специальности "хоттрекинности" этой группы, но в обычном состоянии CaptionStyle = NavBar.DefaultStyles.GroupHeader
Посему, меняя значения BackColor и BackColor2 у NavBar.DefaultStyles.GroupHeader можно добиться изменения цвета бордюра и сепаратора. BackColor тоже нужно менять, так как при его значении clNone используется прорисовка группы по умолчанию.
Автор: Postscriptum
Дата сообщения: 02.04.2009 03:05
vladman

Цитата:
Ошибка в том, что
AdsTable1.AdsGetRecordNum
остается неизменной, и вы опираясь на это значение хотите раскрасить весь грид.
Для верной раскраски используйте AViewInfo для получения значений раскрашиваемой ячейки, либо сроки/столбца, в которой находится эта ячейка.


Спасибо за подсказку. Сделал так:
procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
OldC: TColor;
begin
if AdsTable1.Active then
begin
oldc:=ACanvas.Canvas.Brush.Color;
if AdsTable1.AdsIsRecordDeleted(AViewInfo.GridRecord.ViewInfo.Index+1) then
ACanvas.Canvas.Brush.Color := clRed
else
ACanvas.Canvas.Brush.Color:=oldc;
end;

Теперь при открытии таблицы удаленные записи раскрашивает. И даже правильно, но вот при перемещении курсором по таблице (причем почему-то если курсором бежать от конца к началу), перекрашиваются некоторые записи, которые не должны, или просто скроллер поюзать-подсветка пропадает. И еще - если я удаляю строку в таблице (Del) она по идее должна тут же подсветиться красным - не подсвечивается. И наооборот, если еще раз удалить уже удаленную запись - она восстанавливается, т.е. цвет должен стать из красного цветом по умолчанию - тоже так не происходит. Что-то еще я не учел?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

Предыдущая тема: Delphi: tcp клиент в потоке


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