Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2011, 12:44   #1
RakNaGore
Пользователь
 
Регистрация: 10.07.2011
Сообщений: 12
Восклицание Constant object cannot be passed as var parameter

Код:
for i := 0 to (Form1.Memo1.Lines.Count - 1) do
  begin
   Insert(Form1.Memo1.Lines[i], Form1.Memo3.Lines[i], 1);
  end;
Вот на строке между begin и end возникает эта ошибка.

Весь код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ToolWin, Menus;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    OpenDialog2: TOpenDialog;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N4: TMenuItem;
    Label3: TLabel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Button3: TButton;
    N5: TMenuItem;
    N6: TMenuItem;
    N3: TMenuItem;
    Memo3: TMemo;
    N7: TMenuItem;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Fname, sep : string;

implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute = true then Form1.Memo1.Lines.LoadFromFile(OpenDialog1.FileName);   //открываем файл и загружаем в мемо1
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenDialog2.Execute = true then Form1.Memo2.Lines.LoadFromFile(OpenDialog2.FileName);  //открываем файл и загружаем в мемо2
end;

procedure TForm1.N4Click(Sender: TObject);
begin
 Application.Terminate;   //выйти из программы
end;

procedure TForm1.Button3Click(Sender: TObject);
var myFile : TextFile;
    i, j : integer; //счетчик
begin
AssignFile(myFile, Fname);
ReWrite(myFile);
CloseFile(myFile);
Form1.Memo3.Lines.Clear;
if Form1.RadioButton1.Checked then for i := 0 to (Form1.memo1.lines.count - 1) do
 begin
  for j:=0 to (Form1.memo2.lines.count - 1) do begin Form1.Memo3.Lines.Add(Form1.Memo1.Lines[i] + sep + Form1.Memo2.Lines[j]) end;
 end;

if Form1.RadioButton2.Checked then
 begin
  if Form1.memo1.lines.count > Form1.Memo2.Lines.Count then for i := 0 to (Form1.memo1.lines.count - Form1.Memo2.Lines.Count) do Form1.Memo2.Lines.Add('');
  for i := 0 to (Form1.memo2.lines.count - 1) do
  begin
   Form1.Memo3.Lines.Add(sep + Form1.Memo2.Lines[i]);
  end;
  for i := 0 to (Form1.Memo1.Lines.Count - 1) do
  begin
   Insert(Form1.Memo1.Lines[i], Form1.Memo3.Lines[i], 1);
  end;
 end;

Form1.Memo3.Lines.SaveToFile(Fname);
ShowMessage('Работа окончена');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
sep := ';';
Fname := 'result.txt';
end;

procedure TForm1.N2Click(Sender: TObject);
begin
Button3.Click;
end;

end.

Последний раз редактировалось Serge_Bliznykov; 12.07.2011 в 13:20.
RakNaGore вне форума Ответить с цитированием
Старый 12.07.2011, 12:48   #2
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Строка Мемо является константой и такими процедурами Вы её не сможете изменить.
Достаете строку из Мемо во временную переменную, там работаете с ним, и снова записываете в Мемо.

А вобще, есть поиск. Я лично отвечал раза 3 на такой вопрос.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PR - Parameter runner Alex Cones Софт 3 14.12.2010 10:10
Constant Object cannot be passed as a var parameter. Alex Cones Общие вопросы Delphi 3 15.10.2009 21:51
Ошибка Constant object cannot be passed as var parameter nusik Общие вопросы Delphi 7 15.05.2009 21:00
Warning: Narrowing given wide string constant lost information. Как исправить? SkAndrew Общие вопросы Delphi 4 18.08.2008 12:11
Помогите найти ошибку Constant object cannot be passed as var parameter N!ckeL Общие вопросы Delphi 2 18.04.2008 15:36