Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
ВнизУдалить символ из поля Найти похожие ветки
← →
Sapan © (2007-04-19 22:17) [0]Можно ли удалить символ из поля edit напрямую без использования переменных? Если можно то как?
← →
Jeer © (2007-04-19 22:24) [1]Я те поведаю страшную тайну - TEdit.Text тоже переменная типа string.
Поэтому, научившись удалять чего-либо из string - сможешь и из TEdit.Text
← →
Sapan © (2007-04-19 22:34) [2]Использую процедуру delete(Edit1.text,4,3) но он пишет ошибку "Constant object cannot be passed as var parameter"
← →
palva © (2007-04-19 22:38) [3]TEdit.Text это не переменная а свойство. У свойства нет адреса, поэтому свойство не может выступать var параметром функции Delete. В этом трудность.
← →
Kolan © (2007-04-19 22:38) [4]> без использования переменных?
А что задали без доп. переменных?
← →
palva © (2007-04-19 22:41) [5]Вот так можно удалить четвертый символ:
Edit1.Text := Copy(Edit1.Text, 1, 3) + Copy(Edit1.Text, 5);
← →
Keni © (2007-04-19 22:41) [6]
var s:string;
begin
s:=edit1.text;
delete(s,4,3);
edit1.text:=s;
end;
самый лучший вариант
← →
oxffff © (2007-04-19 22:44) [7]
> palva © (19.04.07 22:41) [5]
> Вот так можно удалить четвертый символ:
> Edit1.Text := Copy(Edit1.Text, 1, 3) + Copy(Edit1.Text,
> 5);
Используются временные переменные.
> Keni © (19.04.07 22:41) [6]
> var s:string;
> begin
> s:=edit1.text;
> delete(s,4,3);
> edit1.text:=s;
> end;
>
> самый лучший вариант
Ты задание внимательно читал?
← →
{RASkov} (2007-04-19 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);
← →
oxffff © (2007-04-19 22:59) [9]
> {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);
И здесь временные переменные.
← →
Virgo_Style © (2007-04-19 23:04) [10]oxffff © (19.04.07 22:44) [7]
Ты задание внимательно читал?
О, если внимательно, то там сказано "без переменных". Не без временных переменных, а просто - без переменных.
← →
Jeer © (2007-04-19 23:05) [11]
> 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
← →
{RASkov} (2007-04-19 23:06) [12]> [9] oxffff © (19.04.07 22:59)
Само свойство Edit.Text - уже содержит переменную, например
var
Len: Integer;
О чем может быть речь ? :)
← →
{RASkov} (2007-04-19 23:10) [13]> [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:10) [14]Иначе никак :)
← →
oxffff © (2007-04-19 23:15) [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;
Ну это как единый блок мы будем воспринимать.
← →
palva © (2007-04-19 23:16) [16]Ничего не понял. Ну и фиг с ним.
← →
Kolan © (2007-04-19 23:17) [17]> не содержит локальных переменных…
> не содержит локальных переменных…
Ненадо ты их просто в метод перенес(я про Result)
Зы
А сабж конечно извращение, имхо, я за [13]. О и тут 13…
← →
Плохиш © (2007-04-19 23:23) [18]Нифигасебе у людей расслабуха в предверии тяпницы :-))
← →
{RASkov} (2007-04-19 23:24) [19]> Ну это как единый блок мы будем воспринимать.
А почему бы и MyDelete не воспринять как единый блок? :)
> О и тут 13…
:)
← →
Kolan © (2007-04-19 23:28) [20]> oxffff © (19.04.07 23:15)
НА асме еще напиши, и мы спокойно пойдем спать…
← →
oxffff © (2007-04-19 23:29) [21]
> {RASkov} (19.04.07 23:24) [19]
> > Ну это как единый блок мы будем воспринимать.
>
> А почему бы и MyDelete не воспринять как единый блок? :)
Edit.Text:=MyDelete(Edit.Text, 2, 1);
Здесь 2 временных переменных.
одна на Gettext, вторая на result
← →
Jeer © (2007-04-19 23:31) [22]
> palva © (19.04.07 23:16) [16]
>
> Ничего не понял. Ну и фиг с ним.
Это по нашему:)
"И так приятно у костра
Забывшись взглядом в небеса
Считать парсеки и года
Забив на все и навсегда" (С)
← →
{RASkov} (2007-04-19 23:32) [23]> [21] oxffff © (19.04.07 23:29)
См [14] :(
← →
Kolan © (2007-04-19 23:35) [24]RASkov — это твое мыло?
RASkov@gmail.ru
← →
oxffff © (2007-04-19 23:38) [25]
> {RASkov} (19.04.07 23:32) [23]
> > [21] oxffff © (19.04.07 23:29)
>
> См [14] :(
Да я собственно тоже к такой мысли пришел.
Поскольку временная переменная будет всегда при gettext.
здесь тоже переменная нужна
result := Perform(WM_GETTEXT, BufSize, Longint(Buffer));
Вот если выловить адрес буфера окна.
← →
{RASkov} (2007-04-19 23:57) [26]> [24] Kolan © (19.04.07 23:35)
Нет.
← →
Kolan © (2007-04-20 00:09) [27]> [26] {RASkov} (19.04.07 23:57)
> > [24] Kolan © (19.04.07 23:35)
>
> Нет.
Дак напиши хозяину, он отдаст может ник тебе…
← →
{RASkov} (2007-04-20 00:21) [28]> [27] Kolan © (20.04.07 00:09)
:) Никчему все это.
Более того и адреса-то такого скорее всего нет, может кто случайно зарегил :)
Да ладно, фик с ним, У меня есть зарегиный ник, но под ним я практически не пишу. ASMSoft ©
← →
Sapan © (2007-04-20 09:57) [29]Всем спасибо, сделал так:
Edit1.SelStart:=3;
Edit1.SelLength:=1;
Edit1.SelText:="";
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.067 c