Gantt Charts: Part 2 with Aleksander Wojtasz
Building Dynamic Gantt Charts with GDI32: Class Architecture Deep Dive (an Access User Group talk with Aleksander Wojtasz)

In a masterful follow-up to his wildly popular first session, Aleksander Wojtasz demonstrates significant enhancements to his interactive Gantt chart solution for Microsoft Access, including a complete code rewrite focused on performance and extensibility.
This advanced session builds upon the foundational GDI32 drawing techniques covered previously, diving deep into the architecture of a flexible, template-based approach that can be customized for various business scenarios. The presentation showcases two fully-functional examples - a hotel booking system and a production planning application - while providing detailed insights into the underlying class structure and event handling mechanisms.
Whether you're looking to implement sophisticated scheduling functionality in your Access applications or simply interested in advanced Access development techniques, this presentation offers valuable insights into building professional-grade interactive interfaces.
Template Architecture
Core Components
- Gantt chart class as the main orchestrator
- Layout state object for managing current view settings
- Configuration object for customizable parameters
- Canvas object for GDI32 drawing operations
- Collections for dates, tasks, and activities
Class Structure
- Task class for managing row items
- Activity class for handling chart elements
- Date class for calendar management
- Rectangle class for coordinate management
- Font description class for text rendering
- Memory picture class for image handling
Interactive Features
Mouse Operations
- Drag and drop repositioning
- Resize handles for duration adjustment
- Double-click for detailed editing
- Right-click context menus
- Mouse wheel zoom control
Visual Elements
- Progress indicators
- Custom shaped elements (polygons)
- Icon overlays for status indicators
- Dynamic text positioning
- Frozen row support
Implementation Details
Activity Management
- Start/end date handling
- Fractional positioning within days
- Progress indicator support
- Move/resize restrictions
- Collision detection
Drawing Operations
- Rectangle rendering
- Text placement and scaling
- Icon positioning
- Progress bar display
- Custom shape drawing
Customization Options
Configuration Settings
- Cell dimensions
- Column widths
- Menu distances
- Grid divisions
- Visual properties
Event Handlers
- Activity changed events
- Drag operations
- Double-click actions
- Right-click menu handling
- Free-draw capabilities
Conclusion
This enhanced version of Aleksander's Gantt chart solution represents a significant evolution in interactive Access interface design. Through careful architecture and efficient code structure, he has created a highly flexible template system that can be adapted for various business scenarios while maintaining smooth performance and professional presentation.
Recording
The full recording is available on YouTube:
Join Live!
Want to get even more out of these presentations? Join the live Access User Group events! The next upcoming events are listed on the AUG Event Calendar.
Attending live gives you the opportunity to:
- Interact directly with presenters during Q&A sessions
- Network with other Access developers
- Share your own experiences and challenges
- Get immediate answers to your specific questions
- Participate in group discussions
With multiple user groups across different time zones (and languages!), you're sure to find a meeting time that works for your schedule.
Acknowledgements
- Base cover image generated by FLUX-schnell
- Initial draft generated by Claude-3.5-Sonnet