Avatar billede bitvender Nybegynder
15. november 2011 - 12:13 Der er 3 kommentarer og
1 løsning

Kald af "events" i "konsol" applikationer

Hej Alle !

Jeg er ved at lave et program som IKKE skal køre med et vanligt grafisk windows-brugerinterface

Programmet skal - som konsol applikation - kommunikere med eksternt udstyr, via den serielle port.

I tidligere programmer (med grafisk brugerinterface) har jeg anvendt Async Professional (version 3)og det har fungeret ganske glimrende. Mit problem er nu at jeg jo flytter ud af det grafiske og "event-drevne" miljø, og nu er jeg på den. For hvordan kalder man en komponents "events" i konsol miljøet ??.

Er der nogen der har et kode eksempel på hvordan man refererer/aktiverer et "Onxx" event i en konsol applikation - altså vel at mærke et event for et importeret objekt som eksempelvis ApdComport og ikke et man selv skal definere under type erklæringen.

Jeg har læst mig til at man med fordel kan anvende "Application.processmessages" fra unit "Forms" i en løkke i hovedprogrammet, men kan ikke rigtig få det til at virke - eller rettere jeg er ikke sikker på jeg har sat det korrekt op.

Jeg arbejder i D5 under WinXP SP 3

På forhånd tak
Avatar billede martinlind Nybegynder
15. november 2011 - 12:30 #1
Hvis din comp. følger "delphi" måden, er der som regl en DoOnxxxx som er den funktion som der udfører eventen.

Når du skal hooke op på en event har du behov for en sender af typen Object, så du kan evt. lave en lille klasse som du kan bruge som "sender" parameter, så burde det spille, men du kan komme ud for at din comp. "kræver" forms for at funke, men så må du google en anden seriel-comp. du kan bruge

Jeg har som regl en repeat until løkke i mine console-apps, med en sleep og et check på "exit"
Avatar billede bitvender Nybegynder
15. november 2011 - 12:46 #2
Hej MartinLind

Tak for din kommentar - kunne du evt. henvise til et eksempel, eller skrive det i pseudokode, jeg er lidt "fersk" på området?

Men måske er jeg ikke helt klar i min forklaring : ApdComport objektet har et meget udmærket event der holder øje med hvad der ankommer på den serielle port. I det øjeblik en bestemt streng dukker op , " slår eventet" og udfører noget kode. Det der er mit ønske er at "aktivere" det event, så det står og kigger kontinuerligt. Så slipper jeg for selv at skulle kode diverse kig i inputbufferen...

mvh
Avatar billede martinlind Nybegynder
16. november 2011 - 23:31 #3
Jeg har ikke lige en delphi kørende...

Du laver et forms project og laver det events du skal bruger, så kopier du event procedure-headerne over på dit console app object og laver event-procedurende på det object ( en event skal være prcedure of object :-) ), nu kan du smide dit forms project væk. du kan så tilknytte dine event-procedurer til dine event's manuelt i din console-app og det hele skulle gerne funke som smurt :-)
Avatar billede bitvender Nybegynder
17. november 2011 - 21:06 #4
hmmm... TROR jeg ved hvad du mener. Jeg prøver det imorgen og ser hvad der sker - vendertilbage
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

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