/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Opdatering af telefonbog over nettet
Fra : Vinther


Dato : 13-02-06 21:17

Hej.

Jeg har lavet en foreningstelefonbog, hvor alle numre på formand,
bestyrelse, udvalg m.v. er indtastet. I øjeblikket sker opdateringen at
telefonbogen ved at jeg opdaterer i min database og databasefilerne sender
jeg så rundt til dem, der skal have adgang til telefonbogen, hvor de
tidligere databaser overskrives.

Men det må kunne gøres automatisk. Er det muligt at lave nogle funktioner,
der kan gøre følgende

- Automatisk opdatering over nettet ved adgang til internettet (altså der
sker automatisk opdatering, når computeren tilsluttes internettet)
- Automatisk opdatering over netter ved programstart (altså der sker
automatisk opdatering, når programmet starter op (hvis der er netadgang))
- Opdatering over nettet ved valg heraf. (programmet opdaterer sig over
nettet, hvis man i programmet vælger "opdater database".

Hvad skal jeg lede efter, hvis ovenstående er muligt?

På forhånd tak.



 
 
Harald (13-02-2006)
Kommentar
Fra : Harald


Dato : 13-02-06 22:06

"Vinther" <2584431m003@FJERNstofanet.dk> skrev i en meddelelse
news:43f0e93e$0$11162$ba624c82@nntp02.dk.telia.net...
> Hej.
>
> Jeg har lavet en foreningstelefonbog, hvor alle numre på formand,
> bestyrelse, udvalg m.v. er indtastet. I øjeblikket sker opdateringen at
> telefonbogen ved at jeg opdaterer i min database og databasefilerne sender
> jeg så rundt til dem, der skal have adgang til telefonbogen, hvor de
> tidligere databaser overskrives.
>
> Men det må kunne gøres automatisk. Er det muligt at lave nogle funktioner,
> der kan gøre følgende
>
> - Automatisk opdatering over nettet ved adgang til internettet (altså der
> sker automatisk opdatering, når computeren tilsluttes internettet)
> - Automatisk opdatering over netter ved programstart (altså der sker
> automatisk opdatering, når programmet starter op (hvis der er netadgang))
> - Opdatering over nettet ved valg heraf. (programmet opdaterer sig over
> nettet, hvis man i programmet vælger "opdater database".
>
> Hvad skal jeg lede efter, hvis ovenstående er muligt?

Hvis ikke alle og enhver skal have adgang så brug en indy (eller anden) ftp
komponent til at hente database filerne.

/HK



Brian Andersen \(www~ (14-02-2006)
Kommentar
Fra : Brian Andersen \(www~


Dato : 14-02-06 08:04

Tjaa. Enklere kan det vist ikke gøres.

/Brian



Vinther (14-02-2006)
Kommentar
Fra : Vinther


Dato : 14-02-06 10:32

"Brian Andersen (www.europeansoftwarehouse.com)" <x@x.x> skrev i en
meddelelse news:mffIf.6$QQ.2@news.get2net.dk...
> Tjaa. Enklere kan det vist ikke gøres.

Hej Brian.

Hvad mener du med det? (Ud fra ovenstående, kan jeg ikke se, hvad du svarer
på)



Brian Andersen \(www~ (14-02-2006)
Kommentar
Fra : Brian Andersen \(www~


Dato : 14-02-06 11:00

Jeg svarer på Harald's tråd. Ligesom jeg svarer på din tråd nu.

/Brian



Vinther (14-02-2006)
Kommentar
Fra : Vinther


Dato : 14-02-06 11:20

"Brian Andersen (www.europeansoftwarehouse.com)" <x@x.x> skrev i en
meddelelse news:DPhIf.25$lE2.23@news.get2net.dk...
> Jeg svarer på Harald's tråd. Ligesom jeg svarer på din tråd nu.

Okay Brian.

Jeg siger også tak for dit bidrag.

mvh Vinther

P.S. Det vil være en god ide (også for din egen skyld) hvis du citerer det,
som du svarer på.
http://www.usenet.dk/netikette/citatteknik.html



Vinther (15-02-2006)
Kommentar
Fra : Vinther


Dato : 15-02-06 13:01

"Harald" <nomail@noname.dk> skrev i en meddelelse
news:43f0f4bf$0$84037$edfadb0f@dtext01.news.tele.dk...
> "Vinther" <2584431m003@FJERNstofanet.dk> skrev i en meddelelse
> news:43f0e93e$0$11162$ba624c82@nntp02.dk.telia.net...
>> Hej.
>>
>> Jeg har lavet en foreningstelefonbog, hvor alle numre på formand,
>> bestyrelse, udvalg m.v. er indtastet. I øjeblikket sker opdateringen at
>> telefonbogen ved at jeg opdaterer i min database og databasefilerne
>> sender jeg så rundt til dem, der skal have adgang til telefonbogen, hvor
>> de tidligere databaser overskrives.
>>
>> Men det må kunne gøres automatisk. Er det muligt at lave nogle
>> funktioner, der kan gøre følgende
>>
>> - Automatisk opdatering over nettet ved adgang til internettet (altså der
>> sker automatisk opdatering, når computeren tilsluttes internettet)
>> - Automatisk opdatering over netter ved programstart (altså der sker
>> automatisk opdatering, når programmet starter op (hvis der er netadgang))
>> - Opdatering over nettet ved valg heraf. (programmet opdaterer sig over
>> nettet, hvis man i programmet vælger "opdater database".
>>
>> Hvad skal jeg lede efter, hvis ovenstående er muligt?
>
> Hvis ikke alle og enhver skal have adgang så brug en indy (eller anden)
> ftp komponent til at hente database filerne.

Hej Harald (Brian og andre).

Efter at have fået ovenstående hint, gik jeg i gang med at undersøge Indy /
FTP. Jeg har dog haft svært ved at finde forståelig hjælp og er kørt fast.

Jeg har fundet nogle free kodestumper, som jeg i første omgang prøver at
lege med / tilrette, dem kan jeg lige prøve at poste her:

Er jeg på rette vej eller skal jeg i en helt anden grøft?

***********************
unit Opdatering;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer,
IdTrivialFTPServer, StdCtrls, IdUDPClient, IdTrivialFTP;

type
TformOpdatering = class(TForm)
IdTrivialFTPServer1: TIdTrivialFTPServer;
IdTrivialFTP1: TIdTrivialFTP;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure IdTrivialFTPServer1TransferComplete(Sender: TObject;
const Success: Boolean; const PeerInfo: TPeerInfo; AStream: TStream;
const WriteOperation: Boolean);
procedure IdTrivialFTPServer1WriteFile(Sender: TObject;
var FileName: string; const PeerInfo: TPeerInfo; var GrantAccess:
Boolean;
var AStream: TStream; var FreeStreamOnComplete: Boolean);
procedure IdTrivialFTPServer1ReadFile(Sender: TObject; var FileName:
string;
const PeerInfo: TPeerInfo; var GrantAccess: Boolean; var AStream:
TStream;
var FreeStreamOnComplete: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
TFTPPath: string;
end;

var
formOpdatering: TformOpdatering;

implementation

uses Main;

{$R *.dfm}

procedure TformOpdatering.FormCreate(Sender: TObject);
begin
IdTrivialFTPServer1.ThreadedEvent := True;
IdTrivialFTPServer1.Active := True;
{ Set the path to where the files will be stored/retreived }
TFTPPath := IncludeTrailingPathDelimiter('C:\Temp');
end;

procedure TformOpdatering.IdTrivialFTPServer1ReadFile(Sender: TObject;
var FileName: string; const PeerInfo: TPeerInfo;
var GrantAccess: Boolean; var AStream: TStream;
var FreeStreamOnComplete: Boolean);
var
FS: Tfilestream;
begin
FreeStreamOnComplete:= true;
try
{ Convert UNIX style filename to WINDOWS style }
while Pos('/', Filename) <> 0 do
Filename[Pos('/', Filename)] := '\';
Filename := ExtractFileName(Filename);
{ Check if the file exist }
if FileExists(TFTPPath + Filename) then
begin
{ Open the file in READ ONLY mode }
FS := TFileStream.Create(TFTPPath + Filename,
fmOpenRead or fmShareDenyWrite);
{ Assign stream to variable }
AStream := FS;
{ Set parameters }
GrantAccess := True;
end
else
begin
GrantAccess := False;
end;
except
{ On errors, deny access }
GrantAccess := False;
if Assigned(FS) then
FreeAndNil(FS);
end;
end;

procedure TformOpdatering.IdTrivialFTPServer1WriteFile(Sender: TObject;
var FileName: string; const PeerInfo: TPeerInfo; var GrantAccess: Boolean;
var AStream: TStream; var FreeStreamOnComplete: Boolean);
var
FS: TFileStream;
begin
try
{ Convert UNIX style filenames to WINDOWS style }
while Pos('/', Filename) <> 0 do
Filename[Pos('/', Filename)] := '\';
{ Assure that the filename DOES NOT CONTAIN any path information }
Filename := ExtractFileName(Filename);
{ Open file in WRITE ONLY mode }
FS := TFileStream.Create(TFTPPath + Filename,
fmCreate or fmShareExclusive);
{ Copy all the data }
AStream := FS;
{ Set parameters }
FreeStreamOnComplete := True;
GrantAccess := True;
except
{ On errors, deny access }
GrantAccess := False;
if Assigned(FS) then
FreeAndNil(FS);
end;
end;

procedure TformOpdatering.IdTrivialFTPServer1TransferComplete(Sender:
TObject;
const Success: Boolean; const PeerInfo: TPeerInfo; AStream: TStream;
const WriteOperation: Boolean);
begin
// Success = TRUE if the read/write operation was successfull
// WriteOperation = TRUE if the client SENT a file to the server
try
{ Close the FileStream }
if Assigned(AStream) then
FreeAndNil(AStream);
except
end;
end;

// Example of how to DOWNLOAD a file from the server

procedure TformOpdatering.Button1Click(Sender: TObject);
var
ST: TMemoryStream;
begin
ST := TMemoryStream.Create;
IdTrivialFTP1.Get('test.txt', ST);
if Assigned(ST) then
begin
ShowMessage('Filesize=' + IntToStr(ST.Size));
FreeAndNil(ST);
end;
end;

procedure TformOpdatering.Button2Click(Sender: TObject);
var
ST: TMemoryStream;
I: Integer;
S: string;
begin
{ Create stream }
ST := TMemoryStream.Create;
{ Initialize data }
S := 'This is a test file. It whould appear in the ' +
'TFTP Server''s upload directory.' + #13#10;
{ Store in stream }
ST.Write(S[1], Length(S));
ST.Position := 0;
{ Send Stream to TFTP Server }
IdTrivialFTP1.Put(ST, 'textfile.txt');
{ Free Stream }
if Assigned(ST) then
FreeAndNil(ST);
{ Show a dialog }
ShowMessage('Done!');
end;

end.



Harald (15-02-2006)
Kommentar
Fra : Harald


Dato : 15-02-06 20:05

"Vinther" <2584431m003@FJERNstofanet.dk> skrev i en meddelelse
news:43f317fa$0$9301$ba624c82@nntp02.dk.telia.net...
> "Harald" <nomail@noname.dk> skrev i en meddelelse

<klip en stak>

> Jeg har fundet nogle free kodestumper, som jeg i første omgang prøver at
> lege med / tilrette, dem kan jeg lige prøve at poste her:
>
> Er jeg på rette vej eller skal jeg i en helt anden grøft?

<klip en masse andet>

Du får lige lidt kode fra et lille program jeg har lavet som sender nogle
billeder til en server, det kan måske give dig nogle ideer. Jeg bruger en
TIdFTP og ingen andre komponenter fra indy.

servernavn, bruger og password har jeg i en ini fil:

Jeg trykker på "Send" knappen på min form og denne kode kaldes:

if ForbindOK then
begin
SendBilleder;
Afbryd;
end;

-----------------

ForbindOK funktionen:

function TMainForm.ForbindOK : boolean;
begin
result:=true;
try
IdFTP.Host:=Inifile.ReadString('FTP','Server','');
IdFTP.Username:=Inifile.ReadString('FTP','Brugernavn','');
IdFTP.Password:=Inifile.ReadString('FTP','Kodeord','');

IdFTP.Connect;
if Inifile.ReadString('FTP','Mappe','')<>'' then
IdFTP.ChangeDir(Inifile.ReadString('FTP','Mappe',''));
except
on E: Exception do begin
Application.MessageBox(PChar(FejlTekst1+#13+E.Message),'Fejl',MB_OK or
MB_ICONERROR);
result:=false;
end;
end;
end;

------------------------------

Sendbilleder funktionen sender en masse billeder og kalder SendFil
funktionen for hver billede:
SendFil funktionen:

function TMainForm.SendFil(NavnLokal,NavnServer: string): boolean;
begin
Result:=true;
try
LabelStatus.Caption:='Sender fil '+NavnServer;
LabelStatus.Update;

IdFTP.Put(NavnLokal,NavnServer,false);
except
on E: Exception do begin
if not (E is EIdConnClosedGracefully) then
Application.MessageBox(PChar(FejlTekst1+#13+E.Message),'Fejl',MB_OK or
MB_ICONERROR);
result:=false;
end;
end;
end;


/HK



Thor (15-02-2006)
Kommentar
Fra : Thor


Dato : 15-02-06 19:47


Du kan hente opdateringer direkte fra en URL, altså uden brug af FTP.
Hvis din URL er tilpas kryptisk, og du ikke tillader directorybrowsing
på din
http server, vil der ikke være noget sikkerhedsproblem.
Så kan du bruge FTP til at uploade opdateringer.

Her er en kodestump, der downloader en vilkårlig fil fra nettet:
(delphi about)

mvh Thor

uses ExtActns, .

type
TfrMain = class(TForm)
...
private
procedure URL_OnDownloadProgress
(Sender: TDownLoadURL;
Progress, ProgressMax: Cardinal;
StatusCode: TURLDownloadStatus;
StatusText: String; var Cancel: Boolean) ;
...

implementation
....

procedure TfrMain.URL_OnDownloadProgress;
begin
ProgressBar1.Max:= ProgressMax;
ProgressBar1.Position:= Progress;
end;

function DoDownload;
begin
with TDownloadURL.Create(self) do
try
URL:='http://z.about.com/6/g/delphi/b/index.xml';
FileName := 'c:\ADPHealines.xml';
OnDownloadProgress := URL_OnDownloadProgress;

ExecuteTarget(nil) ;
finally
Free;
end;
end;


Vinther (16-02-2006)
Kommentar
Fra : Vinther


Dato : 16-02-06 10:24

Hej Thor.

Hvor finder jeg komponenten TDownloadURL

"Thor" <dur.ikke@gmail.com> skrev i en meddelelse
news:1140029204.816434.203680@o13g2000cwo.googlegroups.com...

Du kan hente opdateringer direkte fra en URL, altså uden brug af FTP.
Hvis din URL er tilpas kryptisk, og du ikke tillader directorybrowsing
på din
http server, vil der ikke være noget sikkerhedsproblem.
Så kan du bruge FTP til at uploade opdateringer.

Her er en kodestump, der downloader en vilkårlig fil fra nettet:
(delphi about)

mvh Thor

uses ExtActns, .

type
TfrMain = class(TForm)
...
private
procedure URL_OnDownloadProgress
(Sender: TDownLoadURL;
Progress, ProgressMax: Cardinal;
StatusCode: TURLDownloadStatus;
StatusText: String; var Cancel: Boolean) ;
...

implementation
....

procedure TfrMain.URL_OnDownloadProgress;
begin
ProgressBar1.Max:= ProgressMax;
ProgressBar1.Position:= Progress;
end;

function DoDownload;
begin
with TDownloadURL.Create(self) do
try
URL:='http://z.about.com/6/g/delphi/b/index.xml';
FileName := 'c:\ADPHealines.xml';
OnDownloadProgress := URL_OnDownloadProgress;

ExecuteTarget(nil) ;
finally
Free;
end;
end;



Uffe Kousgaard (16-02-2006)
Kommentar
Fra : Uffe Kousgaard


Dato : 16-02-06 10:38

"Vinther" <2584431m003@FJERNstofanet.dk> wrote in message
news:43f444b0$0$7637$ba624c82@nntp02.dk.telia.net...
> Hej Thor.
>
> Hvor finder jeg komponenten TDownloadURL

ExtActns.pas.



Vinther (16-02-2006)
Kommentar
Fra : Vinther


Dato : 16-02-06 11:39

"Uffe Kousgaard" <oh@no.no> skrev i en meddelelse
news:43f44801$0$84038$edfadb0f@dtext01.news.tele.dk...
> "Vinther" <2584431m003@FJERNstofanet.dk> wrote in message
> news:43f444b0$0$7637$ba624c82@nntp02.dk.telia.net...
>> Hej Thor.
>>
>> Hvor finder jeg komponenten TDownloadURL
>
> ExtActns.pas.

Okay, jeg fik vist ikke spurgt rigtigt.

Er TDownloadURL et komponent, som ligger på et faneblad, ligesom en Label på
Standard, en DBGrid på Data Controller og en Image på Additional. I så fald,
hvor finder jeg det.

Og hvis ikke, kan jeg igen spørge, hvor jeg finder det (eller hvordan det
findes.). Min maskine / Delphi kan sagtens finde ExtActns, men den "fejler"
når jeg begynder at skrive TDownloadURL



Vinther (16-02-2006)
Kommentar
Fra : Vinther


Dato : 16-02-06 22:46

Hej.

Er der ikke en, der vil belyse mig med nedenstående emne.

Jeg er lidt forvirret på området, og tror, at det er et centralt punkt i
Delphi-programmering, som kan bruges i mange tilfælde. (Hvor finder man
komponenterne?)

"Vinther" <2584431m003@FJERNstofanet.dk> skrev i en meddelelse
news:43f45637$0$11700$ba624c82@nntp02.dk.telia.net...
> "Uffe Kousgaard" <oh@no.no> skrev i en meddelelse
> news:43f44801$0$84038$edfadb0f@dtext01.news.tele.dk...
>> "Vinther" <2584431m003@FJERNstofanet.dk> wrote in message
>> news:43f444b0$0$7637$ba624c82@nntp02.dk.telia.net...
>>> Hej Thor.
>>>
>>> Hvor finder jeg komponenten TDownloadURL
>>
>> ExtActns.pas.
>
> Okay, jeg fik vist ikke spurgt rigtigt.
>
> Er TDownloadURL et komponent, som ligger på et faneblad, ligesom en Label
> på Standard, en DBGrid på Data Controller og en Image på Additional. I så
> fald, hvor finder jeg det.
>
> Og hvis ikke, kan jeg igen spørge, hvor jeg finder det (eller hvordan det
> findes.). Min maskine / Delphi kan sagtens finde ExtActns, men den
> "fejler" når jeg begynder at skrive TDownloadURL
>



Brian Andersen \(www~ (17-02-2006)
Kommentar
Fra : Brian Andersen \(www~


Dato : 17-02-06 08:43

Hejsa,

i dit uses statement inkluderer du ExtActns.pas; Komponenten findes ikke i
VCL Paletten. Du skal oprette den manuelt med kode.

var
MyLink: TDownloadUrl;
begin
MyLink := TDownloadUrl.Create(...)
end;

/Brian



Vinther (17-02-2006)
Kommentar
Fra : Vinther


Dato : 17-02-06 14:16

"Brian Andersen (www.europeansoftwarehouse.com)" <x@x.x> skrev i en
meddelelse news:v5fJf.4317$uc6.3523@news.get2net.dk...
> Hejsa,
>
> i dit uses statement inkluderer du ExtActns.pas; Komponenten findes ikke i
> VCL Paletten. Du skal oprette den manuelt med kode.
>
> var
> MyLink: TDownloadUrl;
> begin
> MyLink := TDownloadUrl.Create(...)
> end;

Hej Brian.

Super, at du vil hjælpe.

Jeg tænkte på, hvad der skal skrives i (...)

Jeg har prøvet med (...) og (self) men ingen af delene bliver accepteret.

Ved (self) kommer der til at stå undeclared identifier "self"



Vinther (19-02-2006)
Kommentar
Fra : Vinther


Dato : 19-02-06 16:27

Hej Thor.

Hvad sker der, når du forsøger at køre nedenstående kode?

Jeg får nemlig selv diverse fejl (flere).

bl.a. kan den ikke finde ud af (self) her: with TDownloadURL.Create(self)
do
og do download funktionen du'r heller ikke hos mig.


"Thor" <dur.ikke@gmail.com> skrev i en meddelelse
news:1140029204.816434.203680@o13g2000cwo.googlegroups.com...

Du kan hente opdateringer direkte fra en URL, altså uden brug af FTP.
Hvis din URL er tilpas kryptisk, og du ikke tillader directorybrowsing
på din
http server, vil der ikke være noget sikkerhedsproblem.
Så kan du bruge FTP til at uploade opdateringer.

Her er en kodestump, der downloader en vilkårlig fil fra nettet:
(delphi about)

mvh Thor

uses ExtActns, .

type
TfrMain = class(TForm)
...
private
procedure URL_OnDownloadProgress
(Sender: TDownLoadURL;
Progress, ProgressMax: Cardinal;
StatusCode: TURLDownloadStatus;
StatusText: String; var Cancel: Boolean) ;
...

implementation
....

procedure TfrMain.URL_OnDownloadProgress;
begin
ProgressBar1.Max:= ProgressMax;
ProgressBar1.Position:= Progress;
end;

function DoDownload;
begin
with TDownloadURL.Create(self) do
try
URL:='http://z.about.com/6/g/delphi/b/index.xml';
FileName := 'c:\ADPHealines.xml';
OnDownloadProgress := URL_OnDownloadProgress;

ExecuteTarget(nil) ;
finally
Free;
end;
end;



Thor (19-02-2006)
Kommentar
Fra : Thor


Dato : 19-02-06 23:04

Hej Vinther

Du skal bruge en unit med en form, så kompilerer det fint,
ihvertfald under D7.

mvh Thor


Vinther (22-02-2006)
Kommentar
Fra : Vinther


Dato : 22-02-06 12:25

"Thor" <dur.ikke@gmail.com> skrev i en meddelelse
news:1140386632.571246.315060@g43g2000cwa.googlegroups.com...
Hej Vinther

Du skal bruge en unit med en form, så kompilerer det fint,
ihvertfald under D7.

Hej Thor.

Jeg har indsat det i en unit med en form.

Jeg får flg. fejl:

* [Error] Opdatering.pas(36): E2023 Function needs result type
**[Error] Opdatering.pas(38): E2003 Undeclared identifier: 'self'
***[Error] Opdatering.pas(42): E2003 Undeclared identifier:
'URL_OnDownloadProgress'
****[Errot] Opdatering.pas(13): H2219 Private symbol
'URL_OnDownloadProgress' declared but never used
[Fatal Error] KlubKontakten.dpr(10): F2063 Could not compile used unit
'Opdatering.pas'

Samtlige fejl tilhører denne del af koden. Jeg har markeret fejlene.

*function DoDownload;*
begin
with TDownloadURL.Create(*self*) do
try
URL:='http://z.about.com/6/g/delphi/b/index.xml';
FileName := 'c:\ADPHealines.xml';
OnDownloadProgress := *URL_OnDownloadProgress*;

ExecuteTarget(nil) ;
finally
Free;
end;
end;

Håber du kan se, hvori fejlen ligger.



Thor (23-02-2006)
Kommentar
Fra : Thor


Dato : 23-02-06 15:58

Hej Vinther

Sorry, der var lidt, der skulle tilpasses:
Her er en version der er aftestet, du skal lægge en progressbar
på form1


Venlig hilsen Thor




unit Udwl;

interface

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

type
Tform1 = class(TForm)
ProgressBar1: TProgressBar;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure URL_OnDownloadProgress
(Sender: TDownLoadURL;
Progress, ProgressMax: Cardinal;
StatusCode: TURLDownloadStatus;
StatusText: String; var Cancel: Boolean) ;
procedure DoDownload;
end;

var form1 : tform1;

implementation

{$R *.dfm}

procedure Tform1.URL_OnDownloadProgress;
begin
ProgressBar1.Max:= ProgressMax;
ProgressBar1.Position:= Progress;
end;

procedure Tform1.DoDownload;
begin
with TDownloadURL.Create(self) do
try
URL:='http://z.about.com/6/g/delphi/b/index.xml';
FileName := 'c:\ADPHealines.xml';
OnDownloadProgress := URL_OnDownloadProgress;

ExecuteTarget(nil) ;
finally
Free;
end;
end;


procedure Tform1.Button1Click(Sender: TObject);
begin
dodownload;
end;

end.


Vinther (23-02-2006)
Kommentar
Fra : Vinther


Dato : 23-02-06 20:58

Hej Thor.

Jeg kan fortælle, at det stadig ikke virker.

Jeg kan få det til at virke ved at fjerne funktionen DoDownload og istedet
flytte indholdet heraf over i en buttons onclick hændelse.

Jeg kan ikke finde ud af hvorfor og hvordan, men hvis jeg ikke gør
ovenstående, brokker den sig over (markeret med *stjerner*)
- with TDownloadURL.Create(*self*) do
- OnDownloadProgress := *URL_OnDownloadProgress*;

---------

"Thor" <dur.ikke@gmail.com> skrev i en meddelelse
news:1140706666.911466.76840@g44g2000cwa.googlegroups.com...
Hej Vinther

Sorry, der var lidt, der skulle tilpasses:
Her er en version der er aftestet, du skal lægge en progressbar
på form1


Venlig hilsen Thor




unit Udwl;

interface

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

type
Tform1 = class(TForm)
ProgressBar1: TProgressBar;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure URL_OnDownloadProgress
(Sender: TDownLoadURL;
Progress, ProgressMax: Cardinal;
StatusCode: TURLDownloadStatus;
StatusText: String; var Cancel: Boolean) ;
procedure DoDownload;
end;

var form1 : tform1;

implementation

{$R *.dfm}

procedure Tform1.URL_OnDownloadProgress;
begin
ProgressBar1.Max:= ProgressMax;
ProgressBar1.Position:= Progress;
end;

procedure Tform1.DoDownload;
begin
with TDownloadURL.Create(self) do
try
URL:='http://z.about.com/6/g/delphi/b/index.xml';
FileName := 'c:\ADPHealines.xml';
OnDownloadProgress := URL_OnDownloadProgress;

ExecuteTarget(nil) ;
finally
Free;
end;
end;


procedure Tform1.Button1Click(Sender: TObject);
begin
dodownload;
end;

end.



Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste