powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / задачка на экзамене
25 сообщений из 34, страница 1 из 2
задачка на экзамене
    #33496780
Leshka1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такая вот задачка была на экзамене:
Имеется MultiLineEdit Control (mle_1). Надо сделать так, чтобы слова переходили на следующую строку не в конце mle_1, а в середине. Сделать так, чтобы слово не рубилось, а переходило красиво. Например, имеем текст "Коммунизм победит!" Влазит в строку только "Коммунизм побе". Надо "победит!" перенести на новую строку, как только напишем букву "д" (в слове "победит!"). Теперь, как только в новой строке стерли "дит!" - "побе" должно вернуться обратно в первую строку. Короче сделать так, как работает Word. Как такое нарисовать?
...
Рейтинг: 0 / 0
задачка на экзамене
    #33496911
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mle_1.AutoHScroll=false
...
Рейтинг: 0 / 0
задачка на экзамене
    #33496912
SergeyGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создать mle_2 поверх mle_1 без границ, никто и знать не будет.
Само собой редактировать mle_2.
...
Рейтинг: 0 / 0
задачка на экзамене
    #33497112
Leshka1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergeyGorСоздать mle_2 поверх mle_1 без границ, никто и знать не будет.
Само собой редактировать mle_2.
А если серьезно? Если на то пошло, то можно и работу не искать, тогда никто и спрашивать не будет :)
...
Рейтинг: 0 / 0
задачка на экзамене
    #33497658
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.mle_1.AutoHScroll=false
Это вполне серьезно
...
Рейтинг: 0 / 0
задачка на экзамене
    #33498056
Leshka1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry. Dmitry.mle_1.AutoHScroll=false
Это вполне серьезно
какое отношение это имеет к задаче????
имеется длинный mle. Надо прерывать строку на 1/2 его длины.
...
Рейтинг: 0 / 0
задачка на экзамене
    #33498105
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за экзамен, если не секрет?
Я бы посоветовал автору вопроса, тому который экзаменатор, воспользоваться элементом RichTextEdit, а не заниматься х..ёй!
...
Рейтинг: 0 / 0
задачка на экзамене
    #33498399
Leshka1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
urvasА что за экзамен, если не секрет?
Я бы посоветовал автору вопроса, тому который экзаменатор, воспользоваться элементом RichTextEdit, а не заниматься х..ёй!
Абсолютно нормальный вопрос. Это не совсем экзамен. Просто задача при поступлении на работу.
...
Рейтинг: 0 / 0
задачка на экзамене
    #33498415
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по тому, что вы об этом спрашиваете на PowerBuilder форуме, вы видимо на PowerBuilderную работу устраиваетесь. Если это так, то вопрос абсолютно НЕнормальный :-)
...
Рейтинг: 0 / 0
задачка на экзамене
    #33498993
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leshka1Абсолютно нормальный вопрос. Это не совсем экзамен. Просто задача при поступлении на работу.
Скажем так, на мой взгляд стандартными методами PB это невозможно у mle нет свойства задающего правую границу текста отличную от реальной. А не стандартными ;)

1 Определить количество символов на котором необходимо переносить текст (лимит)

после каждого нажатия клавиши:

2.1 Считать текст из mle
2.2 убрать возвраты каретки
2.3 расставить возвраты каретки в места пробелов, исходя из отределенного лимита
2.4 Установить текст в mle

Правильно это будет работать на шрифтах типа Courier New. Для использования других шрифтов надо будет воспользоваться API функциями для определения ширины текста написанного определенным шрифтом.

Вопрос в догонку, а сколько времени отводится на решение данной задачи?
...
Рейтинг: 0 / 0
задачка на экзамене
    #33499029
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsСкажем так, на мой взгляд стандартными методами PB это невозможно у mle нет свойства задающего правую границу текста отличную от реальной. А не стандартными ;)
А что будет с курсором при этом? Здесь тогда уж и отрисовывать все самому необходимо...
...
Рейтинг: 0 / 0
задачка на экзамене
    #33499411
SergeyGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда принимают на работу, обычно тестируют не только
технические знания, но и способность выходить из тупиковых ситуаций.

Это самая обычная задача на смекалку, иначе это просто
бред или ошибка в постановке задания.
...
Рейтинг: 0 / 0
задачка на экзамене
    #33499539
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно попробовать em_setmargins
...
Рейтинг: 0 / 0
задачка на экзамене
    #33499628
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаем внимательно конец первого поста -

Короче сделать так, как работает Word. Как такое нарисовать?


Ответ ТОЛЬКО ОДИН - RichTextEdit control contains a document that it displays as formatted text.

Rich text format (RTF) is a standard for specifying formatting instructions and document content in a single ASCII document.
...
Рейтинг: 0 / 0
задачка на экзамене
    #33501798
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urvasЧитаем внимательно конец первого поста...

Читаем внимательно начало поста "Имеется MultiLineEdit Control...", остальное зависит от времени данного на решение.

Заменить на RichTextEdit возможный, но не самый правильный вариант, думаю что в этом случае вопрос звучал бы "Как програмно установить правую границу текста в RichTextEdit равную половине ширины визуального объекта?"
...
Рейтинг: 0 / 0
задачка на экзамене
    #33501956
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не по существу вопроса, а по сути подхода при приёме на работу.
Скорее всего, в силу своего возраста, не побоюсь этого слова - жизненного опыта, а так же массогабаритных показателей, я бы послал в голос данного экзаменатора, лучше бы прилюдно. Потому как задача высосана из пальца и не имеет смысла ни в рамках PowerBuildera, ни, тем более, в реальном приложении.
Всё вышесказанное отношу исключительно к себе.
...
Рейтинг: 0 / 0
задачка на экзамене
    #33503311
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urvasНе по существу вопроса, а по сути подхода при приёме на работу.
Скорее всего, в силу своего возраста, не побоюсь этого слова - жизненного опыта, а так же массогабаритных показателей, я бы послал в голос данного экзаменатора, лучше бы прилюдно. Потому как задача высосана из пальца и не имеет смысла ни в рамках PowerBuildera, ни, тем более, в реальном приложении.
Всё вышесказанное отношу исключительно к себе.
А вот не прав ты :) В том то и штука, что такая задачка вполне реальна.
Представь: приходишь в уже существующий проект в котором твой предшественник использовал MLE, а сейчас клиенты жалуются что мол неудобно сделан перенос. И шеф тебе дает задание: "Вот есть диалоговое окно, в нем все замечательно, но не работает перенос слов, исправь. Не трогая остального функционала!"
И правильных ответов будет действительно два - либо заменять mle на rte, либо извращаться с ручным переносом слов. Дальше уже тебе прийдется разбираться насколько сложно заменить все ссылки с mle_1 на rte_1 или проще будет сделать ручной перенос :)
...
Рейтинг: 0 / 0
задачка на экзамене
    #33503398
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
White Owlтебе прийдется разбираться насколько сложно заменить все ссылки с mle_1 на rte_1 или проще будет сделать ручной перенос :)
А еще можно сходить передернуть и забить (третий вариант )

А задачка на самом деле идиотская и поэтому лудше всего мой третий вариант
...
Рейтинг: 0 / 0
задачка на экзамене
    #33503414
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решение:

Код: plaintext
1.
2.
3.
4.
5.
long EM_SETMARGINS= 211   //0x00D3
long EC_RIGHTMARGIN= 2    //0x0002

//set the right margin to  50  pixels
send(handle(mle_1),EM_SETMARGINS,EC_RIGHTMARGIN, 50 * 65536 )
...
Рейтинг: 0 / 0
задачка на экзамене
    #33503483
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.решение:
...
Красивое решение. В рамках поставленной задачи работает, но не как Word, к сожалению :-(

Баг проявляется следующим образом - если между словами не поставить пробел, то два слова перенесутся на следующую строку, а после добавления пробела остаются на второй строке

PB 7.0.3.10213, Win2K Prof Eng

PS:Вообще-то, присоединяюсь к мнению urvas и Филипп - это вопрос не для собеседования.
...
Рейтинг: 0 / 0
задачка на экзамене
    #33504714
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99
PS:Вообще-то, присоединяюсь к мнению urvas и Филипп - это вопрос не для собеседования.
Тут на соседнем форуме вспоминали пруды Джоэла Сполски (http://russian.joelonsoftware.com/index.html) как вариант один из вопросов на собеседовании может быть нерешаемым.

Ведь от программиста (хорошего) не требуется знание констант EM_SETMARGINS наизусть, от него требуется быстро найти возможные подходы к решению проблемы. И оценить какой из путей приведет к решению задачи с наименьшими затратами.

В этом случае на собеседовании ответ "невозможно" это самый "неправильный" ответ из всех возможных. Так что это как раз правильный вопрос для собеседования.
...
Рейтинг: 0 / 0
задачка на экзамене
    #33505818
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По большому счёту, специалист по РВ не должен знать даже о существовании константы EM_SETMARGINS, поскольку РВ - это 4GL.
Что специалист по РВ должен знать точно, это что РВ не есть инструмент общего программирования и НЕ должен использоваться для создания wordprocessorных утилит, о чем и следует заявить в ответ на АБСОЛЮТНО ненормальный вопрос...
...
Рейтинг: 0 / 0
задачка на экзамене
    #33506935
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппЧто специалист по РВ должен знать точно, это что РВ не есть инструмент общего программирования и ...
С одной стороны может и нет, а с другой стороны при создании любого ПО на PB чуть сложнее "Склада для малых предприятий", возникает масса проблем требующих решения в рамках "общего программирования". Это интеграция с сторонним ПО, АБС-ами, почтовыми и отчетными системами, SWIFT-ом и пр. Так и интеграция со всевозможным железом кассовыми и фискальными аппаратами, сканнерами и прочим оборудованием.

И кому нужен программист которому ставят задачу "Нужно считать данные из офисной АТС, сохранить в базе, выдать отчет, перевести его в tiff и отправить на факс-сервер" ответит что "РВ - это 4GL" и к работе с COM портами не предназначен, tiff не поддерживает, стандартных средст для работы с Факс-Сервером не имеет?
...
Рейтинг: 0 / 0
задачка на экзамене
    #33508583
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппЧто специалист по РВ должен знать точно, это что РВ не есть инструмент общего программирования и НЕ должен использоваться для создания wordprocessorных утилит, о чем и следует заявить в ответ на АБСОЛЮТНО ненормальный вопрос...
А скажи пожалуйста, PB это инструмент для чего?

Вот я всегда считал что PB это инструмент для рисования GUI к базе данных. Я не прав?
...
Рейтинг: 0 / 0
задачка на экзамене
    #33508589
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И я так считаю, посему вордпроцессинг - это из другой оперы :-)
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / задачка на экзамене
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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