Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Прозрачность TcxEdit  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 13353
Delphi Tokyo, TcxEdit, TcxLookupCombobox.

Как реализовать прозрачность?
Чтобы в итоге строка ввода и список выбора были прозрачны, но в виде тонко линии.
Ну так примерно, как на картинке

К сообщению приложен файл. Размер - 20Kb
10 окт 19, 11:49    [21991142]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 13353
Если использовать TForm.TransparentColor, то в форме получается дыра до Рабочего стола.
10 окт 19, 11:50    [21991144]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 13353
дело в том, что на форме есть градиент и нужно его соблюсти и у элементов ввода

К сообщению приложен файл. Размер - 4Kb
10 окт 19, 11:51    [21991145]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 13353
Проблем с border нету, но прозрачность cx-компоненты не поддерживают, как я понял.
10 окт 19, 12:18    [21991168]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
DimaBr
Member

Откуда:
Сообщений: 11334
Стиль WS_EX_LAYERED для дочерних окон в Windows 8
14 окт 19, 09:53    [21993429]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 4096
Можно. Первая же тема в саппорте девэкспрессов:

https://www.devexpress.com/Support/Center/Question/Details/T214628/how-to-create-custom-component-with-transparent-background
14 окт 19, 11:05    [21993490]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 13353
DimaBr
Стиль WS_EX_LAYERED для дочерних окон в Windows 8

Однако не все так радужно…
Первое что бросается в глаза это то, что создаются такие окна очень медлительно, раз в 10 медленней обычных.
14 окт 19, 11:22    [21993513]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
DimaBr
Member

Откуда:
Сообщений: 11334
JaDi
Можно. Первая же тема в саппорте девэкспрессов:

https://www.devexpress.com/Support/Center/Question/Details/T214628/how-to-create-custom-component-with-transparent-background


Никакой прозрачности на наблюдается априори
Картинка с другого сайта.
14 окт 19, 11:37    [21993530]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
alekcvp
Member

Откуда:
Сообщений: 1636
X11
Однако не все так радужно…
Первое что бросается в глаза это то, что создаются такие окна очень медлительно, раз в 10 медленней обычных.

Тебе 100 кнопок таких создавать надо или одно поле ввода?..
14 окт 19, 12:52    [21993631]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 4096
DimaBr,

мой косяк, не заметил замечание от техподдержки -- оказывается, такое можно провернуть только для своих кастомных компонентов, а большинство редакторов девок пойдут лесом, т.к. используют системные контролы ввода, которые никак не контролируются (как раз случай с TcxTextEdit). Из рекомендаций техподдержки: подбирать цвет фона такой же как у формы, использовать лейбл и делать автозамену на контрол при клике (начале ввода) как это делается во всяких гридах/трилистах.
14 окт 19, 17:11    [21993951]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
Квейд
Member

Откуда: Kyiv, Ukraine
Сообщений: 5264
JaDi
DimaBr,

мой косяк, не заметил замечание от техподдержки -- оказывается, такое можно провернуть только для своих кастомных компонентов, а большинство редакторов девок пойдут лесом, т.к. используют системные контролы ввода, которые никак не контролируются (как раз случай с TcxTextEdit). Из рекомендаций техподдержки: подбирать цвет фона такой же как у формы, использовать лейбл и делать автозамену на контрол при клике (начале ввода) как это делается во всяких гридах/трилистах.


Делал давно у себя в проекте такое

  TcxMyEditViewInfo = class(TcxCustomEditViewInfo)
  private
    FContent: string;
  public
    constructor Create; override;
    procedure SetContent(AValue: TcxEditValue);
    destructor Destroy; override;
    procedure Paint(ACanvas: TcxCanvas); override;
  end;

  TcxMyEditViewData = class(TcxCustomEditViewData)
  public
    procedure EditValueToDrawValue(ACanvas: TcxCanvas;
      const AEditValue: TcxEditValue;
      AViewInfo: TcxCustomEditViewInfo); override;
      function GetEditContentSize(ACanvas: TcxCanvas;
      const AEditValue: TcxEditValue;
      const AEditSizeProperties: TcxEditSizeProperties): TSize; override;
    function GetClientExtent(ACanvas: TcxCanvas;
      AViewInfo: TcxCustomEditViewInfo): TRect; override;
  end;

  TcxMyEditProperties = class(TcxCustomEditProperties)
  protected
    class function GetViewDataClass: TcxCustomEditViewDataClass; override;
  public
    function GetSupportedOperations: TcxEditSupportedOperations; override;
    function GetEditValueSource(AEditFocused: Boolean): TcxDataEditValueSource; override;
    class function GetViewInfoClass: TcxContainerViewInfoClass; override;
  end;


и отрисовывал Edit самостоятельно, как душе угодно
15 окт 19, 10:19    [21994331]     Ответить | Цитировать Сообщить модератору
 Re: Прозрачность TcxEdit  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2209
Квейд
Делал давно у себя в проекте такое
Что-то слишком много написал для перекрытия метода Paint Картинка с другого сайта.
15 окт 19, 18:59    [21994905]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить