Вопрос № 28510: Доброе время суток эксперты!
Есть Memo. К нему надо прикрутить Scrollbar.
Свойства Scrollbar у него нет.
Как получить колличество строк?
Как установить определенную строку??
С пример если можно. Просто теория не подходит.
MS...Вопрос № 28533: Здавствуйте эксперты !
Подскажите можно -ли с помощью компонента ClientSocket работать по протоколу UDP. Если нельзя посоветуйте компонент, с помощью которого можно. А главное как . Если ответбудет с примером буду очень благодарен....
Вопрос № 28.510
Доброе время суток эксперты!
Есть Memo. К нему надо прикрутить Scrollbar.
Свойства Scrollbar у него нет.
Как получить колличество строк?
Как установить определенную строку??
С пример если можно. Просто теория не подходит.
MSDN уже читал. Там можно установить Point.
Не отвечайте если хотите дать совет что у Memo есть встроенный скроллбары.
Отправлен: 29.10.2005, 20:35
Вопрос задал: Delphin (статус: Студент)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Jadd
Здравствуйте, Delphin!
А что ж еще Вам надо-то? Есть у Мемо свой скрол бар. Количество строк получаем так: Memo1.Lines.Count; Что значит установить? Узнать на какой строке курсор Memo1.Lines.CaretPos.X;. Что еще нужно? MSDN не содержит инфы по Delphi. Нужно что-то с WinAPI? Не ясно.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 29.10.2005, 21:05
Отвечает: Denisss Здравствуйте, Delphin!
У Memo есть свойство "ScrollBars".
Вместо Memo можно использовать RichEdit - у него скроллбары подключаются на более автоматическом уровне и выглядит это красивее.
Количество строк можно получить так:
Memo.Lines.Count
Установка курсора в определенную строку см. в приложении.
В МСДН действительно ничего нет, т.к. это справка по WinAPI функциям, а Вам нужна справка по функциям Delphi. Лучше всего воспользоваться втроенной справкой.
Приложение:
Ответ отправил: Denisss (статус: Практикант)
Отправлен: 29.10.2005, 23:31
Отвечает: sir henry
Здравствуйте, Delphin!
1. Послушайте, любезнейший, но ведь у мемо действительно есть встроеный скроллбар. :)
Ставте мне хоть двойку, хоть еденицу за ответ, но не могу промолчать! :)
Свойство Memo1.ScrollBar ставите в одно из следующих значений:
ssBoth - появляются оба скроллбара - вертикальный и горизонтальный;
ssVertical - только вертикальный;
ssHorizontal - только горизонтальный.
2. Количество строк содерхится в свойстве Memo1.Lines.Count.
3. Что такое установить я не знаю, могу только сказать как встать на определенную строку - Memo1.Lines[Ноер_строки]. Мемо - это по другому говоря массив из строк - TString.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 30.10.2005, 07:39
Отвечает: Schmak
Здравствуйте, Delphin!
Чтобы получить количество строк memo1.lines.count;
Ответ отправил: Schmak (статус: 5-ый класс)
Отправлен: 30.10.2005, 09:23
Вопрос № 28.533
Здавствуйте эксперты !
Подскажите можно -ли с помощью компонента ClientSocket работать по протоколу UDP. Если нельзя посоветуйте компонент, с помощью которого можно. А главное как . Если ответбудет с примером буду очень благодарен.
Отправлен: 30.10.2005, 10:28
Вопрос задал: Temniy (статус: 4-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, Temniy!
Через ClientSocket, по-моему, нельзя. Воспользуйтесь компонентами TidUDPServer и TidUDPClient из набора Indy (страницы Indy Servers и Indy Clients). В D6/D7 этот пакет входит в стандартную поставку. Сам с этим не работал, поэтому пример, к сожалению, привести не могу.
--------- Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 30.10.2005, 11:43
Отвечает: sir henry
Здравствуйте, Temniy!
Я думаю можно. По крайней мере есть специальный компонент - TUdpSocket в модуле с сокетами.
Вот список статей по работе с сокетами, там есть примеры:
http://www.bib.com.ua/cat_art33.html
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 30.10.2005, 11:51
Отвечает: Tsechoev Bagaudin
Здравствуйте, Temniy!
Переходишь на вкладку Indy Servers кидаешь компоненту IdUDPServer и на событие UDPRead бишешь обработчик, т.е. код, например:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
TS: TStringStream;
begin
// этот пример из стандартной справки Indy, это все нужно если передаются текстовые данные
// в том случае, если передаются бинарные данные, то просто обращайся к AData
TS:= TStringStream.Create('');
TS.CopyFrom(AData,AData.Size);
end;
Отправлять можешь через метод Send.
Чуть не забыл, не забудь в блоке uses подключить юнит IdSocketHandle, иначе будет ругаться.
Удачи!
--------- Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Отправлен: 30.10.2005, 21:36 Оценка за ответ: 5 Комментарий оценки: Круто спасибо за помощь