Простой примерчик, на тему "Как отрисовать BrogressBar по TStatusPanel в StatusBar'e". Не судите строго, просто делать было нечего. (Но достаточно красиво получилось).
»»» Скачать: исходные тексты (6кб) посмотреть скриншот
Скорость работы процессора, точный таймер
Данная тема уже обсуждалась, но у меня есть своя реализация сабжа. Начиная с Pentium MMX, Intel ввели в процессор счетчик тактов на 64 бита (Присутствуэт точно и в К6). Для того чтобы посотреть на его содержание, была введена команда "rdtsc" (подробное описание в интеловской мануале). Эту возможность можно использовать для реализации сабжа. Посоку Делфя не вкурсе насчет rdtsc, то пришлось юзать опкод (0F31). Привожу простенький примерчик юзания, Вы уж извините - немножко кривоват получился, да и ошибка компалера какая-то вылезла :( (V4 Bld5.104 Upd 2). Кому интересно, поделитесь своими соображениями по этому поводу. Особенно интерисует работа в режиме когда меняется частота процессора (Duty Cycle, StandBy).
type TForm1 = class(TForm) Label1: TLabel; Timer1: TTimer; Label2: TLabel; Label3: TLabel; Button1: TButton; Button2: TButton; Label4: TLabel; procedure Timer1Timer(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } Counter:integer; //Счетчик срабатывания таймера Start:int64; //Начало роботы Previous:int64; //Предыдущее значение PStart,PStop:int64; //Для примера выч. времени CurRate:integer; //Текущая частота
проца function GetCPUClick:int64; function GetTime(Start,Stop:int64):double; end;
var Form1: TForm1;
implementation
{$R *.DFM} // Ф!
ункция работает на пнях ММХ или выше а // также проверялась на К6 function TForm1.GetCPUClick:int64; begin asm db 0fh,31h // Опкод для команды rdtsc mov dword ptr result,eax mov dword ptr result[4],edx end; // Не смешно :(. Без ?той штуки // Компайлер выдает Internal error C1079 Result:=Result; end;
// Время в секундах между старт и стоп function TForm1.GetTime(Start,Stop:int64):double; begin try result:=(Stop-Start)/CurRate except result:=0; end; end;
// Обработчик таймера считает текущую частоту, выводит ее, а также // усредненную частоту, текущий такт с момента старта процессора. // При постоянной частоте процессора желательно интервал брать побольше //
1-5с для точного прощета частоты процессора. procedure TForm1.Timer1Timer(Sender: TObject); var i:int64; begin i:=GetCPUClick; if Counter=0 then Start:=i elsebegin Label2.Caption:=Format('Частота общая: %2f',[(i-Start)/(Counter*Timer1.Interval*1000)]); Label3.Caption:=Format('Частота текущая: %2f',[(i-Previous)/(Timer1.Interval*1000)]); CurRate:=Round(((i-Previous)*1000)/(Timer1.Interval)); end; Label1.Caption:='Такты: '+IntToStr(i); Previous:=i; Inc(Counter); end;
procedure TForm1.FormActivate(Sender: TObject); begin Counter:=0; end;
// Заносим стартовое время для примера procedure TForm1.Button1Click(Sender: TObject); begin PStart:=GetCPUClick; end;
//
Останавливаем отсчет времени и показуем соко // прошло секунд procedure TForm1.Button2Click(Sender: TObject); begin PStop:=GetCPUClick; Label4.Caption:=Fo!
rmat('Время между нажатиями: %gсек',[GetTime(PStart,PStop)]) end;
Перевод и адаптация под DELPHI раздела Win32 SDK посвященного клавиатурным курсорам
Поскольку только одно окно может иметь в данный момент фокус ввода (быть активным), то в системе может быть только один курсор. Каждое окно, содержащее курсор, должно создавать его при получении фокуса, и освобождать при потере фокуса. Все программы, написанные под Microsoft® Windows® могут создавать курсоры, отображать или скрывать их, перемещать их, а также изменять время мерцания...
Delphi 5: учебный курс
В книге рассмотрены возможности системы программирования Delphi 5, описан язык программирования Object Pascal, рассмотрены визуальные компоненты системы и методы их создания. Особое внимание уделено принципам и практическим приемам создания сетевых приложений для разных архитектур и разработке программ, поддерживающих основные протоколы Интернета.Не требует специальной подготовки, может быть использована как пособие для изучающих основы программирования и сетевые технологии, а также как справочник по компонентам Delphi и пособие для самообразования.
Автор: С. Бобровский
Дорогие друзья! Мы рады представить вам новый совместный проект сайтов www.rsdn.ru, delphi.mastak.ru и www.optim.ru - профессиональный журнал для программистов RSDN Magazine.
Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
На сайте выложен анонс пилотного выпуска журнала, вступительное слово от редакции.
Для души
Хокку дня
Наскучив долгим дождём, Ночью сосны прогнали его… Ветви в первом снегу.
Афоризмы
Если вы проживете достаточно долго, вы увидите, что каждая победа оборачивается поражением (Симона де Бовуар)
Фраза дня
Надоели критические дни - смени пол!
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Англии всем мужчинам, начиная с 14-ти лет, до сих пор предписывается не меньше двух часов в неделю практиковаться в стрельбе из лука под надзором местного священника.
В Монтане (США) семь индейцев, собравшихся вместе, считаются бандой, грозящей мирным жителям. В них можно стрелять без предупреждения.
И на закуску коротенький анекдот
- Скажите, доктор, а идиот - это заболевание? - Для Вас, голубчик, - выздоровление!