Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

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

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

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

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

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

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

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

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

Код:

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 Кб, 35 просмотров)
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 30.11.2016, 07:32   #10
Timofey_p
Новичок
 
Регистрация: 27.11.2016
Сообщений: 5
Репутация: 10
По умолчанию

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



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать что бы в 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




06:13.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru