Forum Replies Created
-
AuthorPosts
-
AbverSoftParticipant'Support' wrote:
Я уже посмотрел оригинальный Exe и понял суть проблемы.
Каким образом подключаются AlphaSkins к DevExpress? Изменяется sDefs.inc?
В sDefs.inc вкл. cxGrid скинится а вот c контролами где используется ButtonGluph возникают проблемы.
Кстати в acLFPainter ругается DrawSizeGrip()override и DrawEditorButton()override, пришлось заменить override на virtual.
Посмотрел ваш пример у вас все нормально.
Может подскажете какая процедура в acLFPainter отвечает за прорисовку ButtonGluph
AbverSoftParticipant'Support' wrote:Сорри,я не посмотрел оригинальный Exe, а запускал проект из Delphi. Здесь приаттачен мой Exe (DevEx v6.53, AC v7)
Такое ощущение, что Ваш Exe плохо собрался, не оставалось ли файлов от предыдущих версий случайно?
Патч не используется в DevEx? Или ключ DEVEX используется?
Как понять Патч не используется в DevEx? Или ключ DEVEX используется?
Еще раз высылаю ехе (DevEx v6.53, AC v7.2 D7)
AbverSoftParticipantк сожалению такое происходит на всех скинах. И еще, заметил что cxSpinEdit то же невидно стрелок т.е выбора значения
AbverSoftParticipantПо просьбе выкладываю пример с cxControl
AbverSoftParticipantВ FR4 заметил еще одну проблему. Если sSkinManeger вкл FormHide то формы созданные в FR 4 закрываются очень медлено, при выкл FormHide все нормально
AbverSoftParticipantDevEx 6.52 – 6.53.
На всех контролах где есть выбор списка т.е cxComboBox и т.д
AbverSoftParticipantQUOTE (Support @ Aug 6 2010, 11:55 AM) <{POST_SNAPBACK}>Будет исправлена сама процедура SkinManager.GetActiveEditFontColor, там будет тоже браться цвет из 'EDIT'AbverSoftParticipantПонял по поводу acLFPainter.
Тогда как сделать так чтоб cxTreeList(рис 1) смотрелся как VertualTreeView(рис 2)procedure TFrmMoveToUrl.cxTL2CustomDrawIndentCell(Sender: TObject;
ACanvas: TcxCanvas; AViewInfo: TcxTreeListIndentViewInfo; var ADone: Boolean);var
i : integer;
//рисуем +/-
procedure InternalDrawExpandButtonSign(ACanvas: TcxCanvas; const R: TRect; AExpanded: Boolean;
AColor: TColor);
var
ASize, X, Y : Integer;
begin
with R do
begin
ASize := Right – Left – 2 * 2;
X := (Left + Right) div 2;
Y := (Top + Bottom) div 2;
end;
ACanvas.Brush.Color := AColor;
ACanvas.FillRect(Rect(X – ASize div 2, Y, X + ASize div 2 + 1, Y + 1));
if not AExpanded then
ACanvas.FillRect(Rect(X, Y – ASize div 2, X + 1, Y + ASize div 2 + 1));
end;
//рисуем квадрат
procedure InternalDrawExpandButton(ACanvas: TcxCanvas; R: TRect; AExpanded: Boolean; AColor:
TColor = clDefault);
begin
//
ACanvas.Brush.Color := AColor;
ACanvas.FillRect(cxRect(R.Left, R.Top, R.Right, R.Bottom));
//ôîí ïîä êâàäðàòîì
ACanvas.Brush.Color := MixColors(FrmMain.sSkinManager1.GetActiveEditColor,
FrmMain.sSkinManager1.GetGlobalColor, 0.5);
ACanvas.FillRect(cxRect(R.Left + 1, R.Top + 1, R.Right – 1, R.Bottom – 1));
//
InternalDrawExpandButtonSign(ACanvas, R, AExpanded, FrmMain.sSkinManager1.gd. FontColor[1]);
end;
//рисуем линии
procedure DrawTreeLines;
begin
with AViewInfo do
begin
if TcxTreeList(Sender).OptionsView.TreeLineStyle = tllsDot then
begin
if [tltVertUp, tltVertDown] * TreeLines <> [] then
cxFillHalfToneRect(ACanvas.Canvas, VertTreeLine, ViewParams.Color,
FrmMain.sSkinManager1.gd. FontColor[1]);
if tltHorz in TreeLines then
cxFillHalfToneRect(ACanvas.Canvas, HorzTreeLine, ViewParams.Color,
FrmMain.sSkinManager1.gd. FontColor[1]);
end
else
begin
ACanvas.Brush.Color := FrmMain.sSkinManager1.gd. FontColor[1];
if [tltVertUp, tltVertDown] * TreeLines <> [] then
ACanvas.FillRect(VertTreeLine);
if tltHorz in TreeLines then
ACanvas.FillRect(HorzTreeLine);
end;
end;
end;begin
i := FrmMain.sSkinManager1.GetSkinIndex(s_Edit);
// íàçíà÷èòü øðèôò ïî óìîë÷àíèþ è íàñòðîéêè öâåòà
cxApplyViewParams(ACanvas, AViewInfo.ViewParams);
// çàäàòü îòñòóï öâåò ÿ÷åéêè
ACanvas.Brush.Color := MixColors(FrmMain.sSkinManager1.GetActiveEditColor,
FrmMain.sSkinManager1.GetGlobalColor, 0.5);
// îòñòóï cells
ACanvas.FillRect(AViewInfo.VisibleRect);
DrawTreeLines;
if (AViewInfo.HasButton) then
begin
//
InternalDrawExpandButton(ACanvas, AViewInfo.ButtonRect, AViewInfo.Node.Expanded,
FrmMain.sSkinManager1.gd. FontColor[1]);
end;
//
ADone := True;end;
И еще в Footer на темных скинах не видно надписи, в acLFPainter подправил так
class function TcxACLookAndFeelPainter.DefaultFooterTextColor: TColor;
var
i:Integer;
begin
if Skinned then
begin
//Result := DefaultManager.GetActiveEditFontColor;
i := DefaultManager.GetSkinIndex(s_Edit);
if DefaultManager.IsValidSkinIndex(i) then Result := DefaultManager.gd.FontColor[1];
endelse Result := inherited DefaultFooterTextColor
end;Если не трудно исправти
AbverSoftParticipantQUOTE (AbverSoft @ Aug 2 2010, 05:28 PM) <{POST_SNAPBACK}>Если я правильно понял то надо самому производить от рисовку раскрытия дерева (+ -). Тогда вопрос, а какой командой надо использоваться чтобы при смене скина происходило изменение цвета (+-).
В VertualTreeView таких ведь проблем нет как в cxTreeList.Сам тут немного ручками по манипулировал и вот что из этого получилось
procedure TFrmMain.cxTL2CustomDrawIndentCell(Sender: TObject;
ACanvas: TcxCanvas; AViewInfo: TcxTreeListIndentViewInfo;
var ADone: Boolean);procedure InternalDrawExpandButtonSign(ACanvas: TcxCanvas; const R: TRect; AExpanded: Boolean; AColor: TColor);
var
ASize, X, Y: Integer;
begin
with R do
begin
ASize := Right – Left – 2 * 2;
X := (Left + Right) div 2;
Y := (Top + Bottom) div 2;
end;
ACanvas.Brush.Color := AColor;
ACanvas.FillRect(Rect(X – ASize div 2, Y, X + ASize div 2 + 1, Y + 1));
if not AExpanded then
ACanvas.FillRect(Rect(X, Y – ASize div 2, X + 1, Y + ASize div 2 + 1));
end;procedure InternalDrawExpandButton (ACanvas: TcxCanvas; R: TRect; AExpanded: Boolean; AColor: TColor = clDefault);
begin
ACanvas.Brush.Color := AColor;
ACanvas.FillRect(cxRect(R.Left-1, R.Top-1, R.Right+1, R.Bottom+1));
ACanvas.Brush.Color := MixColors(sSkinManager1.GetActiveEditColor, sSkinManager1.GetGlobalColor, 0.5);
ACanvas.FillRect(cxRect(R.Left, R.Top, R.Right, R.Bottom));
InternalDrawExpandButtonSign(ACanvas, R, AExpanded, sSkinManager1.GetGlobalFontColor{clBtnText});
end;procedure DrawTreeLines;
begin
with AViewInfo do
begin
if TcxTreeList(Sender).OptionsView.TreeLineStyle = tllsDot then
begin
if [tltVertUp, tltVertDown] * TreeLines <> [] then
cxFillHalfToneRect(ACanvas.Canvas, VertTreeLine, ViewParams.Color,
sSkinManager1.GetGlobalFontColor);
if tltHorz in TreeLines then
cxFillHalfToneRect(ACanvas.Canvas, HorzTreeLine, ViewParams.Color,
sSkinManager1.GetGlobalFontColor);
end
else
begin
ACanvas.Brush.Color := sSkinManager1.GetGlobalFontColor;
if [tltVertUp, tltVertDown] * TreeLines <> [] then
ACanvas.FillRect(VertTreeLine);
if tltHorz in TreeLines then
ACanvas.FillRect(HorzTreeLine);
end;
end;
end;begin
cxApplyViewParams (ACanvas, AViewInfo.ViewParams);
ACanvas.Brush.Color := MixColors(sSkinManager1.GetActiveEditColor, sSkinManager1.GetGlobalColor, 0.5);
ACanvas.FillRect(AViewInfo.VisibleRect);
DrawTreeLines;
if (AViewInfo.HasButton) then
begin
InternalDrawExpandButton(ACanvas, AViewInfo.ButtonRect, AViewInfo.Node.Expanded, sSkinManager1.GetGlobalFontColor);
end;
ADone := True;
end;Единственно что на нескольких скинах не очень смотрится.
Вопрос А как его теперь перенести в юнит acLFPainterAbverSoftParticipantQUOTE (Support @ Aug 2 2010, 04:03 PM) <{POST_SNAPBACK}>Цвет полос? Не знаю просто как его изменить.
Если я правильно понял то надо самому производить от рисовку раскрытия дерева (+ -). Тогда вопрос, а какой командой надо использоваться чтобы при смене скина происходило изменение цвета (+-).
В VertualTreeView таких ведь проблем нет как в cxTreeList.AbverSoftParticipantQUOTE (AbverSoft @ Jul 30 2010, 12:27 AM) <{POST_SNAPBACK}>Здравствуйте!
Мне надо сохранить рисунок через TSavePictureDialog в результате в юните acSBUtils процедура procedure UninitializeACScroll(Handle : hwnd; FreeSW : boolean; Repaint : boolean; var ListSW : TacScrollWnd); выдает ошибку и нет возможности сохранить рисунок. Версия AC 7.02Спасибо в 7.03 ошибка устранена
AbverSoftParticipantQUOTE (AbverSoft @ Jul 30 2010, 12:33 AM) <{POST_SNAPBACK}>Здравствуйте!
В бета версии АС 7.02 – на некоторых скинах пропадают буквы в Gride . Также Выделение становится прозрачным.
И еще ребята вы немогли бы сделать так чтобы на темных скинах хорошо бы виднелся в cxTreeList раскрытие дерева т.е +В 7.03 нормально стал отображаться выделение грида. А в cxTreeList так остался без изменение.
AbverSoftParticipantСпасибо разобрался.
Пришлось удалить старую версию, при компеляции проявлялась другая ошибка, т.е AlphaDB ругался что неможет прокомпилировать т.к в IDE присуствуют такие же компоненты. Пришлось немного по эксперементировать т.е удалил acntd7_r, после таких эксперементов заработало.AuthorPosts