Заголовок на кнопке
От: Аноним  
Дата: 02.09.04 08:59
Оценка: :)
Как сделать заголовок на кнопке
Re: Заголовок на кнопке
От: TObject Россия  
Дата: 02.09.04 09:05
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Как сделать заголовок на кнопке

button.caption:='Ваша кнопка';
... << RSDN@Home 1.1.4 @@subversion >>
Re[2]: Заголовок на кнопке
От: Аноним  
Дата: 02.09.04 09:11
Оценка:
Здравствуйте, TObject, Вы писали:

TO>Здравствуйте, <Аноним>, Вы писали:


А>>Как сделать заголовок на кнопке

TO>button.caption:='Ваша кнопка';
TO>

Не button.caption, а window's title bar
Re: Заголовок на кнопке
От: Ronaldo  
Дата: 02.09.04 09:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как сделать заголовок на кнопке

что-то я не понял вопроса. Тебе надо вывести надпись на кнопку или что??? Если да, то это делается элементарно. У объектов TButton есть свойство Caption измение его и получишь надпись на кнопке.
Re[3]: Заголовок на кнопке
От: Sheridan Россия  
Дата: 02.09.04 10:41
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Не button.caption, а window's title bar


А... Это в свойствах проекта... или Application->Title = "чтотамтебенадо";
-=RSDN@Home 1.1.4 beta 2 rev. 181=- [Tranceplosion — Skylight [Cyberstorm] [Blue mix]]
Matrix has you...
Re: Заголовок на кнопке
От: NARIK  
Дата: 02.09.04 11:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как сделать заголовок на кнопке


Если я тебя правильно понял ты имеешь виду свойство кнопки Caption.
(Пример: Button1.Caption:="MyBtn")
Re[2]: Заголовок на кнопке
От: Ronaldo  
Дата: 02.09.04 11:45
Оценка:
Здравствуйте, NARIK, Вы писали:

NAR>Здравствуйте, Аноним, Вы писали:


А>>Как сделать заголовок на кнопке


NAR>Если я тебя правильно понял ты имеешь виду свойство кнопки Caption.

NAR>(Пример: Button1.Caption:="MyBtn")
Да.
Re: Заголовок на кнопке
От: Аноним  
Дата: 02.09.04 12:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как сделать заголовок на кнопке


АВТОР:

Поскольку Кнопка есть окно,
то у него можен быть Title-Bar(с меню, кнопками и т . п.)

Как это сделать в Run-Time(без создания нового компонента)
Re[3]: Заголовок на кнопке
От: Arioch  
Дата: 02.09.04 12:04
Оценка:
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

--
WinAMP://Улица роз
http://Arioch.nm.ru/FL/Fidolook_SL.png Mail: the_Arioch<at>nm<dot>ru
Posted via RSDN NNTP Server 1.9 beta
Re[2]: Заголовок на кнопке
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 02.09.04 12:53
Оценка:
Здравствуйте, Аноним, Вы писали:

[]

А>Поскольку Кнопка есть окно,

А>то у него можен быть 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.


Пойдет?
Re[2]: Заголовок на кнопке
От: NARIK  
Дата: 02.09.04 13:39
Оценка: -2 :)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Как сделать заголовок на кнопке


А>АВТОР:


А>Поскольку Кнопка есть окно,

А>то у него можен быть Title-Bar(с меню, кнопками и т . п.)

А>Как это сделать в Run-Time(без создания нового компонента)


А вы на чем пишете?
По-моему кнопка не есть окно, она находится в окне
Re[3]: Заголовок на кнопке
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 02.09.04 13:49
Оценка:
Здравствуйте, NARIK, Вы писали:

[]

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 строчки


Не поленись дай 3 строчки.
Re[5]: Заголовок на кнопке
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 03.09.04 06:27
Оценка:
Здравствуйте, <Аноним>, Вы писали:

[]

F>>И вполне себе легко сделать так, что TMemo, брошенный на форму, будет иметь заголовок окна, кнопки в правом верхнем углу и даже будет перемещаться по форме если его таскать за заголовок. Кода — ровно 3 строчки


А>Не поленись дай 3 строчки.


1. Почитайте справку про CreateParams и все станет ясно
2. Стили окну назначаем нужные и все.
3. За списком стилей — в MSDN, описание функции CreateWindow.

