Последние записи
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
16th
Апр
Сортировка первой колонки в StringGrid
Как отсортировать первую колонку по алфавиту в StringGrid, чтобы значения остались прежними?
pu4koff
Сортировка вызывается так:
GridSort(StringGrid1, 0);
procedure GridSort(StrGrid: TStringGrid; NoColumn: Integer);
var
Line, PosActual: Integer;
Row: TStringList;
Renglon :TStringList;
begin
Renglon := TStringList.Create;
Row := TStringList.Create;
for Line := 1 to StrGrid.RowCount-1 do
begin
PosActual := Line;
Row.Assign(StrGrid.Rows[PosActual]);
while True do
begin
if (PosActual = 0) or
(Row.Strings[NoColumn] >= StrGrid.Cells[NoColumn,PosActual-1])
then break;
StrGrid.Rows[PosActual] := StrGrid.Rows[PosActual-1];
Dec(PosActual);
end;
if (Row.Strings[NoColumn] < StrGrid.Cells[NoColumn,PosActual])
then StrGrid.Rows[PosActual].Assign(Row);
end;
Row.Free;
Renglon.Free;
end;
Австрийская компания iTap mobile выпускает RDP-клиенты — программы для подключения к настольному компьютеру Windows с мобильных устройств или компьютеров с другими операционными системами по протоколу удаленного рабочего стола. iTap mobile RDP для систем Mac или Linux предоставляет полный контроль и быстрый доступ к настольному компьютеру на платформе Windows отовсюду. iTap mobile поддерживает TS Gateway и является быстрым, безопасным и оптимизированным решением для дома и бизнес-нужд. Мощный RDP-клиент также сопровождается первоклассной технической поддержкой.
16th
TServerSocket, TClientSocket
Prod87
Подскажите пожалуйста, как с помощью TServerSocket и TClientSocket
передавать текст между пользователями сети.
16th
Глобальное потепление или кризис среднего возраста
7-е апреля, а за окном такое… Лет 30 назад 1-го мая уже купальный сезон открывали… Глобальное потепление во всем мире объявили? Про Приморье точно не забыли? Или может просто постапокалипсический пейзаж тоску нагоняет? (читать всё…)
15th
Апр
Таймер в миллисекундах
Как переделать Delay, чтобы можно было в 10Mks выставить? Пробовал разные значения подставлять, но все равно в миллисекундах не получается.
raxp
procedure delay_microsec(val: int64);
var Freq, TimeImp, TimeImpNow, TimeElapsed: int64;
begin
QueryPerformanceFrequency(Freq);
QueryPerformanceCounter(TimeImp);
repeat
QueryPerformanceCounter(TimeImpNow);
TimeElapsed:= ((TimeImpNow - TimeImp) * 1000000) div Freq;
until TimeElapsed > val
end;
15th
О чтении лицензионного соглашения при установке ПО
дравствуйте.
Однажды от своего знакомого (довольно хорошо дружащего с ПК) услышал (опосредованно, правда), что если при установке ПО не сделать вид, что прочёл лицензию (не просто поставить галочку, о «адекватно» прокрутить лицензию), то программа КРИВО встанет. С тех пор не могу избавиться от этой привычки делать вид каждый раз при установке ПО, хоть до того, когда это услышал, ставил ПО, даже не задумываясь.
Как думаете, это правда? Я, конечно, понимаю, что можно реализовать такую тактику, но всё же… (читать всё…)
14th
Апр
Заполнить значения StringGrid из переменных
На форме лежат StringGrid (1 фиксированная строка + 1 пустая, 3 столбца), 3 Edit’a и Кнопка. По нажатию кнопки в Грид нужно записать содержимое Едитов (соответственно к каждой ячейке свой Эдит). При следующем нажатии, необходимо добавить строку, и записать новые значения из Эдитов, и так далее… Как это можно реализовать ?
DenProx
var x,y : integer;
begin
y := RzStringGrid1.RowCount -1;
x:=0;
RzStringGrid1.Cells[x,y]:= IntToStr(RzStringGrid1.RowCount -1);
inc(x);
RzStringGrid1.Cells[x,y] := Edit1.Text;
inc(x);
RzStringGrid1.Cells[x,y] := Edit2.Text;
RzStringGrid1.RowCount := RzStringGrid1.RowCount + 1;
y:=0;
Корпусная мебель оптом от российского производителя.
14th
Вывод пустых ячеек вместо 0000-00-00
Есть таблица в которой есть поля с датой: ‘datainet’, ‘datamail’, ‘datarereg’;
там, где дата не заполнена при выводе отображается 0000-00-00..
Как избавиться от этого и вместо 0000-00-00 выводить пустую ячейку таблицы или прочерк?? (читать всё…)
13th
Апр
Стереть параметры запуска после запуска
Есть у меня своя программа. И есть некоторая сторонняя программа, которая имеет несколько возможных параметров запуска. Так вот я запускаю эту стороннюю программу через shellexecute и передаю туда нужные параметры запуска.
На самом деле эти параметры запуска «секретные», там пароли, коды и всё такое, которые посторонние люди знать не должны, но люди пользуясь сторонним софтом эти параметры выдирают. Можно ли после запуска программы их стереть, как будто я запускал программу без каких-либо параметров запуска?
Anton911
memoffset = $85004; // смещение указателя на адрес где параметры от kernel32.dll
procedure DetectCode;
var
wBuff: Array[0..350] of Char;
sBuff,tBuff:String;
point_addr, kernelBase:DWORD;
wHandle, ProcessID, pHandle, BytesCount: cardinal;
i:Integer;
begin
Form1.Console.Clear;
pHandle := 0;
wHandle := 0;
kernelBase := GetModuleHandle(PWideChar('Kernel32.dll'));
ShellExecute(0,'Open', PWideChar(ExtractFilePath(ParamStr(0)) + 'proga.exe'),
PWideChar(GetParam), nil, SW_SHOWNORMAL);
while wHandle = 0 do wHandle := IsProgRun;
if wHandle 0 then
begin
GetWindowThreadProcessId(wHandle, @ProcessID);
pHandle := OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID);
if not ReadProcessMemory(pHandle, Pointer(kernelBase + memoffset), @point_addr, sizeof(point_addr), BytesCount) then
Form1.Console.Lines.Add('Не могу получить адресс указателя на смещение');
{}
sBuff := wBuff;
FillChar(wBuff, SizeOf(wBuff), #0);
tBuff := Copy(sBuff, 1, Pos('-password=', sBuff) - 1);
Delete(sBuff, 1, Pos('-password=', sBuff) - 1);
if Pos(' ', sBuff) 0 then
begin
Delete(sBuff,1, Pos(' ', sBuff));
tBuff := tBuff + sBuff;
end;
for i := 0 to Length(tBuff) - 1 do
begin
wBuff := tBuff;
end;
if not WriteProcessMemory(pHandle, Pointer(point_addr), @wBuff, sizeof(wBuff), BytesCount) then
Form1.Console.Lines.Add('Не могу внедриться в программу');
end;
end;
Пеллетные котлы Kostrzewa — автоматические твердотопливные котлы с ёмкостью бункера обеспечивающего непрерывную работу — 1 неделю и больше. Автоматический розжиг и модуляция процесса горения от 20% до 100%.
Облако меток
css реестр ассемблер timer SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid canvas поиск файл Pascal форма Файлы интернет Microsoft Office Excel excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)