Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 125
от 18.05.2005, 10:30

Администратор:Калашников О.А.
В номере:Вопросов: 2, Ответов: 14


Вопрос № 20733: День добрый!!! Помогите решить проблемы: 1. При клике на RichEdit'е нада получить строку над которой произведён клик. 2. В месте где находится стока создать например кнопку. Кнопку создавать умею, а как получить координаты строки (не в ря...
Вопрос № 20737: вопрос конечно глупый но всё таки, Как сделать так что бы при вводе текста в, который выходит за пределы рамки memo появлялась полоса прокрутки?...

Вопрос № 20733
День добрый!!!
Помогите решить проблемы:
1. При клике на RichEdit'е нада получить строку над которой произведён клик.
2. В месте где находится стока создать например кнопку. Кнопку создавать умею, а как получить координаты строки (не в ряд, столбец , а в координатах)???
В итоге должно получится, что при клике на строке поверх строки появляется кнопка содержащая в Caption'е эту самую строку.
Отправлен: 12.05.2005, 13:15
Вопрос задал: heckfy (статус: Посетитель)
Всего ответов отправлено: 4

Отвечает: X
Здравствуйте, heckfy!
Можно сделать так. Сдесь рисуются прямоугольники иколо richedit-а.Константу с надо изменять для каждого шрифта.Я вычислял её так: я поставил в richedit-е цифры от 1 до 15, они заняли 200 пикселей в высоту.200/15=3.(3)

Приложение:

Ответ отправил: X (статус: 3-ий класс)
Отправлен: 12.05.2005, 15:19

Отвечает: corsar
Здравствуйте, heckfy!
procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var P : TPoint;
begin
SendMessage(RichEdit1.Handle,EM_POSFROMCHAR,integer(@P),RichEdit1.SelStart);
//P - координаты выбранного символа относительно клиентской области RichEdit1

Button1.Left:=RichEdit1.Left+2;
Button1.Width:=RichEdit1.Width-4;
Button1.Height:=Abs(RichEdit1.SelAttributes.Height)+4;
Button1.Top:=RichEdit1.Top+P.Y+1;
end;
Ответ отправил: corsar (статус: 2-ой класс)
Отправлен: 12.05.2005, 19:15

Отвечает: Stamm
Здравствуйте, heckfy!
LineNumber := Memo1.Perform(EM_LINEFROMCHAR, -1, 0);
Ответ отправил: Stamm (статус: 2-ой класс)
Отправлен: 13.05.2005, 01:14

Отвечает: VBA
Здравствуйте, heckfy!
Посылаем сообщение EM_LINEFROMCHAR:
Line:=Memo1.Perform(EM_LINEFROMCHAR, -1, 0);
(Line - переменная)
Ответ отправил: VBA (статус: 2-ой класс)
Отправлен: 13.05.2005, 12:34


Вопрос № 20737
вопрос конечно глупый но всё таки, Как сделать так что бы при вводе текста в, который выходит за пределы рамки memo появлялась полоса прокрутки?
Отправлен: 12.05.2005, 14:31
Вопрос задал: zeromaps (статус: 3-ий класс)
Всего ответов отправлено: 10

Отвечает: Александр, П
Здравствуйте, zeromaps!
У memo есть свойство ScrollBars. Там выставить можно какие полосы будут появляться
Ответ отправил: Александр, П (статус: 1-ый класс)
Отправлен: 12.05.2005, 14:56

Отвечает: Jadd
Здравствуйте, zeromaps!
Да очень просто. Нужно в свойстве ScrollBar выставить Both. Изучайте компоненты внимательно.
Ответ отправил: Jadd (статус: 3-ий класс)
Отправлен: 12.05.2005, 16:09

Отвечает: corsar
Здравствуйте, zeromaps!
Memo1.ScrollBars:=
Варианты:
ssNone
ssHorizontal
ssVertical
ssBoth
Если есть горизонтальная полоса прокрутки, то текст, не влезший в окошко переноситься на новые строки не будет, а будет возможность его прокрутить
Ответ отправил: corsar (статус: 2-ой класс)
Отправлен: 12.05.2005, 18:52

Отвечает: Stamm
Здравствуйте, zeromaps!
Memo1.ScrollBars:=ssBoth;
Ответ отправил: Stamm (статус: 2-ой класс)
Отправлен: 12.05.2005, 19:45

Отвечает: Ерёмин Андрей Андреевич
Здравствуйте, zeromaps!
Элементарно:
Memo.ScrollBars:=sbHorizontal;
Ответ отправил: Ерёмин Андрей Андреевич (статус: 2-ой класс)
Отправлен: 12.05.2005, 21:20

Отвечает: CJ
Здравствуйте, zeromaps!
У memo есть свойство ScrollBars, вот и измени его на ssBoth.
Ответ отправил: CJ (статус: Студент)
Отправлен: 12.05.2005, 21:37

Отвечает: sir henry
Здравствуйте, zeromaps!
Для этого надо отслеживать размер строки. Как только она достигает размера мемо, то делайте так:
TMemo.ScrollBars:=ssHorizontal;
Отслеживать можно с помощью свойства TMemo.CaretPos.
Может быть сделать проще и сразу, при проектировании, вставить полосу прокрутки? По-моему, вид она нисколько не портит. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 13.05.2005, 05:32

Отвечает: Ballon
Здравствуйте, zeromaps!
Там в инспекторе объектов на вкладке свойства есть свойство ScrollBars которое может принимать значения ssBoth, ssHorizontal, ssNone, ssVertical. Надеюсь понятные каждое из значений.
Ответ отправил: Ballon (статус: 2-ой класс)
Отправлен: 13.05.2005, 11:30

Отвечает: VBA
Здравствуйте, zeromaps!
У компонента Memo есть свойство ScrollBars.
Возможные значения:
ssNone -нет полос прокрутки
ssVertical - только вертикальная полоса прокрутки
ssHorizontal - только горизонтальная полоса прокрутки
ssBoth - обе полосы прокрутки.
Если хочешь, то можно отслеживать длину строки и только тогда устанавливать это свойство.
Ответ отправил: VBA (статус: 2-ой класс)
Отправлен: 13.05.2005, 12:48

Отвечает: And1
Здравствуйте, zeromaps!
Свойство ScrollBars - в значение ssBoth
Ответ отправил: And1 (статус: 2-ой класс)
Отправлен: 14.05.2005, 16:03


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться

В избранное