Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.03.2009, 18:56
BloodFooria BloodFooria вне форума
Новичок
 
Регистрация: 30.10.2008
Адрес: Улан-Удэ
Сообщения: 81
Репутация: 10
По умолчанию Конвертация TStrings в String

Помогите. Вообщем, когда "конвертирую" через цикл просто переменные, то все получается. А когда пытаюсь конвертировать линии Memo, мне выдает "Abstract Error".

Код:
for i:= 0 to MessageEdit.Lines.Count - 1
  do Msg:= Msg + #13 + MessageEdit.Lines.GetText;

Не понятно, что не так делаю? Объясните.

P.S. Ошибка может быть ооооочень глупая, просто я сейчас сонный
__________________
Auta i Lome...
Ответить с цитированием
  #2  
Старый 31.03.2009, 19:14
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,018
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Надо вообще-то Memo1.Lines[i]
Но даже это не надо, т.к. можно просто так:

Код:
Msg := Memo1.Lines.Text;

Без всяких циклов и других извращений.
Ответить с цитированием
  #3  
Старый 31.03.2009, 19:17
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Чего-то я вообще смысла этого всего не поняла. У вас получится строка, в которой содержимое MessageEdit'а будет повторяться столько раз, сколько строк в Memo. К чему это дублирование?

В целом, код рабочий, насколько я могу судить. Вот только я переписала бы это так:
Код:
procedure TraLaLa;
var
  i: Integer;
  Msg : string;
begin
  Msg := '';
  for i := 0 to MessageEdit.Lines.Count - 1 do
    Msg := Msg + #13#10 + StrPas(MessageEdit.Lines.GetText);
end;
Если, конечно, Msg имеет тип string...
Ответить с цитированием
  #4  
Старый 31.03.2009, 19:58
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Немного поясню то, что говорил lmikle. Вот только он говорил про TMemo, а я поясню для TStrings (хотя разница небольшая, т.к. TMemo использует TStrings).
Если нужно получить весть текст, то используйте Strings.Text.
Если только одну строку, то Strings.Strings[i], где i - номер строки (не забываем, что первая строка идет под номером 0).
Пример с циклом, где к переменной Msg плюсуются строки из Strings:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Strings: TStrings;
  i: Integer;
  Msg: string;
begin
  Strings:= TStringList.Create;
  try
    // указываем текст в Strings, например Strings.LoadFromFile('ss.txt');
    // а далее идет код:
    for i:= 0 to Strings.Count - 1 do
      Msg:= Msg + #13#10 + Strings.Strings[i];
  finally
    Strings.Free;
  end;
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #5  
Старый 01.04.2009, 03:26
BloodFooria BloodFooria вне форума
Новичок
 
Регистрация: 30.10.2008
Адрес: Улан-Удэ
Сообщения: 81
Репутация: 10
По умолчанию

lmikle, спасибо я и не знал что можно так делать!

Karsh, вот я так обычно и делаю, но оказывается можно так, как вы мне предложили (в одну строчку).

P.S. Извените, я вместо GetText хотел написать MessageEdit.Lines[i]. Говорю же сонный был

Добавил:
Разобрался в чем дело. Просто я еще в этой процедуре вызываю TICQClient1.SendMessage(); где тоже есть такая переменная Msg
__________________
Auta i Lome...

Последний раз редактировалось BloodFooria, 01.04.2009 в 06:19.
Ответить с цитированием
  #6  
Старый 01.04.2009, 10:06
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка TICQClient

У тебя есть рабочий TICQClient ??? Если да, то кинь плиз ссылку на него в личку
Ответить с цитированием
  #7  
Старый 01.04.2009, 13:34
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Цитата:
Сообщение от Vayrus
У тебя есть рабочий TICQClient ??? Если да, то кинь плиз ссылку на него в личку

Он всегда рабочий, просто если потрудишься почитать немного про изменения в протоколе, то и сам подправишь. На torry.net можешь и готовый взять.
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter