Новые книги

Новое издание книги, посвященной созданию веб-серверов, клиент-серверных приложений или любого другого сетевого программного обеспечения в операционной системе UNIX, — классическое руководство по сетевым программным интерфейсам, в частности сокетам. Оно основано на трудах Уильяма Стивенса и полностью переработано и обновлено двумя ведущими экспертами по сетевому программированию. В книгу включено описание ключевых современных стандартов, реализаций и методов, она содержит большое количество иллюстрирующих примеров и может использоваться как учебник по программированию в сетях, так и в качестве справочника для опытных программистов.
Автор – молодой талантливый копирайтер, журналист, консультант по рекламе и PR. Он из тех, что остаются за кадром телевизионных роликов, газетных публикаций и даже, что скрывать, порой и публичных скандалов. Книга в доступной и дружественной форме обобщает мировой и отечественный опыт создания брэндов, в том числе тех, в разработке которых непосредственно принимал участие автор. На конкретных примерах рассмотрены актуальные принципы, которые лежат в основе лучших рекламных кампаний.

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

Вопрос и Ответ 24

Вопросы и Ответы


      24. Можно ли получить позицию курсора в компоненте TMemo?

      В компоненте TMemo предусмотрено получение позиции курсора через механизм сообщений. Для получения позиции необходимо послать два сообщения. Первое -

      LineNum := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);

      для получения номера строки в которой находится курсор. И второе -

      CharNum := Memo1.Perform(EM_LINEINDEX, LineNum, 0);

      для получения позиции курсора в заданной строке. Будте внимательны, так как номер строки и позиция в строке отсчитываются от нуля.

      Пример:

      ............

      {Получаем позицию курсора при щелчке мыши на компоненте}
      procedure TForm1.Memo1Click(Sender: TObject);
      VAR

        LineNum : LongInt;
        CharNum : LongInt;

      begin

        {Получаем номер строки}
        LineNum := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
        {Получаем позицию в строке}
        CharNum := Memo1.Perform(EM_LINEINDEX, LineNum, 0);
        {Выводим позицию на экран}
        Label1.Caption := IntToStr(LineNum+1)+' : '+

          IntToStr((Memo1.SelStart-CharNum)+1);

      end;

      ............

      {Получаем позицию курсора при отпускании клавиши на клавиатуре}
      procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
      begin

        Memo1Click(Self);

      end;

      ............


...предыдущая страница следующая...
оглавление



"Вопрос и Ответ 24"
Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2024 .
При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны!
Время генерации страницы: 0.011