Оценить:
 Рейтинг: 4.6

Программирование в Delphi. Трюки и эффекты

Год написания книги
2010
Теги
<< 1 ... 25 26 27 28 29 30 31 32 33 ... 42 >>
На страницу:
29 из 42
Настройки чтения
Размер шрифта
Высота строк
Поля

ofn.nFilterIndex:= nFilterIndex;

ofn.lpstrFile:= PAnsiChar(strInitFileName);

ofn.nMaxFile:= MAX_PATH;

ofn.lpstrTitle:= pAnsiChar(strTitle);

ofn.Flags:= OFN_PATHMUSTEXIST or OFN_OVERWRITEPROMPT;

//Отображение окна и обработка результата

if (GetSaveFileName(ofn) = True) then

ShowSave:= ofn.lpstrFile;

end;

Здесь дополнительно к упомянутому ранее флагу OFN_PATHMUSTEXIST добавлен флаг OFN_OVE RWRITEPROMPT для того, чтобы при указании имени уже существующего файла был задан вопрос, желает ли пользователь заменить этот файл.

Окно для выбора цвета

Код вызова следующего окна – окна для выбора цвета – приведен в листинге 2.26.

Листинг 2.26. Окно для выбора цвета

function ShowChooseColor(lastColor: COLORREF = 0):COLORREF;

var

choose: TChooseColor;

begin

ZeroMemory(Addr(choose), SizeOf(choose));

//Заполнение структуры для окна

choose.lStructSize:= SizeOf(choose);

choose.hWndOwner:= hParentWnd;

choose.hInstance:= hAppInst;

choose.rgbResult:= lastColor;

choose.lpCustColors:= Addr(colors);

choose.Flags:= CC_RGBINIT or CC_ANYCOLOR or CC_FULLOPEN;

//Отображение окна и обработка результата

if (ChooseColor(choose) = True) then ShowChooseColor:= choose.rgbResult

else ShowChooseColor:= lastColor;

end;

Здесь также заполняется специальная структура. Для этого используются следующие флаги:

• CC_RGBINIT – использовать значение поля rgbResult в качестве предустановленного значения цвета (по умолчанию как ранее выбранного);

• CC_ANYCOLOR – отображать все доступные предопределенные цвета (левая половина, рис. 2.4);

Рис. 2.4. Окно для выбора цвета

• CC_FULLOPEN – раскрывать панель подбора цвета (правая половина окна, рис. 2.4).

Стоит пояснить, что за переменная, а точнее, адрес, сохраняется в поле lpCustColors – это массив из 16 значений типа COLORREF:

colors: array [1..16] of COLORREF;

Обратите внимание на 16 квадратов в левой нижней области окна (рис. 2.4) – это места для определенных пользователем цветов. Для заполнения этой области окна и используются значения из массива colors. Массив может быть как локальным, так и глобальным (что иногда удобнее, так как значения определенных пользователем цветов в этом случае сохраняются между вызовами окна выбора цвета).

Окно для выбора шрифта

Для вывода окна для выбора шрифта подойдет функция, приведенная в листинге 2.27.

Листинг 2.27. Окно для выбора шрифта

function ShowChooseFont(var font: LOGFONT):BOOL;

var

choose: TChooseFont;

begin

ZeroMemory(Addr(choose), SizeOf(choose));

//Заполнение структуры для окна

choose.lStructSize:= SizeOf(choose);

choose.hWndOwner:= hParentWnd;

choose.hInstance:= hAppInst;

choose.lpLogFont:= Addr(font);
<< 1 ... 25 26 27 28 29 30 31 32 33 ... 42 >>
На страницу:
29 из 42

Другие электронные книги автора Александр Анатольевич Чиртик