Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2016, 16:39   #1
alex_mindal
 
Регистрация: 20.09.2012
Сообщений: 5
Печаль Прозрачный Edit

Доброго времени суток, товарищи. Возникла проблема. Никак не могу сделать Edit прозрачным. Суть в том, что фон у Edit'a можно сделать того же цвета, что и форма. Но незадача в том, что у меня Edit находится на Image. В общем, что только не пробовал, а ни в какую. Очень прошу помочь, курсовая, как-никак)

Скрин программы прилагается. Закругленный черный прямоугольник и надписи введите логин и введите пароль - это картинки
alex_mindal вне форума Ответить с цитированием
Старый 25.11.2016, 02:32   #2
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Цитата:
Сообщение от alex_mindal Посмотреть сообщение
Суть в том, что фон у Edit'a можно сделать того же цвета, что и форма
1. Цвет Edit-а надо делать цветом Image, а не формы.
2. У Edit-а установить цвет шрифта, скажем, белым.
3. У него же установить BorderStyle=bsNone, a все BevelEdges - в False.
Вот и все...
И получится у вас что-то такое (цвет Edit-ов подберете более точно сами):
Изображения
Тип файла: png Снимок1.png (40.8 Кб, 176 просмотров)
kropotkina-alice вне форума Ответить с цитированием
Старый 25.11.2016, 10:44   #3
alex_mindal
 
Регистрация: 20.09.2012
Сообщений: 5
По умолчанию

Этот вариант не совсем подходит. Суть в том, что бы эдит был как раз над надписями ввода логина и пароля, и что-бы при активации эдита, эти самые надписи исчезали)
alex_mindal вне форума Ответить с цитированием
Старый 25.11.2016, 11:21   #4
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Цитата:
Сообщение от alex_mindal Посмотреть сообщение
Суть в том, что бы эдит был как раз над надписями ввода логина и пароля, и что-бы при активации эдита, эти самые надписи исчезали)
И кто этому мешает???
У Edita есть свойство Visible...
Расположите его поверх надписи и он вам ее загородит, как и любой контрол...
kropotkina-alice вне форума Ответить с цитированием
Старый 25.11.2016, 12:25   #5
alex_mindal
 
Регистрация: 20.09.2012
Сообщений: 5
По умолчанию

В общем, использовал что-то похожее на ваш вариант. Просто цвет фона эдита задал через RGB и все получилось. А при клике на картинку введите логин она становится невидимой, а эдит соответственно видимым)
alex_mindal вне форума Ответить с цитированием
Старый 25.11.2016, 18:20   #6
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Мой вариант - для того случая, когда надпись "Введите логин" нарисована на картинке. Кроме того, ее можно загородить TPanel цвета картинки, это в случае, если Edit располагать не поверх надписи, а где-то рядом...
А у вас надпись, по видимому, Label?

Последний раз редактировалось kropotkina-alice; 25.11.2016 в 18:23.
kropotkina-alice вне форума Ответить с цитированием
Старый 25.11.2016, 23:54   #7
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от alex_mindal Посмотреть сообщение
Суть в том, что фон у Edit'a можно сделать того же цвета, что и форма. Но незадача в том, что у меня Edit находится на Image.
А что мешает избавиться от Image, кинуть Edit на форму, задать нужный цвет, а рисунок нарисовать на конве формы? По идее должно все получиться.
Replicant вне форума Ответить с цитированием
Старый 28.11.2016, 08:10   #8
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,792
По умолчанию

сделайте вторую форму и киньте на него Edit. размеры формы сделайте под Edit. сделайте форму полупрозрачной и чтоб она висела или появлялась в нужном месте.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 28.11.2016, 09:28   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Buttons, ExtCtrls, ComCtrls, StdCtrls, jpeg;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
    procedure WMCtlColorEdit(var Message: TWMCtlColorStatic); message WM_CTLCOLOREDIT;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetWindowLong(Handle,GWL_STYLE,GetWindowLong(Handle,GWL_STYLE) and not WS_CLIPCHILDREN);
  SetWindowLong(Edit1.Handle,GWL_EXSTYLE,GetWindowLong(Edit1.Handle,GWL_EXSTYLE) or WS_EX_TRANSPARENT);
  Edit1.Brush.Style:=bsClear;
end;

procedure TForm1.Edit1Change(Sender: TObject);
var xRect: TRect;
begin
  xRect:=Edit1.BoundsRect;
  InvalidateRect(Handle,@xRect,False);
end;

procedure TForm1.WMCtlColorEdit(var Message: TWMCtlColorStatic);
begin
  if Message.ChildWnd=Edit1.Handle then SetBkMode(Message.ChildDC,TRANSPARENT);
  inherited;
end;

end.
OnClick эдита тоже нацелить на Edit1Change. Есть проблема сброса выделения при перемещении каретки клавишами, но тоже можно решить в клавиатурных событиях
Изображения
Тип файла: jpg Безымянный.JPG (24.0 Кб, 89 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.11.2016, 06:32   #10
Timofey_p
Пользователь
 
Регистрация: 27.11.2016
Сообщений: 10
По умолчанию

Цитата:
Сообщение от alex_mindal Посмотреть сообщение
Этот вариант не совсем подходит. Суть в том, что бы эдит был как раз над надписями ввода логина и пароля, и что-бы при активации эдита, эти самые надписи исчезали)
А такое свойство Edit.TextHint не поможет? Он как раз исчезает при начале ввода.
Остальное сделать как предложил Аватар, только подправить бордюры Edit.BorderStyle := bsNone
Timofey_p вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать что бы в Edit был прозрачный текст который при введение в Edit все исчез alman12 Общие вопросы Delphi 22 09.06.2014 22:21
Прозрачный PictureBox CYBERISLAM C# (си шарп) 0 03.01.2014 16:46
Как сделать прозрачный edit? TwiX Общие вопросы Delphi 12 16.06.2011 08:48
Прозрачный градиент - Фон не просто прозрачный, есть градиент - к верху он светлеет DrStrangeLove HTML и CSS 3 26.05.2011 00:44
прозрачный image dmitriegorovih Общие вопросы Delphi 13 03.04.2011 21:20