![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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)
| ||