Конференция "Основная" » Как сделать подчёркивание чёрточками?
 
  • Kolan © (06.07.08 15:56) [0]
    Здравствуйте,
     Как сделать сабжевое подчёркивание, скажем, у экземпляра TLabel?
  • Anatoly Podgoretsky © (06.07.08 17:12) [1]
    > Kolan  (06.07.2008 15:56:00)  [0]

    А что  fsUnderline не помогает?
  • Kolan © (06.07.08 17:35) [2]
    > А что  fsUnderline не помогает?

    Ды это же цельная линия, а мне нужны чёрточки (dash). Смысл разный...
  • Anatoly Podgoretsky © (06.07.08 17:43) [3]
    > Kolan  (06.07.2008 17:35:02)  [2]

    Странное у тебя понятия об подчеркивание
  • Kolan © (06.07.08 17:57) [4]
    Вроде самое обычно, даже стандартное. Может вы имеете в виду, что у обычного TLabel есть возможность подчёркивания чёрточками? Тогда как это сделтаь? Я не знаю.
  • KilkennyCat © (06.07.08 19:03) [5]
    У обычного - нет. Но что мешает создать необычный? ;)
  • Kolan © (06.07.08 19:58) [6]
    > Но что мешает создать необычный? ;)

    То, что я хз как это подчёркивание сделать...
  • Leonid Troyanovsky © (06.07.08 20:08) [7]

    > Kolan ©   (06.07.08 19:58) [6]

    > То, что я хз как это подчёркивание сделать...

    DoDrawText override.

    --
    Regards, LVT.
  • Игорь Шевченко © (07.07.08 10:56) [8]

    > То, что я хз как это подчёркивание сделать...


    Не знаю, кого как, а меня такая манера изложения достает. Или ты ее меняешь или ты не пишешь, одно из двух.
  • Григорьев Антон © (07.07.08 13:04) [9]
    http://msdn.microsoft.com/en-us/library/ms533909.aspx флаги DT_HIDEPREFIX, DT_NOPREFIX и DT_PREFIXONLY
  • Kolan © (07.07.08 15:51) [10]
    Удалено модератором
  • Kolan © (07.07.08 22:12) [11]
    > DoDrawText override.

    Хм. Немогу понять, кажется подчёркавание не тут делается.


    > Григорьев Антон ©   (07.07.08 13:04)

    Тоже странно:
    DT_HIDEPREFIX  Windows 2000/XP: Ignores the ampersand (&) prefix character in the text. The letter that follows will not be underlined, but other mnemonic-prefix characters are still processed. For example:

    input string:    «A&bc&&d»
    normal:          «Abc&d»
    DT_HIDEPREFIX:   «Abc&d»



    Может вы не поняли меня, мне надо подчёркивание чёрточками всей строки, а не символа. Пример: http://www.yandex.ru/. Под строкой поиска написано «Например: <Подчеркнутый текст>» вот такое подчёркивание мне нужно
  • KilkennyCat © (07.07.08 22:22) [12]
    Ну, если посмотреть на TCustomLabel,  то вообще-то все понятно, как.
    Я могу потратить пятнадцать минут и сделать.
    Но эта ветка не для начинающих, вроде.
  • palva © (07.07.08 22:25) [13]
    В предыдущем посте я вижу подчеркивание сплошной линией - никаких черточек. (FireFox 3.0 под Ubuntu)
  • palva © (07.07.08 22:30) [14]

    > palva ©   (07.07.08 22:25) [13]

    Теперь понял. Нужно зайти на сайт яндекса. А в чем проблема? Все время меняется длина строки? Тогда сделать Label Resizable и делать длину подчеркивания равную свойству Width у Label.
  • Kolan © (08.07.08 08:20) [15]
    > Ну, если посмотреть на TCustomLabel,  то вообще-то все понятно,
    > как.

    Туда и смотрел, и вообще не нашел где там подчеркивание, хоть бы обычное, учитывается.


    > Но эта ветка не для начинающих, вроде.

    Может еще понамикаете :). Я сам хочу сделать.


    > А в чем проблема?

    Проблемма в том, что я не могу найти какой флаг и где использовать, для получения такгого эффекта. Флаги
    DT_HIDEPREFIX, DT_NOPREFIX и DT_PREFIXONLY

    — не то, они управляют подчёркиванием одного символа — это, обычно, означает Hot Key. А мне надо всю строку подчеркнуть чёрточками, что означает немедленное действие.
  • Loginov Dmitry © (08.07.08 08:30) [16]
    Куча TLabel с одним символом + амперсанд на каждый :)
  • Leonid Troyanovsky © (08.07.08 09:56) [17]

    > Kolan ©   (07.07.08 22:12) [11]

    > Хм. Немогу понять, кажется подчёркавание не тут делается.


    type
     TMyLabel = class(TLabel)
      procedure DoDrawText(var ARect: TRect; flags: Longint);override;
     end;

    procedure TMyLabel.DoDrawText;
    begin
     inherited;
     with Canvas, ARect do
       begin
         Pen.Style := psDot;
         MoveTo(Left, Bottom-1);
         LineTo(Right, Bottom-1);
       end;
    end;


    --
    Regards, LVT.
  • KilkennyCat © (08.07.08 12:52) [18]

    > Leonid Troyanovsky ©   (08.07.08 09:56) [17]


    Именно!
    Я намекал увидеть свойство Canvas ;)
  • Kolan © (08.07.08 13:44) [19]

    > Именно!

    Млииин, а я вокруг этих флагов кручусь, ничего вокруг не вижу... :(

    Благодарю за код.
 
Конференция "Основная" » Как сделать подчёркивание чёрточками?
Есть новые Нет новых   [134491   +13][b:0][p:0.001]