procedure myclass.buttonclick(Sender:tobject);
var WinDir:array[0..255]of char;
i:integer;
begin
i:=GetWindowsDirectory(WinDir,25); {WinDir is the Windows directory}
showmessage(WinDir);
end;
|
Ein Verzeichnis erstellen/löschen
mkdir('c:\myapp'); // erstellen
RmDir('C:\MYAPP'); // löschen
|
Nach ausreichend Festplattenplatz sehen
var
DskSpc : Longint; // vorhandener Speicher
MinDSpace : Longint; // benötigter
begin
MinDSpace:=1024000; // Menge des Benötigtem angeben
DskSpc:=DiskFree(3); // freien Speicher von C(3) lesen
If DskSpc < MinDSpace then //freien mit benötigtem vergleichen
ShowMessage('Not enough Diskspace');
end;
|
oder...
frei := DiskFree(ord(laufwerk) - 64); // "laufwerk" ist ein Char-Typ, z.B.'C' |
Var F : File; begin AssignFile(F,'C:\MYAPP\MYAPP.EXE'); Erase(F); end; |
TBitmap Inhalt als BMP-Datei speichern
Image1.picture.savetofile('Bild.BMP');
|
Ein Editfeld in "Junkfile.txt" hinterlegen
Var OutFile : TextFile; fname,OutString : string; begin fname:='JUNKFILE.TXT'; AssignFile(OutFile,fname); Rewrite(OutFile); OutString:=Edit1.Text; Writeln(OutFile,OutString); CloseFile(OutFile); end; |
Ein Editfeld aus "Junkfile.txt" lesen
Var InFile : TextFile; fname,InString : string; begin fname:='JUNKFILE.TXT'; AssignFile(InFile,fname); Reset(Infile); Readln(InFile,InString); Edit1.Text:=InString; CloseFile(InFile); end; |
Hiermit wird überprüft, ob zwei Bitmaps absolut identisch sind
function istgleich(bm1,bm2:TBitmap):boolean; var x,y:integer; p1,p2:PByteArray; begin result:=false; if (bm1.width<>bm2.width)or(bm1.height<>bm2.height) or(bm1.transparent<>bm2.transparent) //falls nicht benötigt,löschen or(bm1.pixelformat<>bm2.pixelformat)then exit; for x:=0 to bm1.height-1 do begin p1:=bm1.scanline[x]; p2:=bm2.scanline[x]; for y:=0 to bm1.width-1 do if p1[y]<>p2[y] then exit; end; result:=true; end; |
Und jetzt wird überprüft, ob sie identisch sind
procedure TForm1.Button2Click(Sender: TObject);
var bm1,bm2:TBitmap;
begin
bm1:=TBitmap.create;
bm2:=TBitmap.create;
bm1.loadfromfile('c:\bilder\corel009.bmp');
bm2.loadfromfile('c:\bilder\corel009.bmp');
if istgleich(bm1,bm2) then showmessage('Die Bilder sind gleich');
bm2.loadfromfile('c:\bilder\corel008.bmp');
if not istgleich(bm1,bm2) then showmessage('Die Bilder sind ungleich');
bm2.free;
bm1.free;
end
|
Hiermit wird überprüft, ob zwei Textdateien absolut identisch sind
function VergleicheTextDateien(datei1,datei2:string):string;
var ts1,ts2:TStringlist;
begin
result:='gleich';
ts1:=TStringlist.create;
ts2:=TStringlist.create;
ts1.loadfromfile(datei1);
ts2.loadfromfile(datei2);
if not ts1.equals(ts2) then result:='un'+result;
ts2.free;
ts1.free;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
showmessage('Die Dateien sind '+ VergleicheTextDateien('c:\test1.txt','c:\test2.txt'));
end;
|
Das Erstellungsdatum einer Datei ändern
function zeitsetzen(datei,datumzeit:string):integer;
var
i:integer;
h:Thandle;
begin
i:=DateTimeToFileDate(StrToDateTime(datumzeit));
h:=FileOpen(datei,fmOpenwrite);
result:=FilesetDate(h,i);
FileClose(h);
end;
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
s:='31.12.2000 17:01:15';
if zeitsetzen('c:\autoexec.bat',s)<>0 then showmessage('Fehler aufgetreten!');
end;
|
Feststellen, ob eine Diskette/CD im Laufwerk ist
function DiskInDrive(Laufwerk:Char):Boolean;
var SRec:TSearchRec;
I:Integer;
begin
Result:=False;
{$I-}
I:=FindFirst(Laufwerk+':\*.*',faAnyFile,SRec);
FindClose(SRec);
{$I+}
Case I Of
0: Result:=True;
2,18: Result:=True;
End;
DiskInDrive:=Result;
end;
|
Dateien in den Papierkorb verschieben
uses ShellApi,...
function papierkorb(dateien:string):integer; var sfo:tshfileopstruct; begin fillchar(sfo,sizeof(sfo),0); with sfo do begin wnd:=application.handle; wfunc:=fo_delete; fflags:=fof_noconfirmation or fof_allowundo; pfrom:=pchar(dateien+#0); end; result:=shfileoperation(sfo); end; procedure TForm1.Button1Click(Sender: TObject); var d1,d2,d3,ges:String; begin d1:='C:\temp\test1.diz'; d2:='C:\test2.diz'; d3:='C:\test3.diz'; ges:=d1+#0+d2+#0+d3+#0; papierkorb(ges); end; |
uses DDEMan,... procedure SearchInFolder(Folder:string);
begin
with TDDEClientConv.Create(Form1) do begin
ConnectMode := ddeManual;
ServiceApplication := 'Explorer.exe';
SetLink('Folders', 'AppProperties');
OpenLink;
ExecuteMacro(PChar('[FindFolder(, '+Folder+')]'), true);
CloseLink;
Free;
end;
end;
|
NewFileName:=ChangeFileExt(FileListBox1.Filename,'.bak');
if not RenameFile(FileListBox1.Filename,NewFilename) then
ShowMessage('Umbenennung fehlgeschlagen!');
|
Textdateien lesen und schreiben
memo1.Lines.LoadFromFile('test.txt'); // Datei laden
memo1.Lines.SaveToFile('test.txt'); // Datei speichern
|
Um eine Verknüpfung zu erstellen bedarf es schon einer etwas aufwendigeren Procedure.
Sicherlich ist es auch möglich eine bereits existierende Verknüpfung zu nehmen und zu verändern.
Angeblich soll diese Anwendung nicht unter Delphi 4 funktionieren. Aber ich habe es noch nicht ausprobiert
|
unit Shellink;
interface uses type TShellLinkInfo = record function GetHotKey(AHotKey: Word): TShortCut; implementation function GetHotKey(AHotKey: Word): TShortCut; function SetHotKey(AHotKey: TShortCut): Word; function CreateShellLink(ShellLinkInfo: TShellLinkInfo): Boolean; begin Size:=(Length(ShellLinkInfo.LinkName)+1) * sizeof(WideChar); HRes:=CoInitialize(nil); Link.AddRef; HRes:=Link.QueryInterface(IID_IPersistFile, PerFile); //Beschreibung //Ziel //Arbeitsverzeichnis //Argumente //FensterStatus //HotKey //Icon HRes:=PerFile.Save(W, False); Link.Release; FreeMem(W, Size); function GetShellLinkInfo(LinkName: string): TShellLinkInfo; begin Size:=(Length(LinkName)+1) * sizeof(WideChar); GetMem(W, Size); HRes := CoInitialize(nil); HRes:=Link.QueryInterface(IID_IPersistFile, PerFile); HRes := PerFile.Load(W, STGM_READ); result.LinkName:=LinkName; //Beschreibung //Ziel //Arbeitsverzeichnis //Argumente //FensterStatus //HotKey //Icon Link.Release; FreeMem(W, Size); end. |
Den Aktuellen Programmpfad ermitteln
Path := ExtractPathFile(ParamStr(0)); |
|
Procedure TForm1.Button1Click(Sender: TObject); |
procedure TForm1.Button1Click(Sender: TObject); var f: file; l: longint; datei, altstring, neustring, s: string; begin altstring := 'Windows 95 wird gestartet...'; neustring := 'Windows 95 stürzt ab... '; datei := 'C:\kopie von io.sys'; s := altstring; assignFile(f, datei); reset(f,1); for l := 0 to filesize(f)-length(altstring)-1 do begin Application.ProcessMessages; seek(f,l); blockread(f,altstring[1],length(altstring)); if altstring = s then begin seek(f,l); blockwrite(f,neustring[1],length(neustring)); label1.caption := 'Status: Stelle gefunden und gepatcht!'; end; Application.ProcessMessages; end; closeFile(f); end; |
Einen Dateinamen sinnvoll kürzen
z.B. c:\windows\bureau\boom.wav -> boom.wav
|
Edit1.Text := ExtractFileName(OpenDialog1.Filename); |