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
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
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 2009Die neue Version funktioniert jetzt auch unter Windows 7 richtig
Tags: Programme Freewareunit 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