![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Привет.
Ребят, есть проблема. В гугле был - не нашел четкого ответа на вопрос. Есть TStringList (text.Text) с каким-то содержимым. Хочу передать этот лист в функцию, там добавить, например, строку, а потом забрать это дело оттуда и вывести в мемо. Как сделать? Я делал так: Код:
function TForm1.test(list: TStringList): TStringList; begin list.Add('Some string'); end; потом в обработчике нажатия кнопки Button1: Memo1.Text:=test(text.Text); ![]() |
#2
|
||||
|
||||
![]() Код:
function TForm1.test(list: TStringList): TStringList; begin Result.Add('Some string'); end; Memo1.Text:=test(text.Text); Gravitas |
#3
|
||||
|
||||
![]() Вот пример функции:
Код:
function AppendList (AList: TStringList): Integer; begin Result := AList.Add('Это новая строка!'); end; Используем так: Код:
... Index := AppendList(MyStrings); ShowMessage('Добавлена строка с индексом ' + IntToStr(Index)); ShowMessage('Текст строки: ' + MyStrings[Index]); ... |
#4
|
||||
|
||||
![]() Цитата:
Gravitas, я так понимаю, вылезет Access Violation в данном коде... |
#5
|
||||
|
||||
![]() Ну я полагал, что ТС сам догадается приписать ...:=TStringList.Create или так, как вы предложили.
Gravitas Последний раз редактировалось Gravitas, 12.08.2011 в 19:57. |
#6
|
|||
|
|||
![]() Цитата:
Нет, не работает. Ругается именно на эту строку: Код:
Memo1.Text:=test(text.Text); Листинг двух этих операций: Код:
function tform1.test(list: tstringlist):tstringlist; begin list.Add('111'); result.Text:=list.text; end; procedure TForm1.Button1Click(Sender: TObject); begin memo2.Text:=test(memo1.text); end; |
#7
|
|||
|
|||
![]() Вот рабочий вариант:
Код:
procedure AppendList (var AList: TStringList); begin AList.Add('Это новая строка!'); end; Код:
procedure TForm4.btn1Click(Sender: TObject); var myList: TStringList; begin myList:= TStringList.Create(); AppendList (myList); mmo1.Text:= myList.Text; myList.Free; end; |
#8
|
|||
|
|||
![]() Цитата:
Во! Это да. Но нужная именно функция, а не процедура ![]() ![]() |
#9
|
|||
|
|||
![]() Код:
function AppendList (var AList: TStringList): TStringList; begin AList.Add('Это новая строка!'); Result:= AList; end; Код:
procedure TForm4.btn1Click(Sender: TObject); var myList: TStringList; begin myList:= TStringList.Create(); // AppendList (myList); mmo1.Text:= AppendList (myList).Text; myList.Free; end; |
#10
|
|||
|
|||
![]() Цитата:
Код:
function tform1.test(var list: tstringlist): tstringlist; begin list.Add('111'); result:=list; end; Код:
procedure TForm1.Button1Click(Sender: TObject); begin memo2.Text:=test (memo1).Text; end; Код:
memo2.Text:=test (memo1).Text; |
#11
|
|||
|
|||
![]() У вас переменная list имеет тип TStringList, а вы пытаетесь в функцию запихнуть компонент memo1. Разве так можно?
|
#12
|
||||
|
||||
![]() Вопросы становятся все более интересными...
Если я тебя правильно понял ![]() Код:
function test(AList: TStrings): String; begin AList.Add('1111'); Result := AList.Text; end; procedure TForm1.Button1Click(Sender: TObject); begin memo1.Text := test(memo1.Lines); end; ЗЫ смысл такой процедуры не подскажешь? Помогаю за Спасибо ![]() |
#13
|
|||
|
|||
![]() Цитата:
Вот здесь например: Код:
... var list: tstringlist; ... begin ... memo1.text:=list.text; Тип возвращаемого значения функции у меня тоже TStringlist. Передаю в нее я тоже TStringlist. Вроде все должно работать ![]() |
#14
|
|||
|
|||
![]() Цитата:
![]() ![]() |
#15
|
||||
|
||||
![]() Не совсем то, что ты думаешь:
Memo.Lines типа TStrings, а Memo.Text: String. И объясни смысл процедуры. Код:
function test(list: tstrings): tstrings; begin result:=tstrings.create; result.Assign(list); result.Add('111'); end; Помогаю за Спасибо ![]() |