Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

Как отследить вставилась ли строка в Memo или нет ?   Найти похожие ветки 

 
Алекс А   (2004-07-06 01:17) [0]

Следующий код не пикает, но и не вставляет текст, если в Мемо уже есть примерно 50 000 символов .
 try
   Memo1.Lines.Add("A");
 except
   beep;
 end;

Величина Length(Memo1.Lines.Text) при которой дальнейшая вставка невозможна, почему то варьируется в зависимости от текста.


 
KilkennyCat ©   (2004-07-06 01:20) [1]

Мемо имеет ограничение для Вин9* в 64 кил.


 
Алекс А   (2004-07-09 02:13) [2]

Как всё таки лучше отслеживать вставилось/невставилось ?
Почему в приведённом примере ошибка не возникает, когда вставка не удаётся, и как сделать, чтобы возникала ?


 
wnew ©   (2004-07-09 03:28) [3]

mCount := Memo1.Lines.Count;
if mCount <> Memo1.Lines.Add("A") then Beep;


 
Алекс А   (2004-07-09 05:04) [4]


> wnew ©   (09.07.04 03:28) [3]
> mCount := Memo1.Lines.Count;
> if mCount <> Memo1.Lines.Add("A") then Beep;

Введение дополнительной переменной - не красиво.


 
Amoeba ©   (2004-07-09 11:01) [5]


> Алекс А   (09.07.04 05:04) [4]


> Введение дополнительной переменной - не красиво.


"Не красиво" - пототму, что религия не позволяет?


 
Алекс А   (2004-07-10 03:55) [6]


> Amoeba ©   (09.07.04 11:01) [5]
> "Не красиво" - пототму, что религия не позволяет?

Мне сама ситуация не нравится. Почему максимальный размер текста всегда разный, например ? Я не понимаю просто. Это глюк или непостижимая задумка Борланда ?

Понятно, что из ситуации выкрутиться то можно как-нибудь. Но эта кривость раздражает, и я подумал, может есть какой нормальный выход ? Или в Борланде так и задумывалось, что чтобы просто вставить строчку надо каждый раз огрод городить ?


 
SergP ©   (2004-07-10 11:29) [7]


> Алекс А   (09.07.04 05:04) [4]
>
> > wnew ©   (09.07.04 03:28) [3]
> > mCount := Memo1.Lines.Count;
> > if mCount <> Memo1.Lines.Add("A") then Beep;
>
> Введение дополнительной переменной - не красиво.


А кто тебе мешает не использовать дополнительную переменную?

with memo1.Lines do if count <> add("A") then Beep;

Хотя  если пишщать должно когда не добавилась запись, то вернее так:

with memo1.Lines do if count = add("A") then Beep;


 
Almaz ©   (2004-07-10 14:03) [8]


> Мне сама ситуация не нравится. Почему максимальный размер
> текста всегда разный, например ? Я не понимаю просто. Это
> глюк или непостижимая задумка Борланда ?

А максимальный размер текста как считаете ? Про символы перевода строки не забыли ? Максимальный размер должен быть 65535 символов. StrLen(Memo1.Lines.GetText) - что показывет ?

Удачи.


 
Алекс А   (2004-07-12 01:39) [9]


> StrLen(Memo1.Lines.GetText) - что показывет ?

А вы не проверяли ? Тогда сообщаю. Показывает всегда по-разному, в зависимости от текста. 34125, 30120, 45060.


> А кто тебе мешает не использовать дополнительную переменную?
>
> with memo1.Lines do if count <> add("A") then Beep;

А если мне потребуется не Add, а Insert ? Инсерт ничего не возвращает.


 
KilkennyCat ©   (2004-07-12 02:40) [10]


> Almaz ©   (10.07.04 14:03) [8]


нет, так он не вернет. точнее, он вернет те, которые есть действительно, но не посчитает те, которые сам свордврапил. А они есть ;)
А чтобы их посчитать, по-моему проще всего создать еще один Стринглист и ассигновать ему мемовский лайнс. проверил: утечка нехилая.

А Вам, уважаемый Алекс А, прежде чем катить бочку на Борланд, лучше бы книжку прочитать... ограничение длины мемо не его, а виндов, и только 90-х. У НТ нет такого ограничения. Слова же о разности показаний ГетТекста в зависмости от текста(!) мне особенно понравились... Скажите, ну как они могут быть одинаковыми, если они зависят от текста?
Вот Вам, на память:
procedure TForm1.Button1Click(Sender: TObject);
var
 s : tstringlist;
begin
s := tstringlist.Create;
s.Assign(memo1.Lines);
showmessage(inttostr(length(s.Text)));
showmessage(inttostr(memo1.GetTextLen));
s.Free;
end;


 
GrayFace ©   (2004-07-12 07:12) [11]

>with memo1.Lines do if count = add("A") then Beep;
Может глючить. Вдруг компилятор решит, что оптимальнее вначале выполнить add, а потом взять count?


 
SergP ©   (2004-07-12 08:47) [12]


>
> А если мне потребуется не Add, а Insert ? Инсерт ничего
> не возвращает.


Тогда выкинь нафиг мемо и юзай richedit


 
Anatoly Podgoretsky ©   (2004-07-12 08:48) [13]

64 К это только теоритическое ограничение, размер пользовательских ресурсоы, а практическое определяется тем, сколько этих ресурсов свободно. По наблюдением от 30 до 40 кб, величина постоянно изменяемая.



Страницы: 1 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
1-1089290412
Дмитрий 2004
2004-07-08 16:40
2004.07.25
как организовать поиск в диапазоне 2 дат?


1-1089364577
hgd
2004-07-09 13:16
2004.07.25
Толщина линии


8-1084266319
Ozone
2004-05-11 13:05
2004.07.25
JPEG + разбиение рисунка


1-1089203408
dosik
2004-07-07 16:30
2004.07.25
Двумерные массивы в испекторе объектов


3-1088858965
TUser
2004-07-03 16:49
2004.07.25
Почему так надо





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский