Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 679

•  TDictionary Custom Sort  5 812

•  Fast Watermark Sources  5 613

•  3D Designer  8 237

•  Sik Screen Capture  5 931

•  Patch Maker  6 396

•  Айболит (remote control)  6 389

•  ListBox Drag & Drop  5 246

•  Доска для игры Реверси  94 574

•  Графические эффекты  6 580

•  Рисование по маске  5 656

•  Перетаскивание изображений  4 769

•  Canvas Drawing  5 144

•  Рисование Луны  4 877

•  Поворот изображения  4 424

•  Рисование стержней  3 126

•  Paint on Shape  2 369

•  Генератор кроссвордов  3 238

•  Головоломка Paletto  2 559

•  Теорема Монжа об окружностях  3 337

•  Пазл Numbrix  2 210

•  Заборы и коммивояжеры  2 857

•  Игра HIP  1 831

•  Игра Go (Го)  1 751

•  Симулятор лифта  2 080

•  Программа укладки плитки  1 808

•  Генератор лабиринта  2 249

•  Проверка числового ввода  1 934

•  HEX View  2 236

•  Физический маятник  1 919

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Автосмена расширения файла в строке ввода OpenDialog при смене типа файла



Автор: Павел Озерский

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Автосмена расширения файла в строке ввода OpenDialog при смене типа файла

Кусок из моей программы, в котором автоматически изменяется расширение файла в
строке редактирования имени файла в OpenDialog (у меня - в его наследнике), если
пользователь изменяет тип файла. Функция CustomOnTypeChange должна быть поставлена
как обработчик события OnTypeChange.

Зависимости: Windows, SysUtils, Forms, Dialogs
Автор:       Павел Озерский, pavel@insect.mail.iephb.ru, Санкт-Петербург
Copyright:   Cобственное написание (Павел Озерский), небольшая коррекция - Игорь Плотников
Дата:        18 апреля 2002 г.
***************************************************** }

type
  tHookParam = packed record
    case integer of
      0: (l: longint);
      1: (
        iDX: byte;
        isOpen: byteBool;
        xtLen: word);
  end;
const
  DX: array[1..5] of string[3] = ('bmp', 'tif', 'jpg', '', '');

function dHook(h: tHandle; param: longint): longbool; stdcall;
var
  ss: shortstring;
  ls: ansistring;
  hp: tHookParam absolute param;
begin
  byte(ss[0]) := GetClassName(h, @ss[1], 255);
  if ss = 'Edit' then
  begin
    if hp.isOpen then
      ls := ''
    else
    begin
      byte(ss[0]) := GetWindowText(h, @ss[1], 255);
      ls := ChangeFileExt(ss, '.' + DX[hp.iDX]);
    end;
    SetWindowText(h, pchar(ls));
    result := false;
  end
  else
    Result := true;
end;
{$O-}

procedure TMultiFormatOpenPictureDialog.CustomOnTypeChange(Sender: tObject);
var
  ext: string;
  SaveStyle: boolean;
  hp: tHookParam;
begin
  hp.isOpen := not (Sender is tSaveDialog);
  hp.iDX := tOpenDialog(Sender).FilterIndex;
  tOpenDialog(Sender).DefaultExt := DX[hp.iDX];
  ext := extractFileExt(tOpenDialog(Sender).filename);
  hp.xtLen := length(ext);
  if (ext <> '') and (DX[tOpenDialog(Sender).FilterIndex] <> '') then
    if ext[1] = '.' then
    begin
      SaveStyle := NewStyleControls;
      NewStyleControls := false;

      tOpenDialog(Sender).filename := copy(tOpenDialog(Sender).filename, 1,
        length(tOpenDialog(Sender).filename) - length(ext)) + '.' +
        tOpenDialog(Sender).DefaultExt;
      EnumChildWindows(GetParent(tOpenDialog(Sender).handle), @dHook, hp.l);
      NewStyleControls := SaveStyle;
    end;
end;
{$O+}




Похожие по теме исходники

Разбиение файла на части

Текст внутри файла

Проверка числового ввода

OpenDialog Style

 

Примеры работы с БД

Примеры оформления DBGrid

Пример использования DBGrid

База предприятий и менеджеров 0.99

 

Консольное DOS приложение

Работа с принтером

Локализация приложений




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте