Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удалить символ из поля


Страницы:   1 2

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]
Ты задание внимательно читал?


О, если внимательно, то там сказано "без переменных". Не без временных переменных, а просто - без переменных.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо