Форум: "Основная";
Текущий архив: 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