Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Как отследить вставилась ли строка в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.037 c
14-1087572498
Nic
2004-06-18 19:28
2004.07.25
Демографическая катастрафа в России :(


1-1089520403
TUser
2004-07-11 08:33
2004.07.25
CreateProcess+AssignFile


1-1089695944
bobj
2004-07-13 09:19
2004.07.25
Обработка TreeView


1-1089773953
Litr
2004-07-14 06:59
2004.07.25
Размер формы


6-1085580515
cherrex
2004-05-26 18:08
2004.07.25
FTP Server





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский