Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / задачка на экзамене / 25 сообщений из 34, страница 1 из 2
23.01.2006, 11:26
    #33496780
Leshka1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
Такая вот задачка была на экзамене:
Имеется MultiLineEdit Control (mle_1). Надо сделать так, чтобы слова переходили на следующую строку не в конце mle_1, а в середине. Сделать так, чтобы слово не рубилось, а переходило красиво. Например, имеем текст "Коммунизм победит!" Влазит в строку только "Коммунизм побе". Надо "победит!" перенести на новую строку, как только напишем букву "д" (в слове "победит!"). Теперь, как только в новой строке стерли "дит!" - "побе" должно вернуться обратно в первую строку. Короче сделать так, как работает Word. Как такое нарисовать?
...
Рейтинг: 0 / 0
23.01.2006, 12:07
    #33496911
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
mle_1.AutoHScroll=false
...
Рейтинг: 0 / 0
23.01.2006, 12:07
    #33496912
SergeyGor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
Создать mle_2 поверх mle_1 без границ, никто и знать не будет.
Само собой редактировать mle_2.
...
Рейтинг: 0 / 0
23.01.2006, 13:05
    #33497112
Leshka1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
SergeyGorСоздать mle_2 поверх mle_1 без границ, никто и знать не будет.
Само собой редактировать mle_2.
А если серьезно? Если на то пошло, то можно и работу не искать, тогда никто и спрашивать не будет :)
...
Рейтинг: 0 / 0
23.01.2006, 15:38
    #33497658
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
Dmitry.mle_1.AutoHScroll=false
Это вполне серьезно
...
Рейтинг: 0 / 0
23.01.2006, 17:38
    #33498056
Leshka1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
Dmitry. Dmitry.mle_1.AutoHScroll=false
Это вполне серьезно
какое отношение это имеет к задаче????
имеется длинный mle. Надо прерывать строку на 1/2 его длины.
...
Рейтинг: 0 / 0
23.01.2006, 18:08
    #33498105
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
А что за экзамен, если не секрет?
Я бы посоветовал автору вопроса, тому который экзаменатор, воспользоваться элементом RichTextEdit, а не заниматься х..ёй!
...
Рейтинг: 0 / 0
23.01.2006, 20:55
    #33498399
Leshka1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
urvasА что за экзамен, если не секрет?
Я бы посоветовал автору вопроса, тому который экзаменатор, воспользоваться элементом RichTextEdit, а не заниматься х..ёй!
Абсолютно нормальный вопрос. Это не совсем экзамен. Просто задача при поступлении на работу.
...
Рейтинг: 0 / 0
23.01.2006, 21:08
    #33498415
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
Судя по тому, что вы об этом спрашиваете на PowerBuilder форуме, вы видимо на PowerBuilderную работу устраиваетесь. Если это так, то вопрос абсолютно НЕнормальный :-)
...
Рейтинг: 0 / 0
24.01.2006, 10:54
    #33498993
Estets
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
Leshka1Абсолютно нормальный вопрос. Это не совсем экзамен. Просто задача при поступлении на работу.
Скажем так, на мой взгляд стандартными методами PB это невозможно у mle нет свойства задающего правую границу текста отличную от реальной. А не стандартными ;)

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

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

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

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

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

Это самая обычная задача на смекалку, иначе это просто
бред или ошибка в постановке задания.
...
Рейтинг: 0 / 0
24.01.2006, 12:49
    #33499539
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
можно попробовать em_setmargins
...
Рейтинг: 0 / 0
24.01.2006, 13:06
    #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
25.01.2006, 11:31
    #33501798
Estets
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
urvasЧитаем внимательно конец первого поста...

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

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

А задачка на самом деле идиотская и поэтому лудше всего мой третий вариант
...
Рейтинг: 0 / 0
25.01.2006, 19:20
    #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
25.01.2006, 20:08
    #33503483
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка на экзамене
Dmitry.решение:
...
Красивое решение. В рамках поставленной задачи работает, но не как Word, к сожалению :-(

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

PB 7.0.3.10213, Win2K Prof Eng

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

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

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

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

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


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