Тема: TStringList
Показать сообщение отдельно
  #1  
Старый 06.11.2010, 20:34
efimalex efimalex вне форума
Прохожий
 
Регистрация: 06.11.2010
Сообщения: 7
Репутация: 10
По умолчанию TStringList

Есть такой класс

Код:
unit FillComboClass;

interface
uses
SysUtils, DBCtrlsEh,FIBDatabase, pFIBDatabase,FIBDataSet,pFIBDataSet,Classes;
Type
  TFillCombo = class(TObject)
    Private
      fset: TpFIBDataSet;
      citem:  TStringList;
      fieldname: String;
    Protected
      Procedure Setfset(Val: TpFIBDataSet);
      Procedure Setfieldname(Val: String);
    Public
//      Constructor Create(DataSet: TpFIBDataSet; FieldName: string); // Конструктор
      Constructor Create; // Конструктор
      Destructor Destroy;// Деструктор
      Property DataSe: TpFIBDataSet write Setfset; // Свойство класса
      Property FieldNam: String write Setfieldname; // Свойство класса
      function fill(Val:TStringList):TStringList;
end;
implementation

uses DMUnit;

//constructor TFillCombo.Create(DataSet: TpFIBDataSet; item: TDBComboBoxEh; FieldName: string);
//constructor TFillCombo.Create(DataSet: TpFIBDataSet; FieldName: string);
constructor TFillCombo.Create;
begin
   citem:=TStringList.Create;
end;

destructor TFillCombo.Destroy;
begin

 inherited;
end;

function TFillCombo.fill(Val:TStringList):TStringList;
begin
  fset.First;
    while not fset.Eof do
      begin
        citem.add(fset.FieldByName(fieldname).AsString);
        fset.Next;
      end;
  result := citem;
  citem.Free;
end;

procedure TFillCombo.Setfieldname(Val: String);
begin
fieldname:=val;
end;

procedure TFillCombo.Setfset(Val: TpFIBDataSet);
begin
fset :=TpFIBDataSet.Create(nil);
fset:=Val;
end;

end.

в этом кусочке
Код:
citem.add(fset.FieldByName(fieldname).AsString);
в citem типа TStringList не добовляются строки. Почему так? Вроде все правильно.
у меня Delphi 2009.
Ответить с цитированием