Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.01.2017, 08:44
Аватар для РудойПсех
РудойПсех РудойПсех вне форума
Прохожий
 
Регистрация: 28.01.2017
Сообщения: 1
Версия Delphi: CodGear,BorlB++
Репутация: 10
Вопрос Буквы с подставками, на базе каких компонентов делать

Как реализовать поодставки для букв () как на картинке ниже:
подставки.JPG
Ответить с цитированием
  #2  
Старый 28.01.2017, 23:18
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
Label.Font.Style := Label.Font.Style + [fsUnderline]
не?
Ответить с цитированием
  #3  
Старый 29.01.2017, 07:34
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от lmikle
Код:
Label.Font.Style := Label.Font.Style + [fsUnderline]
не?

Специально кодом все сделал:
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  Str = 'die U-Bahn-Station';
  MonoFontName = 'Courier';
  MonoFontSize = 18;
  MonoFontSpace = 4;
var
  L : TLabel;
  X, Y, D : Integer;
  I : Integer;
  tmpFontName : String;
  tmpFontSize : Integer;
begin
  Y := Button1.Top + Button1.Height + 8;
  X := Button1.Left;

  tmpFontName := Self.Font.Name;
  tmpFontSize := Self.Font.Size;
  Self.Font.Name := MonoFontName;
  Self.Font.Size := MonoFontSize;
  D := Self.Canvas.TextWidth('W') + MonoFontSpace;
  Self.Font.Name := tmpFontName;
  Self.Font.Size := tmpFontSize;


  For I := 1 To Length(Str) Do
    Begin
      L := TLabel.Create(Self);
      L.Font.Name := MonoFontName;
      L.Font.Size := MonoFontSize;
      If Str[i] <> ' ' Then L.Font.Style := L.Font.Style + [fsUnderline];
      L.Left := X;
      L.Top := Y;
      L.Caption := Str[i];
      X := X + D;
      L.Parent := Self;
    End;
end;

Только надо шрифт правильный подобрать - походу нужен моноширинный. У меня почемуто Courier New отказался подчеркиваться.
Изображения
Тип файла: bmp fontDemo.bmp (326.3 Кбайт, 6 просмотров)

Последний раз редактировалось lmikle, 29.01.2017 в 07:41.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Admin (29.01.2017)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter