![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите. Вообщем, когда "конвертирую" через цикл просто переменные, то все получается. А когда пытаюсь конвертировать линии Memo, мне выдает "Abstract Error".
Код:
for i:= 0 to MessageEdit.Lines.Count - 1 do Msg:= Msg + #13 + MessageEdit.Lines.GetText; Не понятно, что не так делаю? Объясните. P.S. Ошибка может быть ооооочень глупая, просто я сейчас сонный ![]() |
|
#2
|
|||
|
|||
|
Надо вообще-то Memo1.Lines[i]
Но даже это не надо, т.к. можно просто так: Код:
Msg := Memo1.Lines.Text; Без всяких циклов и других извращений. |
|
#3
|
|||
|
|||
|
Чего-то я вообще смысла этого всего не поняла. У вас получится строка, в которой содержимое 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; |
|
#4
|
||||
|
||||
|
Немного поясню то, что говорил 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; |
|
#5
|
|||
|
|||
|
lmikle, спасибо я и не знал что можно так делать!
![]() Karsh, вот я так обычно и делаю, но оказывается можно так, как вы мне предложили (в одну строчку). P.S. Извените, я вместо GetText хотел написать MessageEdit.Lines[i]. Говорю же сонный был ![]() Добавил: Разобрался в чем дело. Просто я еще в этой процедуре вызываю TICQClient1.SendMessage(); где тоже есть такая переменная Msg ![]() Последний раз редактировалось BloodFooria, 01.04.2009 в 06:19. |
|
#6
|
||||
|
||||
|
У тебя есть рабочий TICQClient ??? Если да, то кинь плиз ссылку на него в личку
![]() |
|
#7
|
||||
|
||||
|
Цитата:
Он всегда рабочий, просто если потрудишься почитать немного про изменения в протоколе, то и сам подправишь. На torry.net можешь и готовый взять. |