Здравствуйте, Аноним, Вы писали:
А>Как сделать заголовок на кнопке
что-то я не понял вопроса. Тебе надо вывести надпись на кнопку или что??? Если да, то это делается элементарно. У объектов TButton есть свойство Caption измение его и получишь надпись на кнопке.
Здравствуйте, NARIK, Вы писали:
NAR>Здравствуйте, Аноним, Вы писали:
А>>Как сделать заголовок на кнопке
NAR>Если я тебя правильно понял ты имеешь виду свойство кнопки Caption. NAR>(Пример: Button1.Caption:="MyBtn")
Да.
Re: Заголовок на кнопке
От:
Аноним
Дата:
02.09.04 12:01
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Как сделать заголовок на кнопке
АВТОР:
Поскольку Кнопка есть окно,
то у него можен быть Title-Bar(с меню, кнопками и т . п.)
Как это сделать в Run-Time(без создания нового компонента)
The stars so gaily glistened... (Thu, 02 Sep 2004 09:11:38 GMT @424)
...while the fading voice of whispered through the darkness:
А>>> Как сделать заголовок на кнопке TO>> button.caption:='Ваша кнопка'; > Не button.caption, а window's title bar
Т.е. тебе кнопку на заголовкe, а не заголовок на кнопке ?
Тoгда Jedi VCL
[]
А>Поскольку Кнопка есть окно, А>то у него можен быть Title-Bar(с меню, кнопками и т . п.)
А>Как это сделать в Run-Time(без создания нового компонента)
SetWindowText
The SetWindowText function changes the text of the specified window's title bar (if it has one). If the specified window is a control, the text of the control is changed. However, SetWindowText cannot change the text of a control in another application.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Как сделать заголовок на кнопке
А>АВТОР:
А>Поскольку Кнопка есть окно, А>то у него можен быть Title-Bar(с меню, кнопками и т . п.)
А>Как это сделать в Run-Time(без создания нового компонента)
А вы на чем пишете?
По-моему кнопка не есть окно, она находится в окне
[]
NAR>А вы на чем пишете? NAR>По-моему кнопка не есть окно, она находится в окне
Ну таки кнопка все-таки окно. Так-же как и TMemo, и TEdit и пр. визуальные компоненты. Мало того, в некоторых визуальных компонентах содержится не одно окно (как пример приведу TComboBox).
И вполне себе легко сделать так, что TMemo, брошенный на форму, будет иметь заголовок окна, кнопки в правом верхнем углу и даже будет перемещаться по форме если его таскать за заголовок. Кода — ровно 3 строчки
Re[4]: Заголовок на кнопке
От:
Аноним
Дата:
03.09.04 05:38
Оценка:
Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, NARIK, Вы писали:
F>[]
NAR>>А вы на чем пишете? NAR>>По-моему кнопка не есть окно, она находится в окне
F>Ну таки кнопка все-таки окно. Так-же как и TMemo, и TEdit и пр. визуальные компоненты. Мало того, в некоторых визуальных компонентах содержится не одно окно (как пример приведу TComboBox).
F>И вполне себе легко сделать так, что TMemo, брошенный на форму, будет иметь заголовок окна, кнопки в правом верхнем углу и даже будет перемещаться по форме если его таскать за заголовок. Кода — ровно 3 строчки
[]
F>>И вполне себе легко сделать так, что TMemo, брошенный на форму, будет иметь заголовок окна, кнопки в правом верхнем углу и даже будет перемещаться по форме если его таскать за заголовок. Кода — ровно 3 строчки
А>Не поленись дай 3 строчки.
1. Почитайте справку про CreateParams и все станет ясно
2. Стили окну назначаем нужные и все.
3. За списком стилей — в MSDN, описание функции CreateWindow.
Здравствуйте, <Аноним>, Вы писали:
А>Как сделать заголовок на кнопке
Гы, может, кнопку на заголовке?
... << RSDN@Home 1.1.4 @@subversion >>
--
К вашим услугам,
Re[6]: Заголовок на кнопке
От:
Аноним
Дата:
03.09.04 07:27
Оценка:
Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, <Аноним>, Вы писали:
F>[]
F>>>И вполне себе легко сделать так, что TMemo, брошенный на форму, будет иметь заголовок окна, кнопки в правом верхнем углу и даже будет перемещаться по форме если его таскать за заголовок. Кода — ровно 3 строчки
А>>Не поленись дай 3 строчки.
F>1. Почитайте справку про CreateParams и все станет ясно F>2. Стили окну назначаем нужные и все. F>3. За списком стилей — в MSDN, описание функции CreateWindow.
F>Как видите, три строчки
спасибо, но
Форма с кнопками,memo и т.д. существует(создана),
и все надо делать на "лету"
1 строчка GetWindowLong(Control.Handle
2 строчка SetWindowLoyg(control.Handle
3 строчка ??? надо это "закрепить",
а как не помню.
The stars so gaily glistened... (Fri, 03 Sep 2004 07:27:57 GMT @352)
...while the fading voice of whispered through the darkness:
> 3 строчка ??? надо это "закрепить", > а как не помню.
Здравствуйте, Arioch, Вы писали:
A>А м.б. все же TButton.CreateParams а потом TButton.ReCreateWnd ?
для Вас еше раз
Форма с кнопками,memo и т.д. УЖЕ создана и отображена,
и все надо делать на "лету"
( CreateParams имеет имеет атрибут protected и из экземпляра не виден,
я не хочу создавать новый class(TButton))
The stars so gaily glistened... (Fri, 03 Sep 2004 09:22:23 GMT @432)
...while the fading voice of whispered through the darkness:
> Форма с кнопками,memo и т.д. УЖЕ создана и отображена, > и все надо делать на "лету"
Потому и пишу про ReCreateWnd.
> ( CreateParams имеет имеет атрибут protected и из экземпляра не виден, > я не хочу создавать новый class(TButton))
Ну, вроде как все правильно, но если проверить — не работает
SetWindowLong(panel1.Handle, GWL_STYLE, WS_OVERLAPPEDWINDOW or WS_VISIBLE or WS_CHILD or WS_CLIPSIBLINGS);
И нифига Даже если тут прописаны не все нужные стили — хоть какой-то эффект должен быть, а панель как лежала, так и лежит
Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[10]: Заголовок на кнопке
От:
Аноним
Дата:
03.09.04 12:48
Оценка:
Здравствуйте, Arioch, Вы писали:
A>The stars so gaily glistened... (Fri, 03 Sep 2004 09:22:23 GMT @432) A>...while the fading voice of whispered through the darkness:
>> Форма с кнопками,memo и т.д. УЖЕ создана и отображена, >> и все надо делать на "лету"
A>Потому и пишу про ReCreateWnd.
>> ( CreateParams имеет имеет атрибут protected и из экземпляра не виден, >> я не хочу создавать новый class(TButton))
A>Про hack classes не слышал?
A>-- A>WinAMP://Nightwish — Planet Hell A>http://Arioch.nm.ru/FL/Fidolook_SL.png Mail: the_Arioch<at>nm<dot>ru
Здравствуйте, Slicer [Mirkwood], Вы писали:
SM>Ну, вроде как все правильно, но если проверить — не работает SM>SetWindowLong(panel1.Handle, GWL_STYLE, WS_OVERLAPPEDWINDOW or WS_VISIBLE or WS_CHILD or WS_CLIPSIBLINGS);
SM>И нифига Даже если тут прописаны не все нужные стили — хоть какой-то эффект должен быть, а панель как лежала, так и лежит
Я про CreateParams говорил, если вы заметили. С помощью SetWindowLong ничего не получится. Нарисовать вам примерчик?
Здравствуйте, Slicer [Mirkwood], Вы писали:
SM>Ну, вроде как все правильно, но если проверить — не работает SM>SetWindowLong(panel1.Handle, GWL_STYLE, WS_OVERLAPPEDWINDOW or WS_VISIBLE or WS_CHILD or WS_CLIPSIBLINGS);
SM>И нифига Даже если тут прописаны не все нужные стили — хоть какой-то эффект должен быть, а панель как лежала, так и лежит
Вот, набросал в общем примерчик, правда на дебилдере:
The stars so gaily glistened... (Fri, 03 Sep 2004 12:48:15 GMT @575)
...while the fading voice of whispered through the darkness:
[Sorry, skipped]
>> Про hack classes не слышал?
> Нет. Где посмоьреть(услышать?
Где-то в VCLи
Идея впрочем очевидная.
TMyClass = class
...........
protected property NeededValue: ..................
end;
..............
var MyObj: TMyClass = TMyClass.Create(...);
~~~~~~ в другом файле ~~~~~~~~~~
TMyHackClass = class (TMyClass)
public property NeededValue;end;
end;
.....................
Value := TMyHackClass(TMyClass).NeededValue;
Здравствуйте, Flamer, Вы писали:
F>Я про CreateParams говорил, если вы заметили. С помощью SetWindowLong ничего не получится.
Да все я заметил Только вот почему не получается с помощью SetWindowLong, объясни убогому? По крайней мере, в описаловке по апишке ничего такого вроде не было сказано.
Slicer
Специалист — это варвар, невежество которого не всесторонне :)
То есть? Чтобы текст был выравнен по правому краю, что ли?
Вообще-то,
There are three styles that cause the system to align the text in an edit control. The ES_LEFT, ES_CENTER, and ES_RIGHT styles determine whether text is aligned on the left, center, or right, respectively.
Соответственно, либо сделать наследника Edit'а, либо попробовать SetWindowLong(Edit1.handle, GWL_STYLE, GetWindowLong(Edit1.handle, GWL_STYLE) or ES_RIGHT); — однако же не работает. Пробовал по-другому, с GWL_EXSTYLE и WS_EX_RIGHT (как в MSDN) — но тоже не работает! Меня что, где-то накалывает VCL?
Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Здравствуйте, Slicer [Mirkwood], Вы писали:
F>>Я про CreateParams говорил, если вы заметили. С помощью SetWindowLong ничего не получится. SM>Да все я заметил Только вот почему не получается с помощью SetWindowLong, объясни убогому? По крайней мере, в описаловке по апишке ничего такого вроде не было сказано.
Потому, как окно должно быть _создано_ с таким стилем.
Например, однострочный edit не переделать в многострочный налету, как, собс-но,
и многие другие стили.
Отсюда и нужда в RecreateWnd, упомянутая уважаемым Arioch.
Здравствуйте, Leonid Troyanovsky, Вы писали:
SM>>Только вот почему не получается с помощью SetWindowLong, объясни убогому? По крайней мере, в описаловке по апишке ничего такого вроде не было сказано.
LT> Потому, как окно должно быть _создано_ с таким стилем. LT> Например, однострочный edit не переделать в многострочный налету, как, собс-но, LT> и многие другие стили.
Вот как? А где бы почитать об этом?
Кстати, я в этой же ветке упомянул, что не работает и предложенный в MSDN код по изменению выравнивания Edit'a.
Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Здравствуйте, Slicer [Mirkwood], Вы писали:
SM>>>Только вот почему не получается с помощью SetWindowLong, объясни убогому? По крайней мере, в описаловке по апишке ничего такого вроде не было сказано.
LT>> Потому, как окно должно быть _создано_ с таким стилем. LT>> Например, однострочный edit не переделать в многострочный налету, как, собс-но, LT>> и многие другие стили.
SM>Вот как? А где бы почитать об этом?
msdn Knowledge Base KB83366
INFO: Value Returned by GetWindowLong(hWnd, GWL_STYLE)
SM>Кстати, я в этой же ветке упомянул, что не работает и предложенный в MSDN код по изменению выравнивания Edit'a.
А.. Там, наверное, вмешивается VCL.
Т.е., надо пробывать на контроле, собс-ручно созданным CreateWindow.