![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Приветствую.
При частой смене содержимого заголовка FileNameLabel.Caption последний ведет себя, мягко говоря, странно, а именно меняет шрифт+размер шрифта. В прикрепленных скриншотах пояснено. Почему так происходит и как этого избежать?! |
#2
|
||||
|
||||
![]() загрузка идет в отдельном потоке?
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
![]() А я бы код еще привел.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#4
|
|||
|
|||
![]() Да, в отдельном потоке вызывается функция, которая в процессе своей реализации меняет содержимое заголовка. Шрифты сам не меняю
|
#5
|
||||
|
||||
![]() Ну и сколько раз было сказано что нельзя из потоков обращаться с VCL компонентам... И все мимо ушей
![]() Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#6
|
||||
|
||||
![]() нельзя с VCL компонентами "напрямую" работать из потока, только через Synchronize метод.
Пишу программы за еду. __________________ |
#7
|
|||
|
|||
![]() Цитата:
Подскажите, пожалуйста, как это сделать? |
#8
|
||||
|
||||
![]() Код:
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls; type TTumanThread = class(TThread) private procedure UpdateVCL; protected procedure Execute; override; end; TForm1 = class(TForm) Label1: TLabel; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} { TTumanThread } procedure TTumanThread.Execute; begin Synchronize(UpdateVCL); end; procedure TTumanThread.UpdateVCL; begin Form1.Label1.Caption:='TTumanThread'; end; procedure TForm1.FormCreate(Sender: TObject); begin TTumanThread.Create(False); end; end. Пишу программы за еду. __________________ |