The difference between the procedure-driven and event-driven models is primarily one of program flow. In a typical procedure-driven program, the execution of program statements is predetermined and controlled by the programmer. It generally runs from the beginning of the source file to the end. The programmer codes any branches or loops.
In a typical event-driven program, program execution is largely determined by the system. First the programmer sets up a series of actions (triggers) to be executed in response to specific events. Then the system waits for user input to initiate these events. Finally, the system responds to these events, thereby controlling program execution.