Скруглённый TEdit

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Скруглённый TEdit

Сообщение Vadim » 19.10.2018 09:04:59

Подскажите компонент типа TEdit со скруглёнными углами.
Или как у обычного TEdit скруглить углы не гася у него "BorderStyle"...
Vadim
долгожитель
 
Сообщения: 3034
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Скруглённый TEdit

Сообщение wadman » 19.10.2018 09:13:27

Сделать наследника со своим методом прорисовки.
wadman
постоялец
 
Сообщения: 109
Зарегистрирован: 18.10.2016 15:54:28

Re: Скруглённый TEdit

Сообщение Vadim » 19.10.2018 10:20:43

wadman писал(а):Сделать наследника со своим методом прорисовки.

Я думал, может кто-то уже сделал... :D
Vadim
долгожитель
 
Сообщения: 3034
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Скруглённый TEdit

Сообщение Лекс Айрин » 11.11.2018 12:15:26

Vadim писал(а):Я думал, может кто-то уже сделал...


Я пытался сделать нечто подобное viewtopic.php?f=5&t=25585#p127093
Сейчас даже не найду исходников.
Долго, муторно и ноги после этого болят(((
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4540
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скруглённый TEdit

Сообщение Vadim » 11.11.2018 14:16:10

Я пока остановился на "составном" варианте - обычный TEdit без рамки, а вокруг скуглённый TShape как рамка... :-)
Vadim
долгожитель
 
Сообщения: 3034
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Скруглённый TEdit

Сообщение Лекс Айрин » 11.11.2018 14:25:56

Vadim, ну да, это проще.

Тем более, что тебе все равно пришлось бы использовать TShare, для придания формы... Ну или самому делать картинку-фон, но это уже похуже.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4540
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скруглённый TEdit

Сообщение zoltanleo » 22.11.2018 23:07:03

Vadim писал(а):Я пока остановился на "составном" варианте - обычный TEdit без рамки, а вокруг скуглённый TShape как рамка...

покажи, как сделал...
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 230
Зарегистрирован: 17.10.2013 10:55:01

Re: Скруглённый TEdit

Сообщение Vadim » 23.11.2018 15:00:35

Дык всё просто - наложил один компонент на другой и всё. Только размеры Shape сделал побольше, чем у Edit, чтобы не загораживал...
Vadim
долгожитель
 
Сообщения: 3034
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Скруглённый TEdit

Сообщение Лекс Айрин » 23.11.2018 15:51:48

А вот как правильно. Возможно, что кто-то сделает лучше :lol:
Код: Выделить всё
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
  Buttons;

type

  { TForm1 }

  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure Edit1Change(Sender: TObject);
  private

  public
     Procedure DrawEdit (AControl: TWinControl);
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormActivate(Sender: TObject);
begin
  Form1.DrawEdit(Edit1);
end;

procedure TForm1.DrawEdit(AControl: TWinControl);
Var
  ABitmap: Graphics.TBitmap;// окно
  Rect:TRect;

begin
  ABitmap := Graphics.TBitmap.Create;
  ABitmap.Monochrome :={ True; //}False;
  ABitmap.Width := AControl.Width;
  ABitmap.Height := AControl.Height;
  Rect.Create(0 ,0, ABitmap.Width, ABitmap.Height);
   with ABitmap.Canvas do
  begin
    Brush.Color := clBlack; // transparent color
    FillRect(0, 0, ABitmap.Width, ABitmap.Height);
    Brush.Color := clWhite; // mask color
    RoundRect(Rect,20,20)//цифры величина закругления
  end;
  AControl.SetShape(ABitmap);
  ABitmap.Free;
end;

end.

Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4540
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скруглённый TEdit

Сообщение zoltanleo » 23.11.2018 16:57:00

Спасибо, комрады. Посмотрю на досуге.

зы. а вот если б еще выложить пример, экспортированный в демку, было б шикарно. Лень ручками забивать :)
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 230
Зарегистрирован: 17.10.2013 10:55:01

Re: Скруглённый TEdit

Сообщение Лекс Айрин » 23.11.2018 17:03:40

zoltanleo, куда выложить? Могу зипом на гуглодрайв. Пойдет?

Добавлено спустя 8 минут 4 секунды:
вот ссылка https://drive.google.com/file/d/1nySpyZ ... sp=sharing
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4540
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скруглённый TEdit

Сообщение zoltanleo » 23.11.2018 18:11:02

Лекс Айрин писал(а):вот ссылка

Спасибо большое. Емнип, тут есть возможность файлы к сообщению аттачить
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 230
Зарегистрирован: 17.10.2013 10:55:01

Re: Скруглённый TEdit

Сообщение Vadim » 23.11.2018 18:30:27

Вот мой пример:

Добавлено спустя 1 минуту 2 секунды:
Вот как выглядит.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Vadim
долгожитель
 
Сообщения: 3034
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Скруглённый TEdit

Сообщение Лекс Айрин » 23.11.2018 18:46:09

zoltanleo писал(а):Емнип, тут есть возможность файлы к сообщению аттачить


Если бы... то ли из-за того, что ты топикстартер, толь просто не хватает прав, но у меня не получается.

Vadim писал(а):Вот как выглядит.


У меня чуть интереснее))

Изображение
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4540
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скруглённый TEdit

Сообщение Vadim » 23.11.2018 18:51:52

Лекс Айрин
А если на форму поместить белочек и бурундучков, будет ещё интереснее... :-D
Vadim
долгожитель
 
Сообщения: 3034
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Google Adsense [Bot] и гости: 13

Рейтинг@Mail.ru