This blog post was created with AI assistance to help developers understand Uniface documentation better.
The setformfocus
command in Uniface 10.4 is a powerful tool for managing focus between different form instances in your application. Let's break down what this means and how to use it effectively! π
What is setformfocus? π€
The setformfocus
statement allows you to programmatically change which form window has the user's attention (focus) in your Uniface application. Think of it like switching between different browser tabs - you're telling the system which form should be active and ready for user input.
Basic Syntax
setformfocus {InstanceName}
The InstanceName is simply the name you've given to a specific form instance. If you don't provide a name, it defaults to the current form.
Key Parameters Explained π
- InstanceName (String): The name of the form you want to focus on. Maximum 16 characters, with trailing spaces automatically removed.
- If you leave it empty, focus stays on the current form
- The form must exist in what's called the "component pool" (basically, all your active forms)
Practical Example π‘
Imagine you have a master-detail application where you show customer information in one form and order details in another:
setformfocus "CustomerForm"
This would switch focus to your customer form.
setformfocus "OrderDetails"
This would then switch to the order details form.
Return Values and Error Handling β οΈ
The command returns different values in $status
to tell you what happened:
- 0: Success! Focus changed as requested β
- -1: Oops! The form name wasn't found or is incorrect β
- -2: Can't change focus because a modal dialog is open β
A modal dialog is like a popup window that demands attention - you can't interact with anything else until you close it.
Important Limitations π«
- Cannot be used in self-contained components
- Don't use it in
getFocus
orloseFocus
triggers - this can freeze your application! - Won't work if a modal form is currently active
Real-World Use Cases π
This command is particularly useful for:
- Tab navigation: When users click tabs, you can programmatically switch to the corresponding form
- Master-detail relationships: When selecting a customer record, automatically focus on their order details form
- Workflow applications: Guide users through sequential forms in a business process
Best Practices πͺ
- Always check the return value to handle errors gracefully
- Keep instance names short and descriptive (remember the 16-character limit)
- Test thoroughly in multi-form scenarios
- Consider user experience - don't switch focus unexpectedly
The setformfocus
command gives you fine-grained control over your application's user interface flow, making it easier to create intuitive and responsive Uniface applications! π
Top comments (0)