Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
1st
Сен
Cardinal
Базовый беззнаковый целый тип
type Cardinal = 0..4294967295; // At the time of writing
Описание:
Для хранения очень больших целых чисел, используйте Тип Int64.
Пример кода:
min, max : Cardinal;
begin
// Set the minimum and maximum values of this data type
min := Low(Cardinal);
max := High(Cardinal);
ShowMessage(‘Min cardinalvalue = ‘+IntToStr(min));
ShowMessage(‘Max cardinalvalue = ‘+IntToStr(max));
end;
Результат выполнения:
Max cardinal value = 4294967295
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
1st
Extended- Тип
Extended
Тип с плавающей запятой с наивысшей емкостью и точностью
Описание:
Он поддерживает около 19 значащих разрядов в диапазоне от 3.37 x 10-4932 до 1.18 x 104932.
Пример кода:
account1, account2, account3, account4 : Extended;
begin
account1 := 0.1234567890123456789; // 20 decimal places
account2 := 3.37E-4932; // Lowest exponent value
account3 := 1.18E4932; // Highest exponent value
account4 := 1.19E4932; // Treated as infinite
ShowMessage(‘Account1 = ‘+FloatToStrF(account1, ffGeneral, 22, 20));
ShowMessage(‘Account2 = ‘+FloatToStr(account2));
ShowMessage(‘Account3 = ‘+FloatToStr(account3));
ShowMessage(‘Account4 = ‘+FloatToStr(account4));
end;
Результат выполнения:
Account2 = 3.37E-4932
Account3 = 1.18E4932
Account4 = INF
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
1st
РИСОВАНИЕ КВАДРАТА, РАБОТА НА CANVAS
1) рисовать квадрат в середине формы (размер стороны квадрата вводится пользователем). Предусмотреть, что размер стороны не может быть текстом, не может быть отрицательным числом и не может превышать меньшего размера формы.
2) делить квадрат одной или диагональю или двумя в зависимости от выбора радиокнопок и каждый полученный треугольник закрашивать в разный цвет. Выбор цвета производит пользователь
Решение
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
9th
Авг
Как сделать копирование как в TotaleComander?
Исходник прилагаю.
Т.к. пример достаточно простой,нужно указывать откуда копировать файла + имя коп. файла и куда копировать + имя коп. файла- так что нужные функции дальше сами добавите.
Почитайте книжку А.Чиртик … “Delphi Трюки&Эффекты”.
Красивое копирование файла.zip
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
pbCopyProgress: TProgressBar;
cmbCopy: TButton;
txtFrom: TEdit;
txtTo: TEdit;
Label2: TLabel;
procedure cmbCopyClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var
progress: TProgressBar;
bCancelCopy: BOOL;
{$R *.dfm}
//Функция обратного вызова для отображения хода копирования
function CopyProgressFunc( TotalFileSize: Int64;
TotalBytesTransferred: Int64;
StreamSize: Int64;
StreamBytesTransferred: Int64;
dwStreamNumber: DWORD;
dwCallbackReason: DWORD;
hSourceFile: THandle;
hDestinationFile: THandle;
lpData: Pointer ): DWORD; stdcall;
begin
progress.Position := 100 * TotalBytesTransferred div TotalFileSize;
Application.ProcessMessages; //Чтобы не “зависал” интерфейс приложения
CopyProgressFunc := PROGRESS_CONTINUE;
end;
procedure TForm1.cmbCopyClick(Sender: TObject);
begin
if cmbCopy.Caption = ‘Копировать’ then
begin
//Запускаем копирование
progress := pbCopyProgress; //Настроен от 0 до 100%
bCancelCopy := FALSE;
cmbCopy.Caption := ‘Отмена’;
if CopyFileEx(PAnsiChar(txtFrom.Text), PAnsiChar(txtTo.Text),
Addr(CopyProgressFunc), nil, Addr(bCancelCopy),
COPY_FILE_FAIL_IF_EXISTS) = FALSE
then
MessageBox(Handle, ‘Не удается скопировать файл’, ‘Копирование’,
MB_ICONEXCLAMATION);
end
else
begin
//Останавливаем процесс копирования
bCancelCopy := TRUE;
cmbCopy.Caption := ‘Копировать’;
end;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
//Останавливаем процесс копирования
bCancelCopy := TRUE;
end;
end.
1st
Авг
Общие принципы работы с сайтом vkontakte.ru
И так начнем. Я выкладываю функции которые мне известны И У КОТОРЫХ 100% РАБОТОСПОСОБНОСТЬ!
АВТОРИЗАЦИЯ ВКОНТАКТЕ:
function vk_login(Login, Pass : string; IdHTTP : TIdHTTP): Boolean;
var
sl : TStringList;
text : string;
begin
sl := TStringList.Create;
sl.Add('email=' + Login + '&pass=' + Pass + '&expire=&vk=');
text := IdHTTP.Post('http://login.vk.com/?act=login',sl);
if Pos('Aoia',text)<>0 then begin
MessageBox(Application.Handle,'Iaaa?iua aaiiua: Eiaei , Ia?ieu','Ioeaea',0);
Result := False;
end else begin
text := Copy(text,Pos('name=' + #39 + 's' + #39,text)+16,PosEx(#39,text,Pos('name=' + #39 + 's' + #39,text)+17)-Pos('name=' + #39 + 's' + #39,text)-16);
IdHTTP.Request.CustomHeaders.Add('Cookie:remixchk=5; remixsid=' + text);
Result := True;
end;
sl.Free;
end;
ВЫЗОВ ФУНКЦИИ:
vk_login(Edit1.Text,Edit2.Text,IdHTTP1);
ПОЛУЧЕНИЕ СООБЩЕНИЙ ВКОНТАКТЕ:
function VK_ParsEmail(s:string; IdHTTP1:TIdHTTP): TStringList;
var
i : Integer;
mess_full, mess_text,
mess_id, mess_new,
mess_aut, mess_aut_id,
mess_date, mess_title : string;
sl : TStringList;
begin
Result := TStringList.Create;
i := 1;
s := Copy(s,PosEx('</tr>',s,Pos('<div id="messages_wrap">',s))+6,PosEx('</table>',s,Pos('<div id="messages_wrap">',s))-PosEx('</tr>',s,Pos('<div id="messages_wrap">',s))-6);
while PosEx('<tr ',s,i)<>0 do
begin
mess_full := Copy(s,PosEx('<tr ',s,i),PosEx('</tr>',s,PosEx('<tr ',s,i))-PosEx('<tr ',s,i));
// Iieo?aiea id niiauaiey
mess_id := Copy(mess_full,Pos('id="',mess_full)+8,PosEx('"',mess_full,Pos('id="',mess_full)+9)-Pos('id="',mess_full)-8);
// iiaia ee yoi niiauaiea
if Pos('class='+#39+'newRow'+#39,mess_full)<>0 then mess_new := '1' else mess_new := '0';
if mess_new = '1' then
begin
// Io eiai niiauaiea
mess_aut := Copy(mess_full,PosEx('">',mess_full,Pos('<div>',mess_full)+19)+2,PosEx('</a>',mess_full,PosEx('">',mess_full,Pos('<div>',mess_full)+19)+3)-PosEx('">',mess_full,Pos('<div>',mess_full)+19)-2);
// EA iieuciaaoaey, eioi?ue i?eneae niiauaiea
mess_aut_id := Copy(mess_full,Pos('href="',mess_full)+7,PosEx('">',mess_full,Pos('href="',mess_full)+8)-Pos('href="',mess_full)-7);
// Aaoa, eiaaa i?eoei niiauaiea
mess_date := Copy(mess_full,Pos('class="date">',mess_full)+13,PosEx('</div',mess_full,Pos('class="date">',mess_full)+14)-Pos('class="date">',mess_full)-13);
//Oaia niiauaiey
mess_title := Copy(mess_full,PosEx('<span>',mess_full,Pos('new messageSubject',mess_full))+6,PosEx('</span>',mess_full,Pos('new messageSubject',mess_full))-PosEx('<span>',mess_full,Pos('new messageSubject',mess_full))-6);
// Oaeno niiauaiey
mess_text := IdHTTP1.Get('http://vkontakte.ru/mail.php?act=show&id='+ mess_id);
mess_text := Copy(mess_text,PosEx(';">',mess_text,Pos('class="messageText"',mess_text))+3,PosEx('</div>',mess_text,Pos('class="messageText"',mess_text))-PosEx(';">',mess_text,Pos('class="messageText"',mess_text))-3);
end;
Result.Add(mess_aut+' '+mess_aut_id+' '+mess_date+' '+mess_text);
i := PosEx('<tr ',s,i)+2;
Sleep(300);
end;
end;
ВЫЗОВ ФУНКЦИИ:
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Lines := VK_ParsEmail(IdHTTP1.Get('http://vkontakte.ru/mail.php'),IdHTTP1);
end;
Следите за темой на форуме. Форумчанин Dionix настроен серьезно.
22nd
Июл
Парсер сайта на Делфи.
11th
Июл
Программа для получения данных об устройствах ПК
[MoNAMur]:
отрыл у себя на компьютере в папке “раритет” эти исходники.
интересно ваше мнение по поводу кода и полезности программы)))
да и может кому то понадобится какой-нибудь кусок кода.программа получает данные о некоторых железках…
5th
Июл
ВидеоПлеер в Delphi
Переопределяем SampleGrabber и получаем каждый кадр в свой буфер, его выводим куда и чем угодно Вам.
type
TArRGBTriple = array[0..0] of TRGBTriple;
PArRGBTriple = ^TArRGBTriple;
function GetPin(pFilter: IBaseFilter; PintDir: TPinDirection): IPin;
procedure RemoveDefault(pGraph: IGraphBuilder; pNULLRenderer, pGrabberBase: IBaseFilter);
implementation
function GetPin(pFilter: IBaseFilter; PintDir: TPinDirection): IPin;
var
bFound: Boolean;
pEnum: IEnumPins;
pPin: IPin;
hr: HRESULT;
PinDirThis: TPinDirection;
begin
Result := NIL;
bFound := False;
hr := pFilter.EnumPins(pEnum);
if Failed(hr) then
Exit;
while (pEnum.Next(1, pPin, NIL) = S_OK) do
begin
pPin.QueryDirection(PinDirThis);
bFound := (PintDir = PinDirThis);
if bFound then
Break;
pPin := NIL;
end;
pEnum := NIL;
if bFound then
Result := pPin;
end;
procedure RemoveDefault(pGraph: IGraphBuilder; pNULLRenderer, pGrabberBase: IBaseFilter);
var
pVidRenderer, pColorConverter: IBaseFilter;
Pin, oPin: IPin;
begin
pGraph.FindFilterByName('Video Renderer', pVidRenderer);
if (pVidRenderer <> NIL) then
begin
Pin := GetPin(pVidRenderer, PINDIR_INPUT);
oPin := NIL;
Pin.ConnectedTo(oPin);
Pin.Disconnect;
oPin.Disconnect;
Pin := NIL;
pGraph.RemoveFilter(pVidRenderer);
pVidRenderer := NIL;
pGraph.FindFilterByName('Color Space Converter', pColorConverter);
if (pColorConverter <> NIL) then
begin
oPin := NIL;
Pin := GetPin(pColorConverter, PINDIR_INPUT);
Pin.ConnectedTo(oPin);
Pin.Disconnect;
oPin.Disconnect;
Pin := NIL;
pGraph.RemoveFilter(pColorConverter);
pColorConverter := NIL;
end;
Pin := GetPin(pGrabberBase, PINDIR_INPUT);
pGraph.Connect(oPin, Pin);
Pin := NIL;
oPin := NIL;
oPin := GetPin(pGrabberBase, PINDIR_OUTPUT);
Pin := GetPin(pNULLRenderer, PINDIR_INPUT);
pGraph.Connect(oPin, Pin);
Pin := NIL;
oPin := NIL;
end;
end;
пример набросок
...
TfrmExample = class(TForm, ISampleGrabberCB)
private
function SampleCB(SampleTime: Double; pSample: IMediaSample): HResult; stdcall;
function BufferCB(SampleTime: Double; pBuffer: PByte; BufferLen: longint): HResult; stdcall;
...
GraphBuilder: IGraphBuilder;
FilterSampleGrabber: IBaseFilter;
SampleGrabber: ISampleGrabber;
MediaControl: IMediaControl;
MediaPosition: IMediaPosition;
NullRenderer: IBaseFilter;
end;
...
function TfrmExample.BufferCB(SampleTime: Double; pBuffer: PByte;
BufferLen: Integer): HResult;
begin
Result := S_OK;
end;
function TfrmExample.SampleCB(SampleTime: Double; pSample: IMediaSample): HResult;
var
BmpHead: PBitmapInfoHeader;
MediaType: TAMMediaType;
DIBSize: Integer;
pBuffer: PByte;
begin
Result := S_OK;
if (pSample.GetSize = 0) then
Exit;
Result := SampleGrabber.GetConnectedMediaType(MediaType);
if Failed(Result) then
Exit;
if IsEqualGUID(MediaType.majortype, MEDIATYPE_Video) then
begin
BmpHead := NIL;
if IsEqualGUID(MediaType.formattype, FORMAT_VideoInfo) then
begin
if (MediaType.cbFormat = SizeOf(TVideoInfoHeader)) then
BmpHead := @(PVideoInfoHeader(MediaType.pbFormat)^.bmiHeader);
end;
if (BmpHead = NIL) then
Exit;
DIBSize := BmpHead^.biSizeImage;
if (DIBSize = 0) then
begin
with BmpHead^ do
DIBSize := 3 * biWidth * biHeight * biPlanes;
BmpHead^.biSizeImage := DIBSize;
end;
pSample.GetPointer(pBuffer);
// вот необходимые данные для работы с растром текущего кадра
// BmpHead^.biWidth, BmpHead^.biHeight, BmpHead^.biWidth * 3, PixelFormat24bppRGB, pBuffer
end;
end;
как запускать Play/Pause/Stop
procedure TfrmExample.Play;
var
MediaType: TAMMediaType;
Result: HRESULT;
begin
GraphBuilder := NIL;
FilterSampleGrabber := NIL;
SampleGrabber := NIL;
MediaControl := NIL;
MediaPosition := NIL;
NullRenderer := NIL;
CoCreateInstance(CLSID_FilterGraph, NIL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, GraphBuilder);
Result := GraphBuilder.RenderFile(PWCHAR(WideString('My Video File')), NIL);
if Failed(Result) then
Exit;
CoCreateInstance(CLSID_SampleGrabber, NIL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, FilterSampleGrabber);
FilterSampleGrabber.QueryInterface(IID_ISampleGrabber, SampleGrabber);
FillChar(MediaType, SizeOf(MediaType), 0);
MediaType.majortype := MEDIATYPE_Video;
MediaType.subtype := MEDIASUBTYPE_RGB24;
SampleGrabber.SetMediaType(MediaType);
SampleGrabber.SetBufferSamples(True);
SampleGrabber.SetOneShot(False);
SampleGrabber.SetCallback(Self, 0);
GraphBuilder.AddFilter(FilterSampleGrabber, 'Sample Grabber');
CoCreateInstance(CLSID_NullRenderer, NIL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, NullRenderer);
GraphBuilder.AddFilter(NullRenderer, 'Null Renderer');
RemoveDefault(GraphBuilder, NullRenderer, FilterSampleGrabber);
GraphBuilder.QueryInterface(IID_IMediaControl, MediaControl);
GraphBuilder.QueryInterface(IID_IMediaPosition, MediaPosition);
MediaPosition.get_Duration(VideoLen);
MediaControl.Run;
end;
procedure TfrmExample.Pause;
begin
MediaControl.Pause;
end;
procedure TfrmExample.Stop;
begin
MediaControl.StopWhenReady;
FilterSampleGrabber := NIL;
SampleGrabber := NIL;
MediaControl := NIL;
MediaPosition := NIL;
NullRenderer := NIL;
GraphBuilder := NIL;
end;
24th
Июн
Определение разрядности Windows
1. Средствами самой ОС.
1) ХР.
Пуск – Выполнить.
Введите команду winmsd.exe и нажмите ОК.
2) Vista
Пуск. Введите система в поле Начать поиск и затем щелкните пункт Сведения о системе в списке Программы.
Если в панели навигации выбран пункт Сводные сведения о системе, то сведения об операционной системе отображаются указанным ниже образом.
* Для 64-разрядной версии операционной системы. Фраза Компьютер на базе x64 отображается в пункте Тип системы в разделе Элемент.
* Для 32-разрядной версии операционной системы. Фраза Компьютер на базе x86 отображается в пункте Тип системы в разделе Элемент.
2. Самодельная программа и исходник.
Облако меток
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 (Компьютерное железо)