[Progress Communities] [Progress OpenEdge ABL] Forum Post: Nasłuch portu - set-read-response-procedure

  • Thread starter Thread starter jadamski413@gmail.com
  • Start date Start date
Status
Not open for further replies.
J

jadamski413@gmail.com

Guest
Witam. Mam mały problem. Miałem napisaną komunikację pomiędzy dwoma kompami - jeden z nich tylko nasłuchiwał. Był to prosty program - okno utworzone w AppBuilder z jednym button'em, który wołał procedurę "start": ====================================== def var hSocket as handle no-undo. def var mRead as memptr no-undo. // Bufor odczytu z portu // Ustawiam go na 1024 bajty set-size(mRead) = 1024. ................ ................ run start. ................ ................ // Procedura inicjująca nasłuch PROCEDURE start: hSocket:connect ('-H 192.168.0.222 -S 1111'). if hSocket:connected() then do: hSocket:set-read-response-procedure( "czytajPort"). MY-BLOCK: DO ON ERROR UNDO MY-BLOCK, LEAVE MY-BLOCK: wait-for read-response of hSocket. END. end. END PROCEDURE. // Procedura czytająca port PROCEDURE czytajPort: def var xTxt as char no-undo init ''. def var x as int no-undo init 0. x = hSocket:get-bytes-available(). hSocket:read (mRead, 1, x). xTxt = get-string(mRead, 1). message 'Odczytany komunikat: ' xTxt view-as alert-box info buttons OK. END PROCEDURE. ====================================== Oczywiście pominąłem tu wszelkie obsługi błędów i inne niepotrzebne bzdety. Wszystko działa pięknie, ale chciałem to przenieść na wersję obiektową. Utworzyłem projekt w OE VisualDesigner, utworzyłem obiekt okno typu "ABL MDI Form". Dodałem button "Start" i tu moja wiedza się skończyła. Jak dodać w ramach klasy procedurę czytającą, czyli jak wykonać: hSocket:set-read-response-procedure( "czytajPort"). i jak zdefiniować procedurę "start": PROCEDURE czytajPort: ... END PROCEDURE.

Continue reading...
 
Status
Not open for further replies.
Back
Top