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

СообЧА. Программирование на Delphi


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

сообча: лето2002
СообЧА : Последний(?) выпуск...

Сегодня в номере :

Грустные Новости...

Поиск и замена текста в Tmemo.
Вставка текста в TMemo II

Фонд поддержки наших проектов и рассылки:
Получатель: ИНН 7707083893 Новгородское ОСБ № 8629
Счет получателя: 47422810343029900030
Банк получателя
:Новгородское ОСБ № 8629 г.Великий Новгород 30101810100000000698
Бик 044959698

Рассылки Subscribe.Ru это стильно удобно, и информативно!
СообЧа (СООБщество ЧАйников). Обмен опытом, вопросы, ответы.


подпишись и подпиши друга!!!!

 Contact (Связь с Нами):

Pixel@novgorod.net + Subject: (см ниже)

 

Vcl Haunting

"Золотой Чайник"

Вопрос по дельфи N (N номер версии)

Help!

Реклама

Полезный линк

 

Наш сайт : pixelsoft.narod.ru

Книги по Дельфи которые ВЫ ОБЯЗАНЫ ПРОЧИТАТЬ...

Не столько учебник, сколько справочное пособие по наиболее используемым алгоритмам и командам...

Пожалуй лучший учебник по дельфи 6 на сегодняшний день, вам даже не надо знать дельфи, чтобы начать ...

  • Дельфи 5: Руководство разработчика БД
  •  

    DirectX. Графика в проектах Delphi (+CD - ROM)
    Лучшее пособие для тех кто решил связаться с DirectX, по слухам на CD помимо примеров есть DirectxSDK7.0 от Microsoft...

    Среда программирования Delphi 5-6. Справочное пособие
    Книга полностью описывает среду программирования Delphi, которая включает в себя полный набор визуальных инструментов для быстрой и профессиональной разработки приложений для различных операционных систем, кроме того рассмотрены проблемы перехода между этими версиями дельфи.

    Программирование в Delphi 6 (+ floppy дискета ) Чайникам рекомендуется!!!

    Книга содержит методические и справочные материалы по новой версии системы визуального объектно-ориентированного программирования Delphi 6 и предшествующим версиям Delphi 5 и 4. Рассмотрены такие новые возможности Delphi, как кросс-платформенные приложения, технологии доступа к данным ADO, InterBase Express, dbExpress, компоненты ; серверы СОМ, технологии распределенных приложений СОМ, CORBA, MIDAS, новая методика диспетчеризации действий...


Грустные новости...

Ксожалению нашей рассылке становится выходить все труднее и труднее и это далеко не связано с моим свободным временем... Счета от провайдера просто давят наш издательский энтузиазм и найти материал в сети стало невозможно, чего уж говорить о самом процессе публикации рассылки...

Так вот на досуге подумайте, а нужна ли вам рассылка ? Если нужна, то помогите нам, ведь мы не раз помогали вам... Не так то просто мне было писать в ноябре и декабре, боле гриппом и еле доползая до клавиатуры, но я был с вами в трудные минуты. Отвечал на письма, теперь пришла ваша очередь...

Всем читателям, кто мог бы помочь, с сетью или обеспечить нам бесплатное время , прошу откликнуться

Особенно прошу всех , кто живет в г.Великий Новгород, поскольку я вещаю оттуда...
P.S Возможно это последний выпуск или публиковаться мы теперь будем намного реже (1 раз в месяц) ... Я перейду на Dlp.by.ru и займусь оплачиваемым проектом, чтобы совсем не лишиться коннекта с сетью :(....


Поиск и замена текста в Tmemo..

procedure TForm1.FindDialog1Find(Sender: TObject);
VAR

Buff, P, FT : PChar;
BuffLen : Word;
begin

WITH Sender AS TFindDialog DO
BEGIN
GetMem(FT, Length(FindText) + 1);
StrPCopy(FT, FindText);
BuffLen := Memo1.GetTextLen + 1;
GetMem(Buff, BuffLen);
Memo1.GetTextBuf(Buff, BuffLen);
P := Buff + Memo1.SelStart + Memo1.SelLength;
P := StrPos(P, FT);
IF P = NIL THEN MessageBeep(0)
ELSE
BEGIN
Memo1.SelStart := P - Buff;
Memo1.SelLength := Length(FindText);
END;
FreeMem(FT, Length(FindText) + 1);
FreeMem(Buff, BuffLen);
END;
end;

procedure TForm1.ReplaceDialog1Replace(Sender: TObject);
begin

WITH Sender AS TReplaceDialog DO
WHILE True DO
BEGIN
IF Memo1.SelText <> FindText THEN
FindDialog1Find(Sender);
IF Memo1.SelLength = 0 THEN Break;
Memo1.SelText := ReplaceText;
IF NOT (frReplaceAll IN Options) THEN Break;
END;
end;



Вставка текста в TMemo II


Используйте сообщение Windows API EM_REPLACESEL: (из справки по Windows API)

EM_REPLACESEL
wParam = 0; /* не используется, должен быть ноль */
lParam = (LPARAM) (LPCSTR) lpszReplace; /* адрес новой строки */

Для замены текущего выбранного текста в поле редактирования, приложение
должно послать сообщение EM_REPLACESEL, где параметр

lpszReplace содержит новый текст.
Параметр Описание
lpszReplace Значение lParam. Указатель на терминированную нулем строку,
содержащую замещающий текст. { Указатель на строку }

Возвращаемое значение
Данное сообщение значение не возвращает.

Комментарии
Используйте сообщение EM_REPLACESEL, если вы хотите изменять только часть
текста поля редактирования.
Если вам нужно заменить весь текст, используйте сообщение WM_SETTEXT.

В случае отсутствие выбранного текста, замещающий текст вставляется
в текущую позицию курсора.
Сделайте список с вашими стандартными фразами, и используйте события "OnClick" или "OnMouseDown" в комбинации с "Alt", "Shift" или "Ctrl". Пример: Когда пользователь нажимает клавишу "Alt" в комбинации с правой кнопкой мыши, выводится список заранее подготовленных фраз и выбранная вставляется в ваш TMemo-компонент.

Для вставки строки в Memo:


--------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin

with Memo1 do begin
SelStart:=10;
SelLength:=0;
SelText:='Эта строка включается в Memo, начиная с 10-й позиции ';
end;
end;

Для вставки строки И замены некоторого существующего текста:

--------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin

with Memo1 do begin
SelStart:=10;
SelLength:=20;
SelText:='Эта строка включается в Мемо, начиная с 10-й позиции и замещает собой 20 символов ';
end;
end;

Поместите текст, который вы хотите вставить, в переменную PChar, затем вставьте текст в Memo, используя команду SetSelTextBuf, где SelStart устанавливается в позицию курсора TMemo. Это классно работает ..

Другая полезность: вы можете обхойти предел TMemo в 32K в случае, если вы загружаете в него текст, пользуясь методом/командой Lines.LoadfromFile. Компонент имеет внутренний предел в 32K. Если вы загружаете нужный файл в указатель, и используете команду/метод SetTexBuf, то в этом случае в TMemo можно загрузить текста вплоть до 64K.




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное