Uspecficeret fejl

Tags:    delphi

Jeg er ved at lave et webbrowser program og så har jeg et par knapper oppe foroven tilbage, frem, stop, opdater. Hvis jeg så går ind på en side og så ind på en anden hvis jeg så trykker på tilbage knappen så får jeg en fejl, der siger:

Project Browser.exe raised exception class EAccessViolation with message 'Access ciolation at address 0047B843 in module 'browser.exe'. Read of address 00000000'. Process stopped. Use Step or Run to continue.

Den fatter jeg ik så møj af, den har pgså skrevet uspecifeceret fejl.

Koden til tilbage og frem knapperne er:

Tilbage:

procedure TYogiBrowser.backExecute(Sender: TObject);
begin
URLs.Text := HistoryList[HistoryIndex - 1];
FindAddress;
end;

Frem:

procedure TYogiBrowser.forwardExecute(Sender: TObject);
begin
URLs.Text := HistoryList[HistoryIndex + 1];
FindAddress;
end;



7 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Jeg er ved at lave et webbrowser program og så har jeg et par knapper oppe foroven tilbage, frem, stop, opdater. Hvis jeg så går ind på en side og så ind på en anden hvis jeg så trykker på tilbage knappen så får jeg en fejl, der siger:

Project Browser.exe raised exception class EAccessViolation with message 'Access ciolation at address 0047B843 in module 'browser.exe'. Read of address 00000000'. Process stopped. Use Step or Run to continue.

Den fatter jeg ik så møj af, den har pgså skrevet uspecifeceret fejl.

Koden til tilbage og frem knapperne er:

Tilbage:

procedure TYogiBrowser.backExecute(Sender: TObject);
begin
URLs.Text := HistoryList[HistoryIndex - 1];
FindAddress;
end;


procedure TYogiBrowser.forwardExecute(Sender: TObject);
begin
URLs.Text := HistoryList[HistoryIndex + 1];
FindAddress;
end;




Prøv at skrive følgende i din TWebBrowsers OnCommandStateChange event

case Command of
CSC_NAVIGATEBACK: backExecute.Enabled := Enable;
CSC_NAVIGATEFORWARD: forwardExecute.Enabled := Enable;
end;

Så vil dine frem og tilbage knapper først være enabled når der er noget i history listen.

Karin



Access Violation betyder at du prøver at bruge et object du ikke har oprettet, check at alle dine object er oprettet og at du ikke prøver at bruge noget i webbrowser du ikke har adgang til



Jeg er ved at lave et webbrowser program og så har jeg et par knapper oppe foroven tilbage, frem, stop, opdater. Hvis jeg så går ind på en side og så ind på en anden hvis jeg så trykker på tilbage knappen så får jeg en fejl, der siger:

Project Browser.exe raised exception class EAccessViolation with message 'Access ciolation at address 0047B843 in module 'browser.exe'. Read of address 00000000'. Process stopped. Use Step or Run to continue.

Den fatter jeg ik så møj af, den har pgså skrevet uspecifeceret fejl.

Koden til tilbage og frem knapperne er:

Tilbage:

procedure TYogiBrowser.backExecute(Sender: TObject);
begin
URLs.Text := HistoryList[HistoryIndex - 1];
FindAddress;
end;


procedure TYogiBrowser.forwardExecute(Sender: TObject);
begin
URLs.Text := HistoryList[HistoryIndex + 1];
FindAddress;
end;



Prøv at skrive følgende i din TWebBrowsers OnCommandStateChange event

case Command of
CSC_NAVIGATEBACK: backExecute.Enabled := Enable;
CSC_NAVIGATEFORWARD: forwardExecute.Enabled := Enable;
end;

Så vil dine frem og tilbage knapper først være enabled når der er noget i history listen.

Karin


Hvis du bruger webbrowser componentet kan du bare skrive webbrowser1.goback

mener det er goback men det kan du se efter måske er det back

der er også en forward




Jeg er ved at lave et webbrowser program og så har jeg et par knapper oppe foroven tilbage, frem, stop, opdater. Hvis jeg så går ind på en side og så ind på en anden hvis jeg så trykker på tilbage knappen så får jeg en fejl, der siger:

Project Browser.exe raised exception class EAccessViolation with message 'Access ciolation at address 0047B843 in module 'browser.exe'. Read of address 00000000'. Process stopped. Use Step or Run to continue.

Den fatter jeg ik så møj af, den har pgså skrevet uspecifeceret fejl.

Koden til tilbage og frem knapperne er:

Tilbage:

procedure TYogiBrowser.backExecute(Sender: TObject);
begin
URLs.Text := HistoryList[HistoryIndex - 1];
FindAddress;
end;

Frem:

procedure TYogiBrowser.forwardExecute(Sender: TObject);
begin
URLs.Text := HistoryList[HistoryIndex + 1];
FindAddress;
end;



Hvis den ikke gør det hver gang kan du skrive

try begin
URLs.Text := HistoryList[HistoryIndex + 1];
FindAddress;
end
except messagedlg('Der opstod en ukendt fejl,mterror[MBOK],0);

[Redigeret d. 07/07-03 00:25:19 af BananJoe]



Du skal checke om du overskrider grænserne i din HistoryList.
hvis du trykker nok på Back vil den jo på et tidspunkt ramme en der ikke findes.

Mvh,

Thomas Nielsen



Du skal checke om du overskrider grænserne i din HistoryList.
hvis du trykker nok på Back vil den jo på et tidspunkt ramme en der ikke findes.

Mvh,

Thomas Nielsen



Hvordan får du den så til at når der ikke findes flere f.eks. tilbage så man ikke kan trykke på knappen?



Du skal checke om du overskrider grænserne i din HistoryList.
hvis du trykker nok på Back vil den jo på et tidspunkt ramme en der ikke findes.

Mvh,

Thomas Nielsen


Hvordan får du den så til at når der ikke findes flere f.eks. tilbage så man ikke kan trykke på knappen?



Prøv

Try
//din tilbage kode
except
tilbageknap.enabled := false;

hvis der så opstår en fejl når du trykker tilbage (hvilket sker når den ikke kan gå mere tilbage)
sætter den din knap til at være disabled



t