Codebase, Hinweis:
Die Seiten "gewusst wie" geben Implemenmtierungsbeispiele für
verschiedene Aufgaben in unterschiedlichen Technoligien. Die
Beispiele sind zumeist wenig dokumentiert. Es soll hier kurz und
knapp die (eine) Umsetzung des Problems nahegelegt werden. Nähere
Informationen zu den verwendeten Codes finden sich im Netz :)
|
Delphi Codebook
|
|
1--> DATEI KOPIEREN
2--> FORMULAR DYNAMISCH ERSTELLEN
3--> FORMULAR DYNAMISCH FREIGEBEN
4--> FORMULARE ZUR LAUFZEIT ERZEUGEN / ZERSTÖREN
5--> TINIFILE: lesen und schreiben
6--> Label als Hyperlink
7--> MEHRFACHEN PROGRAMMSTART VERHINDERN
8--> PROGRAMMVERZEICHNIS ERMITTELN
9--> SYSTEMINFO, Speicherinformationen, Ram
10--> TEXTDATEI in ein MEMO laden
11--> TYPPRÜFUNG INTEGER
12--> UHR ZEICHNEN
____ ____ ____ ____ ____ ____ ____ ____ ____
1--> DATEI KOPIEREN
Procedure Datei_kopieren(Quelldatei:string; zieldatei:string); // Pfad + Name
var q_datei, z_datei,q_dir,z_dir : string;
Source, Target: TFileStream;
fehler : boolean;
begin
fehler := true;
q_datei := quelldatei;
z_datei := zieldatei;
q_dir := extractfilepath(Quelldatei);
delete(q_dir,length(q_dir), 1);
z_dir := extractfilepath(Zieldatei);
delete(z_dir,length(z_dir), 1);
try
Source := TFilestream.Create(q_datei, fmOpenRead);
Target := TFileStream.Create(z_datei, fmCreate);
try
Target.CopyFrom(source, 0);
fehler := false;
finally
Target.Free
end;
finally
Source.Free
end;
if fehler then MessageDlg('Datei nicht erfolgreich hinzugefügt.
(Quelldatei : '+q_datei + ' | Zieldatei : '+z_datei,mtError,[mbOK],0)
end;
____________________________666Seitenanfang666_____________________________
2--> FORMULAR DYNAMISCH ERSTELLEN
if PagesDlg = nil then
BEGIN
Application.CreateForm(TPagesDlg, PagesDlg);
PagesDlg.PageControl1.Activepageindex := 1;
PagesDlg.Show;
END;
____________________________666Seitenanfang666_____________________________
3--> FORMULAR DYNAMISCH FREIGEBEN
if pw_form <> NIL then
begin
pw_form.release;
pw_form := nil;
end;
____________________________666Seitenanfang666_____________________________
4--> FORMULARE ZUR LAUFZEIT ERZEUGEN / ZERSTÖREN
procedure Tform_hintergrund.ToolButton2Click(Sender: TObject);
Var Form_Einstellungen : TForm_Einstellungen;
begin
Form_Einstellungen := TForm_Einstellungen(self);
try
Form_Einstellungen.showmodal;
Form_Einstellungen.BringToFront;
finally
Form_Einstellungen.free;
end;
end.
____________________________666Seitenanfang666_____________________________
5--> TINIFILE: lesen und schreiben
Die Parameter myInt, myString und myBool müssen vorher initialisiert werden
Der Aufruf der read-Methoden folgt dem Schema
Methode(Section,Name des Parameters,Detault Wert)
Der Aufruf der write-Methoden folgt dem Schema
Methode(Section,Name des Parameters, zu schreibender Wert
im Inifile sieht das dann zB so aus:
[configuration]
Variablenname=Variablenwert
Variablenname=Variablenwert
Variablenname=Variablenwert
...
procedure get_config;
Var configfile : TIniFile;
begin
try
// lesen:
configfile := TInifile.create([Pfad + Dateiname]);
myInt := configfile.readinteger('configuration','Variablenname',0);
myString := configfile.readstring('configuration','Variablenname','leer');
myBool := configfile.readbool('configuration','Variablenname',false);
// schreiben
configfile.writeinteger('configuration','Variablenname',myInt);
configfile.writestring('configuration','Variablenname',myString);
configfile.writebool('configuration','Variablenname',myBool);
finally
configfile.free;
end;
end;
____________________________666Seitenanfang666_____________________________
6--> Label als Hyperlink
procedure TFormSilentAlert.Label1Click(Sender: TObject);
begin
ShellExecute(Application.Handle,'open',PCHar('http://www.schlumsch.de')
,nil,nil,sw_ShowNormal);
end;
____________________________666Seitenanfang666_____________________________
7--> MEHRFACHEN PROGRAMMSTART VERHINDERN
Folgende Unit einbinden:
unit only_one;
interface
implementation
uses forms, windows;
var mutex : THandle;
h : HWnd;
initialization
mutex := CreateMutex(nil,true,'MyXYZMutex');
if getLastError = ERROR_ALREADY_EXISTS then begin
h := 0;
repeat
h := FindWindowEx(0,h,'TApplication',PChar(Application.Title))
until h <> application.handle;
if h <> 0 then begin
Windows.ShowWindow(h, SW_ShowNormal);
windows.SetForegroundWindow(h);
end;
halt;
end;
finalization
ReleaseMutex(mutex);
end.
____________________________666Seitenanfang666_____________________________
8--> PROGRAMMVERZEICHNIS ERMITTELN
Prog_Dir := extractfilepath(paramstr(0));
delete(Prog_Dir,length(Prog_Dir), 1);
____________________________666Seitenanfang666_____________________________
9--> SYSTEMINFO, Speicherinformationen, Ram
procedure sysinfo_ram;
Var memory : TMemoryStatus;
begin
memory.dwLength := sizeof(memory);
GlobalMemoryStatus(memory);
with Form_sysmon.stringgrid_ram do
begin
colwidths[0] := clientwidth div 2;
colwidths[1] := clientwidth div 2;
rowheights[0] := clientheight div 3;
rowheights[1] := clientheight div 3;
rowheights[2] := clientheight div 3;
cells[0,0] := 'RAM free';
cells[1,0] := 'RAM total';
cells[0,1] := inttostr(round(memory.dwAvailPhys /1024)) + 'kb';
cells[1,1] := inttostr(round(memory.dwTotalPhys /1024)) + 'kb';
cells[0,2] := inttostr(round(memory.dwAvailPhys /(1024*1024))) + 'mb';
cells[1,2] := inttostr(round(memory.dwTotalPhys /(1024*1024))) + 'mb';
end;
end;
____________________________666Seitenanfang666_____________________________
10--> TEXTDATEI in ein MEMO laden
try
if not fileexists(fname) then exit;
AssignFile(F, fname);
Reset(F);
while not EOF(F) do
begin
Readln(F, t); { Erste Zeile aus der Datei lesen }
Memo1.Lines.append(t); { Zeile in das Memofeld einfügen }
end;
CloseFile(F);
finally
end;
____________________________666Seitenanfang666_____________________________
11--> TYPPRÜFUNG INTEGER
function isInteger(value:string):boolean;
begin
Result := true;
try
strtoint(value);
except
Result := false
end;
end;
____________________________666Seitenanfang666_____________________________
12--> UHR ZEICHNEN
Procedure TAlarmform.uhr_zeichnen;
// Uhr malen
var
Datum: TDateTime;
h,m,s,ms : word;
i, x, y: integer;
begin
with Image1 do begin
Canvas.brush.Color := clbtnface;
Canvas.Pen.Color := clblack;
canvas.pen.Width := 1;
Canvas.Font.Color:= clBlack;
Canvas.TextOut((Image1.clientwidth div 2),0, '0');
Canvas.TextOut((Image1.clientwidth-15),Image1.clientheight div 2, '15');
Canvas.TextOut((Image1.clientwidth div 2),Image1.clientheight-15, '30');
Canvas.TextOut(0,Image1.clientheight div 2, '45');
i := strtoint(FormatDateTime('s',now));
Datum := time;
DecodeTime(Datum, H, M, S, MS);
if (S=1) then
begin
Canvas.brush.Color := clbtnface;
Canvas.Pen.Color := clbtnface;
Canvas.rectangle(0, 0, Width, Height);
end;
Canvas.Pen.Color := clred;
Canvas.MoveTo(Width div 2, Height div 2);
x := trunc(cos(pi/180 * (i * 6 - 90)) * (Width div 2 - 15) + Width div 2);
y := trunc(sin(pi/180 * (i * 6 - 90)) * (Height div 2 - 15) + Height div 2);
Canvas.LineTo(X,Y);
end;
End;
____________________________666Seitenanfang666_____________________________
666
|