anoniem Geplaatst: 13 oktober 2003 Delen Geplaatst: 13 oktober 2003 Ik heb een programma dat een file inleest in een richedit. Nu ik het gebruik komt het voor dat de files over het netwerk van een andere computer moeten komen. Op sommige momenten gaat het mis het krijg ik een foutmelding: Error reading cbParam.Items.strings A WINAPI failed. Het programma hangt totaal (windows ook?) Ik heb al wat ‘veiligheden’ ingebouwd maar deze blijken dus niet te werken. Het inlezen gaat bij het opstarten van het programma al naar gelang de opgave. 3: Open de laatst gebruikt file. Weet iemand waarom het soms fout gaat (time out p.i.d) en hoe e.e.a. op te lossen is. Elke hint is welkom Groeten Arnoud [code:1:daaec1a44e]procedure TMainForm.FormShow(Sender: TObject); begin inherited; case CStartType of 0 : ; //leeg 1 : MethodEdit1.Emptymethod; 2 : MethodEdit1.Samplemethod; 3 : OpenThisFile(CLastFile); end; end; function TMethodBaseform.OpenThisFile(AFilename: String): Boolean; begin Result := false; if AFilename = '' then Exit; try if FileExists(AFilename) then begin MethodEdit1.Lines.LoadFromFile(AFilename); Result := true; end else begin MessageDlg('File not found ('+ AFilename+').',mtError,[mbOK],0); end; except on EReadError do begin MessageDlg('Error reading file ('+ AFilename+').',mtError,[mbOK],0); MethodEdit1.Lines.Clear; end; on EFOpenError do begin MessageDlg('Error opening file ('+ AFilename+').',mtError,[mbOK],0); MethodEdit1.Lines.Clear; end; on EWin32Error do begin MessageDlg('Win32: Error opening ('+ AFilename+').',mtError,[mbOK],0); MethodEdit1.Lines.Clear; end; end; end; [/code:1:daaec1a44e] Quote Link naar reactie
anoniem Geplaatst: 13 oktober 2003 Auteur Delen Geplaatst: 13 oktober 2003 Kan je niet een timeout instellen, dus dat als bepaalde files er niet binnen zeg 30 seconden zijn, een eeror_msg wordt weergegeven? Of dat het programma dan restart? Quote Link naar reactie
anoniem Geplaatst: 13 oktober 2003 Auteur Delen Geplaatst: 13 oktober 2003 Zou je de Try..Except eens willen vervangen door het volgende stukje code en dan even laten weten welke melding je krijgt: [code:1:67d5607ead] try if FileExists(AFilename) then begin MethodEdit1.Lines.LoadFromFile(AFilename); Result := true; end else begin MessageDlg('File not found ('+ AFilename+').',mtError,[mbOK],0); end; except on E:Exception do begin MessageDlg(E.Message, mtError, [mbOK], 0); MethodEdit1.Lines.Clear; end; end; [/code:1:67d5607ead] Quote Link naar reactie
anoniem Geplaatst: 14 oktober 2003 Auteur Delen Geplaatst: 14 oktober 2003 [quote:f4cd9372d3="A Marquart"]Ik heb een programma dat een file inleest in een richedit. Nu ik het gebruik komt het voor dat de files over het netwerk van een andere computer moeten komen. Op sommige momenten gaat het mis het krijg ik een foutmelding: Error reading cbParam.Items.strings A WINAPI failed. Het programma hangt totaal (windows ook?)[/quote:f4cd9372d3] Waarschijnlijk is je applicatie (en Windows) ... "out of resources". Check o.m. je geheugen verbruik, processor capaciteit, handle count... Hoe groot is dat bestand? MethodEdit1.MaxLength=? Quote Link naar reactie
anoniem Geplaatst: 15 oktober 2003 Auteur Delen Geplaatst: 15 oktober 2003 Nou hier komen de errors: 1) begint met windows: This program has ..... will shut down 2) Exception EWin 32E in module BiaMethodwriter.exe at 0000CC4C Win32error. Code: 87. The parameter is incorrect. 3) dan windows: Access violation at address BFC058C6 in module 'USER32.DLL' Read of address 7F9D3554. en dit window wordt gevolgd door het eerste dat niet meer weg wil voordat je uitlogt of opstart. De in te lezen bestanden zijn kleiner dan 5k en passen makkelijk in de richedit structuur. Want als je de file probeert te laden nadat het programma opgestart is: FILE->OPEN selecteer de zelfde file, gaat het wel goed. Nooit problemen! Ok, wie weet meer Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen