uelandbob wrote:It seems that the target of a system message is
1. a control.
2. a card.
No other objects are permitted (If we disregard send command), not stack, not group, not background, etc. Is that so?
Not entirely. Diagrams can be helpful for visualizing some aspects of systems, but are rarely complete representations of all aspects of a system. This is true with both of the LC message path diagrams you've found. If they attempted to represent all possible features of the language they'd have to be so complex as to lose their communicative value.
In general, messages are send to the object to which they're most relevant. Mouse and keyboard actions make sense as starting at the control, but preOpenCard or openCard make sense to send to the card, since they involve no specific control.
Also, in LC backgrounds are groups, which can be used as custom controls, so they get messages like resizeControl, openControl, and others.
So while its true that most stack-related messages like preOpenStack and openStack are sent to the card so we have the option of handing them differently for each card if we choose, there are a few exceptions.
For example, the startup message is sent to a stack. There may be others; I'd have to look into it, and there's the key:
C has only 27 keywords, which may make it superficially appear to be a very easy language to learn. But in practice the range of things people do with it is much broader than just 27 keywords can deliver, so most need to learn at least stdLib, and often some framework like Cocoa, and each new layer multiplies the number of things that must be learned.
To varying degrees this is equally true with Python, R, and most other languages, including LiveCode, in which core principles attempt to make the language learnable yet the needs of application developers require the designers of the language to extend it in ways that often go beyond the ability to explain everything useful about the language in a single diagram or single-page summary.
So when we get started building an application in a language that's new to us, it's helpful to review general principles guiding how it works, like chapters 3 and 5 in the LC User Guide. As we get into the details of our application, we'll want to keep the API reference handy; in LiveCode this is the Dictionary.
What do you want to build?