>>в одних текстурах. до конца января черновик опубликую.
Зачем мне в текстурах?, мне нужен лцлный наследник TCustomForm, безболезненно заменяющий TForm
Добавлено спустя 3 минуты 9 секунд:
зачем мне это нужно: http://forum.lazarus.freepascal.org/ind ... 205.0.html
Аналог компонента TComboBox
Модератор: Модераторы
olegy123 писал(а):Я бы не советовал изучать сразу EhLib, там много сложного..
посмотрите как расписано тут.
http://delphikingdom.com/asp/viewitem.a ... logid=1213
Интереса ради попробовал запустить тестовый примерчик в Ubuntu 16.04 gtk2. Не работает, при запуске выдает ошибку (уже не помню какая точно, с виджетами связана).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Код: Выделить всё
type
{ TListForm }
TListForm = class(TCustomForm)
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure CreateWnd; override;
end;
{ TMyComboBox }
TMyComboBox = class (TEdit)
private
FListForm:TListForm;
protected
// procedure WMChar(var Message: TLMChar); message LM_CHAR;
procedure InitializeWnd; override;
end;
implementation
{ TListForm }
procedure TListForm.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
end;
procedure TListForm.CreateWnd;
begin
inherited CreateWnd;
// gtk_window_set_decorated()
end;
{ TMyComboBox }
procedure TMyComboBox.InitializeWnd;
var
pos:TPoint;
begin
inherited InitializeWnd;
FListForm:=TListForm.CreateNew(self);
pos:=ClientToScreen(Point(0,Height));
FListForm.Left:=pos.x;
FListForm.Top:=pos.y+24;
FListForm.FormStyle:=fsSystemStayOnTop;
FListForm.BorderStyle:=bsNone;
FListForm.Show;
end;
Добавлено спустя 1 минуту 34 секунды:
С gtk вообще не работал так что точно какие там команды нужны для формирования окошек, я не знаю.
Добавлено спустя 2 минуты 17 секунд:
та же Popup выводится нормально, т.е. в принципе можно изучить формирования окон
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Уважаем чужое время и даем код который компилируется без дописывания
Код: Выделить всё
var
cb:TMyComboBox;
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
cb:=TMyComboBox.Create(self);
cb.Parent:=self;
cb.Left:=130;
cb.Top:=80;
end;
Время говорю сэкономить... полный текст привести... а не кучку обрывков...
Вот собственно что я имею ввиду https://imgur.com/a/NSHu4 сначала открываются комбобоксы типа линий и цвета - они честные, кустомдравные, фокус не крадут. потом открывается муляж комбобокса с выбором слоев - фокус крадется, что заметно по морганию рамки окна
Реализация этого http://svn.shamangrad.net/zcad/trunk/ca ... mbobox.pas не моя, я только туда довольно по хамски впилил взаимодействие с потрохами зкада - чтоб со стороны этих потрохов было как можно меньше забот о правильности содержимого этого "комбобокса"
Что там надо вписать в
или еще куда, чтоб фокус лишний раз не дергать? пусть хотябы под виндой работает как надо
Вот собственно что я имею ввиду https://imgur.com/a/NSHu4 сначала открываются комбобоксы типа линий и цвета - они честные, кустомдравные, фокус не крадут. потом открывается муляж комбобокса с выбором слоев - фокус крадется, что заметно по морганию рамки окна
Реализация этого http://svn.shamangrad.net/zcad/trunk/ca ... mbobox.pas не моя, я только туда довольно по хамски впилил взаимодействие с потрохами зкада - чтоб со стороны этих потрохов было как можно меньше забот о правильности содержимого этого "комбобокса"
Что там надо вписать в
Код: Выделить всё
procedure TZCADDropDownForm.CreateParams(var Params: TCreateParams);или еще куда, чтоб фокус лишний раз не дергать? пусть хотябы под виндой работает как надо
Добавлено спустя 4 минуты 17 секунд:
zub писал(а):чтоб фокус лишний раз не дергать?
все зависит от видов окон(в винде одно на всех.. в gtk их вроде два normal & popup.)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
