Проблемы с типом TStringList

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Проблемы с типом TStringList

Сообщение PapaNT » 18.06.2010 12:14:08

Компилю код (fpc224 под виндой).
Получаю ошибку на последней строчке кода: MY_STR.PAS(xxx,yy) Error: Argument can't be assigned to

Код: Выделить всё
Function  GetParamSL(SL : TStringList;Param : Shortstring) : ShortString;
Var
  ii : integer;
begin
  for ii := 0 to SL.Count - 1 do
    begin
      MyProcedure(SL.Strings[ii]);

Куда рыть?
PapaNT
постоялец
 
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Re: Проблемы с типом TStringList

Сообщение Brainenjii » 18.06.2010 12:24:23

Ошибка где-то ещё:
Код: Выделить всё
program Project1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this };

{$R *.res}

Procedure MyProcedure(Const aString: String);
Begin
  WriteLn(aString);
End;

Function GetParamSL(SL: TStringList; Param: ShortString): ShortString;
Var
  ii: Integer;
Begin
  For ii := 0 To SL.Count - 1 Do
    Begin
      MyProcedure(SL.Strings[ii]);
    End;
End;

Var
  aStrings: TStringList;

begin
  aStrings := TStringList.Create;
  aStrings.Add('Hello');
  aStrings.Add('world');
  GetParamSL(aStrings, '');
End.

Отрабатывает ожидаемо ^_^
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Проблемы с типом TStringList

Сообщение PapaNT » 18.06.2010 12:53:02

Спасибо!

Странная ошибка в автоприведении типов.
MyProcedure была объявлена входящим парамтром типа ShortString.

Сработала конструкция:
Код: Выделить всё
Procedure MyProcedure(Var s : ShortString);
begin
//Код процедуры
end;
Function  GetParamSL(SL : TStringList;Param : Shortstring) : ShortString;
Var
  ii : integer;
  st : ShortString;
begin
  for ii := 0 to SL.Count - 1 do
    begin
      st := SL.Strings[ii];
      MyProcedure(st);
      SL.Strings[ii] := st;
PapaNT
постоялец
 
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Re: Проблемы с типом TStringList

Сообщение Light13 » 21.06.2010 11:48:30

Brainenjii писал(а):Procedure MyProcedure(Const aString: String);
Отрабатывает ожидаемо ^_^


PapaNT писал(а):Procedure MyProcedure(Var s : ShortString)


ключевые слова const и var

property не может быть использовано в вызовах подпрограмм с возвращением результата
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru