Delphi 2009: Download einer Datei

September 20, 2010 - Lesezeit: ~1 Minute

Download einer Datei mit der TDownLoadURL - Action. Da diese Komponente DLL's des IE nutzt, braucht der Entwickler keine weiteren Einstellungen (Proxy ...) vorsehen.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls,
  ExtActns;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure Progress(Sender: TDownLoadURL; Progress, ProgressMax: Cardinal; StatusCode: TURLDownloadStatus; StatusText: string; var Cancel: Boolean);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TDownLoadURL.Create(nil) do
  try
    URL := 'http://../test.txt';      // URL der Datei
    Filename := '...\test.txt';       // Name der Datei
    OnDownloadProgress := Progress;   // Status des Downloads anzeigen
    Execute;
  finally
    Free;
  end;
end;

procedure TForm1.Progress(Sender: TDownLoadURL; Progress, ProgressMax: Cardinal; StatusCode: TURLDownloadStatus;
  StatusText: string; var Cancel: Boolean);
begin
  ProgressBar1.Max:=ProgressMax;
  ProgressBar1.Position:=Progress;
  Caption:=StatusText;
end;

end.
Tags: Delphi Delphi 2009

Firebird: Trigger für mehrere Ereignisse

September 15, 2010 - Lesezeit: ~1 Minute

ab Firebird 1.5 kann man einen Trigger erstellen, der für mehrere Ereignisse zuständig ist.

 


Beispiel:

 

 create trigger trigger_adressen for adressen  before insert or update or delete as
 begin
   ...
 end

 

 

 Um zu erkennen, in welche Aktion der Tabelle aufgerufen wurde, gibt es die neuen Variablen

 

INSERTING, UPDATING und DELETING 

 

Beispiel:

 

 create trigger trigger_adressen for adressen  before insert or update or delete as
 begin
   if (deleting) then proc(old.ID); else proc(new.ID);
 end

 

 

Tags: Firebird SQL

7. Brandenburger Linux-Infotag

September 9, 2010 - Lesezeit: ~1 Minute

7. Brandenburger Linux-Infotag

Tags: Linux Linuxtag

DelForExp 2.5.2 an Windows 7 für Delphi 2009 angepasst

August 13, 2010 - Lesezeit: ~1 Minute

DelForExp ist ein altes Opensource-Tool zur Formatierung von Delphi-Quellcode aus der IDE heraus. Es wurde von mir nur für Delphi 2009 und Windows Vista/7 angepasst.

Tags: Programme Freeware Delphi 2009

Neue Version dspSubversion

August 12, 2010 - Lesezeit: ~1 Minute

Die neue Version funktioniert jetzt auch unter Windows 7 richtig

Tags: Programme Freeware

Variablen vom Typ Record in einer dynamischen Liste verwalten

August 6, 2010 - Lesezeit: ~1 Minute
unit MerkRecord;

interface

uses Classes,Variants;

type
  // Dieser Rekord soll in der Liste enthalten sein
  TMerkRecord = Record
    I :integer;
    s :string;
    v : Variant;
    a :array of char;
  End;

  // die eigentliche Liste
  TMerkList = class(TList)
  private
    function GetItems(index: integer): TMerkRecord;
  protected
    // Freigabe des Speichers
    procedure Notify(Ptr: Pointer; Action: TListNotification); override;
  public
    // Zugriff auf den Rekord
    property Items[index :integer] :TMerkRecord read GetItems; default;
    // Neuen Record hinzufügen
    function Add(R :TMerkRecord) :integer;
  end;

implementation

type
  PMerkRecord = ^TMerkrecord;

{ TMerkList }

function TMerkList.Add(R: TMerkRecord): integer;
var
  P :PMerkRecord;
begin
  P:= new(PMerkRecord);
  P^:=R;
  Result:=inherited Add(P);
end;

function TMerkList.GetItems(index: integer): TMerkRecord;
begin
 Result:=PMerkRecord(inherited Items[Index])^;
end;

{Strings und dynamische Arrays müssen auf die Länge von 0 gesetzt werden.
 Da Variants alle Typen enthalten können, müssen sie auf NULL gesetzt werden}

procedure TMerkList.Notify(Ptr: Pointer; Action: TListNotification);
begin
  if Action=lnDeleted then begin
    PMerkRecord(Ptr).s:='';
    PMerkRecord(Ptr).V:=Null;
    SetLength(PMerkRecord(Ptr).a,0);
    Dispose(Ptr);
  end;
  inherited;
end;

end.
Tags: Delphi Delphi 2009