Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы при работе с МЕМО, объясните что к чему... 
:(
    Опции темы
Rave
Дата 3.6.2004, 23:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ввот такая ситуация: (Delphi 5)
Читаю в цикле строки из TStringList, успешно их разбираю (проверено в отладчике),
и тут мне надо занести их части в конкретные строки созданных на форме объектов МЕМО.
Первая строка - читается, заносится...
Вторая строка - В одно МЕМО заносится, во второе - нет.. sad.gif
Третья строка и далее - разбираются нормально, но в МЕМО не идут... В чём может быть дело?

procedure ReadPredmets(Source: TStringList);
var
TEMP : String;
i : integer;
posit : integer;
begin
If Source.Count>0 Then
Begin
For i:=0 to Source.Count-1 do
Begin
TEMP:=Source.Strings[i];
posit:=Pos(';',TEMP);
pform2.Memo19.Lines[i]:=Copy(TEMP,1,posit-1);
delete(TEMP,1,posit);
posit:=Pos(';',TEMP);
pform2.Memo11.Lines[i]:=Copy(TEMP,1,posit-1);
delete(TEMP,1,posit);
posit:=Pos('=',TEMP);
if posit > 0 Then pform2.Memo12.Lines[i]:='OK';
End;
End;
end;

Никаких объявлений размеров МЕМО предварительно не делал...
Ситуация с заносом первой строки и половины второй - ставит меня в тупик...
Я понимаю, что если первая строка правильно зашла, то код работает. Но вторая не заходит...

Вот такая беда... Помогите, кто-нибудь?

P.S. FAQ обчитался.... нетути...

  Вверх
Illusion Dolphin
Дата 3.6.2004, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



pform2.Memo19.Lines[i]:=Copy(TEMP,1,posit-1);

Насколько я знаю, то если в мемо не будет итой строки, то это обращение ни к чему хорошему не приведёт... Я бы делал что-то вроде этого:

pform2.Memo19.clear; //очищаем мемо (по надобности, т.к. из кода не видно, что тебе необходимо...

for i:=0 to Source.Count-1 do
begin
TEMP:=Source.Strings[i];
....
pform2.Memo19.Lines.add(Copy(TEMP,1,posit-1); //заносим построкова данные
...


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Guest
Дата 3.6.2004, 23:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо, попробую...
А первоначальный размер МЕМО как-нибудь можно задать?
Оно по дефолту пустое и я его инициализирую таким вот кривоватым образом...
  Вверх
December
Дата 4.6.2004, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Цитата
А первоначальный размер МЕМО как-нибудь можно задать?

В смысле? Оно максимум 65 килов, а про минимум я ничего не слышал.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Rave
Дата 4.6.2004, 00:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Может быть там при инициализации только одна строка ?
И при обращении к осталлным строкам до их создания - вылезают такие эффекты?
  Вверх
hhh
Дата 4.6.2004, 08:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











2Rave

  Вверх
hhh
Дата 4.6.2004, 08:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











2Rave
Само сабой, как ты представляешь обратиться к несуществующему "пока" объекту?
Прошу прощения за предыдущий пост - запарился
  Вверх
December
Дата 4.6.2004, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



При инициализации - ноль строк. По определению.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Guest
Дата 5.6.2004, 18:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо. С этим разобрался. По умолчанию в мемо уже есть одна пустая строка. Я её сперва очищаю, потом уже добавляю строки. В итоге получился вот такой код :
(Thanks to Illusion Dolphin for idea)


If Source.Count>0 Then
Begin
pform2.Memo19.clear;
For i:=0 to Source.Count-1 do
Begin
TEMP:=Source.Strings[i];
posit:=Pos(';',TEMP);
//вместо pform2.Memo19.Lines[i]:=Copy(TEMP,1,posit-1); пишем
pform2.Memo19.Lines.Add(Copy(TEMP,1,posit-1)); //заметьте lines без индекса.
delete(TEMP,1,posit);
и т.д.

Вот. Так что спасибо.

И ещё один вопрос остался: как определить, что фокус ввода находится в этом мемо?
И чем отличаются события OnKeyPress и OnKeyDown?
  Вверх
Rave
Дата 5.6.2004, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.6.2004

Репутация: нет
Всего: нет



Это я написал выше...
Заранее спасибо за ответы smile.gif
PM MAIL   Вверх
bagira
Дата 5.6.2004, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2858
Регистрация: 25.10.2003
Где: в тайге Уральских гор

Репутация: нет
Всего: 123



Цитата
И ещё один вопрос остался: как определить, что фокус ввода находится в этом мемо?
И чем отличаются события OnKeyPress и OnKeyDown? 



Rave
1. Для Memo существует два события фокуса: OnEnter и OnExit. Событие OnEnter происходит, когда элемент получает фокус ввода, а событие OnExit - когда теряет его.

2. Событие OnKeyPress - происходит при нажимании клавиши, а событие OnKeyDown - при отпускании ее.


--------------------
Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил...
Ф.Х. Дагларджа (Турция)
http://zveriolginovour.ru/
https://vmeste.yandex.ru/zveriolginovour 
PM MAIL WWW ICQ   Вверх
Rave
Дата 6.6.2004, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.6.2004

Репутация: нет
Всего: нет



Спасибо smile.gif
PM MAIL   Вверх
Guest
Дата 7.6.2004, 08:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











bagira
Угу, а OnKeyUp когда происходит?

И так OnKeyPres - происходит когда кнопка нажата и отпущена.
OnKeyDown - когда кнопка нажата.
OnKeyUp - когда кнопка отпущена.

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.