Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 239

/ вопрос открыт /

Приветствую, уважаемые эксперты!

Использую MessageBox для вывода различных сообщений. На разных ОС (хр, 7) форма сообщения выглядит по разному, а именно на ХР строки текста сообщения длиннее чем в Win 7. Если не использовать #10#13 то форма сообщения получается очень широкой и не красивой.(

Есть ли способ задать авто перенос строк ? или другое решение...?

mr_switch Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: mr_switch (статус: Посетитель)
Вопрос отправлен: 27 апреля 2011, 22:12
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 12; последнее сообщение — 3 июня 2011, 08:26; участников в обсуждении: 4.

27 апреля 2011, 22:25: Вопрос перемещён из тематического раздела Delphi » Оболочка Delphi, компилятор, версии среды и т.д. в раздел Delphi » Общие вопросы по программированию модератором Ерёмин А.А.

min@y™

min@y™ (статус: Доктор наук), 28 апреля 2011, 08:31 [#1]:

Цитата (mr_switch):

Если не использовать #10#13 то форма сообщения получается очень широкой и не красивой.(

Ну дык используй #10#13, что тебе мешает-то?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
mr_switch

mr_switch (статус: Посетитель), 28 апреля 2011, 11:42 [#2]:

min@y™: В программе уже используется много MessageBox - не хотелось бы их всех редактировать.

Может есть какие-то способы , задать форме MessageBox определенную ширину?
min@y™

min@y™ (статус: Доктор наук), 28 апреля 2011, 11:50 [#3]:

Цитата (mr_switch):

В программе уже используется много MessageBox - не хотелось бы их всех редактировать.

Уууу, какой ленивый...

Цитата (mr_switch):

Может есть какие-то способы , задать форме MessageBox определенную ширину?

А хрен его знает, я никогда не заморачивался подобными проблемами.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
mr_switch

mr_switch (статус: Посетитель), 28 апреля 2011, 14:04 [#4]:

решил написать вот такую функцию, которая вставляет в строку переносы после определенного кол. символов, перенос строки вставляется между словами. Может кому пригодится....
function str_transfer(str: string; c: Integer): String;
var
i:Integer;
begin
  i:= c;
  while PosEx(' ',str,i) > 0 do
    begin
      if PosEx(' ',str,i) > 0 then
        begin
          i:= PosEx(' ',str,i);
          Insert(#10#13,str,i+1);
          i:= i+c;
        end;
    end;
  Result:= str;
end;
mirt.steelwater

mirt.steelwater (статус: Посетитель), 2 июня 2011, 13:38 [#5]:

переопредели процедуру MessageBox
в ней вызывай конструктор формы и показ ее в модальном режиме
сообщение показывай в TMemo - к примеру
Ⓐ свобода сопротивление солидарность
min@y™

min@y™ (статус: Доктор наук), 2 июня 2011, 13:49 [#6]:

Цитата (mirt.steelwater):

переопредели процедуру MessageBox в ней вызывай конструктор формы и показ ее в модальном режиме сообщение показывай в TMemo - к примеру

Ты, наверное, удивишься, но такая байда уже есть стандартная. Называется CreateMessageDialog(), находится в модуле Dialogs.pas.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 2 июня 2011, 14:23 [#7]:

Цитата (mr_switch):

На разных ОС (хр, 7) форма сообщения выглядит по разному
Дык в этом и смысл виндового "оформления", "тем" и т.д.

Цитата (mr_switch):

задать форме MessageBox определенную
MessageBox - показывает не форму, а диалог, а сама функция системная, т.е. нативная для данной версии винды. Если это поведение не устраивает - то придется сделать свой диалог, и если лень то, как сказали выше, переопределить функцию и там показывать. (в принципе, наверно можно засабклассить и диалог MessageBox, но это обещает быть более трудоёмким чем предложенное решение)

Цитата (min@y™):

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

min@y™

min@y™ (статус: Доктор наук), 2 июня 2011, 15:05 [#8]:

Цитата (bugmenot):

Это для кастомизации совсем другого диалога.

Совсем другого - это какого?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 2 июня 2011, 16:31 [#9]:

Цитата (min@y™):

Совсем другого - это какого?

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

min@y™

min@y™ (статус: Доктор наук), 2 июня 2011, 17:01 [#10]:

Цитата (bugmenot):

MessageDlg-подобного же!

Ну дык и я про то же. Это ж удовлетворит аффтара вопроса.
Причём MessageDlg() тут совсем ни при чём, эта функция создаёт и возвращает форму.

Цитата (bugmenot):

F1

Ты меня поучи ещё! Я прекрасно знаю эту функцию и даже корректировал её исходник.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 2 июня 2011, 22:16 [#11]:

Цитата (min@y™):

Ты меня поучи ещё!

Я с вами коров не пас, не надо мне тыкать.

Цитата (min@y™):

Я прекрасно знаю эту функцию и даже

Тогда зачем было переспрашивать? "Забыл" чтоли?

Цитата (min@y™):

MessageDlg() тут совсем ни при чём, эта функция

Если бы виликий гуру снизошел до исходников, то увидел бы, что одна функция является оберткой для другой.
виконання програми розпочинається з того самого мiсця, де призупинилося.

min@y™

min@y™ (статус: Доктор наук), 3 июня 2011, 08:26 [#12]:

Цитата (bugmenot):

Я с вами коров не пас, не надо мне тыкать.

Нет, надо! Это интернет, тут все равны. И не надо мне выкать.

Цитата (bugmenot):

Тогда зачем было переспрашивать? "Забыл" чтоли?

Я говорил про функцию CreateMessgeDialog(), а не про MessageDlg().

Цитата (bugmenot):

Если бы виликий гуру снизошел до исходников, то увидел бы, что одна функция является оберткой для другой.

Снизошёл, посмотрел. Функция MessageDlg() является обёрткой для функции CreateMessageDialog(). И чо?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:50
Выполнено за 0.04 сек.