Последние записи
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
16th
Авг
Как заблокировать раздел жесткого диска от записи?
Raxp:
Лично использую уже упоминавшееся на форуме создание папки Autorun.inf c LPT:
rem Антивирусный скрипт NOAUTORUN_FLASH.BAT version 1.8.1 (MOD 2010)
attrib -s -h -r autorun.*
del autorun.*
mkdir "\\?\%~d0\AUTORUN.INF\LPT3"
attrib +s +h %~d0\AUTORUN.INF
@echo off
echo Каталог AUTORUN.INF, созданный на флешке, препятствует заражению флешки autorun-вирусами. > AUTORUN.INF\readme.txt
echo Чтобы самостоятельно обезопасить другую флешку, перепишите на нее файл NOAUTORUN_FLASH.BAT и запустите его. После чего файл можно удалить. >> AUTORUN.INF\readme.txt
copy noautorun_flash.BAT AUTORUN.INF\NOAUTORUN_FLASH.BAT
и упомянутую сервисную утилиту, в частности под мою флешь AU6981-6982-6983 v6.21 [20071227]
позволяющую не только разбить на несколько дисков, но и поставить парольную защиту.
12th
Авг
Авторасширение Memo
var
Form1: TForm1;
i:Integer;
implementation
{$R *.dfm}
procedure TForm1.memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if memo1.Lines.Count>i then
begin
memo1.Height:=memo1.Height+15;
memo1.Top:=memo1.Top-15;
i:=i+1;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;
memo1.DoubleBuffered:=True;
end;
12th
Как в Memo найти и удалить повторяющиеся строки?
procedure TForm1.Button1Click(Sender: TObject);
var i, j : integer;
begin
i := Memo1.Lines.Count-1;
while i>=0 do begin
//присваиваем переменной j номер найденной строки (ищем строчку с индексом i
j := Memo1.Lines.IndexOf(Memo1.Lines);
// пока строчка нашлась и эта строчка не является текущей (т.к. сама себя она найдётся всегда) и пока строчки не кончились
//удаляем строчку и ищем следующую, пока условия выполняются
while (j>=0) and (j<i) and (i>=0) do begin //пока индексов и количества строк больше нуля
Dec(i);
Memo1.Lines.Delete(j); //удаляем индекс
if i>=0 then
j := Memo1.Lines.IndexOf(Memo1.Lines);
end;
Dec(i);
end;
end;
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.
8th
Авг
Определние локального и внутреннего IP
function GetLocalIPs: TStringList;
type
TaPInAddr = Array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: Array[0..63] of Char;
I: Integer;
GInitData: TWSAData;
IPs: TStringList;
begin
IPs := TStringList.Create;
WSAStartup($101, GInitData);
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if phe = nil then IPs.Add(’No IP found’)
else
begin
pPtr := PaPInAddr(phe^.h_addr_list);
I := 0;
while pPtr^ nil do
begin
IPs.Add(inet_ntoa(pptr^^));
Inc(I);
end;
end;
WSACleanup;
Result := IPs;
end;
8th
Как yменьшить картинку с помощью php
// — Настройки
define(’WIDTH’,200); // Ширина иконки
define(’HEIGHT’,200); // Высота иконки
define(’R’,255);define(’G’,255);define(’B’,255); // RGB для фонового цвета под иконкой
// — Поехали
$imageInfo = getimagesize( $file );
switch( $imageInfo[2] ){
case 1: $image = imagecreatefromgif( $file ); break;
case 2: $image = imagecreatefromjpeg( $file ); break;
case 3: $image = imagecreatefrompng( $file ); break;
default: exit();
}
//— Создание иконки фотки
$result = imagecreatetruecolor(WIDTH,HEIGHT);
$bg = imagecolorallocate( $result, R, G, B );
imagefilledrectangle( $result, 0, 0, WIDTH-1, HEIGHT-1, $bg );
//— Вычисляем соотношение сторон для иконки
$ratio1 = $imageInfo[0]/WIDTH;
$ratio2 = $imageInfo[1]/HEIGHT;
$ratio = $ratio1<$ratio2?$ratio1:$ratio2; // выбираем наименьшее соотношение
// if ( $ratio<1 ) $ratio=1; // Оставить иконки меньших размеров WIDTH и HEIGHT не трогать
$width = $imageInfo[0]/$ratio;
$height = $imageInfo[1]/$ratio;
imagecopyresampled( $result, $image, 0, 0, ($imageInfo[0]-WIDTH*$ratio)/2, ($imageInfo[1]-HEIGHT*$ratio)/2, WIDTH, HEIGHT, $ratio*WIDTH, $ratio*HEIGHT);
//— Отправляем (возвращаем) иконку
header(’Content-type: image/jpeg’);
imagejpeg($result);
Алгоритм используется для подготовки эскизов (иконок) изображений.
Причем данная версия для того хороша, когда все фотки каких-попало форматов. И все аккуратненько подгоняются под размер WIDTHхHEIGHT. То, что не влазит, обрезается.
Если обрезание (обрезание исходной картинки имеется ввиду) не нужно, т.е. чтобы эскиз со своими “какими-попало” пропорциями просто вписался в прямоугольник WIDTHхHEIGHT.
Достаточно заменить одну строчку:
…..
imagecopyresampled( $result, $image, 0, 0, ($imageInfo[0]-WIDTH*$ratio)/2, ($imageInfo[1]-HEIGHT*$ratio)/2, WIDTH, HEIGHT, $ratio*WIDTH, $ratio*HEIGHT);
…..
// вот на эту:
imagecopyresampled( $result, $image, (WIDTH-$width)/2, (HEIGHT-$height)/2, 0, 0, $width, $height, $imageInfo[0], $imageInfo[1]);
8th
Проверка существования файла на сервере. php
Необходимо проверить, доступна-ли фотография по заданному пользователю адресу.
Andkorol:
Можно попробовать использовать функцию get_headers()
Примерно так:
$file = ‘http://www.domain.com/somefile.jpg’;
$file_headers = @get_headers($file);
if($file_headers[0] == ‘HTTP/1.1 404 Not Found’) {
$exists = false;
}
else {
$exists = true;
}
28th
Июл
Как сделать экспорт ветки реестра?
Stilet:
Примерно так:
Код:program Project1;
{$APPTYPE CONSOLE}
uses windows, SysUtils;
var hk:HKEY;
begin
if RegOpenKey(HKEY_CURRENT_USER,’\Identities’,hk)=ERROR_SUCCESS then
RegSaveKey(hk,’c:\temp\hk.reg’,nil);
RegCloseKey(hk);
{ TODO -oUser -cConsole Main : Insert code here }
end.
27th
Июл
Как сделать общий доступ к папке в сети по паролю?
Sparky:
Вообщем вдруг кому-то пригодиться пишу что нужно сделать:
1. «Панели управления» и отмечаем чекбокс “Общий доступ к файлам и принтерам”
2. Воспользоваться компонентом “Одноранговая сеть”
3. включить “Служба общего доступа к файлам и принтерам”
4. выбрать Сетевой доступ: модель совместного доступа…”
5. отключить гостя
6. назначить права на доступ к папке, в доступе удалить “все”
7. на 2 машине в cmd ввести
Код:net use x: \\имя_компа_где_лежит_папка\ имя_папки пароль_пользователя /user:имя_компа_где_лежит_папка\пользователь
Все
26th
Июл
Получить путь к исполняемому файлу включая имя исполняемого файла. [WPF]
String path = System.Reflection.Assembly.GetExecutingAssembly().Location;
Облако меток
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 (Компьютерное железо)