Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/30: Рейтинг темы: голосов - 30, средняя оценка - 4.93
 Аватар для myslivec
52 / 52 / 12
Регистрация: 08.04.2010
Сообщений: 261

Memo и курсор

19.05.2011, 16:31. Показов 5686. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Нужна консультация:
Как определить координаты курсора при вводе текста в Memo. Только не положение строки и столбца, а именно координаты (можно относительно Form).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.05.2011, 16:31
Ответы с готовыми решениями:

Как в memo перевести курсор в начало?
Програмно ввёл в memo какое-то к-во строк. К-во строк больше, чем может отобразиться одновременно в memo. Размер memo изменять нельзя. И...

Как поменять курсор в бордерах Edit и Memo?
Внутри edit и memo курсор меняется легко, снаружи(на форме) тоже, а как изменить курсор именно на границах(border) этих компонентов?

При запуске memo без текста курсор отобразить с первой строки
Уважаемые форумчане помогите мне пожалуйста решить вопрос с позицией курсора в memo. При компиляции программа запускается но курсор в memo...

9
 Аватар для anonimus
2184 / 1255 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
19.05.2011, 16:42
событие Memo1MouseMove
к координатам x и y добавь положение мемо на форме т.е. memo1.left и memo1.top
0
 Аватар для igoriy
873 / 544 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
19.05.2011, 16:45
Delphi
1
2
3
4
5
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 Form1.Caption:= 'x= '+IntToStr(x)+'  '+'y= '+ inttostr(y);
end;
Delphi
1
2
3
4
5
procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Form1.Caption:= 'x= '+IntToStr(x)+'  '+'y= '+ inttostr(y);
end;
0
 Аватар для myslivec
52 / 52 / 12
Регистрация: 08.04.2010
Сообщений: 261
19.05.2011, 16:51  [ТС]
Может я не совсем корректно задал вопрос, но мне нужны не координаты курсора мыши, а координаты курсора ввода "|".
0
 Аватар для igoriy
873 / 544 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
19.05.2011, 16:58
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Memo1Click(Sender: TObject);
var
  X, Y: LongInt;
begin
  Y := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
  X := Memo1.Perform(EM_LINEINDEX, Y, 0);
  inc(Y);
  X := Memo1.SelStart - X + 1;
  Form1.Caption := 'X = ' + IntToStr(X) + ' : ' + 'Y = ' + IntToStr(Y);
end;
Добавлено через 1 минуту
лучше в таймере
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Timer1Timer(Sender: TObject);
var
  X, Y: LongInt;
begin
  Y := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
  X := Memo1.Perform(EM_LINEINDEX, Y, 0);
  inc(Y);
  X := Memo1.SelStart - X + 1;
  Form1.Caption := 'X = ' + IntToStr(X) + ' : ' + 'Y = ' + IntToStr(Y);
end;
0
 Аватар для myslivec
52 / 52 / 12
Регистрация: 08.04.2010
Сообщений: 261
19.05.2011, 17:14  [ТС]
Это не то

Добавлено через 5 минут
Цитата Сообщение от myslivec Посмотреть сообщение
Только не положение строки и столбца, а именно координаты
А Вы сделали совсем наоборот.
Memo1.CaretPos.X - это то же что и ваш код, только в разы короче.
0
 Аватар для igoriy
873 / 544 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
19.05.2011, 17:20
Цитата Сообщение от myslivec Посмотреть сообщение
это то же что и ваш код, только в разы короче.
Ба...как интересно- чегож надо то?

Добавлено через 1 минуту
Цитата Сообщение от myslivec Посмотреть сообщение
а координаты курсора ввода "|".
Верхнюю,нижнюю координату или середку?
0
 Аватар для myslivec
52 / 52 / 12
Регистрация: 08.04.2010
Сообщений: 261
19.05.2011, 17:35  [ТС]
Цитата Сообщение от igoriy Посмотреть сообщение
Верхнюю,нижнюю координату или середку?
-смешно.

Нужны координаты курсора не относительно текста (рядок/столбец), а относительно Form (Top/Left).
0
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 33
19.05.2011, 21:17
Спасибо за подсказки но я тут тупанул))) просто позно уже и спать охота вот если комуто понадобитса как сохранить кастинку)))
Delphi
1
2
3
4
5
6
7
procedure TForm1.N4Click(Sender: TObject);
begin
if SaveDialog1.Execute then
 begin
  Form1.Image1.Picture.SaveToFile(SaveDialog1.FileName);
 end;
end;
А через Мемо спасибо myslivec помогло ето то шо нада)))
0
 Аватар для myslivec
52 / 52 / 12
Регистрация: 08.04.2010
Сообщений: 261
19.05.2011, 21:43  [ТС]
Блин, никто не знает или никто не понял что мне нужно?! Если второе, то Вы спросите, я уточню.

Добавлено через 15 минут
Может кому понадобится: в API есть такая функция GetCaretPos. В общем:
Delphi
1
2
3
4
5
6
7
8
9
uses ..., ShellAPI;
...
var pt:TPoint;
     x,y:integer;
begin
GetCaretPos(pt);
x:=pt.x;
y:=pt.y;
end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.05.2011, 21:43
Помогаю со студенческими работами здесь

Курсор и компонент Memo
Здравствуйте. Люди, кто-то знает как убрать мигающий курсор (каретку) для компонентак Memo в С++ Builder 6. Или хотя бы цвет поменять...

Курсор и маски в Memo...
1) Как установить курсор в поле Мемо в на определенную позицию? 2) Как ввести в Мемо маску ввода, подобную, как в MaskEdit?

Как перенести курсор в Memo?
как перенести курсор в memo на 2 линию ?

Как установить курсор в конец строки в Memo?
Как установить курсор в конец строки в Memo?

Как записать расчёт TCalculatorDialog в Memo, в место где находится курсор
Здравствуйте! Подскажите, как записать значение полученное расчётом TCalculatorDialog в Memo в место где находится курсор.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru