Як помістити progressbar в панель statusbar

Як помістити progressbar в панель statusbar

Коректніше було б самому канву малювати, але можна і просто вставити - тримай функцію для цього - застосовувати замість стандартного методу Create.

Є два принципово різних рішення. Перший варіант - це зробити все "вручну".

Тут створюється Bitmap з текстом (можливо будь-яке зображення). Щоб намалювати світлу частину смуги, достатньо скопіювати шматок Bitmap на StatusBar, а щоб намалювати темну частину смуги, потрібно скопіювати шматок Bitmap з інвертуванням. При цьому фон стане темним, а текст світлим. Реалізація ясна із самої програми.

Другий варіант простіший в реалізації, але і менш функціональний. StatusBar є спадкоємцем TWinControl, а отже, на ньому можна розмістити ще якісь компоненти. Але зробити це можна тільки динамічно (безпосередньо з програми). На StatusBar поміщається компонент ProgressBar, спочатку невидимий. Коли в ньому з'являється необхідність, його потрібно зробити видимим і почати змінювати властивість Position.

З цього прикладу добре видно деякі переваги і недоліки об'єктів.
Якщо у Вас Delphi3, то рядок pb.Smooth: = true; працювати не буде. На сайті розміщено версія програми з заміною цього рядка. Втім, її можна просто видалити - принципово це нічого не змінить. Завантажити всі необхідні для компіляції файли проекту можна на program.dax.ru.

Всі поради і зауваження, будь ласка, надсилайте на [email protected]
Данило Карапетян.