Fixing an error in a method declaration in a form in Delphi
Asked Answered
U

2

1

Why am I getting this error, I replaced a stringgrid with a listview, I then set it to viewstyle vsreport but I am getting an error like (expected '=' but '(' found) its flashing on this procedure below

procedure TForm2.ListView2DblClick(Sender: TObject);

this is my code

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

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    ListView1: TListView;
    ListView2: TListView;
    procedure FormCreate(Sender: TObject);
    procedure TForm2.ListView2DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
var
  i: integer;
begin
  // NOTE: this can all be done at design-time so
  // you don't need to do it in code at runtime!
  ListView1.Columns[0].Width := 20;
  ListView2.Columns[0].Width := 20;
  for i := 0 to 49 do begin 
    ListView1.Items.Add.Caption := IntToStr(i);
    with ListView2.Items.Add do begin
      Caption := IntToStr(i);
      SubItems.Add('0'); 
    end;
  end; 
  ListView2.Columns[1].Caption := 'name';
  ListView1.Columns[1].Caption := 'extension'; 
  ListView1.Columns[2].Caption := 'format';
  ListView1.Columns[3].Caption := 'size'; 
  ListView1.Columns[4].Caption := 'date';
  ListView1.Columns[5].Caption := 'addres'; 
end;

procedure TForm2.ListView2DblClick(Sender: TObject);
var
  Item: TListItem;
begin 
  Item := ListView2.Selected;
  if Item = nil then Exit;  
  if (Item.SubItems[0] <> '1024') and (Item.SubItems[0] <> '0') then
    ListView1.Selected := ListView1.Items[StrToInt(Item.SubItems[0])];
end;

end.

.

procedure HD;
var
  i: integer;
begin
  for i := 0 to 49 do begin
    with form2.ListView1.Items[i] do begin
      SubItems[0] := TABLE[i].name;
      SubItems[1] := TABLE[i].format;
      if TABLE[i].tip then
        SubItems[2] := 'folder'
      else
        SubItems[2] := 'file';
      SubItems[3] := IntToStr(TABLE[i].nach);
      SubItems[4] := IntToStr(TABLE[i].razmer);
    end;
    form2.ListView2.Items[i].SubItems[0] := IntToStr(fat[i]);
  end;
end;
Underachieve answered 6/1, 2012 at 2:59 Comment(0)
N
4

Get rid of the Form2. portion in the declaration of the event handler:

type 
  TForm2 = class(TForm) 
    Edit1: TEdit; 
    Edit2: TEdit; 
    ListView1: TListView; 
    ListView2: TListView; 
    procedure FormCreate(Sender: TObject); 
    procedure ListView2DblClick(Sender: TObject); // <-- here
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 
Nemato answered 6/1, 2012 at 3:9 Comment(6)
sorry i had a typo error..the problem now is its trying to compile but there is an error saying list index out of boundsUnderachieve
on which line exactly? you need to be more specific.Nemato
its on the reload procedure after the hd procedure,is it ok if i mail the small project to you?how can i attach it here?the code is quite huge...or should i just paste it hereUnderachieve
filefactory.com/file/c10f5cb/n/fat16.rar its a fat16 model when try to enter the name of the file and its size then see what happens..also try to display the memory see whats is giving meUnderachieve
Did you even try using the debugger yet to watch exactly how your code is using the indexes?Nemato
how do i do that?im new to delphi how can i do itUnderachieve
E
-1

Why does the unit "end." appear within the following procedure:

procedure TForm2.ListView2DblClick(Sender: TObject);
var
  Item: TListItem;
begin 
  Item := ListView2.Selected;
  if Item = nil then Exit;  
  if (Item.SubItems[0] <> '1024') and (Item.SubItems[0] <> '0') then
    ListView1.Selected := ListView1.Items[StrToInt(Item.SubItems[0])];
end;
end.

Unless you're posting code from multiple units, move it to the end of the unit file.

Endoderm answered 6/1, 2012 at 3:7 Comment(1)
The end. is not inside the procedure.Nemato

© 2022 - 2024 — McMap. All rights reserved.