nyuuzyou/wikis huggingface dataset:
Как определить bitrate WAV файла?

{....}
 private
 procedure OpenMedia(WaveFile: string);
 function GetStatus(StatusRequested: DWord) : longint;
 procedure CloseMedia;
{....}
var
 MyError, dwFlags: Longint;
 FDeviceID: Word;
{....}
uses
 MMSystem;
{....}
procedure TForm1.OpenMedia(WaveFile: string);
var
 MyOpenParms: TMCI_Open_Parms;
begin
 with MyOpenParms do
 begin
 dwCallback := Handle; // TForm1.Handle
 lpstrDeviceType := PChar('WaveAudio');
 lpstrElementName := PChar(WaveFile);
 end;
 dwFlags := MCI_WAIT or MCI_OPEN_ELEMENT or MCI_OPEN_TYPE;
 MyError := mciSendCommand(0, MCI_OPEN, dwFlags, Longint(@MyOpenParms));
 // one could use mciSendCommand(DevId, here to specify a particular device
 if MyError = 0 then
 FDeviceID := MyOpenParms.wDeviceID
 else
 raise Exception.Create('Open Failed');
end;
function TForm1.GetStatus(StatusRequested: DWORD): Longint;
var
 MyStatusParms: TMCI_Status_Parms;
begin
 dwFlags := MCI_WAIT or MCI_STATUS_ITEM;
 with MyStatusParms do
 begin
 dwCallback := Handle;
 dwItem := StatusRequested;
 end;
 MyError := mciSendCommand(FDeviceID,
 MCI_STATUS,
 MCI_WAIT or MCI_STATUS_ITEM,
 Longint(@MyStatusParms));
 if MyError = 0 then
 Result := MyStatusParms.dwReturn
 else
 raise Exception.Create('Status call to get status of ' +
 IntToStr(StatusRequested) + ' Failed');
end;
procedure TForm1.CloseMedia;
var
 MyGenParms: TMCI_Generic_Parms;
begin
 if FDeviceID > 0 then
 begin
 dwFlags := 0;
 MyGenParms.dwCallback := Handle; // TForm1.Handle
 MyError := mciSendCommand(FDeviceID, MCI_CLOSE, dwFlags, Longint(@MyGenParms));
 if MyError = 0 then
 FDeviceID := 0
 else
 begin
 raise Exception.Create('Close Failed');
 end;
 end;
end;
// Example:
// Beispiel:
procedure TForm1.Button1Click(Sender: TObject);
begin
 if OpenDialog1.Execute then
 begin
 OpenMedia(OpenDialog1.FileName);
 with ListBox1.Items do
 begin
 Add('Average Bytes / Sec : ' + IntToStr(GetStatus(MCI_WAVE_STATUS_AVGBYTESPERSEC)));
 Add('Bits / Sample : ' + IntToStr(GetStatus(MCI_WAVE_STATUS_BITSPERSAMPLE)));
 Add('Samples / Sec : ' + IntToStr(GetStatus(MCI_WAVE_STATUS_SAMPLESPERSEC)));
 Add('Channels : ' + IntToStr(GetStatus(MCI_WAVE_STATUS_CHANNELS)));
 end;
 CloseMedia;
 end;
end;
Source: http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 03607
Category:Звук
Как определить видеокарту?

=== Как определить видеокарту? ===
procedure TForm1.button1click(Sender: TObject); 
var 
 lpDisplayDevice: TDisplayDevice; 
 dwFlags: DWORD; 
 cc: DWORD; 
begin 
 form2.memo1.Clear; 
 lpDisplayDevice.cb := sizeof(lpDisplayDevice); 
 dwFlags := 0; 
 cc:= 0; 
 while EnumDisplayDevices(nil, cc, lpDisplayDevice, dwFlags) do 
 begin 
 Inc(cc); 
 form2.memo1.lines.add(lpDisplayDevice.DeviceString);
 { Так же мы увидим дополнительную информацию в lpDisplayDevice } 
 form2.show; 
 end; 
end;
Source: Взято из http://forum.sources.ru
ID: 01455
Как определить все IP и порты на моем компьютере?

Функции GetTcpTable, GetUdpTable.
Импорт GetTcpTable:
unit TcpTable;
interface
type
 PDWord = ^Longword;
 PMIB_TCPROW = ^TMIB_TCPROW;
 TMIB_TCPROW = record
 dwState: LongWord;
 dwLocalAddr: LongWord;
 dwLocalPort: LongWord;
 dwRemoteAddr: LongWord;
 dwRemotePort: LongWord;
 end;
 PMIB_TCPTABLE = ^TMIB_TCPTABLE;
 TMIB_TCPTABLE = record
 dwNumEntries: LongWord;
 table: array[0..0] of TMIB_TCPROW;
 end;
function GetTcpTable(var TcpTable: PMIB_TCPTABLE; var Size: PDWord; bOrder: Boolean): LongWord; stdcall
implementation
function GetTcpTable; external 'Iphlpapi.dll' name 'GetTcpTable';
end.
Вызов GetTcpTable:
{$R-}
 Entries := 16;
 Sz := SizeOf(TMIB_TCPTABLE) + SizeOf(TMIB_TCPROW) * (Entries-1);
 pMibTable := nil;
 try
 repeat
 ReallocMem(pMibTable, Sz);
 Res := GetTcpTable(pMibTable^, Sz, False);
 until Res <> ERROR_INSUFFICIENT_BUFFER;
 if Res <> NO_ERROR then
 begin
 ShowMessage(SysErrorMessage(Res));
 exit;
 end;
 for Entries := 0 to pMibTable.dwNumEntries-1 do
 begin
 // <Делать что-то>
 end;
 finally
 FreeMem(pMibTable);
 end;
{$R+}
Author: Spawn 
Source: http://forum.vingrad.ru
ID: 03339
Category:Связь
Как определить графический формат файла (не используя расширение)?

Тип файла можно определить не глядя на расширение имени файла, по первым байтам (сигнатуре) файла.
{ Result:
 1 - Bitmap
 2 - TIFF
 3 - JPEG
 4 - PNG
 5 - DCX
 6 - PCX
 7 - EMF
}
function PhysicalResolveFileType(AStream: TStream): Integer;
var
 p: PChar;
begin
 Result := 0;
 if not Assigned(AStream) then
 Exit;
 GetMem(p, 10);
 try
 AStream.Position := 0;
 AStream.Read(p[0], 10);
 { bitmap format }
 if (p[0] = #66) and (p[1] = #77) then
 Result := 1;
 { tiff format }
 if ((p[0] = #73) and (p[1] = #73) and (p[2] = #42) and (p[3] = #0)) or
 ((p[0] = #77) and (p[1] = #77) and (p[2] = #42) and (p[3] = #0)) then
 Result := 2;
 { jpg format }
 if (p[6] = #74) and (p[7] = #70) and (p[8] = #73) and (p[9] = #70) then
 Result := 3;
 { png format }
 if (p[0] = #137) and (p[1] = #80) and (p[2] = #78) and (p[3] = #71) and
 (p[4] = #13) and (p[5] = #10) and (p[6] = #26) and (p[7] = #10) then
 Result := 4;
 { dcx format }
 if (p[0] = #177) and (p[1] = #104) and (p[2] = #222) and (p[3] = #58) then
 Result := 5;
 { pcx format }
 if p[0] = #10 then
 Result := 6;
 { emf format }
 if (p[0] = #215) and (p[1] = #205) and (p[2] = #198) and (p[3] = #154) then
 Result := 7;
 { emf format }
 if (p[0] = #1) and (p[1] = #0) and (p[2] = #0) and (p[3] = #0) then
 Result := 7;
 finally
 Freemem(p);
 end;
end;
Source: Взято с Delphi Knowledge Base: http://www.baltsoft.com/
ID: 04290
Category:Форматы файлов
Category:Графика
Как определить день недели?

=== Как определить день недели? ===
procedure TForm1.Button1Click(Sender: TObject);
var
 d: TDateTime;
begin
 d := StrToDate(Edit1.Text);
 ShowMessage(FormatDateTime('dddd',d));
end;
Source: http://delphiworld.narod.ru
ID: 00750
----
Функции DayOfTheWeek() и DayOfWeek() (см. справку по Дельфи)
Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
ID: 00752
Как определить закрытие командного окна в консольном приложении

=== Как определить закрытие командного окна в консольном приложении ===
Консольные приложения Win32 запускаются в командном окне. Для того, чтобы консольное приложение могло определить когда консоль закрывается, надо зарегистрировать консольный обработчик управления и в выражении case искать следующие значения:
* CTRL_CLOSE_EVENT - Пользователь закрывает консоль
* CTRL_LOGOFF_EVENT - Пользователь завершает сеанс работы (log off)
* CTRL_SHUTDOWN_EVENT - Пользователь выключает систему (shut down)
Как это делается, можно посмотреть в примере CONSOLE. Более подробную информацию можно посмотреть в руководстве Win32 application programming interface (API) в разделе SetConsoleCtrlhandler().
Source: http://delphiworld.narod.ru/
ID: 02195
== Пример обработчика управления консоли ==
uses Windows;
function CtrlHandler(CtrlType: DWORD): WINBOOL; stdcall;
begin
 Result := False;
 case CtrlType of
 CTRL_C_EVENT:
 begin
 WriteLn('* Ctrl+C event');
 Result := True;
 end;
 CTRL_CLOSE_EVENT:
 begin
 WriteLn('* Ctrl+Close event');
 Result := True;
 end;
 // return False: event not handled
 CTRL_BREAK_EVENT:
 WriteLn('* Ctrl+Break event');
 CTRL_LOGOFF_EVENT:
 WriteLn('* Ctrl+Logoff event');
 CTRL_SHUTDOWN_EVENT:
 WriteLn('* Ctrl+Logoff event');
 else
 WriteLn('* Unknown event: ', CtrlType);
 end;
end;
begin
 if SetConsoleCtrlHandler(@CtrlHandler, True) then
 begin
 WriteLn('Ctrl handler installed. Waiting for events...');
 while True do;
 end
 else
 begin
 WriteLn('Error: Could not set control handler.');
 Write('Press Enter...');
 ReadLn;
 end;
end.
Source: https://t.me/Delphi_Lazarus/354160
Author: Serg
Как определить запущен ли Excel?

Данный пример ищет активный экземпляр Excel и делает его видимым
var
 ExcelApp: Variant;
begin
 try
 // Ищем запущенный экземпляр Excel, если он не найден, вызывается исключение
 ExcelApp := GetActiveOleObject('Excel.Application');
 // Делаем его видимым
 ExcelApp.Visible := true;
 except
 end;
Author: Автор Кулюкин Олег
Source: http://www.delphikingdom.ru/
ID: 04380
Category:COM
Category:MS Office
Как определить использует ли пользователь стили?

=== Как определить использует ли пользователь стили? ===
function _IsThemeActive: Boolean;
// Returns True if the user uses XP style
const
 themelib = 'uxtheme.dll';
type
 TIsThemeActive = function: BOOL; stdcall;
var
 IsThemeActive: TIsThemeActive;
 huxtheme: HINST;
begin
 Result := False;
 // Check if XP or later Version
 if (Win32Platform = VER_PLATFORM_WIN32_NT) and
 (((Win32MajorVersion = 5) and (Win32MinorVersion >= 1)) or
 (Win32MajorVersion > 5)) then
 begin
 huxtheme := LoadLibrary(themelib);
 if huxtheme <> 0 then
 begin
 try
 IsThemeActive := GetProcAddress(huxtheme, 'IsThemeActive');
 Result := IsThemeActive;
 finally
 if huxtheme > 0 then
 FreeLibrary(huxtheme);
 end;
 end;
 end;
end;
// Example Call:
procedure TForm1.Button1Click(Sender: TObject);
begin
 if _IsThemeActive then
 ShowMessage('Windows Themes are active.');
end;
Source: Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 00399
----
uses
Themes;
...
if ThemeServices.ThemesEnabled then // Тема использется
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 03660
Как определить какие приложения уже запущены?

=== Как определить какие приложения уже запущены? ===
procedure TForm1.Button1Click(Sender: TObject);
var
 Wnd: hWnd;
 buff: array [0..127] of Char;
begin
 ListBox1.Clear;
 Wnd := GetWindow(Handle, gw_HWndFirst);
 while Wnd <> 0 do
 begin
 { Не показываем: }
 if (Wnd <> Application.Handle) { -Собственное окно }
 and IsWindowVisible(Wnd) { -Невидимые окна }
 and (GetWindow(Wnd, gw_Owner) = 0) { -Дочерние окна }
 and (GetWindowText(Wnd, buff, SizeOf(buff)) <> 0) { -Окна без заголовков }
 then
 begin
 GetWindowText(Wnd, buff, SizeOf(buff));
 ListBox1.Items.Add(StrPas(buff));
 end;
 Wnd := GetWindow(Wnd, gw_hWndNext);
 end;
 ListBox1.ItemIndex := 0;
end;
Source: Взято из http://forum.sources.ru
ID: 02048
Как определить координаты курсора мыши?

=== Как определить координаты курсора мыши? ===
GetCursorPos() 
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 01568
----
Обрабатывай событие OnMouseMove. Координаты курсора можно получить следующим путем:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
 if (X >= 40 or X <= 234) and (Y >= 60 or Y <= 258) then
 { здесь запуск твоей функции };
end;
Author: Pegas
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 01569
----
 mouse.CursorPos.x
 mouse.CursorPos.y
Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 01570
----
Для этого можно воспользоваться API функцией GetCursorPos. Передав в эту функцию TPoint, мы получим текущие координаты курсора. Следующий код показывает, как получить значения координат курсора по нажатию кнопки.
procedure Form1.Button1Click(Sender: TObject);
var
 foo: TPoint;
begin
 GetCursorPos(foo)
 ShowMessage( '(' + IntToStr(foo.X) + ' ,' + IntToStr( foo.Y ) + ')' );
end;
Source: Взято из http://forum.sources.ru
ID: 01571
ID: 01572
Как определить лежит ли точка внутри полигона?

The main procedure is called ExploreLine. In this procedure Fst and Lst may be two consecutively points in the polyline. Srch is the point searched.
{ ... }
const {global}
 BigM = 1000000;
function Pend(Pi, Pf: TPoint): Real;
begin
 if (Pf.X = Pi.X) then
 Result := BigM {for a vertical line}
 else
 Result := (Pf.Y - Pi.Y) / (Pf.X - Pi.X);
end;
function Dist(Pi, Pf: TPoint): Real;
begin
 Result := sqrt(sqr(Pi.Y - Pf.Y) + sqr(Pi.X - Pf.X))
end;
function CalcPoint(Pi, Pf: TPoint; d: Word): TPoint;
var
 k, m: Real; { k=d / (1 + m2)Ѕ }
begin
 m := Pend(Pi, Pf);
 k := d / (Sqrt(1 + Sqr(m)));
 if ((Pf.X - Pi.X) < 0) then
 begin
 Result.X := Pi.X - Round(k);
 Result.Y := Pi.Y - Round(m * k);
 end
 else
 begin
 Result.X := Pi.X + Round(k);
 Result.Y := Pi.Y + Round(m * k);
 end;
end;
function ExploreLine(Srch, Fst, Lst: TPoint): Boolean;
var
 p: Word;
 Any: TPoint;
 lim, dis: Real;
begin
 lim := Dist(Lst, Fst);
 p := 1;
 Any := Fst;
 repeat
 Result := TestPoint(Srch, Any);
 dis := Dist(Any, Fst);
 Any := CalcPoint(Fst, Lst, Rad * p);
 Inc(p);
 until
 (Result)rr(dis >= lim);
end;
Source: http://www.baltsoft.com/
ID: 04102
Category:Алгоритмы
Category:Графика
Category:Геометрия
Как определить нажаты ли клавиши Shift, Alt или Ctrl в какой-либо момент времени

=== Как определить нажаты ли клавиши Shift, Alt или Ctrl в какой-либо момент времени ===
В приведенном примере показано как определить нажата ли клавиша Shift при выборе строчки меню. Пример также содержит функции проверки состояния клавиш Alt, Ctrl. 
function CtrlDown: Boolean;
var
 State: TKeyboardState;
begin
 GetKeyboardState(State);
 Result := ((State[vk_Control] and 128) <> 0);
end;
function ShiftDown: Boolean;
var
 State: TKeyboardState;
begin
 GetKeyboardState(State);
 Result := ((State[vk_Shift] and 128) <> 0);
end;
function AltDown: Boolean;
var
 State: TKeyboardState;
begin
 GetKeyboardState(State);
 Result := ((State[vk_Menu] and 128) <> 0);
end;
procedure TForm1.MenuItem12Click(Sender: TObject);
begin
 if ShiftDown then
 Form1.Caption := 'Shift'
 else
 Form1.Caption := ;
end;
Source: http://delphiworld.narod.ru/
ID: 01557
Как определить наличие сопроцессора?

=== Как определить наличие сопроцессора? ===
В отличие от общепринятого мнения не все клоны 486/586/686/ и Pentium имеют сопроцессор для вычислений с плавающей запятой. В примере определяется наличие сопроцессора и под Win16 и под Win32. 
Пример:
{$IFDEF WIN32}
uses Registry;
{$ENDIF}
function HasCoProcesser: bool;
{$IFDEF WIN32}
var
 TheKey: hKey;
{$ENDIF}
begin
 Result := true;
{$IFNDEF WIN32}
 if GetWinFlags and Wf_80x87 = 0 then
 Result := false;
{$ELSE}
 if RegOpenKeyEx(HKEY_LOCAL_MACHINE,
 'HARDWARE\DESCRIPTION\System\FloatingPointProcessor', 0,
 KEY_EXECUTE, TheKey) <> ERROR_SUCCESS then
 Result := false;
 RegCloseKey(TheKey);
{$ENDIF}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 if HasCoProcesser then
 ShowMessage('Has CoProcessor')
 else
 ShowMessage('No CoProcessor - Windows Emulation Mode');
end;
 DELPHI VCL FAQ Перевод с английского
 Подборку, перевод и адаптацию материала подготовил Aziz(JINX)
 специально для Королевства Дельфи
Source: Взято из 
ID: 01432
Как определить насколько долго система находится в Idle?

=== Как определить насколько долго система находится в Idle? ===
// The GetLastInputInfo function retrieves the time
// of the last input event.
// Minimum operating systems: Windows 2000
function LastInput: DWord;
var
 LInput: TLastInputInfo;
begin
 LInput.cbSize := SizeOf(TLastInputInfo);
 GetLastInputInfo(LInput);
 Result := GetTickCount - LInput.dwTime;
end;
// Example:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Label1.Caption := Format('System Idle since %d ms', [LastInput]);
end;
Source: Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 02091
Как определить откуда был запущен процесс?

=== Как определить откуда был запущен процесс? ===
Есть handle запущенного PE файла. Как определить откуда он был запущен?
Я так предполагаю что getmodulefilename как и GetModuleHandle работает в рамках только своего процесса.
А решить твою задачу .. можно так:
Тут парочка моих любимых функций
uses
 tlhelp32;
type
 TModuleArray = array of TModuleEntry32;
// Возвращает список описаний (TModuleEntry32) модулей по идентификатору процесса 
function GetModulesListByProcessId(ProcessId: Cardinal): TModuleArray;
implementation
function GetModulesListByProcessId(ProcessId: Cardinal): TModuleArray;
var
 hSnapshot: THandle;
 lpme: TModuleEntry32;
procedure AddModuleToList;
begin
 SetLength(Result, High(Result)+2);
 Result[High(Result)] := lpme;
end;
begin
 SetLength(Result, 0);
 hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessId);
 if hSnapshot = -1 then RaiseLastWin32Error;
 lpme.dwSize := SizeOf(lpme);
 if Module32First(hSnapshot, lpme) then
 begin
 AddModuleToList;
 while Module32Next(hSnapshot, lpme) do AddModuleToList;
 end;
end;
var
 Wnd: hWnd;
 buff: array [0..127] of Char;
 Pid: Cardinal;
 modarr: TModuleArray;
 Name: string;
begin
 StringGrid1.RowCount := 1;
 Wnd := GetWindow(Handle, gw_HWndFirst);
 while Wnd <> 0 do
 begin
 if (GetWindowText(Wnd, buff, SizeOf(buff)) <> 0) then
 begin
 FillChar(buff, SizeOf(buff), #0); 
 GetWindowText(wnd, buff, SizeOf(buff));
 // if GetModuleFileName(GetWindowLong(wnd, GWL_HINSTANCE), Name, SizeOf(Name)) = 0 then
 // Name := 'Null';
 GetWindowThreadProcessId(Wnd, @Pid);
 modarr := GetModulesListByProcessId(Pid);
 Name := 'Null';
 for i:=0 to High(modarr) do
 begin
 if Integer(modarr[i].modBaseAddr) = $400000 then
 begin
 Name := modarr[i].szExePath;
 break;
 end;
 end;
 StringGrid1.Cells[0,StringGrid1.RowCount-1] := StrPas(buff);
 StringGrid1.Cells[1,StringGrid1.RowCount-1] := Name;
 StringGrid1.RowCount := StringGrid1.RowCount+1;
 end;
 Wnd := GetWindow(Wnd, gw_hWndNext);
 end;
 StringGrid1.RowCount := StringGrid1.RowCount-1;
end; 
Author: TAPAKAH
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02051
Как определить реальный размер поля типа BLOB, которое сохранено в таблице?

=== Как определить реальный размер поля типа BLOB, которое сохранено в таблице? ===
Ниже приведена функция GetBlobSize, которая возвращает размер данного BLOB или MEMO поля.
Пример вызова:
function GetBlobSize(Field: TBlobField): Longint;
begin
 with TBlobStream.Create(Field, bmRead) do
 try
 Result := Seek(0, 2);
 finally
 Free;
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 { This sets the Edit1 edit box to display the size of }
 { a memo field named Notes. }
 Edit1.Text := IntToStr(GetBlobSize(Notes));
end;
Copyright © 1996 Epsylon Technologies
Source: Взято из FAQ Epsylon Technologies (095)-913-5608; (095)-913-2934; (095)-535-5349
ID: 02465
Как определить сколько памяти выделено в дельфи для программы?

=== Как определить сколько памяти выделено в дельфи для программы? ===
Для этого можно воспользоваться функцией GetHeapStatus:
 
lwMem.Items.Clear;
s := LastStatsList[cbCompare.ItemIndex];
LastStatsList[0] := GetHeapStatus;
LastStats := LastStatsList[PointId];
ListItem := lwMem.Items.Add;
ListItem.Caption := 'TotalAddrSpace';
ListItem.SubItems.Add(Numb2USA(Format(strFormat, [s.TotalAddrSpace])));
tmp := s.TotalAddrSpace - LastStats.TotalAddrSpace;
ListItem.SubItems.Add(DeltaToStr(tmp));
ListItem := lwMem.Items.Add;
ListItem.Caption := 'TotalUncommitted';
ListItem.SubItems.Add(Numb2USA(Format(strFormat, [s.TotalUncommitted])));
tmp := s.TotalUncommitted - LastStats.TotalUncommitted;
ListItem.SubItems.Add(DeltaToStr(tmp));
ListItem := lwMem.Items.Add;
ListItem.Caption := 'TotalCommitted';
ListItem.SubItems.Add(Numb2USA(Format(strFormat, [s.TotalCommitted])));
tmp := s.TotalCommitted - LastStats.TotalCommitted;
ListItem.SubItems.Add(DeltaToStr(tmp));
ListItem := lwMem.Items.Add;
ListItem.Caption := 'TotalAllocated';
ListItem.SubItems.Add(Numb2USA(Format(strFormat, [s.TotalAllocated])));
tmp := s.TotalAllocated - LastStats.TotalAllocated;
ListItem.SubItems.Add(DeltaToStr(tmp));
ListItem := lwMem.Items.Add;
ListItem.Caption := 'TotalFree';
ListItem.SubItems.Add(Numb2USA(Format(strFormat, [s.TotalFree])));
tmp := s.TotalFree - LastStats.TotalFree;
ListItem.SubItems.Add(DeltaToStr(tmp));
ListItem := lwMem.Items.Add;
ListItem.Caption := 'FreeSmall';
ListItem.SubItems.Add(Numb2USA(Format(strFormat, [s.FreeSmall])));
tmp := s.FreeSmall - LastStats.FreeSmall;
ListItem.SubItems.Add(DeltaToStr(tmp));
ListItem := lwMem.Items.Add;
ListItem.Caption := 'FreeBig';
ListItem.SubItems.Add(Numb2USA(Format(strFormat, [s.FreeBig])));
tmp := s.FreeBig - LastStats.FreeBig;
ListItem.SubItems.Add(DeltaToStr(tmp));
ListItem := lwMem.Items.Add;
ListItem.Caption := 'Unused';
ListItem.SubItems.Add(Numb2USA(Format(strFormat, [s.Unused])));
tmp := s.Unused - LastStats.Unused;
ListItem.SubItems.Add(DeltaToStr(tmp));
ListItem := lwMem.Items.Add;
ListItem.Caption := 'Overhead';
ListItem.SubItems.Add(Numb2USA(Format(strFormat, [s.Overhead])));
tmp := s.Overhead - LastStats.Overhead;
ListItem.SubItems.Add(DeltaToStr(tmp));
ListItem := lwMem.Items.Add;
ListItem.Caption := 'HeapErrorCode';
ListItem.SubItems.Add(Numb2USA(Format(strFormat, [s.HeapErrorCode])));
Source: Взято из http://forum.sources.ru
ID: 02077
Как определить состояние списка ComboBox, выпал/скрыт?

=== Как опеделить состояние списка ComboBox, выпал/скрыт? ===
Пошлите ComboBox сообщение CB_GETDROPPEDSTATE.
if SendMessage(ComboBox1.Handle, CB_GETDROPPEDSTATE, 0, 0) = 1 then
begin
 { список ComboBox выпал }
end;
ID: 00670
Как определить уровень звука в данный момент?

=== Как определить уровень звука в данный момент? ===
Единственное, что удалось найти это компонент на Дельфи (с исходным кодом) на http://www.torry.net/mixer.htm компонент называется Vumeter v.1.0. Я его не разбирал, но похоже что он опрашивает Audio Mixer Driver (или что-то подобное).
Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02253
----
Я построил диаграмму так:
// Назначил
F := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
// Затем считал заголовок Wav - SampleCount, SamplesPerSec, BitsPerSample, Channeles.
// Затем считал данные
GetMem(buf, SampleCount * Channeles * BitsPerSample);
// Описал массив Volume
SetLength(Volume, SampleCount);
// Затем
F.Read(buf^, SampleCount*2); F.Free;
// Затем заполнил массив
buf16 := buf;
for h := 0 to SampleCount - 1 do
begin
 Volume[h] := abs(buf16^);
 Inc(buf16);
end;
FreeMem(buf);
Затем строил график(в экранных координатах) - по горизонтальной оси откладывал значения SampleCount, по вертикальной значения Volume[h].
График получается точно такой же как в SoundForge.
Единственно, я писал программу для конкретного случая - у меня файлы по 10 минут, моно, 11025 Гц., 16 бит. Так что программа у меня не универсальная. Но работает нормально. По времени: обработка файла и построение графика около 4 -5 секунд.
Author: TPavel 
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02254
Как определить установлен ли Excel?

Функция возвращает True если найден OLE-объект
function IsOLEObjectInstalled(Name: String): Boolean;
var
 ClassID: TCLSID;
 Rez: HRESULT;
begin
 // Ищем CLSID OLE-объекта
 Rez := CLSIDFromProgID(PWideChar(WideString(Name)), ClassID);
 if Rez = S_OK then // Объект найден
 Result := True
 else
 Result := False;
end;
Пример использования
 if not IsOLEObjectInstalled('Excel.Application') then
 ShowMessage('Класс не зарегистрирован')
 else
 ShowMessage('Класс найден');
Если нужна более подробная информация об объекте, можно почитать хелп по функции API CLSIDFromProgID.
Author: Кулюкин Олег
Source: http://www.delphikingdom.ru/
ID: 04379
Category:COM
Category:MS Office
Как определить установлен ли Internet Explorer?

uses
 registry;
function IE_installed(var Version: string): Boolean;
var
 Reg: TRegistry;
begin
 Reg := TRegistry.Create;
 with Reg do
 begin
 RootKey := HKEY_LOCAL_MACHINE;
 OpenKey('Software\Microsoft\Internet Explorer', False);
 if ValueExists('Version') then
 Version := ReadString('Version')
 else
 Version := ;
 CloseKey;
 Free;
 end;
 Result := Version <> ;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
 IE_Version: string;
begin
 if IE_Installed(IE_Version) then
 ShowMessage(Format('Internet Explorer %s installed.', [IE_Version]));
end;
Source: http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 03513
Category:Связь
Category:WebBrowser
Как определить установлен ли screen saver?

=== Как определить установлен ли screen saver? ===
function ScreenSaverEnabled: Boolean;
var
 status: Bool;
begin
 SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, @status, 0);
 Result := (status = True);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 if ScreenSaverEnabled then
 Caption := 'Screensaver is enabled.'
 else
 Caption := 'Screensaver is disabled.'
end;
Source: Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
ID: 02380