как ускорить прорисовку TdxLayout? при показе формы, видно как она прорисовывается. на форме около 50 контролов.
» Использование DevExpress (часть 4)
neznayka3
Я думаю это общая проблема у компонентов Девок.
На форме 6 groupbox и около 70 контроллов - без использования скинов еле заметно перерисовка, а если использовать скины, то перерисовка формы при старте очень заметна при встроенной видюшке (На моем рабочем компе без использования скинов форма мгновенно отрисовывается, а при использовании скинов еле-еле заметно как отрисовывается)
Я думаю это общая проблема у компонентов Девок.
На форме 6 groupbox и около 70 контроллов - без использования скинов еле заметно перерисовка, а если использовать скины, то перерисовка формы при старте очень заметна при встроенной видюшке (На моем рабочем компе без использования скинов форма мгновенно отрисовывается, а при использовании скинов еле-еле заметно как отрисовывается)
Цитата:
как ускорить прорисовку TdxLayout? при показе формы, видно как она прорисовывается. на форме около 50 контролов.
на офсайте обещали решить проблему в ближайшей новой версии
почему текст не прорисовывается?
Код: procedure TdmOrderLite.dbbvOrderExploreLite_nameCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
vRect: TRect;
vImg: Integer;
begin
vImg := VarAsType(AViewInfo.RecordViewInfo.GridRecord.Values
[dbbvOrderExploreLite_status.Index], varInteger);
vRect.Left := AViewInfo.Bounds.Left + 18;
vRect.Top := AViewInfo.Bounds.Top;
ACanvas.FillRect(AViewInfo.Bounds);
case vImg of
45:
ACanvas.DrawImage(dmCommon.il16, AViewInfo.Bounds.Left,
AViewInfo.Bounds.Top, 3, true);
46:
ACanvas.DrawImage(dmCommon.il16, AViewInfo.Bounds.Left,
AViewInfo.Bounds.Top, 425, true);
47:
ACanvas.DrawImage(dmCommon.il16, AViewInfo.Bounds.Left,
AViewInfo.Bounds.Top, 44, true);
48:
ACanvas.DrawImage(dmCommon.il16, AViewInfo.Bounds.Left,
AViewInfo.Bounds.Top, 191, true);
end;
ACanvas.DrawTexT(AViewInfo.Text, vRect, cxAlignLeft, true);
ADone := true;
end;
Код: procedure TdmOrderLite.dbbvOrderExploreLite_nameCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
vRect: TRect;
vImg: Integer;
begin
vImg := VarAsType(AViewInfo.RecordViewInfo.GridRecord.Values
[dbbvOrderExploreLite_status.Index], varInteger);
vRect.Left := AViewInfo.Bounds.Left + 18;
vRect.Top := AViewInfo.Bounds.Top;
ACanvas.FillRect(AViewInfo.Bounds);
case vImg of
45:
ACanvas.DrawImage(dmCommon.il16, AViewInfo.Bounds.Left,
AViewInfo.Bounds.Top, 3, true);
46:
ACanvas.DrawImage(dmCommon.il16, AViewInfo.Bounds.Left,
AViewInfo.Bounds.Top, 425, true);
47:
ACanvas.DrawImage(dmCommon.il16, AViewInfo.Bounds.Left,
AViewInfo.Bounds.Top, 44, true);
48:
ACanvas.DrawImage(dmCommon.il16, AViewInfo.Bounds.Left,
AViewInfo.Bounds.Top, 191, true);
end;
ACanvas.DrawTexT(AViewInfo.Text, vRect, cxAlignLeft, true);
ADone := true;
end;
neznayka3
Цитата:
потому что vRect.Left и vRect.Top определены, а vRect.Right и vRect.Bottom нет
Цитата:
почему текст не прорисовывается?
потому что vRect.Left и vRect.Top определены, а vRect.Right и vRect.Bottom нет
Установлены Devx 2011.2.5 FS, в каталоге ExpressSkins Library нет ни подкаталога Binary Skin Files, ни соответственно, skinres-файлов.
У кого есть allskin.skinres файл для этой версии, просьба поделиться.
У кого есть allskin.skinres файл для этой версии, просьба поделиться.
2011.2.5 - проблема с checkbox'ом: не выводит текст DisplayChecked, DisplayUnсhecked, DisplayGrayed. Кто-нибудь знает в чем там собака порылась?
makz
Цитата:
Куда не выводит?
Цитата:
Цитата:
2011.2.5 - проблема с checkbox'ом: не выводит текст DisplayChecked, DisplayUnсhecked, DisplayGrayed. Кто-нибудь знает в чем там собака порылась?
Куда не выводит?
Цитата:
TcxCustomCheckBoxProperties.DisplayChecked
Specifies the text representing the checked state.
property DisplayChecked: WideString;
Description
The DisplayChecked property specifies the text which represents a check box set to the checked state. DisplayChecked is used in specific situations such as exporting a grid control with check boxes as in-place editors and within the filter dropdown list for a grid column assigned a check box as an editor.
Уважаемое сообщество, у меня TcxImage, при попытке сделать его видимым вылетает ошибка:
"invalid pointer operation GDI+(Code: 4)"
Описание почему так происходит я не нашол.
Порядок действия такой:
1) Основной поток приложения стартует с помощью функции CreateThread(), процедуру как дополнительный поток.
2) В конце выполнения процедуры, TcxImage.Visible := True; <- и вот на этой строчке вылетает ошибка.
3) Пытался эту строчку вынести в основной поток. не помогает.
"invalid pointer operation GDI+(Code: 4)"
Описание почему так происходит я не нашол.
Порядок действия такой:
1) Основной поток приложения стартует с помощью функции CreateThread(), процедуру как дополнительный поток.
2) В конце выполнения процедуры, TcxImage.Visible := True; <- и вот на этой строчке вылетает ошибка.
3) Пытался эту строчку вынести в основной поток. не помогает.
Baklan_vs
скины юзаете? у меня была проблема с кофейным..выставление другого скина или отсутствие оного мне помогло
скины юзаете? у меня была проблема с кофейным..выставление другого скина или отсутствие оного мне помогло
andreybear
Ясно, как всегда поленился лезть в help. Я то хотел чтоб надпись менялась, как в IDE например: галку ставишь пишет "True". Ладно, буду caption менять по OnEditValueChanged.
Ясно, как всегда поленился лезть в help. Я то хотел чтоб надпись менялась, как в IDE например: галку ставишь пишет "True". Ладно, буду caption менять по OnEditValueChanged.
Странно ведёт себя сxBarEditEdit.
Выбрал тип ComboBox.
Как теперь получить значение после закрытия?
comboUsers.Text;
comboUsers.EditValue
comboUsers.EditingValue
всё время выдает пустоту или ноль.
вот свойства:
Выбрал тип ComboBox.
Как теперь получить значение после закрытия?
comboUsers.Text;
comboUsers.EditValue
comboUsers.EditingValue
всё время выдает пустоту или ноль.
вот свойства:
как вывести картинку в TcxDBLookupComboBox перед текстом? CustomDraw не нашел.
neznayka3
Можно в run-time повешать свой обработчик на cxDBLookupComboBox.ActiveProperties.OnDrawItem
Можно в run-time повешать свой обработчик на cxDBLookupComboBox.ActiveProperties.OnDrawItem
Добрый день.
Ни как не получается отредактировать значение в определенном столбце у всех выбранных записей в cxGrid.
Пытаюсь так:
var
i:integer;
ARecord :TcxCustomGridRecord;
ColumnID:integer;
begin
for I := 0 to cxGrid1DBTableView1.Controller.SelectedRecordCount - 1 do begin
ARecord := TcxGridDataRow(cxGrid1DBTableView1.Controller.SelectedRecords[i]);
ColumnID := cxGrid1DBTableView1.GetColumnByFieldName('FLAG_MAIN').index;
cxGrid1DBTableView1.DataController.SetValue(cxGrid1DBTableView1.Controller.SelectedRows[i].RecordIndex,ColumnID,ARecord.Values[cxGrid1DBTableView1.Columns[ColumnID].Index]*-1);
end;
Визуально на форме данные изменяются, но стоит сделать refresh у привязанного набора данных или ApplyUpdates и данные возвращаются к своему первоначальному виду.
Прочитал о похожих проблемах на этом форуме, но так и не понял что я делаю не правильно.
Ни как не получается отредактировать значение в определенном столбце у всех выбранных записей в cxGrid.
Пытаюсь так:
var
i:integer;
ARecord :TcxCustomGridRecord;
ColumnID:integer;
begin
for I := 0 to cxGrid1DBTableView1.Controller.SelectedRecordCount - 1 do begin
ARecord := TcxGridDataRow(cxGrid1DBTableView1.Controller.SelectedRecords[i]);
ColumnID := cxGrid1DBTableView1.GetColumnByFieldName('FLAG_MAIN').index;
cxGrid1DBTableView1.DataController.SetValue(cxGrid1DBTableView1.Controller.SelectedRows[i].RecordIndex,ColumnID,ARecord.Values[cxGrid1DBTableView1.Columns[ColumnID].Index]*-1);
end;
Визуально на форме данные изменяются, но стоит сделать refresh у привязанного набора данных или ApplyUpdates и данные возвращаются к своему первоначальному виду.
Прочитал о похожих проблемах на этом форуме, но так и не понял что я делаю не правильно.
VZolotarev
А какой набор данных? Т.е. что за датасет?
Если изменения не сохраняются, значит не делается Post этого датасета.
А какой набор данных? Т.е. что за датасет?
Если изменения не сохраняются, значит не делается Post этого датасета.
VZolotarev
Цитата:
Если был бы не DB, а обычный cxGridTableView, то все правельно делаете. А с cxGridDBTableView так не получиться. Нужно установить фокус (DataController.FocusedRecordIndex) на запись SelectedRecords[i], перевести DatаSet в состояние редактирования, изменить значение колонки (Column.EditValue := ) и сделать Post. И так для каждой выделенной записи.
Цитата:
но так и не понял что я делаю не правильно.
Если был бы не DB, а обычный cxGridTableView, то все правельно делаете. А с cxGridDBTableView так не получиться. Нужно установить фокус (DataController.FocusedRecordIndex) на запись SelectedRecords[i], перевести DatаSet в состояние редактирования, изменить значение колонки (Column.EditValue := ) и сделать Post. И так для каждой выделенной записи.
У меня возникла проблема использовал Dev56
Обновился до "devcl20110204sde.exe"
И в файле dxGDIPlusAPI.pas пропали методы:
dxInitializeGDIPlus,
dxFinalizeGDIPlus
Теперь DLL вылетает с ошибкой без вызовов этих методов.
Что изменилось и как теперь решать проблему с вызовом DLL на которой присутствуют Dev-ки?
Обновился до "devcl20110204sde.exe"
И в файле dxGDIPlusAPI.pas пропали методы:
dxInitializeGDIPlus,
dxFinalizeGDIPlus
Теперь DLL вылетает с ошибкой без вызовов этих методов.
Что изменилось и как теперь решать проблему с вызовом DLL на которой присутствуют Dev-ки?
Цитата:
И в файле dxGDIPlusAPI.pas пропали методы:
поискать не сложно?
уже решали данную проблему, да и на Их сайте тоже есть описание
что то я завис...надо в гриде (обычный тейбл) загнать в одно поле изображение...по логике полез к BlobEdit...ValueType выставил Blob....а вот как загнать туда данные не пойму...в editValue стрим не хочет ложиться а в TcxBlobEditProperties() не нашел ничего напоминающего load или stream
Цитата:
поискать не сложно?
уже решали данную проблему, да и на Их сайте тоже есть описание
Можете ткнуть носом в решение проблемы?
На их сайте не нашол решение проблемы которое было-бы актуально.
В Properties выбери Image
я из файла загружаю так:
if FileExists(sFN_Photo) then
Values[ARowInfo.RecordIndex, iPhotoFieldIndex] := ImageFileToString(sFN_Photo);
//iPhotoFieldIndex индекс поля для хранения фоток
поле с фотками ни к чему не привязано
....
function ImageFileToString(AFileName: string): string;
var
vStream: TFileStream;
vString: string;
begin
vStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyNone);
try
vStream.Position := 0;
SetLength(vString, vStream.Size);
vStream.ReadBuffer(Pointer(vString)^, vStream.Size);
finally
vStream.Free;
end;
Result := vString;
end;
Добавлено:
Baklan_vs
просто поищи в исходниках, где объявлено и тот модуль подключи
Добавлено:
Цитата:
ЕМНИП, то нужно
1. подключить dxCore
2. написать
initialization
dxInitialize;
и
finalization
dxFinalize
Добавлено:
вот ссылка:
http://forum.ru-board.com/topic.cgi?forum=33&topic=10884&start=2820#14
я из файла загружаю так:
if FileExists(sFN_Photo) then
Values[ARowInfo.RecordIndex, iPhotoFieldIndex] := ImageFileToString(sFN_Photo);
//iPhotoFieldIndex индекс поля для хранения фоток
поле с фотками ни к чему не привязано
....
function ImageFileToString(AFileName: string): string;
var
vStream: TFileStream;
vString: string;
begin
vStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyNone);
try
vStream.Position := 0;
SetLength(vString, vStream.Size);
vStream.ReadBuffer(Pointer(vString)^, vStream.Size);
finally
vStream.Free;
end;
Result := vString;
end;
Добавлено:
Baklan_vs
просто поищи в исходниках, где объявлено и тот модуль подключи
Добавлено:
Цитата:
У меня возникла проблема использовал Dev56
Обновился до "devcl20110204sde.exe"
И в файле dxGDIPlusAPI.pas пропали методы:
dxInitializeGDIPlus,
dxFinalizeGDIPlus
Теперь DLL вылетает с ошибкой без вызовов этих методов.
Что изменилось и как теперь решать проблему с вызовом DLL на которой присутствуют Dev-ки?
ЕМНИП, то нужно
1. подключить dxCore
2. написать
initialization
dxInitialize;
и
finalization
dxFinalize
Добавлено:
вот ссылка:
http://forum.ru-board.com/topic.cgi?forum=33&topic=10884&start=2820#14
Baklan_vs
https://www.google.com/search?source=ig&hl=ru&rlz=&q=dxInitializeGDIPlus&oq=dxInitializeGDIPlus&aq=f&aqi=g-s1&aql=&gs_l=igoogle.3..0i10.582.582.0.1305.1.1.0.0.0.0.153.153.0j1.1.0...0.0.
первая ссылка
Цитата:
X11
пасиба
https://www.google.com/search?source=ig&hl=ru&rlz=&q=dxInitializeGDIPlus&oq=dxInitializeGDIPlus&aq=f&aqi=g-s1&aql=&gs_l=igoogle.3..0i10.582.582.0.1305.1.1.0.0.0.0.153.153.0j1.1.0...0.0.
первая ссылка
Цитата:
2. Breaking Change – The dxGdiPlusInitialize and dxGdiPlusFinalize procedures have been moved from the dxGDIPlusClasses unit to the dxCore unit, and renamed to dxInitialize and dxFinalize. In applications with custom skins, specify the dxCore unit in the uses clause."
X11
пасиба
неужели в гугле трудно было ввести слово: dxInitializeGDIPlus и открыть первую же ссылку на Их сайт?
mdid
X11
Спасибо
X11
Спасибо
Цитата:
VZolotarev
Цитата: но так и не понял что я делаю не правильно.
Если был бы не DB, а обычный cxGridTableView, то все правельно делаете. А с cxGridDBTableView так не получиться. Нужно установить фокус (DataController.FocusedRecordIndex) на запись SelectedRecords, перевести DatаSet в состояние редактирования, изменить значение колонки (Column.EditValue := ) и сделать Post. И так для каждой выделенной записи.
А еще лучше собрать ID выделенных записей, а потом обновить их все в одном запросе (используя например в WHERE ID in (...) )) и потом уже сделать один refresh.
как быстро удалить скины из проекта?
neznayka3
никак...только руцями...разве что вы напишите прогу которая ищет скины в файлах форм
никак...только руцями...разве что вы напишите прогу которая ищет скины в файлах форм
Вопрос по cxGrid`у и совмещению стилей.
В событии OnGetContentStyle выполняется проверка двух булевых полей, если в первом поле ДА, то стиль1 применяется, а если во втором поле ДА, то стиль2 применяется. Если в обоих полях ДА, то всё равно стиль2 применяется, т.к. он последним применяется.
А как бы слепть (совместить) применение обоих стилей? Только создать третий?
вот код
Код:
procedure TfmScanner.Grid1StylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
Var
Style1: TcxStyle;
begin
if AItem = nil then exit;
if ARecord.Values[Grid1Med.Index] = true then
AStyle := cxStyleMed;
if ARecord.Values[Grid1CP.Index] = true then
AStyle := cxStyleHost;
...
В событии OnGetContentStyle выполняется проверка двух булевых полей, если в первом поле ДА, то стиль1 применяется, а если во втором поле ДА, то стиль2 применяется. Если в обоих полях ДА, то всё равно стиль2 применяется, т.к. он последним применяется.
А как бы слепть (совместить) применение обоих стилей? Только создать третий?
вот код
Код:
procedure TfmScanner.Grid1StylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
Var
Style1: TcxStyle;
begin
if AItem = nil then exit;
if ARecord.Values[Grid1Med.Index] = true then
AStyle := cxStyleMed;
if ARecord.Values[Grid1CP.Index] = true then
AStyle := cxStyleHost;
...
X11
а как? стиль это класс наполненный данными...как их совместить?..да и принцип совмещения для каждого может быть свой...так что скорее всего только созданием третьего стиля
а как? стиль это класс наполненный данными...как их совместить?..да и принцип совмещения для каждого может быть свой...так что скорее всего только созданием третьего стиля
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.