Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.042 c
2-1190742234
Bast
2007-09-25 21:43
2007.10.21
Post


2-1191190477
Gringoire
2007-10-01 02:14
2007.10.21
Наблюдение за нажатием клавиш


15-1190221735
AntiUser
2007-09-19 21:08
2007.10.21
Американский сенатор подал в суд на Всевышнего


2-1190282755
Tifon
2007-09-20 14:05
2007.10.21
Отображение немецких умляутов


3-1176821654
Kostafey
2007-04-17 18:54
2007.10.21
Обновление значений полей взятых из присоединенной таблицы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский