Вопрос к спецам!!!

vixvix
отредактировано 12:03 Раздел: FastScript
СКРИПТ:
Вот так работает:
var
  ClientDataSet: TClientDataSet;
begin
  ClientDataSet := TClientDataSet.Create(Application);
  with ClientDataSet.FieldDefs.AddFieldDef do
    begin
      Name := 'Id';
      DataType := ftInteger;
    end;
  ClientDataSet.CreateDataSet;
  ClientDataSet.Active := True;
end.
а вот так вот НЕТ:
var
  ClientDataSet: TClientDataSet;

procedure CreateClientDataset(AClientDataSet: TClientDataset);
begin
  with ClientDataSet.FieldDefs.AddFieldDef do
    begin
      Name := 'Id';
      DataType := ftInteger;
    end;
end;

begin
  ClientDataSet := TClientDataSet.Create(Application);
  CreateClientDataset(ClientDataSet);
  ClientDataSet.CreateDataSet;
  ClientDataSet.Active := True;
end.
а вот так опять работает:
var
  ClientDataSet: TClientDataSet;

procedure CreateClientDataset(FieldDefs: TFieldDefs);
begin
  with FieldDefs.AddFieldDef do
    begin
      Name := 'Id';
      DataType := ftInteger;
    end;
end;

begin
  ClientDataSet := TClientDataSet.Create(Application);
  CreateClientDataset(ClientDataSet.FieldDefs);
  ClientDataSet.CreateDataSet;
  ClientDataSet.Active := True;
end.
ОПИСАНИЕ ДОБАВЛЕНИЯ КЛАССА:
  with AScript do
    begin
      with AddClass(TCustomClientDataSet, 'TDataSet') do
        begin

        end;
      with AddClass(TClientDataSet, 'TCustomClientDataSet') do
        begin
          AddMethod('procedure CreateDataSet', CallMethod);
        end;
    end
В ЧЁМ ПРОБЛЕМА!!! ;)

Комментарии

  • отредактировано 12:03
    На что ругается?
  • отредактировано 12:03
    А так:
    var
     ClientDataSet: TClientDataSet;
    
    procedure CreateClientDataset(var AClientDataSet: TClientDataset);
    begin
     with AClientDataSet.FieldDefs.AddFieldDef do
       begin
         Name := 'Id';
         DataType := ftInteger;
       end;
    end;
    
    begin
     ClientDataSet := TClientDataSet.Create(Application);
     CreateClientDataset(ClientDataSet);
     ClientDataSet.CreateDataSet;
     ClientDataSet.Active := True;
    end.
    
  • vixvix
    отредактировано 12:03
    2-=Den=-
    О!!! А так прокатило нормально!

    СПАСИБО!!! ;)

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.