Avatar billede justincase Nybegynder
24. september 1999 - 18:46 Der er 10 kommentarer og
1 løsning

NMFTP Upload Problem.

Hej,

Hvis forbindelsen bliver afbrudt under upload med NMFTP komponenten til Delphi4 pro, så fryser applikationen.

Dvs. der er stadig liv i den (timeren virker og events bliver udført), men jeg kan ikke lukke min app.

Hvordan stopper jeg upload processen ??

Det skal siges at jeg har en timer som disconnecter efter 10 sekunder uden aktivitet. Og det går fint nok, men jeg kan stadig ikke lukke ned !!!???

:)

JustinCase
Avatar billede lrj Nybegynder
27. september 1999 - 10:08 #1
Du skal være helt sikker på at dine event-handlers afslutter. Hvis der er en af dem der hænger, kan du ikke lukke programmet normalt. Problemet er nok at du kører det hele fra en OnClick procedure, eller en der er kaldt derfra, right?
Avatar billede justincase Nybegynder
27. september 1999 - 11:20 #2
Joda, både fra en OnClick og en OnTimer (som ikke kan overlappe hinanden), men kaldet er pænt pakket ind i try/except. Problemet er at der ikke bliver fyret nogen exeption af. Den fryser bare.

Jeg downloadede en upgrade fra net-masters side, hvor problemet skulle være fikset, men nope. Min egen løsning er blevet til at jeg bruger Francois Piettes komponenter istedet for de åbenlyst arrogante netmasters.

Du er dog meget velkommen til at komme med forslag da jeg mener at det burde være muligt at slå processen ihjel og jeg har stadig versionen med NM komps liggende.

:)

JustinCase
Avatar billede lrj Nybegynder
27. september 1999 - 12:06 #3
Hvis du detacher kaldet af funktionen, så det ikke foregår i onclick funktionen, men i en anden handlers evente (kan lave et eksempel til dig..), så undgår du at hovedprogrammet fryser mens onclick udføres. Nye events, som ex. ttimer event eller luk program eventen kan ikke udføres før onclick er færdig... ergo, programmet er hængt.

F. Piettes komponenter er vist også noget af det bedste man kan bruge :)
Avatar billede lrj Nybegynder
27. september 1999 - 12:08 #4
Forresten, jeg kan varmt anbefale mailinglisten der hører til komponenterne. Der kan man lære et trick eller 2 om brugen af dem... Hent evt. arkivet på hjemmesiden
Avatar billede justincase Nybegynder
27. september 1999 - 12:13 #5
Du må meget gerne lave et eksempel :))

Sjovt nok er det f.piettes komponenter jeg har anbefalet videre til andre. Men det var nu også i forhold til Delphi3's medfølgende ActiveX  kontroller. Jeg regnede med at NetMasters var bedre supporteret siden det var de "officielle", men, de stinker...
Avatar billede snorga Nybegynder
27. september 1999 - 12:18 #6
application.terminate;
Avatar billede lrj Nybegynder
27. september 1999 - 12:24 #7
Hmm, okay. Ideen er at du laver en klasse der har en message-handler. Skelettet er følgende:

const
  WM_CONNECT        = WM_APP + 1;
  WM_ABORT        = WM_APP + 2;

  ThandleMethod = class
  public
    _hwnd: hwnd;
    procedure WndProc(var MsgRec: TMessage); virtual;
    constructor create;
    destructor destroy; override;
  end;

constructor ThandleMethod.create;
begin
  _hwnd := AllocateHWnd(WndProc);
end;

destructor ThandleMethod.destroy;
begin
  DeallocateHWnd(_hwnd);
end;

procedure ThandleMethod.WndProc(var MsgRec: TMessage);
begin
  with MsgRec do
    begin
    case Msg of

      WM_CONNECT: ftp1.connect;
      WM_ABORT: ftp1.abort;
    else
  Result := DefWindowProc(_hwnd, Msg, wParam, lParam);
    end;
    end;
end;

*******
Denne klasse opretter et hwnd, som en et sted du kan sende messages til. I din onclick event kan du gøre følgende:

    PostMessage(handleMethod._hwnd, WM_ABORT, 0, 0);

de to nuller er parametre du selv kan vælge værdien af, og som kan aflæses i den anden ende.

Eksemplet er lidt simpelt, men du burde kunne komme igang med det... Du har nu et framework for dit program.

/Laust
Avatar billede justincase Nybegynder
27. september 1999 - 12:32 #8
Fint, jeg kigger på det når jeg kommer hjem engang.
Avatar billede justincase Nybegynder
08. oktober 1999 - 14:38 #9
Lrj >> Jeg glemte at vende tilbage.

Læg et svar, så er der lidt point til dig.

Avatar billede lrj Nybegynder
08. oktober 1999 - 15:27 #10
Mange tak. Fik du det til at virke?
Avatar billede justincase Nybegynder
08. oktober 1999 - 15:34 #11
Jeg har ikke haft tid til at eksperimentere mig frem. Der er nogle grundlæggende ting jeg ikke har styr på endnu og som farten er lige i øjeblikket....

Jeg bruger f.piette's ting og de virker upåklageligt.

Jeg vender jo nok tilbage når jeg får tid til at kigge på det.

:)

JustinCase
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester