![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проверка Memo на пустоту [D6, Win95/98]
Yurij-7 © (2004-12-20 11:40:00)День добрый
Уважаемые мастера подскажите пжл как проверить ТMemo пустой он или нет, пробовал через свойство Lines но ниче неполучаеться :((
Спасибо.
Gero (2004-12-20 20:57:00) [1]
> Боюсь, что при большом мемо, это буит весьма долгая операция:)_
Думаю, меньше милли секунды.
Хотя lines.text действительно не очень быстро, но это имеет смысл если ты вызвыаешь его в цикле хотя бы пару миллионов раз.
Poirot (2004-12-20 19:08:00) [2]Но вы забываете что это свойство... А как работает Lenght можно просто продебажив его:) там чистый асмовский код...
Прошу... проверяйте:0 не жалко.. только конструкции типа S:=Memo1.Text не катят, ибо читаем РТФМ
Там s совершенно другой блок памяти:))
pasha_golub (2004-12-20 18:53:00) [3]Poirot © (20.12.04 18:09) [14]
Рискну предположить что вы ошибаетесь. В том что свойство TMemo.Text: PChar тут несомненно, но... Мне кажется, что длина все-таки храниться по адресу -4 байта от первого символа.
Если не прав - бейте ногами, все равно вечер и спать скоро.
Skier (2004-12-20 18:16:00) [4]>Yurij-7 (20.12.04 17:42) [13]
Я, лично, ничего не понял...
Poirot (2004-12-20 18:09:00) [5]>>
Что такое 'большое' мемо?
Это туеву кучу килобайтов\мегабайтов. ибо Lenght работает с null terminated строками:) и пока оно добежит - это буит шикарно:) Ну обладателям супер пупер пеньков это пофигу, но... это нерациональное использование ресурса ПК:)
Yurij-7 (2004-12-20 17:42:00) [6]Прверка на пустоту это значит что когда запустилдось приложенние юзер может нажать кнопку при этом незаполнив Memo1 текстом запроса и естественно вылезит ошибка, а я хочу проверить заполнено ли Memo1.
TUser (2004-12-20 16:42:00) [7]
> Боюсь, что при большом мемо, это буит весьма долгая операция:)_
Что такое 'большое' мемо?
> TUser © (20.12.04 11:43) [2]
> if Lines.Text = '' then
>
> Спасибо, а я вот пробовал так но ничего неполучалось :((
Значит тебе нужно что-то другое. Этот код стопудово рабочий.
> перепробовал все приведенные примеры, но один такой момент
> если я нередактировал Memo то ниодин из способов неподходит
> :((
Может у тебя там написано 'Memo1'?
Очень хочется спросить, а что такое проверка на пустоту в данном контексте?
Yurij-7 (2004-12-20 16:20:00) [8]если я только запускаю прогу (фокус сразу на мэмо) и я в мэмо ничего не менял а сразу нажимаю батон то проверка недействует, тоесть если пользователь ничего не менял то проверка не срабатывает.
Yurij-7 (2004-12-20 16:20:00) [9]если я только запускаю прогу (фокус сразу на мэмо) и я в мэмо ничего не менял а сразу нажимаю батон то проверка недействует, тоесть если пользователь ничего не менял то проверка не срабатывает.
Александр Иванов (2004-12-20 15:48:00) [10]Чем не подходит?
Yurij-7 (2004-12-20 15:39:00) [11]У меня возник еще 1 вопрос:
перепробовал все приведенные примеры, но один такой момент если я нередактировал Memo то ниодин из способов неподходит :((
как быть в таком случае?
Yurij-7 (2004-12-20 12:29:00) [12]TUser © (20.12.04 11:43) [2]
if Lines.Text = '' then
Спасибо, а я вот пробовал так но ничего неполучалось :((
Всем большое спасибо
Delphin (2004-12-20 12:20:00) [13]IF Memo1.GetTextLenght=0 Then ....
Jay1982 (2004-12-20 12:17:00) [14]Зато 100% рабочая
Poirot (2004-12-20 12:10:00) [15]Jay1982 © (20.12.04 11:46) [3]
Боюсь, что при большом мемо, это буит весьма долгая операция:)_
Jay1982 (2004-12-20 11:46:00) [16]if Length(Memo1.Text) = 0 then
Poirot (2004-12-20 11:43:00) [17]TMemo.Text
Можно проверить по Lines.Count и + Если одна линия, то проверить её длину на 0
TUser (2004-12-20 11:43:00) [18]if Lines.Text = '' then