Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Редактирование надписей в компоненте едит [D7]


Страницы:   1 2 3 4 5

Глеб ©   (2012-05-05 16:58:00) 

Добрый день!

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

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;


KilkennyCat   (2012-05-05 18:01:00) [81]


> 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;


достаточно
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;
end;
и тогда не будет только в конец строки


Юрий Зотов   (2012-05-05 17:37:00) [82]


> Глеб   (05.05.12 17:23) [2]

См. свойства SelStart, SelLength, SelText.

Но возникает вопрос - а зачем нужен такой компонент? Не лучше ли использовать стандартный? Он такими закидонами не страдает.


Медвежонок Пятачок   (2012-05-05 17:34:00) [83]

это, я так понимаю, программа для пользователей с ампутированными пальцами рук?


Глеб   (2012-05-05 17:23:00) [84]

Все предельно просто. Мой программный код делает редактирование в конце строки едита, а мне нужно везде. т.е. если ты написал 1245 в моем едите и вспомнил, что пропустил 3 ты не сможешь вставить 3 туда куда нужно так как едет запихнет в конец 12453.

Вот мне и нужна помощь, что бы высчитывать позицию под курсором и проводить редактирование там где и положенно


Cobalt   (2012-05-05 17:02:00) [85]

Ты, мил человек, сначала опиши, что ты хочешь получить,
а то код активно скрывает смысл :-)


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо