![](/logo_grey.gif)
Последние записи
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
- Lazarus, проверка существования строки таблице
- BASM и record, обращение к полям записи
- Web PHP Framework Symfony
- Относительный путь для вывода картинки на html странице
- Массовое открытие гиперссылок в браузере
- Скопировать значение строки из таблицы в textarea
- Рамки для страниц отчетов
- Вывод StdOut консоли в TMemo
- Чтение из файла большого размера (нехватка памяти)
![](http://programmersclub.ru/slurm3.jpg)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
![](http://programmersclub.ru/katajpg.jpg)
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
25th
Авг
Дополнительные кнопки мышки
На моей мышке есть дополнительные две кнопки
Вопрос: как в D7 отловить их нажатие, чтобы использовать в своей программе?
20th
Авг
Курсы программистов. Стоит ли?
Посмотрел курсы программистов. В одном из курсов написано, что продолжительность курса — 40 академических часов. Что-то мне подсказывает, что за 40 часов вряд ли можно серьезно погрузиться в тему. Или я ошибаюсь? И там действительно можно получить что-то полезное.
18th
Авг
Удаление одинаковых строк
Прошерстил много подобных задач но везде ищут дубликаты и удаляют, оставляя при этом одну строку. Мне же в моей задаче нужно находить дубликаты (полностью идентичные строки в которых все значения во всех столбцах совпадают) и удалять и исходную строку и дублера. Оставив только уникальные строки у которых изначально во всем диапазоне не было дубликатов.
11th
Авг
Создание потоков в процессе
Как в powershell создать процесс, а в нем два потока? Первый поток вызывает утилиту на компе, второй убивает первый поток спустя 20 секунд после начала его работы (первого потока)?
28th
Июл
Вывод на печать графического файла
При печати графического файла распечатывается только часть изображения. Подскажите, как вывести на печать все изображение?
Использовал такой код:
using (var pd = new System.Drawing.Printing.PrintDocument())
{
pd.PrintPage += (o, en) =>
{
var img = System.Drawing.Image.FromFile(@"D:\Scan.jpg");
en.Graphics.DrawImage(img, new Point(100, 100));
};
pd.DefaultPageSettings.Landscape = true;
pd.Print();
}
23rd
Июл
Аналоги функций FindFirstFile, CopyFile, DeleteFile в Qt
Какие существуют аналоги WinAPI-шных функций FindFirstFile, CopyFile, DeleteFile в Qt?
19th
Июл
Как передать ссылку на интерфейс при использовании автоматизации OLE
Вопрос по использованию технологии OLE Automation. Есть интерфейс IWFBP, который непосредственно наследуется от IDispatch. Как я могу ссылку на этот интерфейс передать в стороннюю функцию, а в последующем использовать её? Допустим, у меня сейчас есть следующий код этой функции(пытаюсь использовать тип VARIANT):
void Func(VARIANT WFBL) {
WFBL.Func1();
}
Здесь Func1 собственно функция интерфейса, WFBL — ссылка на него. Компилятор ругается, что он не видит Func1() в составе WFBL, причём ещё до компиляции. В чём может быть ошибка?
Пытался заменить VARIANT WFBL на IDispatch* WFBL, с последующим приведением переданного указателя к указателю на IWBP с помощью dynamic_cast. Предварительно импортировав библиотеку типов из нужной DLL. В этом случае компилятор уже видит Func1, но при написании чего-то вроде WFBL->Func1() во время выполнения вылезает ошибка Access violation с указанием на данную строку.
Буду признателен, если кто-то сможет помочь разобраться.
14th
Июл
Перенос сайта с мегагруп
Появилась задача перенести сайт с мегагруп. Как перенести домен от туда или где можно найти все данные на домен?
29th
Июн
Как перевернуть экран на 90 и 180 градусов?
Как перевернуть второй экран? На 90 и 180 градусов. Основной я разобрался:
procedure ChangeOrientation(NewOrientation:DWORD);
var
dm : TDeviceMode;
dwTemp : DWORD;
dmDisplayOrientation : DWORD;
begin
ZeroMemory(@dm, sizeof(dm));
dm.dmSize := sizeof(dm);
if EnumDisplaySettings(nil, DWORD(ENUM_CURRENT_SETTINGS), dm) then
begin
Move(dm.dmScale,dmDisplayOrientation,SizeOf(dmDisplayOrientation));
// swap width and height
if Odd(dmDisplayOrientation)<>Odd(NewOrientation) then
begin
dwTemp := dm.dmPelsHeight;
dm.dmPelsHeight:= dm.dmPelsWidth;
dm.dmPelsWidth := dwTemp;
end;
if dmDisplayOrientation<>NewOrientation then
begin
Move(NewOrientation,dm.dmScale,SizeOf(NewOrientation));
if (ChangeDisplaySettings(dm, 0)<>DISP_CHANGE_SUCCESSFUL) then
RaiseLastOSError;
end;
end;
end;
25th
Июн
Отрисовка текста на Canvas с перекрытием букв друг друга
Имеется задача отрисовывать текст по выбранному шрифту на Image в определенном формате. При этом текст сразу отрисовываться сразу одной строкой не может, т.к. элементы строки содержат разный цвет, поэтому отрисовка текста происходит в цикле со смещением вправо.
Проблема возникает в том, что на выходе текст обрезается, т.к. по каким-то причинам некорректно рассчитывается его ширина. Особенно это проглядывается при выборе курсива — там вообще ширина получается идентичной, что и без курсива почему-то. Но и без курсива проблема имеется.
Упрощенный пример задачи:
procedure TForm2.Button1Click(Sender: TObject);
var
i, WidthShift: Integer;
str, delim: string;
Font: TFont;
Colors: TArray<TColor>;
begin
Font := TFont.Create;
Colors := TArray<TColor>.Create(clRed, clBlack, clGreen);
WidthShift := 10;
if FontDialog1.Execute then
begin
Font.Assign(FontDialog1.Font);
end;
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
Image1.Canvas.Font.Assign(Font);
delim := '/';
for i := 0 to 2 do
begin
str := '0';
if i <> 0 then
str := delim + str;
Image1.Canvas.Font.Color := Colors;
Image1.Canvas.TextOut(WidthShift, 100, str);
WidthShift := WidthShift + Image1.Canvas.TextWidth(str);
end;
Font.Free;
end;
В первом случае текст обычный и все равно обрезается. А во втором курсив — там вообще все плохо.
В качестве решения можно было бы рассчитывать какой-то промежуточный запас (относительно высоты шрифта или еще по какой-то зависимости) и добавлять его на каждой итерации, однако по условиям задачи пробелов быть не должно.
Подскажите, пожалуйста, как можно побороть данную проблему?
Облако меток
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 форма Файлы интернет excel Microsoft Office Excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
![пеллетные котлы](http://programmersclub.ru/respective.jpg)
пеллетные котлы
![пеллетный котел](http://programmersclub.ru/emtas.jpg)
Пеллетный котел Emtas
![форум программистов](http://programmersclub.ru/banf336х280.gif)
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)