Виртуальная библиотека Delphi

Тут можно читать онлайн Виртуальная библиотека Delphi - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Виртуальная библиотека Delphi
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Виртуальная библиотека Delphi краткое содержание

Виртуальная библиотека Delphi - описание и краткое содержание, автор Неизвестный Автор, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Виртуальная библиотека Delphi - читать онлайн бесплатно полную версию (весь текст целиком)

Виртуальная библиотека Delphi - читать книгу онлайн бесплатно, автор Неизвестный Автор
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

if (Key = VK_F4) and (ssAlt in Shift) then begin

MessageBeep(0); Key := 0;

end;

end;

Каким образом можно изменить системное меню формы?

Hе знаю как насчет акселераторов, надо поискать, а вот добавить Item — пожалуйста

type

TMyForm=class(TForm)

procedure wmSysCommand(var Message:TMessage); message WM_SYSCOMMAND;

end;

const

ID_ABOUT = WM_USER+1;

ID_CALENDAR=WM_USER+2;

ID_EDIT = WM_USER+3;

ID_ANALIS = WM_USER+4;

implementation

procedure TMyForm.wmSysCommand;

begin

case Message.wParam of

ID_CALENDAR:DatBitBtnClick(Self) ;

ID_EDIT :EditBitBtnClick(Self);

ID_ANALIS:AnalisButtonClick(Self);

end;

inherited;

end;

procedure TMyForm.FormCreate(Sender: TObject);

var SysMenu:THandle;

begin

SysMenu:=GetSystemMenu(Handle,False);

InsertMenu(SysMenu,Word(-1),MF_SEPARATOR,ID_ABOUT,'');

InsertMenu(SysMenu,Word(-1),MF_BYPOSITION,ID_Calendar, 'Calendar');

InsertMenu(SysMenu,Word(-1),MF_BYPOSITION,ID_Analis, 'Analis');

InsertMenu(SysMenu,Word(-1),MF_BYPOSITION,ID_Edit, 'Edit');

end;

Запуск внешней программы и ожидание ее завершения

procedure TForm1.Button1Click(Sender: TObject);

var

si : Tstartupinfo;

p : Tprocessinformation;

begin

FillChar( Si, SizeOf( Si ) , 0 );

with Si do begin

cb := SizeOf( Si);

dwFlags := startf_UseShowWindow;

wShowWindow := 4;

end;

Application.Minimize;

Createprocess(nil,'notepad.exe',nil,nil,false,

Create_default_error_mode,nil,nil,si,p);

Waitforsingleobject(p.hProcess,infinite);

Application.Restore;

end;

Как узнать местоположение специальных папок у Windows?

var

FolderPath :string;

Registry := TRegistry.Create;

try

Registry.RootKey := HKey_Current_User;

Registry.OpenKey('Software\Microsoft\Windows\'+

'CurrentVersion\Explorer\Shell Folders', False);

FolderName := Registry.ReadString('StartUp');

{Cache, Cookies, Desktop, Favorites,

Fonts, Personal, Programs, SendTo, Start Menu, Startp}

finally

Registry.Free;

end;

Как засунуть в исполняемый файл wav-файл, и затем проиграть этот звук?

В файл MyWave.rc пишешь:

MyWave RCDATA LOADONCALL MyWave.wav

Затем компилируешь

brcc32.exe MyWave.rc

получаешь MyWave.res.

В своей программе пишешь:

{$R MyWave.res}

procedure RetrieveMyWave;

var

hResource: THandle;

pData: Pointer;

begin

hResource:=LoadResource( hInstance, FindResource(hInstance, 'MyWave', RT_RCDATA));

try

pData := LockResource(hResource);

if pData = nil then raise Exception.Create('Cannot read MyWave');

// Здесь pData указывает на MyWave

// Теперь можно, например, проиграть его (Win32):

PlaySound('MyWave', 0, SND_MEMORY);

finally

FreeResource(hResource);

end;

end;

Как скрыть таскбар?

procedure TForm1.Button1Click(Sender: TObject);

var

hTaskBar : THandle;

begin

hTaskbar := FindWindow('Shell_TrayWnd', Nil);

ShowWindow(hTaskBar, SW_HIDE);

end;

procedure TForm1.Button2Click(Sender: TObject);

var

hTaskBar : THandle;

begin

hTaskbar := FindWindow('Shell_TrayWnd', Nil);

ShowWindow(hTaskBar, SW_SHOWNORMAL);

end;

События нажатия на системные кнопки формы (минимизация, закрытие...)

Хотелось бы чтобы при нажатии на кнопку minimize программа исчезала из таскбара.

При нажатии на эти кнопки происходит сообщение WM_SYSCOMMAND, его то и надо перехватить.

При этом:

uCmdType = wParam; // type of system command requested

xPos = LOWORD(lParam); // horizontal postion, in screen coordinates

yPos = HIWORD(lParam); // vertical postion, in screen coordinates

Пример:

Type TMain = class(TForm)

....

protected

Procedure WMGetSysCommand(var Message :TMessage); message WM_SYSCOMMAND;

end;

.....

//------------------------------------------------------------------------

// Обработка сообщения WM_SYSCOMMAND (перехват минимизации окна)

//------------------------------------------------------------------------

Procedure TForm1.WMGetSysCommand(var Message : TMessage) ;

Begin

IF (Message.wParam = SC_MINIMIZE) Then Form1.Visible:=False

Else Inherited;

End;

Подключение и отключение сетевых дисководов

Для работы с сетевыми дисководами (и ресурсами типа LPT порта) в WIN API 16 и WIN API 32 следующие функции:

1.Подключить сетевой ресурс

WNetAddConnection(NetResourse,Password, LocalName:PChar):longint;

где NetResourse — имя сетевого ресурса (например '\\P166\c')

Password — пароль на доступ к ресурсу (если нет пароля, то пустая строка)

LocalName — имя, под которым сетевой ресурс будет отображен на данном компьютере (например 'F:')

Пример подключения сетевого диска

WNetAddConnection('\\P166\C','','F:');

Функция возвращает код ошибки. Для всех кодов предописаны константы, наиболее часто используемые :

NO_ERROR — Нет ошибок — успешное завершение

ERROR_ACCESS_DENIED — Ошибка доступа

ERROR_ALREADY_ASSIGNED — Уже подключен. Наиболее часто возникает при повторном вызове данной функции с теми-же параметрами.

ERROR_BAD_DEV_TYPE — Неверный тип устройства.

ERROR_BAD_DEVICE — Неверное устройство указано в LocalName

ERROR_BAD_NET_NAME — Неверный сетевой путь или сетевое имя

ERROR_EXTENDED_ERROR — Некоторая ошибка сети (см. функцию WNetGetLastError для подробностей)

ERROR_INVALID_PASSWORD — Неверный пароль

ERROR_NO_NETWORK — Нет сети

2.Отключить сетевой ресурс

WNetCancelConnection(LocalName:PChar; ForseMode:Boolean):Longint;

где

LocalName — имя, под которым сетевой ресурс был подключен к данному компьютеру (например 'F:')

ForseMode — режим отключения :

False — корректное отключение. Если отключаемый ресурс еще используется, то отключения не произойдет (например, на сетевом диске открыт файл)

True — скоростное некорректное отключение. Если ресурс используется, отключение все равно произойдет и межет привести к любым последствиям (от отсутствия ошибок до глухого повисания)

Функция возвращает код ошибки. Для всех кодов предописаны константы, наиболее часто используемые :

NO_ERROR — Нет ошибок — успешное завершение

ERROR_DEVICE_IN_USE — Ресурс используется

ERROR_EXTENDED_ERROR — Некоторая ошибка сети (см. функцию WNetGetLastError для подробностей)

ERROR_NOT_CONNECTED — Указанное ус-во не является сетевым

ERROR_OPEN_FILES — На отключаемом сетевом диске имеются открытые файлы и параметр ForseMode=false

Рекомендация: при отключении следует сначала попробовать отключить ус-во с параметром ForseMode=false и при ошибке типа ERROR_OPEN_FILES выдать запрос с сообщением о том, что ус-во еще используется и предложением отключить принудительно, и при согласии пользователя повторить вызов с ForseMode=true

Внешние модули (DLL), нити

Надо подключить DLL и использовать некоторые ее функции.

Есть первый вариант:

procedure procname1(param1:type1; param2:type2... и т.д.) external 'dllname.dll' name 'procname_in_dllfile';

Но тут есть один нюанс: при отсутствии DLL модуля, либо при отсутствии в нем указанной процедуры будет выдаваться ошибка и запуск программы будет отменен.

Второй вариант:

Type

prc1 = procedure (param1:type1; param2:type2... и т.д.) ;

var

proc1 : prc1;

head : integer ; // или что-то в этом роде

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Неизвестный Автор читать все книги автора по порядку

Неизвестный Автор - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Виртуальная библиотека Delphi отзывы


Отзывы читателей о книге Виртуальная библиотека Delphi, автор: Неизвестный Автор. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x