Форум: "Начинающим";
Текущий архив: 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.47 MB
Время: 0.05 c