Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 14:37   #1
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию Компонент едит

Добрый день


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

Код:
 procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
  var n : integer;
  s : string;
  begin
  if Key=8 then begin
  Edit1.Text:=copy(Edit1.Text,1, Length(Edit1.Text)-3);
  Edit1.SelStart:=Length(Edit1.Text);
  end;
  end;

 procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  const
  mask : set of char =['0'..'9' , 'a'..'z' , 'A'..'Z'];
  begin
  if not (Key in mask) then Key:=#0
  else begin
  Edit1.Text:=Edit1.Text + ' ,';
  Edit1.SelStart:=Length(Edit1.Text) - 2;
  end;
  end;


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 05.05.2012 в 15:52.
Глеб1991 вне форума Ответить с цитированием
Старый 05.05.2012, 19:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Сейчас мой программный код добавляет/удаляет символы
стесняюсь спросить, а стандартных возможностей редактирования маловато?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.05.2012, 21:36   #3
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию

Стандартные? это какие??? я новичок в делфи поэтому прошу без профессионального сленга.
Глеб1991 вне форума Ответить с цитированием
Старый 05.05.2012, 22:21   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну вот для чего ты свои процедуры описываешь?
Какова задача?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.05.2012, 22:27   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

стандартные, это когда фокус на поле ввода, то можно стрелочками управления курсора перемещать позициюю ввода влево и вправо. в любом месте можно удалять символы (как под курсором, так и слева от него (при наличии символов, разумеется), можно вставлять символы в любом месте строки...

Вот это всё и называется стандартным поведением контрола по редактированию строки.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2012, 22:43   #6
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию

Мне надо чтобы при вводе с клавиатуры анг. символа скажем "g" программа вела в эдит "g ," при удалении пользователь наживает один раз на бэкспейс ("key = 8" - код операции удаления), а программа удалит символ + пробел + запятую.

Я смог добиться этого, НО все эти действия происходят на конце записи эдита т.е. нельзя сфокусироваться на середине и удалить/добавить символ в центре. Весть процесс редактирования происходит на конце.

Поэтому я прошу мне помочь с редактором записи, что бы можно было
проводить операции под курсором мыши, а не в самой правой части.
вод код удаления:
Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var n : integer;
s : string;
begin
if Key=8 then begin
Edit1.Text:=copy(Edit1.Text,1, Length(Edit1.Text)-3);
Edit1.SelStart:=Length(Edit1.Text);
end;
end;
вот код добавления
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const
mask : set of char =['0'..'9' , 'a'..'z' , 'A'..'Z'];
begin
if not (Key in mask) then Key:=#0
else begin
Edit1.Text:=Edit1.Text + ' ,';
Edit1.SelStart:=Length(Edit1.Text) - 2;
end;
end;
From Stilet: Почему код читабельно не оформил? Или для тебя уважение форумчан пустой звук?!

Последний раз редактировалось Stilet; 05.05.2012 в 23:21.
Глеб1991 вне форума Ответить с цитированием
Старый 05.05.2012, 23:22   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Я смог добиться этого
Лучше всего этого добиваться после ввода.
Вот скажи - куда пойдет потом строка из Эдита?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.05.2012, 23:28   #8
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию

этот эдит находиться на форме, которая является настраивающей , там много еще других компонентов, но это не важно. После того как пользователь установит себе все настройки то будет кнопка создать, программа пробежит по всем компонентам и запишет инфу в файл, тип файла не знаю - не моя работа.

From Stilet: Почему код читабельно не оформил? Или для тебя уважение форумчан пустой звук?! а что не так то - я правила прочитал роде все нормально
а все понял причину

Последний раз редактировалось Глеб1991; 05.05.2012 в 23:30. Причина: забыл дописать мысль
Глеб1991 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть прозрачныи Едит, но с недочетами... ArtGrek Компоненты Delphi 8 14.09.2011 03:15
сравнение Мемо и Едит mojohead Помощь студентам 1 30.05.2011 12:40
Просчет и Едит 4321 Общие вопросы Delphi 15 18.11.2008 21:13
зашифровка едит bmb_66 Компоненты Delphi 2 10.04.2008 11:25
Едит subsonic Общие вопросы Delphi 6 27.01.2008 10:21