Avatar billede blackbyte Nybegynder
06. maj 2002 - 11:16 Der er 16 kommentarer og
1 løsning

Access Violation i event

En typisk UDPRead-event fra Indy

if (SvrCmd = '1000') and (SesAuth = False) then
  begin
    if SvrParam <> '1' then
    begin
      OnError(Self, 200);
      Exit;
    end
    else
    begin
      SesAuth := True;
      OnAuth(Self);
    end
  end;

Men når jeg tripper en Event, som f.eks. OnError eller OnAuth, kommer den emd access-violation (?)

Det virker FINT alle andre steder i programmet, men lige her gør den knuder..?
Hvad kan jeg have gjort forkert..?
Avatar billede blackbyte Nybegynder
06. maj 2002 - 11:23 #1
Skal lige siges at OnError og onAuth er nogle events jeg selv har lavet
Avatar billede borrisholt Novice
06. maj 2002 - 11:30 #2
har du assigned noget til dit onError event ?

Jens B
Avatar billede blackbyte Nybegynder
06. maj 2002 - 11:35 #3
Jeg har en OnError på formen, der bruger komponentet;

procedure MainForm.PetError(Sender: TObject; Err: Integer);
begin
  ShowMessage(IntToStr(Err)); // Test-Checkprocedure for Errors
end;

Og den virker fint med de andre OnErrors jeg har
Avatar billede borrisholt Novice
06. maj 2002 - 11:36 #4
og du har skrevet

  OnError := OnError;

Jens B
Avatar billede borrisholt Novice
06. maj 2002 - 11:36 #5
øøøh hov

OnError := PetError;

Jens B
Avatar billede blackbyte Nybegynder
06. maj 2002 - 11:37 #6
Initialization

Pet.OnError := MainForm.PetError;
Avatar billede blackbyte Nybegynder
06. maj 2002 - 11:38 #7
Eventsne virker fint andre steder... den gør kun knuder lige her...
Avatar billede blackbyte Nybegynder
06. maj 2002 - 11:38 #8
Frokostpause...
Er tilbage om en 45 min
Avatar billede borrisholt Novice
06. maj 2002 - 11:40 #9
problemet er at dit event ikke er assigned, tror jeg ...

Prøv

if Assigned(OnError) then
  OnError(Self, 200);
Exit;

Jens B
Avatar billede blackbyte Nybegynder
06. maj 2002 - 12:26 #10
Gjort... Nu ligger fejlen hos

if Assigned(OnError) then
Avatar billede blackbyte Nybegynder
06. maj 2002 - 12:32 #11
Har du en e-mail, så jeg kan sende mit projekt til dig?
Avatar billede borrisholt Novice
06. maj 2002 - 12:49 #12
jens@borrisholt.com
Avatar billede blackbyte Nybegynder
06. maj 2002 - 12:59 #13
Sendt :)
Avatar billede blackbyte Nybegynder
06. maj 2002 - 13:57 #14
Kan du løse problemet?
Avatar billede tormork Nybegynder
12. maj 2002 - 03:20 #15
Det lyder som om du har destrueret MainForm eller at du ikke får fat i den rigtige onError. Prøv med

if Assigned(MainForm) and Assigned(MainForm.OnError) then
  OnError(MainForm.Self, 200);
Exit;

Så skal du selvf. også brug MainForm.On* inde i proceduren.

Det sker ofte hvis man har MainForm i AutoCreate form (Project->Options->Forms) og creater dem manuelt (MainForm := TMainForm.Create(??)). Hvis man gør det får man to instancer af MainForm, det medfører en masse udnøvendigt bøvl.
Avatar billede blackbyte Nybegynder
15. maj 2002 - 09:22 #16
Skrev hele lortet om - smid et svar, så får du lidt skejser for dit arbejde.. :)
Avatar billede borrisholt Novice
15. maj 2002 - 09:34 #17
:-)
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