|
Вопрос # 65/ вопрос открыт / |
|
На невидимой форме3 расположен РичЕдит1 (на всб форму). В какое то время РичЕдит заполняется строками. Мне нужно, чтобы только при свернутой главной форме1, заполнился РичЕдит1 на форме3. После этого надо чтобы форма3 изменила разме так, чтобы ширина равнялась длине самой длиной строки в РичЕдит1 (но не больше чем длина строки в 22 символа шрифтом Courier New размером Size=10, и + может быть ширина полосы прокрутки), а высота должна быть такой, сколько занимают строки в РичЄдит1(но не больше чем на 6 строк темже шрифтом). При этом, если в РичЕдит1 строк больше чем 6, то надо чтобы включилась полоса прокрутки, и форма3 изменила ширину на ширину полосы прокрутки.
После этого форма должна стать видимой на некоторое время (заданое пользователем в ИНИ файле, домустим 3сек.), и находиться в это время поверх всех окон. При она должна отобразится в прамо нижнем углу так, чтобы нижний край формы3 "лежал" на панели задач (находился на уровне верхнего края панели задач), а правый край находился по правому краю видимой части монитора, или на несколько пунктов левее. При отображении формы3 на несколько секунд, главная форма1 должна оставаться свернутой.
Помогите, пожалуйста!!! Спасибо.
 |
Вопрос задал: Игорь Середюк (статус: Посетитель)
Вопрос отправлен: 27 июня 2006, 13:46
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Помфюк Владимир Степанович
Здравствуйте, Игорь Середюк!
Courier New - моноширинный шрифт (начертание всех символов имеет одинаковую ширину), так что ширину символа можно померять например так: компоненту Edit даете свойство AutoSize:=true (шрифт и размер тоже разумеется меняете) и пишете в него один символ, замечаете ширину, дописываете второй - шиина изменяется. разница - один символ. Для уверенности можете еще несколько дописать - проверить. Высота - аналогично (возможно придется Memo расширять/сужать вручную, но для 6ти строк зависимость найдете более-менее точно).
RichEdit - "умный" и полосы прокрутки включает сам по мере надобности. Единственное что вам надо - при количестве строк более 6ти - изменить ширину формы (как узнать на сколько - см. выше :-) )
Чтоб задать положение формы Вам надо использовать Screen.DesktopHeight, Screen.DesktopWidth, Screen.DesktopTop, Screen.DesktopLeft
Поверх всех окон FormStyle:=fsStayOnTop;
Чтобы показать на 3 секунды и в это время что-то добавлялось в RichEdit следует использовать Timer (Как альтернатива можно просто показать окно "повесить" программу на 3 секунды и спрятать, но это - криво)
Ответ #2. Отвечает эксперт: bruder
Здравствуйте, Игорь Середюк!
Вот что у меня получилось. Ограничение не стал делать, времени не хватило, это не сложно и самому сделать. К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 |
Ответ отправил: bruder (статус: 4-ый класс)
Время отправки: 27 июня 2006, 17:11
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|