Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.21;
Скачать: CL | DM;

Вниз

стирание последнего символа   Найти похожие ветки 

 
SveTTT   (2007-09-30 09:13) [0]

Здравствуйте!

Каким выражением описывается функция стирания последнего введенного символа в поле Edit. ("BackSpace" но только от нажатия кнопки на форме, а не на клавиатуре).


 
engine ©   (2007-09-30 09:20) [1]

procedure TForm1.Button1Click(Sender: TObject);
 var s : String;
begin
 s := Edit1.Text;
 s[Length(s)] := #0;
 Edit1.Text := s;
end;


 
SveTTT   (2007-09-30 09:21) [2]

Спасибо!


 
Leonid Troyanovsky ©   (2007-09-30 09:31) [3]


> SveTTT   (30.09.07 09:13)  

> Каким выражением описывается функция стирания последнего
> введенного символа в поле Edit.


procedure TFormX.SpeedButton1Click(Sender: TObject);
begin
  Edit1.Perform(WM_CHAR, VK_BACK, 0);
end
;

--
Regards, LVT.


 
SveTTT   (2007-09-30 09:59) [4]

Спасибо!


 
Dmitry S   (2007-09-30 14:42) [5]

Первый способ кривой, кстати.


 
engine ©   (2007-09-30 14:47) [6]

> [5] Dmitry S   (30.09.07 14:42)

Исправить ошибку — домашнее задание автору вопроса :)


 
{RASkov} ©   (2007-09-30 15:41) [7]

> Первый способ кривой, кстати.

Второй способ тоже не всегда будет стирать именно последний символ в Эдите...

procedure DelLastCharInEdit(Edit: TCustomEdit);
begin
 Edit.Perform(WM_KEYDOWN, VK_END, 0);
 Edit.Perform(WM_KEYUP, VK_END, 0);
 Edit.Perform(WM_CHAR, VK_BACK, 0);
end;
...
DelLastCharInEdit(Edit1);


 
Leonid Troyanovsky ©   (2007-09-30 16:24) [8]


> {RASkov} ©   (30.09.07 15:41) [7]

> Второй способ тоже не всегда будет стирать именно последний

Во-первых, последний введенный.
А, во-вторых, как "BackSpace".

--
Regards, LVT.


 
{RASkov} ©   (2007-09-30 16:27) [9]

> [8] Leonid Troyanovsky ©   (30.09.07 16:24)
> Во-первых, последний введенный.

Точно.... что-то я не в тему заметил.... сбило с толку наверное s[Length(s)] := #0; из [1]
Сорри...


 
engine ©   (2007-09-30 16:32) [10]

> [8] Leonid Troyanovsky ©   (30.09.07 16:24)

Неспроста значок голубого цвета — не придерешься :)


 
{RASkov} ©   (2007-09-30 19:51) [11]

> [8] Leonid Troyanovsky ©   (30.09.07 16:24)
> Во-первых, последний введенный.

Все равно не всегда верно стираться символ будет, так как после ввода последнего символа, можно SelStart изменить мышой например, или "стрелками"

> А, во-вторых, как "BackSpace".

Ну а здесь не поспоришь :)


 
Vasiliy   (2007-09-30 21:17) [12]

Есть еще один "кривой" способ по нажатию клавиши, но работающий.:
var
   Backstring:string;
   Size:Integer;
begin
 if (key=vk_Back) then begin
                       Backstring:=edit1.Text;
                       edit1.Clear;
                       Delete(Backstring,length(Backstring),1);
                       Size := Length(Backstring);
                       edit1.Text := Backstring;
                       edit1.SelStart := size;
                       end;
                       
end;


 
Leonid Troyanovsky ©   (2007-09-30 21:30) [13]


> {RASkov} ©   (30.09.07 19:51) [11]

> Все равно не всегда верно

Конечно же, не всегда.

Иногда в некоем высказывании анализируются все символы,
вплоть до знаков препинания.
А иногда - нет, т.е., чисто формально.

Оный выбор зависит от настроения (отношения &etc), т.е.,
субъективных вещей, но, это право отвечающего, не так ли?

Но, главное в нашем деле - избавляться от заблуждений ;)
И кто пожелает - имеет к тому все возможности, IMHO.

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2007.10.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.062 c
2-1191129184
SveTTT
2007-09-30 09:13
2007.10.21
стирание последнего символа


15-1190253868
Slider007
2007-09-20 06:04
2007.10.21
С днем рождения ! 20 сентября 2007 четверг


15-1190519762
Карп
2007-09-23 07:56
2007.10.21
консоль


2-1190999717
Pacific
2007-09-28 21:15
2007.10.21
System


15-1190093011
boriskb
2007-09-18 09:23
2007.10.21
Домен su живет и побеждает





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский