Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHI.mastak.ru

Выпуск от 11.06.02 09:04

Кое-что из нашей кладовки   |x|
  • TStatusProgressBar (non visual) Freezer freezer@info-pro.ru   (10.06.02 12:34)
    Простой примерчик, на тему "Как отрисовать BrogressBar по TStatusPanel в StatusBar'e". Не судите строго, просто делать было нечего. (Но достаточно красиво получилось).
    »»» Скачать: исходные тексты (6кб) посмотреть скриншот
Лучшее из нашего FAQ   |x|
Скорость работы процессора, точный таймер
Данная тема уже обсуждалась, но у меня есть своя реализация сабжа. Начиная с Pentium MMX, Intel ввели в процессор счетчик тактов на 64 бита (Присутствуэт точно и в К6). Для того чтобы посотреть на его содержание, была введена команда "rdtsc" (подробное описание в интеловской мануале). Эту возможность можно использовать для реализации сабжа.
Посоку Делфя не вкурсе насчет rdtsc, то пришлось юзать опкод (0F31).
Привожу простенький примерчик юзания, Вы уж извините - немножко кривоват получился, да и ошибка компалера какая-то вылезла :( (V4 Bld5.104 Upd 2). Кому интересно, поделитесь своими соображениями по этому поводу. Особенно интерисует работа в режиме когда меняется частота процессора (Duty Cycle, StandBy).

Проверялось под еНТями на Пне 2 333.

// (C) 1999 ISV
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, Buttons, ExtCtrls;

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
else begin
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;

end.

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
У нас большой выбор статей   |x|
Перевод и адаптация под DELPHI раздела Win32 SDK посвященного клавиатурным курсорам
Поскольку только одно окно может иметь в данный момент фокус ввода (быть активным), то в системе может быть только один курсор. Каждое окно, содержащее курсор, должно создавать его при получении фокуса, и освобождать при потере фокуса.
Все программы, написанные под Microsoft® Windows® могут создавать курсоры, отображать или скрывать их, перемещать их, а также изменять время мерцания...
Новинки книжного рынка   |x|
Delphi 5: учебный курс
В книге рассмотрены возможности системы программирования Delphi 5, описан язык программирования Object Pascal, рассмотрены визуальные компоненты системы и методы их создания. Особое внимание уделено принципам и практическим приемам создания сетевых приложений для разных архитектур и разработке программ, поддерживающих основные протоколы Интернета.Не требует специальной подготовки, может быть использована как пособие для изучающих основы программирования и сетевые технологии, а также как справочник по компонентам Delphi и пособие для самообразования.
Автор: С. Бобровский
Другие сайты о DELPHI   |x|
Adept
Большая база хорошо отсортированной справочной информации по Delphi и не только.

» Оценка сайта: 4
Опрос населения :)
Какой раздел сайта вам больше нравится?
»»» FAQ
»»» Статьи
»»» Новости мира компонент
»»» Форумы
»»» Компоненты
»»» База по другим сайтам
Журнал "RSDN Magazine"  |x|

Дорогие друзья! Мы рады представить вам новый совместный проект сайтов www.rsdn.ru, delphi.mastak.ru и www.optim.ru - профессиональный журнал для программистов RSDN Magazine.
Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
На сайте выложен анонс пилотного выпуска журнала, вступительное слово от редакции.

Для души

Хокку дня
Наскучив долгим дождём,
Ночью сосны прогнали его…
Ветви в первом снегу.

Афоризмы
Если вы проживете достаточно долго, вы увидите, что каждая победа оборачивается поражением (Симона де Бовуар)

Фраза дня
Надоели критические дни - смени пол!

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Англии всем мужчинам, начиная с 14-ти лет, до сих пор предписывается не меньше двух часов в неделю практиковаться в стрельбе из лука под надзором местного священника.
В Монтане (США) семь индейцев, собравшихся вместе, считаются бандой, грозящей мирным жителям. В них можно стрелять без предупреждения.

И на закуску коротенький анекдот
- Скажите, доктор, а идиот - это заболевание?
- Для Вас, голубчик, - выздоровление!

Фотоприколы.
Начните день с хорошего настроения!
http://delphi.mastak.ru/cgi-bin/prikol.pl?id=130


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (delphi@mastak.com)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное