|
Вопрос # 5 075/ вопрос решён / |
|
Здравствуйте, уважаемые эксперты!
Хватит, побыл экспертом, пора и задавать вопросы :-)
Рисовать или помещать надписи можно только на клиентской области формы? Я пробовал погонять надпись по форме, но когда приближается к краю, надпись "подлезает" под край рамки, и ее частично не видно. А мне хотелось поэкспериментировать с Caption формы, сделать ее другим цветом или шрифтом или нарисовать чего-либо в области заголовка формы . Is it possible ?
Добросовестно прогуглил первые 10 страниц форума, но пока никак.
 |
Вопрос задал: Толяныч (статус: 4-ый класс)
Вопрос отправлен: 9 марта 2011, 00:12
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 7; последнее сообщение — 9 марта 2011, 20:22; участников в обсуждении: 4.
|
Amidamaru (статус: 4-ый класс), 9 марта 2011, 00:19 [#1]:
ну... с самими заголовком не так уж и просто работать, поищи по теме создания кнопки в заголовке (Caption Button).
а если тебе нужно сделать полностью свой собственный заголовок для формы то это не так уж и сложно: убираешь заголовок вообще и делаешь всё что хочешь как перетаскивать форму без заголовка в интернете полно информации, а кнопки ещё проще сделать.
|
|
VKHacker (статус: 1-ый класс), 9 марта 2011, 01:18 [#2]:
TForm1 = class(TForm)
.....
private
procedure DrawMyText;
procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT;
procedure WMNCActivate(var Msg: TWMNCActivate) ; message WM_NCACTIVATE;
.....
procedure TForm1.DrawMyText;
var Canvas: TCanvas;
R: TRect;
begin
Canvas := TCanvas.Create;
try
Canvas.Handle := GetWindowDC(Handle);
R := Bounds(GetSystemMetrics(SM_CXFRAME) +
GetSystemMetrics(SM_CXSIZE) + 1,
GetSystemMetrics(SM_CYFRAME),
GetSystemMetrics(SM_CXSIZE),
GetSystemMetrics(SM_CYSIZE));
with Canvas do
begin
Brush.Style := bsClear;
Font.Color := clWhite;
TextOut(R.Left + 50, R.Top + 7, 'Привет');
end;
finally
ReleaseDC(Self.Handle, Canvas.Handle) ;
Canvas.Free;
end;
end;
procedure TForm1.WMNCActivate(var Msg: TWMNCActivate);
begin
inherited;
DrawMyText;
end;
procedure TForm1.WMNCPaint(var Msg: TWMNCPaint);
begin
inherited;
DrawMyText;
end;
.....
end.
|
|
Толяныч (статус: 4-ый класс), 9 марта 2011, 13:18 [#3]:
Ясно. Спасибо. Слишком это сложно Придется без выпендрежа.
|
9 марта 2011, 13:18: Статус вопроса изменён на решённый (изменил автор вопроса — Толяныч)
|
Вадим К (статус: Академик), 9 марта 2011, 15:38 [#4]:
А есть ещё один красивый способ. очень красивый.
Делаем у формы borderstyle = bsNone, и теперь вся форма полностью доступна. Можно рисовать кругом. Правда заголовок теперь придется рисовать самому и сделать перетаскивание формы мышкой (но это в пару строк делается). Но зато, можно творить на форме что угодно.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Толяныч (статус: 4-ый класс), 9 марта 2011, 18:13 [#5]:
А вне формы ? Например, привязываясь к абсолютным координатам экрана ?
|
|
Толяныч (статус: 4-ый класс), 9 марта 2011, 20:22 [#7]:
С избытком ! Пошел учить матчасть..
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|