Einfach nur Complierung abgerbochen als Meldung ?

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Einfach nur Complierung abgerbochen als Meldung ?

Beitrag von pluto »

Hallo,
als ich heute mein mainmenu weiter machen wollte und die neue Datei Format einbauen wollte.
Bekam ich folgende Meldung;
uMainMenu2.pas(11,81) Fatal: Compilation aborted

mehr leider nicht.

und die angeben Position ist leer.
ich kopiere mal die Komplete unit hier dran. Evlt. kommt der Fehler bei euch auch:

Code: Alles auswählen

unit uMainMenu2;
 
{$mode objfpc}{$H+}
 
interface
 
uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,Tools,types,uMyListbox,uMyCompo,lclintf;
 
type
  TmyMainMenuA = class(TMyCompo)
  private
  protected
 
  public
    fFileName:String;
    Script:TStringlist.Create;
    ListBoxen:array of TMyListBox;
 
    constructor Create;
    procedure LoadFile(pFileName:String);
    function GetItemIndex(pName:String):Integer;
    procedure LoadSubMenu();
    procedure MouseEV(typ, x, y:Integer;Shift:TShiftState);
  end;
 
implementation
 
{ TMainMenu2 }
 
constructor TmyMainMenuA.Create;
begin
  Script:TStringList.Create;
  SetLength(ListBoxen,0);
  fFileName:='';
end;
 
function GetCaption(Script:TStringlist; Zeile:Integer):String;
var
  i:Integer;
begin
  for i:=Zeile to Script.Count-1 do begin
    if Pos('}',Script.Strings[i]) > 0 then
      break
    else begin
 
      if Pos('Caption',Script.Strings[i]) > 0 then begin
        result:=GetToken(Script.Strings[i],':',2);
        break;
      end;
    end;
  end;
end;
 
procedure TmyMainMenuA.LoadFile(pFileName: String);
var
  i:Integer;
  tmpListBox:TMyListBox;
  tmpListItem:TMyListItem;
begin
  FileName:=pFileName;
  if FileExists(FileName) then begin
    Script.LoadFromFile(Filename);
    tmpListBox:=TMyListBox.Create;
    tmpListBox.rx:=10; tmpListBox.ry:=10;
    tmpListBox.root:=True;
    for i:=0 to Script.Count-1 do begin
      if (Script.strings[i] <> ' ') and (Script.strings[i] <> '}') and (Script.strings[i] <> '')then begin
        tmpListItem.zeile:=i;
        tmpListItem.Visible:=True;
        tmpListItem.isSubMenu:=False;
        tmpListItem.Caption:=GetCaption(Script,i+1);
 
        Writeln(tmpListItem.Caption);
      end; // if ' '
    end; // for i:=0 to Count-1
    SetLength(ListBoxen,high(ListBoxen)+2);
    ListBoxen[high(ListBoxen)]:=tmpListBox;
  end; // FileExists
end;
 
function TmyMainMenuA.GetItemIndex(pName: String): Integer;
begin
 
end;
 
procedure TmyMainMenuA.LoadSubMenu();
begin
 
end;
 
procedure TmyMainMenuA.MouseEV(typ,x,y: Integer; Shift: TShiftState);
begin
 
end;
 
end.


ich hoffe diesmal ist es keine Doofer Fehler von meiner seite...

edit1:
die Datei Position in X Richtung ist genau da wo der Vertikale weiße strich ist....
MFG
Michael Springwald

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Dann debugg mal ein bisschen. Schonmal die zeile drüber auskommentiert und probiert obs ohne Array funzt?

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Schonmal alles neu gebaut (Rebuild All oder so) ??
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

nein monta daran liegt es nicht, ich habe sogar alle(fast alle) units rauß rauß genommen. Ich glaube ich muss Lazarus neu erstellen !
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

habe den Fehler gefunden:

Code: Alles auswählen

type
  TmyMainMenuA = class(TMyCompo)
  private
  protected
 
  public
    fFileName:String;
    Script&#058;TStringlist.Create;
    ListBoxen:array of TMyListBox;
 
    constructor Create;
    procedure LoadFile(pFileName:String);
    function GetItemIndex(pName:String):Integer;
    procedure LoadSubMenu();
    procedure MouseEV(typ, x, y:Integer;Shift:TShiftState);
  end;

was fählt euch hier auf ? es ist einfach nur ein Syntax Fehler den ich nicht beachtet habe... Aber ich verstehe nicht warum der Complier sowas nicht einfach sagen kann. Ich meine ich hatte den selben fehler schonmal.
(ein Tip: unter fFileName:String *G*)
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Joh, da haste recht.
Ich würde das als FPC Bug bezeichnen. Mit einem internen Compilerfehler (217) dürfte er da nicht reagieren. Kylix behandelt das souveräner und sagt einfach
[Error] Unit1.pas(13): ';' expected but '.' found.

Kannste in den Bugtracker schreiben, falls nicht schon vorhanden.

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »


pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

vielen Dank !
das ist mir jetzt schon zum zweiten mal passiert. Ich weiß gar nicht wie sowas von Delphi behandelt wird. evlt. sollte sowas auch in den FAQ oder so stehen....

die 10 häufigesten Fehler oder so.... das währe doch was oder ?
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Peter Vreman sagt es sein in FPC 2.1.1 repariert.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

oh. Dann ist ja gut. Dann werde ich mir sobald die 22er draußen ist alles Komplet neu installieren bzw. updaten.
MFG
Michael Springwald

Antworten