Как видите, три строчки
... << RSDN@Home 1.1.3 stable >>
Re: Заголовок на кнопке
От: Spaider Верблюд  
Дата: 03.09.04 07:21
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Как сделать заголовок на кнопке


Гы, может, кнопку на заголовке?
... << 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 строчка ??? надо это "закрепить",
а как не помню.

ПОДСКАЖИ
Re[7]: Заголовок на кнопке
От: Arioch  
Дата: 03.09.04 09:08
Оценка:
The stars so gaily glistened... (Fri, 03 Sep 2004 07:27:57 GMT @352)
...while the fading voice of whispered through the darkness:

> 3 строчка ??? надо это "закрепить",

> а как не помню.

А м.б. все же TButton.CreateParams а потом TButton.ReCreateWnd ?
--
WinAMP://Jonny Lang — Missing Your Love
http://Arioch.nm.ru/FL/Fidolook_SL.png Mail: the_Arioch<at>nm<dot>ru
Posted via RSDN NNTP Server 1.9 beta
Re[8]: Заголовок на кнопке
От: Аноним  
Дата: 03.09.04 09:22
Оценка:
Здравствуйте, Arioch, Вы писали:

A>А м.б. все же TButton.CreateParams а потом TButton.ReCreateWnd ?



для Вас еше раз

Форма с кнопками,memo и т.д. УЖЕ создана и отображена,
и все надо делать на "лету"
( CreateParams имеет имеет атрибут protected и из экземпляра не виден,
я не хочу создавать новый class(TButton))
Re[9]: Заголовок на кнопке
От: Arioch  
Дата: 03.09.04 10:05
Оценка:
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))

Про hack classes не слышал?

--
WinAMP://Nightwish — Planet Hell
http://Arioch.nm.ru/FL/Fidolook_SL.png Mail: the_Arioch<at>nm<dot>ru
Posted via RSDN NNTP Server 1.9 beta
Re: Заголовок на кнопке
От: Аноним  
Дата: 03.09.04 10:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как сделать заголовок на кнопке


Автор вопроса:

разобрался сам

Вот, что требовалось от ВАС

H:=Button2.Handle;
X:=GetWindowLong(H,GWL_STYLE);
X := X OR WS_OVERLAPPEDWINDOW;
SetWindowLong(H,GWL_STYLE,X);



SetWindowPos(H,HWND_TOP,0,0,0,0,SWP_DRAWFRAME+SWP_NOSIZE+SWP_NOMOVE);
Re: Заголовок на кнопке
От: Аноним  
Дата: 03.09.04 10:29
Оценка:
Автор.

Может кто знает:
Как в Run-Time сделать,
чтобы поле редактирование в TEdit было сднинуто вправо
Re[4]: Заголовок на кнопке
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 03.09.04 11:56
Оценка:
Ну, вроде как все правильно, но если проверить — не работает
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

Про hack classes не слышал?

Нет. Где посмоьреть(услышать?
Re[5]: Заголовок на кнопке
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 03.09.04 17:31
Оценка:
Здравствуйте, Slicer [Mirkwood], Вы писали:

SM>Ну, вроде как все правильно, но если проверить — не работает

SM>SetWindowLong(panel1.Handle, GWL_STYLE, WS_OVERLAPPEDWINDOW or WS_VISIBLE or WS_CHILD or WS_CLIPSIBLINGS);

SM>И нифига Даже если тут прописаны не все нужные стили — хоть какой-то эффект должен быть, а панель как лежала, так и лежит


Я про CreateParams говорил, если вы заметили. С помощью SetWindowLong ничего не получится. Нарисовать вам примерчик?
... << RSDN@Home 1.1.3 stable >>
Re[5]: Заголовок на кнопке
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 03.09.04 17:31
Оценка: 3 (1)
Здравствуйте, Slicer [Mirkwood], Вы писали:

SM>Ну, вроде как все правильно, но если проверить — не работает

SM>SetWindowLong(panel1.Handle, GWL_STYLE, WS_OVERLAPPEDWINDOW or WS_VISIBLE or WS_CHILD or WS_CLIPSIBLINGS);

SM>И нифига Даже если тут прописаны не все нужные стили — хоть какой-то эффект должен быть, а панель как лежала, так и лежит


Вот, набросал в общем примерчик, правда на дебилдере:

class PACKAGE TMyPanel : public TPanel
{
protected:

    void __fastcall CreateParams(Controls::TCreateParams &Params)
    {
      TPanel::CreateParams(Params);
      Params.Style |= WS_CAPTION;
    };
public:
    __fastcall TMyPanel(TComponent* AOwner) : TPanel(AOwner) {};
    __fastcall ~TMyPanel() {};

};
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TMyPanel* p = new TMyPanel(this);
p->Width = 100;
p->Height = 100;

p->Parent = this;
}
//---------------------------------------------------------------------------


