powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Можно ли выровнять текст в MsgBox?
12 сообщений из 12, страница 1 из 1
Можно ли выровнять текст в MsgBox?
    #37241778
Kyubi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброй ночи, форумчане!

содержимое информационного окна типа:
Код: plaintext
"bla bla bla"+ vbCr +"bla bla bla bla"
хотелось бы центрировать в этом самом информационном окне, как это сделать?
...
Рейтинг: 0 / 0
Можно ли выровнять текст в MsgBox?
    #37241781
Kyubi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
только не количеством вручную поставленных пробелов, а как-нибудь программно..
...
Рейтинг: 0 / 0
Можно ли выровнять текст в MsgBox?
    #37241783
Kyubi,
проще будет создать форму (надпись, кнопка) и вызывать её вместо стандартного MsgBox.
...
Рейтинг: 0 / 0
Можно ли выровнять текст в MsgBox?
    #37241788
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно тупо:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    Dim t( 3 )
    t( 1 ) = "bla bla bla"
    t( 2 ) = "bla bla bla bla"
    t( 3 ) = "bla!"
    wd =  40 
    t( 0 ) = ""
    For i =  1  To  3 
        wd0 = (wd - Len(t(i))) \  2 
        t( 0 ) = t( 0 ) & Space(wd0) & Left(t(i), wd) & Space(wd - wd0 - Len(t(i))) & vbCr
    Next
    MsgBox (t( 0 ))

Можно корректно (спасибо Анатолию ):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Function PADC(Src As String, Lg As Integer) As String
  Result = Left(Src, Lg)
  While Len(Result) < Lg
    Result = Result & " "
    If Len(Result) < Lg Then
      Result = " " & Result
    End If
  Wend
  PADC = Result
End Function
...
MsgBox (PADC("bla bla",  10 ) & vbCr & PADC("bla bla bla",  10 ))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Можно ли выровнять текст в MsgBox?
    #38465862
reklama28
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробую оба способа, но текст не центрируется.
...
Рейтинг: 0 / 0
Можно ли выровнять текст в MsgBox?
    #38467275
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reklama28, а вы предварительно разобрались, что в вышеприведённых примерах означают числа "40" и "10"?
И что эти числа должны быть получены заранее либо эмпирически, либо из настроек Win?
И да, исходные данные должны быть строками (либо приводиться к ним в коде, и быть без начальных и конечных пробелов).
...
Рейтинг: 0 / 0
Можно ли выровнять текст в MsgBox?
    #38467915
reklama28
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я выложил скриншот сделанный двумя способами, 40 это ширина окна (в 2х примерах разная), что такое 10 уже не помню. Сейчас методом тыка буду понимать, наверное смещение какое-нибудь. Неужели нет универсального способа под любой расширение и любую длину текста?
...
Рейтинг: 0 / 0
Можно ли выровнять текст в MsgBox?
    #38467950
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет "универсального" способа. Ибо раз - вы вызываете системное окно (если более общо - не собственную форму), два - шрифт TrueType, а не моноширинный.
...
Рейтинг: 0 / 0
Можно ли выровнять текст в MsgBox?
    #38468311
reklama28
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сразу говорю, что я в vb на уровне любителя, может выше так и реализовано.
Могу сформулировать только как я это себе представляю. Или дайте ссылку, если можно, на создание фирменного MsgBox

1. Считаем количество симоволов в каждой строке
2. определяем максимально длинную строку из тех, что есть
3. На основе п.2 устанавливаем ширину окна
4. Строки, в которых количество символов меньше максимально длинной увеличиваем пробелами слева и справа, где кол-во пробелов с каждой стороны = (длина длинной-длина текущей)/2, значение должно быть целым (что-то про деление на 2 фигурирует в коде, но вот как именно работает код мне не разобраться)
По поводу центрирования я не знаю как будет, это выше моего уровня знаний, но строки будут выравнены относительно друг друга.

И вообще вот эта вся фигня с пробелами она будет правильной на любом разрешении экрана?
...
Рейтинг: 0 / 0
Можно ли выровнять текст в MsgBox?
    #38468323
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reklama28,

Как было сказано выше - создайте свою форму, свою функцию MyMsgBox и не парьтесь.
...
Рейтинг: 0 / 0
Можно ли выровнять текст в MsgBox?
    #38468543
reklama28
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

если честно слово "функция" меня пугает. Пытаюсь искать на форуме какую-нибудь инструкцию. Можете поделится ссылкой, если кто знает?
...
Рейтинг: 0 / 0
Можно ли выровнять текст в MsgBox?
    #38468583
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Инструкцией, в таком случае, является обычный учебник по VB, в котором на первых страницах будет рассказано, как создавать свои формы и функции.

А пока что не стоит вообще, заниматься центрированием текста в мессаджбоксе - это пока для вас не самое главное.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Можно ли выровнять текст в MsgBox?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]