Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Compilerfehler wo? (https://www.delphipraxis.net/183381-compilerfehler-wo.html)

wonkos2 6. Jan 2015 11:39

Compilerfehler wo?
 
Frohes neues Jahr allerseits!

Ich bitte um Eure Mithilfe bei einem Kompilerfehler eines kleine Programmschnipsels in der XE3, den ich heute partout nicht erkennen kann. Ich habe folgenden Code erstellt in einer einfachen Unit:

Delphi-Quellcode:
unit MyFunctionsUnit;

interface

uses
  System.SysUtils;
       
type

  NumInStr = array [0 .. numsize] of WideChar;
  NumOutStr = array of WideChar;

public

  function MySplit(input: UnicodeString): NumInStr;
  //function MyConcat(output: NumInStr): UnicodeString;
  //function ArrayToString(const a: NumOutStr): UnicodeString;

end;

implementation

end.
Der Compiler meldet dazu ein "Erwartet: '=', aber FUNCTION erhalten in Zeile 15 (15:3)". Hat jemand eine Idee, wo ich den Fehler suchen muß? In Zeile 15 kann ich ihn nicht entdecken.

Freundliche Grüße,

wonkos2

jfheins 6. Jan 2015 11:45

AW: Compilerfehler wo?
 
Was soll der Programmschnipsel denn tun? Code ist da ja jetzt erst mal keiner.

Ich nehme mal an, du wolltest eigentlich etwas wie "Ungenügende Forward-Deklaration" sehen?

Der schöne Günther 6. Jan 2015 11:46

AW: Compilerfehler wo?
 
Das public (und das end vor implementation) macht keinen Sinn

himitsu 6. Jan 2015 11:57

AW: Compilerfehler wo?
 
In Zeile 15 entdecke ich aber mindesten zwei ":".

Und was hat da
Delphi-Quellcode:
public
und
Delphi-Quellcode:
end;
zu suchen?


[edit] zu langsam

Perlsau 6. Jan 2015 12:25

AW: Compilerfehler wo?
 
@wonkos2:

Du hast doch keine Klasse oder was Entsprechendes deklariert. Dann gibt's auch kein Private oder Public, und eben auch kein end nach einem Type. Wirf also mal das Public und das End vor Implementation raus, und schon läuft's. In einer "normalen" klassenlosen Unit sind alle Funktionen und Variablen public, wenn sie im Interface-Teil stehen.

Wenn du dagegen eine Klasse erzeugst, ist das was ganz anderes:

Delphi-Quellcode:
UNIT DatBankEdit;

INTERFACE

USES
  SysUtils, Controls, Dialogs;

TYPE
 TDatBankEdit = Class

  PRIVATE
   Var
     MyTestVar : String;

   Function GetNewZugangIndex : Integer;
   Function KeyErzeugen      : Integer;
   Procedure Sperrhinweis;

  PUBLIC
   Var
     Fehlermeldung : String;

   Constructor Create();
   Destructor Destroy; override;

   Function Zugang_Neu      : Boolean;
   Function Zugang_Del      : Boolean;
   Function Zugang_Edit     : Boolean;
   Function Zugang_Post     : Boolean;
   Function Zugang_Cancel   : Boolean;

   Procedure Zugang_Sort(Spalte : Integer; Feld : String);

   Function ZgArt_Neu       : Boolean;
   Function ZgArt_Del       : Boolean;
   Function ZgArt_Edit      : Boolean;
   Function ZgArt_Post      : Boolean;
   Function ZgArt_Cancel    : Boolean;

  END;

IMPLEMENTATION

wonkos2 17. Jan 2015 13:23

AW: Compilerfehler wo?
 
Herzlichen Dank für Eure Hilfe, so bin ich ein Stück weiter gekommen! :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz