|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Нестандартные компоненты работы со строками
Может есть компонент который выглядит как обычный Label но при клике на нём, что б выпадал список как в ComboBox?
Вопрос № 2 как у Edit убрать рамку и фон (ну или задать нужный цвет), что б остался Edit.Text только виден и возможность вводить текст при клике. Может есть уже готовые компоненты такие ? Если нету, то как можно такое реализовать? Вот набросал немного код что мне надо. Работает, но выглядит корявенько. Код:
procedure TForm1.Label1Click(Sender: TObject); begin listbox1.Visible:=true; end; procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Label1.Caption:=Listbox1.Items.Strings[ListBox1.ItemIndex]; listbox1.Hide; end; procedure TForm1.FormCreate(Sender: TObject); begin Listbox1.Visible:=false; end; Спасибо. Последний раз редактировалось TEKTON, 14.09.2018 в 19:00. |
#2
|
||||
|
||||
Посмотрите в сторону TMS components. Там очень много всякой всячины, разных полезностей и красивостей, может и найдёте для себя что-то близкое к истине.
|
#3
|
|||
|
|||
1. Можно сдеалать черещ PopupMenu
Код:
procedure TForm1.Label1Click(Sender : TObject); var p : TPoint; begin p.Top := (Sender As TLabel).Top + (Sender As TLabel).Height; p.Left := (Sender As TLabel).Left; p := ClienttoScreen(p); PopupMenu1.Popup(p); end; 2. Можно настроить и стандартный компонент. На вскидку не скажу как (просто не помню), но делал такое. |
#4
|
|||
|
|||
Цитата:
Ругается. Мож чего надо ещё добавить? Цитата:
|
#5
|
|||
|
|||
Сорри, забыл как оно там. Вот так работает:
Код:
type TForm1 = class(TForm) lbClickMe: TLabel; pmClickMe: TPopupMenu; miClickMe1: TMenuItem; miClickMe2: TMenuItem; miClickMe3: TMenuItem; edEdit: TEdit; procedure lbClickMeClick(Sender: TObject); procedure pmClickMeClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.lbClickMeClick(Sender: TObject); var p : TPoint; begin p.X := (Sender As TLabel).Left; p.Y := (Sender As TLabel).Top + (Sender As TLabel).Height + 2; p := ClientToScreen(p); pmClickMe.Tag := Integer(Sender); pmClickMe.Popup(p.X,p.Y); end; procedure TForm1.pmClickMeClick(Sender: TObject); var lb : TLabel; begin lb := TLabel(pmClickMe.Tag); lb.Caption := (Sender As TMenuItem).Caption; end; pmClickMeClick назначен всем пунктам меню. По поводу TEdit. Надо поставить такие свойства в соотв. значения: Код:
BorderStyle := bsNone; BevelInner := bvNone; BevelOuter := bvNone; Color := clBtnFace; |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Guaho (15.09.2018)
|