:: MVP ::
|
|
:: RSS ::
|
|
|
Как получить путь к установленному VLC-плееру (с учетом разрядности приложения)?
function GetVLCLibPath: string;
var
Handle: HKEY;
RegType: Integer;
DataSize: Cardinal;
Key: PWideChar;
begin
Result := '';
Key := 'Software\VideoLAN\VLC';
if RegOpenKeyEx(HKEY_LOCAL_MACHINE, Key, 0, KEY_READ, Handle) = ERROR_SUCCESS then
begin
if RegQueryValueEx(Handle, 'InstallDir', nil, @RegType, nil, @DataSize) = ERROR_SUCCESS then
begin
SetLength(Result, DataSize);
RegQueryValueEx(Handle, 'InstallDir', nil, @RegType, PByte(@Result[1]), @DataSize);
Result[DataSize] := '\';
end
else Showmessage('Error on reading registry');
RegCloseKey(Handle);
Result := String(PChar(Result));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetVLCLibPath);
end;
|
Как быстро отсортировать массив целых чисел?
type
TIntArray = array of Integer;
var
IntArray: TIntArray = [2, 7, 1, 4, 0, 8, 5, 9, 4, 3];
procedure qSort(var A: TIntArray; min, max: Integer);
var
i, j, tmp, supp: Integer;
begin
supp := A[max-((max-min) div 2)];
i := min;
j := max;
while i < j do
begin
while A[i] < supp do
i := i + 1;
while A[j] > supp do
j := j - 1;
if i <= j then
begin
tmp := A[i];
A[i] := A[j];
A[j] := tmp;
i := i + 1;
j := j - 1;
end;
end;
if min < j then
qSort(A, min, j);
if i < max then
qSort(A, i, max);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
i: Integer;
begin
qSort(IntArray, 0, High(IntArray));
s := '';
for i := Low(IntArray) to High(IntArray) do
s := s + IntToStr(IntArray[i]) + #13;
ShowMessage(s);
end;
|
Как определить передан ли программе определенный параметр или нет?
procedure TestFindCmdLineSwitch;
var
schars: TSysCharSet;
begin
schars := ['/','.'];
if FindCmdLineSwicth('param1') then
begin
// определит "/param1", "/PARAM1"
// не определит "param1", ".param1"
end;
if FindCmdLineSwitch('param1', False) then
begin
// определит "/param1"
// не определит "param1", ".param1", "/PARAM1"
end;
if FindCmdLineSwitch('param1', schars, false) then
begin
// определит "/param1", ".param1"
// не определит "param1", "/PARAM1"
end;
end;
|
При использовании материала - ссылка на сайт обязательна
|
|