∑(Klick): 42213new:    u`re38.107.179.226     Bug gefunden?     Inhalt:([STRG+f] hilft :))
Startseite
Theme / Hintergrund setzen
Best viewed with a non-sucky browser [greez at http://www.metal-archives.com], in 1280 x 1024 resolution.

RC5-72 / Team #31659


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