AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Compilermeldungen

Ein Thema von jnaumann50 · begonnen am 2. Dez 2011 · letzter Beitrag vom 2. Dez 2011
Antwort Antwort
jnaumann50

Registriert seit: 23. Nov 2011
Ort: Zwickau
6 Beiträge
 
Delphi XE2 Professional
 
#1

Compilermeldungen

  Alt 2. Dez 2011, 13:45
Delphi-Version: 2007
Hallo,
ich erhalte bei einem alten Proket (Delphi3) welches ich nach Delphi2009 umsetzen muss seltsame Comiler-Fehler sieh Quelltextausschnitt
Delphi-Quellcode:
  type
    Ptr_CPC_MSG = ^CPC_MSG;

var
  MainForm : TMAINForm;
  professional : byte; // Code für Freischaltung/Berechtigung (1-4)
  projektOffen : Boolean; // true, falls gerade ein Projekt geöffnet ist

    MainIniPath : String;
    MyIni : TIniFile;
    MyProjectIni : TIniFile;
    zahl : Integer;
    FileList : THistoryList;
    IniPfad : String;
    PPfad : String;
    SpeicherPfad : String;
    CanHandle : Integer;
    Time : Boolean;
    MyMsgPtr : CPC_CAN_MSG;
    MsgHandlePtr : Ptr_CPC_MSG;
    Adress : Word;
    AdressHelp : String;
    Fehler : Integer;
    KnotenNr : Integer;
    Format : String;
    CanAktiv : Boolean;

     PASSWORT : array [0..4] of string;
     //Passwörter für das Freischalten auf höhere Berechtigungen

  //procedure scaleform ( TForm; w,h : boolean);

//implementation

{$R *.DFM}

uses About, ModDelete, EditModul, ParameterAll, newModul, warte, ProtUnit,
  Folder_Unit, zusammenfassung, Passw, Freischalt, QuellView;
// Fehler Deklaration erwartet, aber Uses gefuden


{--------------------- erzeugen des Formulares -------------------------------}
{-----------------------------------------------------------------------------}

    PROCEDURE MainMenue1(Sender: TObject); // E2004 Bezeichner redefiniert
    begin
      end;
    end;
{=============================================================================
CopyFile procedure found in the FMXUTILS.PAS file in Delphi\Demos\Doc\Filmanex
This is an example of copying a file using a buffer.
=============================================================================}

procedure CopyFile(const FileName, DestName: TFileName);
var
  CopyBuffer: Pointer; { buffer for copying }
  TimeStamp, BytesCopied: Longint;
  Source, Dest: Integer; { handles }
  Destination: TFileName; { holder for expanded destination name }
const
  ChunkSize: Longint = 8192; { copy in 8K chunks }
begin
  Destination := ExpandFileName(DestName); { expand the destination path }
  if HasAttr(Destination, faDirectory) then { if destination is a directory... }
    Destination := Destination + '\' + ExtractFileName(FileName); { ...clone file name }
  TimeStamp := FileAge(FileName); { get source's time stamp }
  GetMem(CopyBuffer, ChunkSize); { allocate the buffer }
  try
    Source := FileOpen(FileName, fmShareDenyWrite); { open source file }
    if Source < 0 then raise EFOpenError.Create(FmtLoadStr(SFOpenError, [FileName]));
    try // undeklarierter Bezeichner SFOpenError
      Dest := FileCreate(Destination); { create output file; overwrite existing }
      if Dest < 0 then raise EFCreateError.Create(FmtLoadStr(SFCreateError, [Destination]));
      try // undeklarierter Bezeichner SFCreateError
        repeat
          BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk }
          if BytesCopied > 0 then { if we read anything... }
            FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk }
        until BytesCopied < ChunkSize; { until we run out of chunks }
      finally
        FileClose(Dest); { close the destination file }
      end;
    finally
      FileClose(Source); { close the source file }
    end;
  finally
    FreeMem(CopyBuffer, ChunkSize); { free the buffer }
  end;
end;

PROCEDURE TMainForm.FormCreate(Sender: TObject); // E2009 ; erwartet aber . gefunden
var pw : file;
    i, z : integer;
    laenge : byte;
