![]() |
Delphi-Version: 2007
Compilermeldungen
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 |
AW: Compilermeldungen
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:
|
AW: Compilermeldungen
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 |
AW: Compilermeldungen
Zitat:
|
AW: Compilermeldungen
Bitte kannst Du mir mal ein Beispiel geben - Leider habe ich keine Auhneung was Du meinst
Sorry Jürgen |
AW: Compilermeldungen
statt:
procedure TotalBloedAussehenderQuellText; begin ShowMessage('DasKannDochKeinSchweinLesen'); end; sollst du
Delphi-Quellcode:
Weil man sonst davon Augenkrebs bekommt.
procedure TotalSchoenAussehenderQuellText;
begin ShowMessage('Geht doch'); end; Und so einfach ist das gemacht:
Code:
[DELPHI]
procedure TotalSchoenAussehenderQuellText; begin ShowMessage('Geht doch'); end; [/DELPHI] |
AW: Compilermeldungen
Danke Sir Rufo
Hie die lesbarere Version
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 // COMPILERFEHLERMELDUNG undeklarierter Bezeichner SFOpenError Dest := FileCreate(Destination); { create output file; overwrite existing } if Dest < 0 then raise EFCreateError.Create(FmtLoadStr(SFCreateError, [Destination])); try // COMPILERFEHLERMELDUNG 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); // COMPILERFEHLERMELDUNG 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'); // COMPILERFEHLERMELDUNG Operator oder Semikolon fehlt (* HistList an Menü anhängen *) FileList.MenuItem := Datei; // COMPILERFEHLERMELDUNG Operator oder Semikolon fehlt (* CAN geschlossen *) CanAktiv := FALSE; ... some code END; |
AW: Compilermeldungen
Ich gebs auf ... :roll:
|
AW: Compilermeldungen
sieht aus als ob Ihr Auszüge aus der alten FmxUtils.pas noch verwendet, sonst müsste er bei HasAttr schon meckern.
Wenn Du Glück hast fehlt Dir nur RTLConsts in den Uses |
AW: Compilermeldungen
Is scho schwer, Text zu markieren und auf den Helm zu klicken... :twisted:
|
AW: Compilermeldungen
Zitat:
Reflektieren und der eigenen Arbeit kritisch gegenüberstehen ... |
AW: Compilermeldungen
Hallo jnaumann50,
wenn ich es richtig überblicke, dürfte Dein Hauptproblem sein, daß (aus nicht ersichtlichem Grund) diese Zeile in Deinem Code auskommentiert ist:
Delphi-Quellcode:
Gruss,
//implementation
blauweiss |
AW: Compilermeldungen
3000-mal sorry für mein Unverständnis
Ich hoffe Du hilfst mir freundlicherweise weiter
Delphi-Quellcode:
Vielen Dank im Voraus
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; Jürgen |
AW: Compilermeldungen
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 :( |
AW: Compilermeldungen
Ok, wenn wir darüber mal hinwegsehen ...
Im ersten Beitrag (ein dienstbarer Geist hat den ja schon leserlich gestaltet) finde ich sowas
Delphi-Quellcode:
Wenn man
...
//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
Delphi-Quellcode:
auskommentiert, dann wundern mich die meisten Fehlermeldungen hier nicht.
implementation
(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" ;) |
AW: Compilermeldungen
ICH BIN KEIN GEIST! :mrgreen:
|
AW: Compilermeldungen
Zitat:
Zitat:
|
AW: Compilermeldungen
Zitat:
Zum Problem: Einmal SFOpenError bei Google eingeben, (bei mir) zweites Ergebnis anklicken, fertig... :roll: ![]() Es fehlt einfach die Unit RTLConsts in der uses, weil die Konstanten in Delphi 6 oder 7 dorthin verschoben wurden... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz