![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удалить символ из поля
Sapan © (2007-04-19 22:17:00)Можно ли удалить символ из поля edit напрямую без использования переменных? Если можно то как?
Sapan (2007-04-20 09:57:00) [1]Всем спасибо, сделал так:
Edit1.SelStart:=3;
Edit1.SelLength:=1;
Edit1.SelText:='';
{RASkov} (2007-04-20 00:21:00) [2]> [27] Kolan © (20.04.07 00:09)
:) Никчему все это.
Более того и адреса-то такого скорее всего нет, может кто случайно зарегил :)
Да ладно, фик с ним, У меня есть зарегиный ник, но под ним я практически не пишу. ASMSoft ©
Kolan (2007-04-20 00:09:00) [3]> [26] {RASkov} (19.04.07 23:57)
> > [24] Kolan © (19.04.07 23:35)
>
> Нет.
Дак напиши хозяину, он отдаст может ник тебе
{RASkov} (2007-04-19 23:57:00) [4]> [24] Kolan © (19.04.07 23:35)
Нет.
oxffff (2007-04-19 23:38:00) [5]
> {RASkov} (19.04.07 23:32) [23]
> > [21] oxffff © (19.04.07 23:29)
>
> См [14] :(
Да я собственно тоже к такой мысли пришел.
Поскольку временная переменная будет всегда при gettext.
здесь тоже переменная нужна
result := Perform(WM_GETTEXT, BufSize, Longint(Buffer));
Вот если выловить адрес буфера окна.
Kolan (2007-04-19 23:35:00) [6]RASkov это твое мыло?
RASkov@gmail.ru
{RASkov} (2007-04-19 23:32:00) [7]> [21] oxffff © (19.04.07 23:29)
См [14] :(
Jeer (2007-04-19 23:31:00) [8]
> palva © (19.04.07 23:16) [16]
>
> Ничего не понял. Ну и фиг с ним.
Это по нашему:)
"И так приятно у костра
Забывшись взглядом в небеса
Считать парсеки и года
Забив на все и навсегда" (С)
oxffff (2007-04-19 23:29:00) [9]
> {RASkov} (19.04.07 23:24) [19]
> > Ну это как единый блок мы будем воспринимать.
>
> А почему бы и MyDelete не воспринять как единый блок? :)
Edit.Text:=MyDelete(Edit.Text, 2, 1);
Здесь 2 временных переменных.
одна на Gettext, вторая на result
Kolan (2007-04-19 23:28:00) [10]> oxffff © (19.04.07 23:15)
НА асме еще напиши, и мы спокойно пойдем спать
{RASkov} (2007-04-19 23:24:00) [11]> Ну это как единый блок мы будем воспринимать.
А почему бы и MyDelete не воспринять как единый блок? :)
> О и тут 13…
:)
Плохиш (2007-04-19 23:23:00) [12]Нифигасебе у людей расслабуха в предверии тяпницы :-))
Kolan (2007-04-19 23:17:00) [13]> не содержит локальных переменных
> не содержит локальных переменных
Ненадо ты их просто в метод перенес(я про Result)
Зы
А сабж конечно извращение, имхо, я за [13]. О и тут 13
palva (2007-04-19 23:16:00) [14]Ничего не понял. Ну и фиг с ним.
oxffff (2007-04-19 23:15:00) [15]
> Virgo_Style © (19.04.07 23:04) [10]
> oxffff © (19.04.07 22:44) [7]
> Ты задание внимательно читал?
>
> О, если внимательно, то там сказано "без переменных". Не
> без временных переменных, а просто - без переменных.
Там также не сказано ни про локальные или глобальные.
Так что без всех переменных. В том числе и временных.
> {RASkov} (19.04.07 23:06) [12]
> > [9] oxffff © (19.04.07 22:59)
>
> Само свойство Edit.Text - уже содержит переменную, например
> var
> Len: Integer;
> О чем может быть речь ? :)
function TControl.GetText: TCaption;
var
Len: Integer;
begin
Len := GetTextLen;
SetString(Result, PChar(nil), Len);
if Len <> 0 then GetTextBuf(Pointer(Result), Len + 1);
end;
Ну это как единый блок мы будем воспринимать.
{RASkov} (2007-04-19 23:10:00) [16]Иначе никак :)
{RASkov} (2007-04-19 23:10:00) [17]> [9] oxffff © (19.04.07 22:59)
>
> > {RASkov} (19.04.07 22:58) [8]
> > > [2] Sapan © (19.04.07 22:34)
> >
> > function MyDelete(const S: String; const N, J: Integer)
> :
> > String;
> > begin
> > Result:=S;
> > Delete(Result, N, J);
> > end;
> >
> > вызов:
> > Edit.Text:=MyDelete(Edit.Text, 2, 1);
>
>
> И здесь временные переменные.
Более того вызов, например на нажатие кнопки
procedure Form.ButonClick();
begin
Edit.Text:=MyDelete(Edit.Text, 2, 1);
end;
не содержит локальных переменных....
{RASkov} (2007-04-19 23:06:00) [18]> [9] oxffff © (19.04.07 22:59)
Само свойство Edit. Text- уже содержит переменную, например
var
Len: Integer;
О чем может быть речь ? :)
Jeer (2007-04-19 23:05:00) [19]
> palva © (19.04.07 22:38) [3]
>
> TEdit.Text это не переменная а свойство. У свойства нет
> адреса, поэтому свойство не может выступать var параметром
> функции Delete. В этом трудность.
>
Трудности нет, если почитать о типе string (хотя я и не прав - в предке это PChar, но не суть), а не о готовых функциях работы со string.
Тода удаление символа из string сведется к смещению хвоста вперед
for i:= 4 to High(s) do
s[i] := s[i+1];
В данном случае, полагаю, не следует считать i за запретную переменную,
т.к. это организация цикла, а не промежуточное копирование char
Virgo_Style (2007-04-19 23:04:00) [20]oxffff © (19.04.07 22:44) [7]
Ты задание внимательно читал?
О, если внимательно, то там сказано "без переменных". Не без временных переменных, а просто - без переменных.