Последние записи
- Рандомное слайдшоу
- Событие для произвольной области внутри TImage
- Удаление папки с файлами
- Распечатка файла
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
8th
Ноя
MESSAGEDLG
MESSAGEDLG
отображает диалоговое окно сообщений в центре экрана
|| function MessageDlg ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint ) : Integer;
Описание:
Delphi функция MessageDlg используется для вывода сообщения пользователю. Сообщение может быть информационным или предупреждающим, или каким-то другим по усмотрению разработчика. Разработчику предоставляется полная свобода выбора кнопок, которые будут использоваться в диалоге.
Например пользователю можно предупредить об ошибке, или предложить выбрать или отказаться от какого-либо действия.
Вызов MessageDlg выводит на экран диалоговое окно и ожидает ответа пользователя. Сообщение в окне задается параметром функции Msg.
Вид отображаемого окна задается параметром AType. Возможные значения этого параметра:
Значение Описание
mtWarning Окно замечаний, содержащее желтый восклицательный знак.
mtError Окно ошибок, содержащее красный стоп-сигнал.
mtInformation Информационное окно, содержащее голубой символ «i».
mtConfirmation Окно подтверждения, содержащее зеленый вопросительный знак.
mtCustom Заказное окно без рисунка. Заголовок соответствует имени выполняемого файла приложения.
Параметр AButtons определяет, какие кнопки будут присутствовать в окне. Тип TMsgDlgBtns параметра AButtons является множеством, которое включает различные кнопки. Возможные значения видов кнопок:
Значение Описание
mbYes Кнопка с надписью ‘Yes’
mbNo Кнопка с надписью ‘No’
mbOK Кнопка с надписью ‘OK’
mbCancel Кнопка с надписью ‘Cancel’
mbHelp Кнопка с надписью ‘Help’
mbAbort Кнопка с надписью ‘Abort’
mbRetry Кнопка с надписью ‘Retry’
mbIgnore Кнопка с надписью ‘Ignore’
mbAll Кнопка с надписью ‘All’
Список необходимых кнопок заключается в квадратные скобки [ ], поскольку параметр AButtons является множеством. Если внутри скобок список отсутствует, в окне не будет ни одной кнопки и пользователю придется закрывать окно системными кнопками Windows.
Кроме множества значений, соответствующих отдельным кнопкам, в Delphi определены три константы, соответствующие часто используемым сочетаниям кнопок:
Значение Описание
mbYesNoCancel Включает в окно кнопки Yes, No и Cancel
mbOkCancel Включает в окно кнопки OK и Cancel
mbAbortRetryIgnore Включает в окно кнопки Abort, Retry и Ignore
Эти константы являются предопределенными множествами. Поэтому при их использовании их не надо заключать в квадратные скобки [ ]. Параметр HelpCtx определяет экран контекстной справки, соответствующий данному диалоговому окну. Этот экран справки будет появляться при нажатии пользователем клавиши F1. Если вы справку не планируете, при вызове MessageDlg надо задать нулевое значение параметра HelpCtx. Подробнее о контекстной справке см. в описании свойства HelpContext.
Функция MessageDlg возвращает значение, соответствующее выбранной пользователем кнопке. Возможные возвращаемые значения:
mrNone mrAbort mrYes
mrOk mrRetry mrNo
mrCancel mrIgnore mrAll
Функция MessageDlg очень полезна для быстрого создания прототипа приложения и проверки диалогового взаимодействия с пользователем. Но у нее есть заметный недостаток: в заголовках и надписях на кнопках тексты английские, так что при использовании русских сообщений получается смесь русского с английским. Поэтому после создания прототипа приложения лучше заменить стандартные диалоговые окна на спроектированные самим разработчиком.
Имеется также функция MessageDlgPos, во всем аналогичная функции MessageDlg, но отображающее окно в заданном месте экрана. При выводе простых сообщений без необходимости анализировать ответ пользователя удобно использовать другие процедуры Delphi — ShowMessage и ShowMessageFmt.
Пример кода:
buttonSelected : Integer;
begin
// Show a confirmation dialog
buttonSelected := MessageDlg(‘Confirmation’,mtError, mbOKCancel, 0);
// Show the button type selected
if buttonSelected = mrOK then ShowMessage(‘OK pressed’);
if buttonSelected = mrCancel then ShowMessage(‘Cancel pressed’);
end;
Результат выполнения:
A confirmation dialog is displayed with OK and Cancel buttons.
The user presses OK :
OK pressed
is displayed in another dialog box.
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
8th
CloseFile
CloseFile
закрывает файл с сохранением в нём данных
|| procedure CloseFile ( var FileHandle : TextFile ) ;
Описание:
Delphi процедура CloseFile закрывает открытый файл, связанный процедурой AssignFile. После закрытия файла процедурой CloseFile, все данные, записанные до этого в файл, сохраняются. Переменная типа TFile может после этого связываться с другим физическим файлом.
Пример кода:
var
myFile : TextFile;
text : string;
begin
// Try to open the Test.txt file for writing to
AssignFile(myFile, ‘Test.txt’);
ReWrite(myFile);
// Write a couple of well known words to this file
WriteLn(myFile, ‘Hello’);
WriteLn(myFile, ‘World’);
// Close the file
CloseFile(myFile);
// Reopen the file in read only mode
Reset(myFile);
// Display the file contents
while not Eof(myFile) do
begin
ReadLn(myFile, text);
ShowMessage(text);
end;
// Close the file for the last time
CloseFile(myFile);
end;
Результат выполнения:
Hello
World
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
Сен
В STRINGGRID ИЗМЕНЯТЬ ЦВЕТ СИМВОЛОВ В ТАБЛИЦЕ НА ВЫБРАННЫЙ ПОЛЬЗОВАТЕЛЕМ
1) устанавливать количество столбцов и строк таблицы StringGrid равным числам, вводимым пользователем;
2) установить для таблицы StringGrid первые столбец и строку фиксированными и заполнить их номерами;
3) остальные ячейки таблицы заполнить значениями функции X?+Y? (x,y в квадрате), где Х — номер колонки ячейки, Y — номер строки);
4) изменять цвет символов в таблице на выбранный пользователем.
Решение
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
$Align — директива компилятора
Определяет, были ли данные выровнены или упакованы
- {$Align Off}
- {$Align On}
Описание:
С $Align On (по умолчанию), сложные типы данных, такие как записи, хранят свои элементы, выровненные по 2, 4 или 8-байтовой границе, соответственно типу данных. Например, поле типа Word будет выровнено по 4-байтовой границе.
С $Align On, значением по умолчанию, вы можете перекрыть эти настройки с помощью опции packed для сложных типов данных.
Выравнивание обеспечивает оптимальную скорость доступа.
$Align Off указывает Delphi игнорировать выравнивание, и таким образом пакует данные.
Пример кода:
// Use the default setting : $Align+
// Declare an unpacked, aligned record
TAlignedRecord = Record
name1 : string[4];
floater : single;
name2 : char;
int : Integer;
end;
// Declare a packed record
TPackedRecord = Packed Record
name1 : string[4];
floater : single;
name2 : char;
int : Integer;
end;
// Set alignment off
{$Align Off}
// Declare an unpacked record
// This will get treated as if packed was on
TUnPackedRecord = Record
name1 : string[4];
floater : single;
name2 : char;
int : Integer;
end;
var
alignedRec : TAlignedRecord;
packedRec : TPackedRecord;
unPackedRec : TUnPackedRecord;
begin
ShowMessage(‘Aligned record size = ‘+IntToStr(SizeOf(alignedRec)));
ShowMessage(‘Packed record size = ‘+IntToStr(SizeOf(packedRec)));
ShowMessage(‘UnPacked record size = ‘+IntToStr(SizeOf(unPackedRec)));
end;
Результат выполнения:
Packed record size = 14
UnPacked record size = 14
1st
CD ПРИВОД.
CD ПРИВОД.
CD привода (далее просто CD)я думаю пользуются все без исключения. Давайте разберём как создать несложную программу открытия CD. Создадим новый проект. Кидаем на форму ComboBox и две Button. Создадим две функции:
function CDOpen(Drive: PChar): Boolean;
var
Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: string;
DeviceID: Word;
begin
Result := false;
S := Drive + ‘:’;
Flags := mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback := 0;
lpstrDeviceType := ‘CDAudio’;
lpstrElementName := PChar(S);
end;
Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
exit;
DeviceID := OpenParm.wDeviceID;
try
Res := mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
exit;
Result := True;
finally
mciSendCommand(DeviceID, MCI_OPEN, Flags, Longint(@OpenParm));
end;
end;
function CDClose(Drive: PChar): Boolean;
var
Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: string;
DeviceID: Word;
begin
Result := false;
S := Drive + ‘:’;
Flags := mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback := 0;
lpstrDeviceType := ‘CDAudio’;
lpstrElementName := PChar(S);
end;
Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
exit;
DeviceID := OpenParm.wDeviceID;
try
Res := mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSE, 0);
if Res = 0 then
exit;
Result := True;
finally
mciSendCommand(DeviceID, MCI_CLOSE, Flags, Longint(@OpenParm)) else
end;
end;
В процедуре создания формы пишем
procedure TForm1.FormCreate(Sender: TObject);
var
w:dword;
Root:string;
I, K:integer;
begin
k:=0;
w:=GetLogicalDrives;
Root := ‘#:’;
for i := 0 to 25 do
begin
Root[1] := Char(Ord(‘A’)+i);
if (W and (1 shl i))>0 then
if GetDriveType(Pchar(Root)) = DRIVE_CDROM then
begin
k:=k+1;
Driv[k] := Root;
ComboBox1.Items.Add(Driv[k]);
ComboBox1.Text := Driv[1];
end;
end;
end;
Далее в нажатиях на кнопки пишем:
procedure TForm1.Button1Click(Sender: TObject);
begin
CDOpen(PChar(ComboBox1.Text);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CDClose(PChar(ComboBox1.Text);
end;
Всё программа готова.
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
25th
Авг
ПАНЕЛЬ ЗАДАЧ. ПУСК
ПАНЕЛЬ ЗАДАЧ. ПУСК.
Начнём с общего. Как скрыть и показать Панель задач:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowWindow(FindWindow(‘Shell_TrayWnd’, nil), SW_HIDE); // Скрыть
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowWindow(FindWindow(‘Shell_TrayWnd’, nil), SW_SHOW); // Показать
end;
Теперь сделаем иконку рядом с часами:
public
procedure IconCallBackMessage( var Mess : TMessage ); message WM_USER+ 100;
end;
implementation
uses ShellAPI;
procedure TForm1.IconCallBackMessage( var Mess : TMessage );
var
sEventLog : String;
begin
case Mess.lParam of
// Сделайте здесь все что вы хотите. Например, вызов контекстного меню при нажатии правой кнопки мыши.
WM_LBUTTONDBLCLK : sEventLog := ‘Двойной щелчок левой кнопкой’;
WM_LBUTTONDOWN : sEventLog := ‘Нажатие левой кнопки мыши’;
WM_LBUTTONUP : sEventLog := ‘Отжатие левой кнопки мыши’;
WM_MBUTTONDBLCLK : sEventLog := ‘Двойной щелчок мышью’;
WM_MBUTTONDOWN : sEventLog := ‘Нажатие кнопки мыши’;
WM_MBUTTONUP : sEventLog := ‘Отжатие кнопки мыши’;
WM_MOUSEMOVE : sEventLog := ‘перемещение мыши’;
WM_MOUSEWHEEL : sEventLog := ‘Вращение колесика мыши’;
WM_RBUTTONDBLCLK : sEventLog := ‘Двойной щелчок правой кнопкой’;
WM_RBUTTONDOWN : sEventLog := ‘Нажатие правой кнопки мыши’;
WM_RBUTTONUP : sEventLog := ‘Отжатие правой кнопки мыши’;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var nid : TNotifyIconData;
begin
Load_Form.Visible:=false;
with nid do
begin
cbSize := SizeOf( TNotifyIconData );
Wnd := Form1.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallbackMessage := WM_USER + 100;
hIcon := Application.Icon.Handle; // Иконка приложения 16 на 16 пикселей
szTip := ‘Имя программы’;
end;
Shell_NotifyIcon( NIM_ADD, @nid );
end;
И при закрытии удаляем иконку.
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var nid : TNotifyIconData;
begin
//это важно для того чтобы не удалить чужую иконку J
with nid do
begin
cbSize := SizeOf( TNotifyIconData );
Wnd := Form1.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallbackMessage := WM_USER + 100;
hIcon := Application.Icon.Handle; // Иконка приложения 16 на 16 пикселей
szTip := ‘Имя программы’;
end;
Shell_NotifyIcon( NIM_DELETE, @nid );
end;
С иконкой мы расправились переходим у Пуску. Для начала работы надо открыть Пуск с помощью этой функции:
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(Self.Handle, WM_SYSCOMMAND, SC_TASKLIST, 0);
end;
Так же можно поменять активность Пуск’а:
procedure TForm1.Button1Click(Sender: TObject);
begin
EnableWindow(FindWindowEx(FindWindow(‘Shell_TrayWnd’, nil), 0, ‘Button’, nil), false);
// заблокировать
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
EnableWindow(FindWindowEx(FindWindow(‘Shell_TrayWnd’, nil), 0, ‘Button’, nil), true);
// разблокировать
end;
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
Облако меток
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 (Компьютерное железо)