Попробуйте Увидите что у панели есть заголовок окна и за него ее можно таскать по форме.
... << RSDN@Home 1.1.3 stable >>
Re[11]: Заголовок на кнопке
От: Arioch  
Дата: 04.09.04 00:05
Оценка:
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;


С private ак не поиграешь, но с protected вполне.

--
WinAMP://none: WinAMP is suffocated
http://Arioch.nm.ru/FL/Fidolook_SL.png Mail: the_Arioch<at>nm<dot>ru
Posted via RSDN NNTP Server 1.9 beta
Re[6]: Заголовок на кнопке
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 04.09.04 05:36
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Я про CreateParams говорил, если вы заметили. С помощью SetWindowLong ничего не получится.

Да все я заметил Только вот почему не получается с помощью SetWindowLong, объясни убогому? По крайней мере, в описаловке по апишке ничего такого вроде не было сказано.

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[2]: Заголовок на кнопке
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 04.09.04 05:49
Оценка:
То есть? Чтобы текст был выравнен по правому краю, что ли?
Вообще-то,

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
Специалист — это варвар, невежество которого не всесторонне :)
Re[7]: Заголовок на кнопке
От: Leonid Troyanovsky  
Дата: 04.09.04 06:02
Оценка:
Здравствуйте, Slicer [Mirkwood], Вы писали:

F>>Я про CreateParams говорил, если вы заметили. С помощью SetWindowLong ничего не получится.

SM>Да все я заметил Только вот почему не получается с помощью SetWindowLong, объясни убогому? По крайней мере, в описаловке по апишке ничего такого вроде не было сказано.

Потому, как окно должно быть _создано_ с таким стилем.
Например, однострочный edit не переделать в многострочный налету, как, собс-но,
и многие другие стили.
Отсюда и нужда в RecreateWnd, упомянутая уважаемым Arioch.
--
С уважением, LVT
Re[8]: Заголовок на кнопке
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 04.09.04 08:15
Оценка:
Здравствуйте, Leonid Troyanovsky, Вы писали:

SM>>Только вот почему не получается с помощью SetWindowLong, объясни убогому? По крайней мере, в описаловке по апишке ничего такого вроде не было сказано.


LT> Потому, как окно должно быть _создано_ с таким стилем.

LT> Например, однострочный edit не переделать в многострочный налету, как, собс-но,
LT> и многие другие стили.

Вот как? А где бы почитать об этом?
Кстати, я в этой же ветке упомянул, что не работает и предложенный в MSDN код по изменению выравнивания Edit'a.

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[9]: Заголовок на кнопке
От: Leonid Troyanovsky  
Дата: 04.09.04 11:57
Оценка: 21 (1)
Здравствуйте, 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.
--
С уважением, LVT
Re[2]: Заголовок на кнопке
От: Leonid Troyanovsky  
Дата: 04.09.04 14:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как в Run-Time сделать,

А>чтобы поле редактирование в TEdit было сднинуто вправо

http://groups.google.com/groups?selm=VA.000054be.00522963%40antispam.compuserve.com
--
С уважением, LVT
Re[2]: Заголовок на кнопке
От: ViRUS_1 Россия http://sibvic.narod.ru
Дата: 05.09.04 00:22
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Автор.


А>Может кто знает:

А>Как в Run-Time сделать,
А>чтобы поле редактирование в TEdit было сднинуто вправо
TRightEdit = class(TEdit)
protected
  procedure CreateParams(var Params: TCreateParams); override;
end;

procedure TRightEdit.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style:=Params.Style or ES_RIGHT;
end;
... << RSDN@Home 1.1.4 @@subversion >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.