Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/41: Рейтинг темы: голосов - 41, средняя оценка - 4.76
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865

Две и более строчек надписи на кнопке и на других компонентах

19.09.2010, 11:32. Показов 8585. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. Как компоненту Button придать свойству Caption 2 строчки ну чтобы надпись кнопки была из 2-х и более тсрок.
2. Как заголовкам колонок DBGrid реализовать тоже самое, т.е. надпись заголовка колонок из 3-х и более строк.

Добавлено через 1 минуту
т.е. из 2-х и более ))) извиняюсь за опечатки
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.09.2010, 11:32
Ответы с готовыми решениями:

Две надписи на одной кнопке?
Уважаемые, подскажите как сделать две надписи двух цветов на одной кнопке формы. Пробовал это сделать - кнопка не фурычит. Помогите...

Изменение надписи на кнопке
Доброго дня! Только начал изучать C# и столкнулся с такой проблемой - не меняется надпись на кнопке. Что я делаю не так? using System;...

Нажать кнопку в чужом окне размещенную внутри других компонентах
Перечитал инет, ответа ненашел. Имеем программу, вероятно написанную на Delphi. Окрыл ее в PE Explorer. Привожу скриншот оттуда. Мне нужно...

7
Фрилансер
 Аватар для Mad_Dog
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
19.09.2010, 11:40
1. Взято из DelphiWorld 6.0... может чем поможет...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
procedure TForm1.FormCreate(Sender: TObject);
 
var
 
R: TRect;
 
N: Integer;
 
Buff: array[0..255] of Char;
 
begin
 
with BitBtn1 do
 
   begin
 
     Caption := 'A really really long caption';
 
     Glyph.Canvas.Font := Self.Font;
 
     Glyph.Width := Width - 6;
 
     Glyph.Height := Height - 6;
 
     R := Bounds(0, 0, Glyph.Width, 0);
 
     StrPCopy(Buff, Caption);
 
     Caption := '';
 
     DrawText(Glyph.Canvas.Handle, Buff, StrLen(Buff), R,
 
       DT_CENTER or DT_WORDBREAK or DT_CALCRECT);
 
     OffsetRect(R, (Glyph.Width - R.Right) div 2,
 
       (Glyph.Height - R.Bottom) div 2);
 
     DrawText(Glyph.Canvas.Handle, Buff, StrLen(Buff), R,
 
       DT_CENTER or DT_WORDBREAK);
 
   end;
 
end;
Добавлено через 3 минуты
Вот еще там же нашел...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject); 
 
var 
 
i: Integer; 
 
begin 
 
i := GetWindowLong(Button1.Handle, GWL_STYLE); 
 
SetWindowLong(Button1.Handle, GWL_STYLE, i or BS_MULTILINE); 
 
Button1.Caption := 'Delphi World - ' + #13#10 + 'лучше не бывает!';
 
end;
2
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
19.09.2010, 12:28  [ТС]
Спасибо, для кнопки работает, но как сделать это в DBGrid вопрос остается открытым. Ну и еще хотелось бы делать это в инстпекторе объекта а не программно, если конечно это возможно )))
0
Фрилансер
 Аватар для Mad_Dog
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
19.09.2010, 12:34
Вот для DbGrid'а в том же самом DelphiWorld 6.0...

Заголовок TDBGrid в две строки
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
type
   TAccessDBGrid = class(TDBGrid);
 
 procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
   const Rect: TRect; DataCol: Integer; Column: TColumn;
   State: TGridDrawState);
 var
   S1, S2: String;
 begin
   with TAccessDBGrid(DBGrid1) do
   begin
     // Increase title height 
    // Titelhohe vergrossern 
    RowHeights[0] := 32;
 
     Canvas.Brush.Style := bsClear;
 
     // Column Titles 
    // Spalten Titel setzen 
    case Column.Index of
     0: begin
          Column.Title.Caption := '';
          S1 := 'Row 1';
          S2 := 'Row 2';
        end;
     1: begin
          Column.Title.Caption := '';
          S1 := 'Row 1';
          S2 := 'Row 2';
        end;
     end;
     // write title: 
    // Titel ausgeben: 
    Canvas.TextOut(Rect.Left+2, 2, S1);
     Canvas.TextOut(Rect.Left+2, 16, S2);
   end;
 end;
0
3 / 3 / 0
Регистрация: 13.09.2010
Сообщений: 11
19.09.2010, 20:09
1. Как компоненту Button придать свойству Caption 2 строчки ну чтобы надпись кнопки была из 2-х и более тсрок.
wordwrap в инспекторе для кнопки
1
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
19.09.2010, 20:50  [ТС]
Спасибо ))) для кнопок все просто, правда он переводит сам когда зохочет, но эта ситуация легко решаетс заполнением пробелов. Остался DBGrid
0
0 / 0 / 0
Регистрация: 11.07.2018
Сообщений: 34
01.04.2020, 17:21
Button -> Properties -> WordWrap=True
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,667
Записей в блоге: 21
01.04.2020, 23:03
DBgrid сам этого не умеет, поэтому используйте OnDrawCell
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.04.2020, 23:03
Помогаю со студенческими работами здесь

Qt присвоение переменной текста надписи на кнопке
Доброго времени суток! Опыта в программировании мало, посему решил написать программку. Столкнулся с проблемой присвоения переменной...

Изменение надписи на кнопке при ее нажатии
x = Button3.Click <-? If x Mod 2 Then Label4.ForeColor = Color.Green Button3.ForeColor =...

Изменение надписи на кнопке при нажатии на нее
Вывел текущее время, но не могу никак сделать так что бы менялась надпись на кнопке старт/стоп, при нажатии на нее. Может кто поможет, а то...

Изменение надписи на кнопке при нажатии на нее
Вывел текущее время, но не могу никак сделать так что бы менялась надпись на кнопке старт/стоп, при нажатии на нее. Может кто поможет. ...

своего рода анимация и замена надписи на кнопке
здравствуйте! предположим есть картинка, она разбита на N-ное количество частей, число N равно числу кадров, т.е в каждой части картинки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru