/ 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
Fastnet - Powersock
Fra : Carsten


Dato : 09-05-03 07:22

Jeg bruger i Delphi komponenten
Powersock til at sende tekst frem og tilbage
til en "server". Jeg har det problem
at når jeg har modtaget en data- pakke,
så kaldes "OnReadEvent" altid 2 gange fra systemet.
Anden gang giver det en fejl
hvis ikke jeg bruger "try - except".
Man kan ikke kalde "Powersock1.Read(0)"
uden at få fejl hvis bufferen er tom
(read(0) tømmer bufferen).
Dokumentationen beskriver at man skal
læse data under "OnReadEvent" med "read" så
det virker ulogisk at read(0) ikke kan kaldes når
bufferen er tom, og/eller at der kommer et Event når
bufferen er tom.
Det har heller ikke været muligt på anden måde at
se om der var tegn tilbage i bufferen.
Jeg bruger så "try - except"
for at få tingene til at virke.
Det der er mit egentlige problem er at når man
køre programmet inde fra Delphi, så stoppes der
på de fejl der opstår når "Powersock1.Read(0)"
kaldes når bufferen er tom. Dette gør debugging
bøvlet. Jeg har været nødt til i debug situationer at
skrive kode så at jeg kun læser hver anden gang
"OnReadEvent" kaldes fra systemet. Dette løser
mit problem. Det er dog ikke en metode jeg kan lide.
Jeg har ledt efter om man kan få Debuggeren til
at lade være med at stoppe på "exceptions" der er
indkapslet i "try - except", det er ikke lykkedes
mig. Dette kunne være særdeles nyttigt i andre
situationer.

Er der nogle der kender til problemet, og/eller har
forslag til en løsning.

procedure TfDataTransmition.OnReadEvent(sender: TObject);
var
s:string255;
begin
try
s:=Powersock1.Read(0);{Læser alle tegn i buffer}
CmdArray.Add(s);
except
s:='';      {}
end;
end;

Carsten


 
 
Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste