Главная страница
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.5 MB
Время: 0.05 c
3-1088406454
denmin
2004-06-28 11:07
2004.07.25
Как узнать координаты ячейки грида?


4-1086868594
avgur
2004-06-10 15:56
2004.07.25
Набрать номер модемом и перейти в голосовой режим


4-1086870441
Лёха
2004-06-10 16:27
2004.07.25
RegNotifyChangeKeyValue, отслеживание реестра


6-1085670241
half_litre
2004-05-27 19:04
2004.07.25
Причина ClientDisconnect ??


1-1089566673
XHelp
2004-07-11 21:24
2004.07.25
Заставить Делфи не показывать ошибки