Search code examples
delphivlcpascal

Delphi E2029: Declaration expected but end of file found - how to debug?


Hi guys I have an Error that appeared and that I cant get rid off..

I added 2 custom procedures to my delphi code and I read that you can hit crtl+shift+c to autogenerate the functions, which I did.

However my problem now is that I didnt need the autogenerated stuff thats why I deleted it after executing the command. Now my code does not work anymore because of this error I am getting:

E2029 Declaration expected but end of file found

Expected INITIALIZATION but recieved the end of file at line 520(520:1)

How can I fixx my code? Removing or adding a 'end' at the end of the file does not help me. Is there a way to find out where something is missing in my code? (I could post my delphi code but its 500lines long I dont think that makes sense.

Update Code:

unit Benutzerverwaltung_U;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.ComCtrls,
  Vcl.StdCtrls,
  Vcl.WinXCtrls, Vcl.CheckLst, System.Actions, Vcl.ActnList, Vcl.Menus,
  System.StrUtils,
  Data.DB, Vcl.Grids, Vcl.DBGrids, Vcl.DBCtrls, FireDAC.Stan.Intf,
  FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS,
  FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Comp.DataSet,
  FireDAC.Comp.Client;

type
  TForm1 = class(TForm)

other buttons and so on...

    procedure SwapValues(var Zahl1, Zahl2: Integer); //new
    procedure SelectionSort(Sender: TObject);  // new
    procedure Button11Click(Sender: TObject); //new

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }

    workerModel: record
      VorName: string[40];
      NachName: string[40];
      Age: Integer;
      Schließen: string[30];
      Admin: TToggleSwitchState;
      DatenSehen: TToggleSwitchState;
      Gender: string[20];

    end;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses Sonderrechte_U, CheckedItem_U, Unit1, BenutzerEdit_u;


procedure TForm1.SwapValues(var Zahl1, Zahl2: Integer);
var
  h: Integer;
begin
  h := Zahl1;
  Zahl1 := Zahl2;
  Zahl2 := h;
end;

procedure TForm1.SelectionSort(Sender: TObject);
var
  i, j, min: Integer;
var
  sortArray, Data: Array of string;

begin

  for i := 1 to Form1.ListBox1.Items.Count - 1 do
  // i muss wahrscheinlich 0 sein?
  begin
    min := i;
    for j := i + 1 to Form1.ListBox1.Items.Count do
      if (Data[j] < Data[min]) then
        min := j;
    SwapValues(i, min);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2 := TForm2.Create(Self);
  try
    Form2.ShowModal;
  finally
    Form2.Free;
  end;

end;

// more code

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  l: Integer;
  t: String;
begin
  with ListBox1 do
  begin
    Canvas.FillRect(Rect);
    t := Items[Index];
    l := Rect.Right - Canvas.TextWidth(t) - 1;
    Canvas.TextOut(l, Rect.Top, t);
  end;
end;

procedure TForm1.SearchBox1Change(Sender: TObject);

var
  i: Integer;

begin
  // SearchBox1.Parent := ListBox1;

  ListBox1.Items.BeginUpdate;

  try
    for i := 0 to ListBox1.Items.Count - 1 do
      ListBox1.Selected[i] := ContainsText(ListBox1.Items[i], SearchBox1.Text);

  finally
    ListBox1.Items.EndUpdate;


end;
// end;


// this is the end of the file

Solution

  • A Delphi unit must end with

    end.
    

    (notice the full stop).