BEGIN
     (* Variable mit Pfad der Anwendung initialisieren *)
     MainIniPath := ExtractFilePath(ParamStr(0));
     (* Variable mit der AnwendungsDatei initialisieren *)
     IniPfad := MainForm.MainIniPath + 'MDI-Haupt.ini';
     (* Instanz einer IniDatei erzeugen *)
     MyIni := TIniFile.Create (IniPfad);
     (* Hilfshinweise aktivieren *)
     Application.OnHint := ShowHint;
     (* Instanz einer HistList erzeugen *)
     FileList := THistoryList.Create ;
     (* HistList aus IniDatei lesen *)
     FileList.LoadFromIni (IniPfad,'Files'); // Operator oder Semikolon fehlt
     (* HistList an Menü anhängen *)
     FileList.MenuItem := Datei; // Operator oder Semikolon fehlt

Geändert von SirThornberry ( 2. Dez 2011 um 14:02 Uhr)
  Mit Zitat antworten Zitat
CarlAshnikov

Registriert seit: 18. Feb 2011
Ort: Erfurt
108 Beiträge
 
Delphi XE5 Enterprise
 
#2

AW: Compilermeldungen

  Alt 2. Dez 2011, 13:55
Also ich würde dir zunächst raten, den Code in Delphi Tags zu packen, damit hier jemand was erkennen kann.

Außerdem denke ich, dass
Zitat:
//implementation
lieber nicht auskommentiert werden sollte.
Sebastian
  Mit Zitat antworten Zitat
jnaumann50

Registriert seit: 23. Nov 2011
Ort: Zwickau
6 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Compilermeldungen

  Alt 2. Dez 2011, 14:25
Hier der Quelltextauszug klarer;

procedure CopyFile(const FileName, DestName: TFileName);
var
CopyBuffer: Pointer; { buffer for copying }
TimeStamp, BytesCopied: Longint;
Source, Dest: Integer; { handles }
Destination: TFileName; { holder for expanded destination name }
const
ChunkSize: Longint = 8192; { copy in 8K chunks }
begin
Destination := ExpandFileName(DestName); { expand the destination path }
if HasAttr(Destination, faDirectory) then { if destination is a directory... }
Destination := Destination + '\' + ExtractFileName(FileName); { ...clone file name }
TimeStamp := FileAge(FileName); { get source's time stamp }
GetMem(CopyBuffer, ChunkSize); { allocate the buffer }
try
Source := FileOpen(FileName, fmShareDenyWrite); { open source file }
if Source < 0 then raise EFOpenError.Create(FmtLoadStr(SFOpenError, [FileName]));
try Undelarierter Bezeichner>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >^^^^


Dest := FileCreate(Destination); { create output file; overwrite existing }
if Dest < 0 then raise EFCreateError.Create(FmtLoadStr(SFCreateError, [Destination]));
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // undeklarierter Bezeichner SFCreateError
try
repeat
BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk }
if BytesCopied > 0 then { if we read anything... }
FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk }
until BytesCopied < ChunkSize; { until we run out of chunks }
finally
FileClose(Dest); { close the destination file }
end;
finally
FileClose(Source); { close the source file }
end;
finally
FreeMem(CopyBuffer, ChunkSize); { free the buffer }
end;
end;

PROCEDURE TMainForm.FormCreate(Sender: TObject);

// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> E2009 ; erwartet aber . gefunden

var pw : file;
i, z : integer;
laenge : byte;
BEGIN
(* Variable mit Pfad der Anwendung initialisieren *)
MainIniPath := ExtractFilePath(ParamStr(0));
(* Variable mit der AnwendungsDatei initialisieren *)
IniPfad := MainForm.MainIniPath + 'MDI-Haupt.ini';
(* Instanz einer IniDatei erzeugen *)
MyIni := TIniFile.Create (IniPfad);
(* Hilfshinweise aktivieren *)
Application.OnHint := ShowHint;
(* Instanz einer HistList erzeugen *)
FileList := THistoryList.Create ;
(* HistList aus IniDatei lesen *)
FileList.LoadFromIni (IniPfad,'Files');

// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>Operator oder Semikolon fehlt

(* HistList an Menü anhängen *)
FileList.MenuItem := Datei;

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Operator oder Semikolon fehlt

(* CAN geschlossen *)
CanAktiv := FALSE;

(*** geändert 21.06.05 Stefan Wild ***)
(* Projektpfad vorgeben *)
MainIniPath := MainIniPath + 'Projekte\';
{ Standardpfad für Projektdaten wird nicht mehr mit gespeichert,
sondern ist immer der Unterordner Projekte

(* aus AnwendungsDatei letzten Projektpfad auslesen *)
hilf := MyIni.ReadString ('Projektdaten','pfad','Error');
(* wenn kein Projektpfad vorhanden ist ... *)
IF (hilf = '') or (hilf = 'Error') THEN
BEGIN
(* Projektpfad vorgeben *)
MainIniPath := MainIniPath + 'Projekte\';
MyIni.WriteString('Projektdaten','pfad',MainIniPat h);
END
ELSE
BEGIN
(* wenn Pfad vorhanden ... *)
(* Variable mit ProjektPfad initialisieren *)
MainIniPath := hilf;
END; }

projektOffen := false;

(*** eingefügt 22.6.05 Stefan Wild ***)
(* Speicherung der Passwörter in verschlüsselter Datei *)
professional := 1;

if FileExists(ExtractFilePath(Paramstr(0)) + 'iblCM2005.pwl') then begin
try
AssignFile(pw, ExtractFilePath(Paramstr(0)) + 'iblCM2005.pwl');
Reset(pw, 1);
for z := 2 to 4 do begin
(* verschlüsseltes Passwort lesen *)
BlockRead(pw, laenge, 1);
PASSWORT[z] := ' ';
SetLength(PASSWORT[z], laenge);
for i := 1 to laenge do begin
BlockRead(pw, PASSWORT[z][i], 1);
end;
end;
CloseFile(pw);
except
on Exception do begin
try CloseFile(pw);
except on Exception do
// wenn die Datei nicht offen war, schließen wir sie halt auch nicht
end;
PasswForm.neuepw;
end; // except
end; // try
end // if fileExists
else
PasswForm.neuepw;

(*** eingefügt 7.7.05 Stefan Wild ***)
(* weiter Menüpunkt falls Digitalausgänge getestet werden können *)
if FileExists(ExtractFilePath(ParamStr(0)) + '\DigOutTest\Project1.exe')
then Digitalout.Visible := true;
// else ist es nach Voreinstellung false

END;

Danke für den Hinweis
Jürgen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Compilermeldungen

  Alt 2. Dez 2011, 15:13
Hier der Quelltextauszug klarer;
Solange du deinen Quelltext nicht mit den dafür vorgesehenen Tags formatierst ist er nicht klarer.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
jnaumann50

Registriert seit: 23. Nov 2011
Ort: Zwickau
6 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Compilermeldungen

  Alt 2. Dez 2011, 16:42
Bitte kannst Du mir mal ein Beispiel geben - Leider habe ich keine Auhneung was Du meinst
Sorry

Jürgen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Compilermeldungen

  Alt 2. Dez 2011, 16:51
statt:
procedure TotalBloedAussehenderQuellText;
begin
ShowMessage('DasKannDochKeinSchweinLesen');
end;

sollst du
Delphi-Quellcode:
procedure TotalSchoenAussehenderQuellText;
begin
  ShowMessage('Geht doch');
end;
Weil man sonst davon Augenkrebs bekommt.

Und so einfach ist das gemacht:
Code:
[DELPHI]
procedure TotalSchoenAussehenderQuellText;
begin
  ShowMessage('Geht doch');
end;
[/DELPHI]
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jnaumann50

Registriert seit: 23. Nov 2011
Ort: Zwickau
6 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Compilermeldungen

  Alt 2. Dez 2011, 17:35
3000-mal sorry für mein Unverständnis
Ich hoffe Du hilfst mir freundlicherweise weiter

Delphi-Quellcode:
procedure CopyFile(const FileName, DestName: TFileName);
var
  CopyBuffer: Pointer; { buffer for copying }
  TimeStamp, BytesCopied: Longint;
  Source, Dest: Integer; { handles }
  Destination: TFileName; { holder for expanded destination name }
const
  ChunkSize: Longint = 8192; { copy in 8K chunks }
begin
  Destination := ExpandFileName(DestName); { expand the destination path }
  if HasAttr(Destination, faDirectory) then { if destination is a directory... }
    Destination := Destination + '\' + ExtractFileName(FileName); { ...clone file name }
  TimeStamp := FileAge(FileName); { get source's time stamp }
  GetMem(CopyBuffer, ChunkSize); { allocate the buffer }
  try
    Source := FileOpen(FileName, fmShareDenyWrite); { open source file }
    if Source < 0 then raise EFOpenError.Create(FmtLoadStr(SFOpenError, [FileName]));
    try

[COLOR="Red"] // Compilerfehlermeldung: undeklarierter Bezeichner SFOpenError [/COLOR]

      Dest := FileCreate(Destination); { create output file; overwrite existing }
      if Dest < 0 then
      raise
        EFCreateError.Create(FmtLoadStr(SFCreateError[Destination]));
      try

[COLOR="Red"] // Compilerfehlermeldun: [/COLOR]

        repeat
          BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk }
          if BytesCopied > 0 then { if we read anything... }
            FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk }
        until BytesCopied < ChunkSize; { until we run out of chunks }
      finally
        FileClose(Dest); { close the destination file }
      end;
    finally
      FileClose(Source); { close the source file }
    end;
  finally
    FreeMem(CopyBuffer, ChunkSize); { free the buffer }
  end;
end;

PROCEDURE TMainForm.FormCreate(Sender: TObject);

[COLOR="Red"] // E2009 ; erwartet aber . gefunden [/COLOR]

var pw : file;
    i, z : integer;
    laenge : byte;
BEGIN
     (* Variable mit Pfad der Anwendung initialisieren *)
     MainIniPath := ExtractFilePath(ParamStr(0));
     (* Variable mit der AnwendungsDatei initialisieren *)
     IniPfad := MainForm.MainIniPath + 'MDI-Haupt.ini';
     (* Instanz einer IniDatei erzeugen *)
     MyIni := TIniFile.Create (IniPfad);
     (* Hilfshinweise aktivieren *)
     Application.OnHint := ShowHint;
     (* Instanz einer HistList erzeugen *)
     FileList := THistoryList.Create ;
     (* HistList aus IniDatei lesen *)// Operator ode
     FileList.LoadFromIni (IniPfad,'Files');

[COLOR="Red"]// Operator oder Semikolon fehlt [/COLOR]

     (* HistList an Menü anhängen *)
     FileList.MenuItem := Datei;

[COLOR="Red"]// Operator oder Semikolon fehlt[/COLOR]

     (* CAN geschlossen *)
     CanAktiv := FALSE;

 
END;
Vielen Dank im Voraus
Jürgen
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: Compilermeldungen

  Alt 2. Dez 2011, 17:40
Bei dem "unbekannter Bezeichner Fehler" handelt es sich in aller Regel (falsch geschrieben einmal außen vor gelassen) um eine fehlende Unit im uses.
Dazu einfach mal in den Delphi Sourcen nach diesem Bezeichner suchen und die entsprechende Unit einbinden - Tip: nach "<name des bezeichners> =" suchen, sonst findet man sämliche Vorkommen und nicht nur die Definition.

P.S. Farbtags innerhalb des Delphi Tags funktionieren leider nicht
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Compilermeldungen

  Alt 2. Dez 2011, 17:48
Ok, wenn wir darüber mal hinwegsehen ...

Im ersten Beitrag (ein dienstbarer Geist hat den ja schon leserlich gestaltet) finde ich sowas
Delphi-Quellcode:
...

  //procedure scaleform ( TForm; w,h : boolean);

//implementation

{$R *.DFM}

uses About, ModDelete, EditModul, ParameterAll, newModul, warte, ProtUnit,
  Folder_Unit, zusammenfassung, Passw, Freischalt, QuellView;
// Fehler Deklaration erwartet, aber Uses gefuden

    PROCEDURE MainMenue1(Sender: TObject); // E2004 Bezeichner redefiniert
    begin
      end;
    end;

PROCEDURE TMainForm.FormCreate(Sender: TObject); // E2009 ; erwartet aber . gefunden
Wenn man implementation auskommentiert, dann wundern mich die meisten Fehlermeldungen hier nicht.
(auch dieses wurde hier schon mehrfach gesagt)

***EDIT: Man kann den eigenen Beitrag innerhalb von 24h auch editieren, dafür gibt es unter dem eigenen Beitrag ein Button mit "Bearbeiten"
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 2. Dez 2011 um 17:51 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 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