Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
f: Text;
begin
system.Assign(f, 'test.txt');
Rewrite(f);
WriteLn(f, 'Hello World');
system.Close(f);
end;
Normalerweise kann doch FPC Funktionen überlagern.
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
f: Text;
begin
system.Assign(f, 'test.txt');
Rewrite(f);
WriteLn(f, 'Hello World');
system.Close(f);
end;
Ja, aber wenn es die selbe Funktion mit anderer Bedeutung in einer anderen Unit gibt, so muss man das sagen, sonst kommt es auch auf die Reihenfolge in der Uses an bzw. weis der Compiler nicht welche Funktion du wirklich willst.Mathias hat geschrieben: Mo 7. Nov 2022, 08:22 Was mir aber ein Rätsel ist, wieso muss ich "system" hinschreiben ?
Normalerweise kann doch FPC Funktionen überlagern.
Die kommen halt aus ganz verschiedenen "Welten"Mathias hat geschrieben: Mo 7. Nov 2022, 08:22 Was mir aber ein Rätsel ist, wieso muss ich "system" hinschreiben ?
Normalerweise kann doch FPC Funktionen überlagern.
Code: Alles auswählen
unit Fsize1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, fileUtil;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
const fname = './FSomething';
TYPE
TSomething = record
Erna: LongInt;
Karl: DWord;
end;
var FsomeThing : File of TSomething;
Some : TSomething;
procedure TForm1.Button1Click(Sender: TObject);
var len: int64;
begin
if FileExists (fname) then
DeleteFile(fname);
assignFile (FsomeThing,fname);
rewrite (FsomeThing);
write (FsomeThing, some);
closefile (FsomeThing);
len := filesize (fname);
showMessage (InttoStr(len)+' bytes');
end;
end.
Die Elternklassen von TCustomForm stellen ebenfalls Assign und Close zur Verfügung. Wenn der Compiler eine Methode mit gleichen Namen, aber eventuell unpassender Signature findet, dann sucht er nicht noch in anderen Units nach normalen Funktionen oder Prozeduren weiter. Das ist so seit Klassen in Delphi 1 eingeführt wurden. Deswegen wurden auch die Aliase AssignFile und CloseFile eingeführt, um das zu umgehen.Mathias hat geschrieben: Mo 7. Nov 2022, 08:22 Was mir aber ein Rätsel ist, wieso muss ich "system" hinschreiben ?
Normalerweise kann doch FPC Funktionen überlagern.