![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#11 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
![]() |
![]() |
![]() |
#12 |
Заблокирован
Регистрация: 10.11.2009
Сообщений: 99
|
![]()
Ясно, спасибо за код. Да я знаю как создавать консольные приложения. Щас буду еще разбираться.
|
![]() |
![]() |
![]() |
#13 |
Заблокирован
Регистрация: 10.11.2009
Сообщений: 99
|
![]()
Все таки еще есть вопросы.Вот такой код оформил-вроде запускается, ну и не работает.
rogram Project1; uses Windows, Messages, Classes; const DBT_DeviceArrival = $8000; DBT_DeviceRemoveComplete = $8004; DBTF_Media = $0001; DBT_DevTyp_Volume = $0002; type TF = class protected FWnd: HWnd; constructor Create; procedure WndProc(var Msg:TMessage); message WM_DeviceChange; end; constructor TF.Create; begin inherited Create; FWnd := AllocateHWnd(WndProc); end; type PDevBroadcastHdr = ^TDevBroadcastHdr; TDevBroadcastHdr = packed record dbcd_size: DWORD; dbcd_devicetype: DWORD; dbcd_reserved: DWORD; end; type PDevBroadcastVolume = ^TDevBroadcastVolume; TDevBroadcastVolume = packed record dbcv_size: DWORD; dbcv_devicetype: DWORD; dbcv_reserved: DWORD; dbcv_unitmask: DWORD; dbcv_flags: Word; end; procedure panelzadach; var msg:tmsg; begin while GetMessage( Msg,0, 0, 0) do begin TranslateMessage(msg); DispatchMessage(msg); end; end; function GetDrive(pDBVol: PDevBroadcastVolume): string; var i: Byte; Maske: DWORD; begin Maske := pDBVol^.dbcv_unitmask; for i := 0 to 25 do begin if (Maske and 1) = 1 then Result := Char(i + Ord('A')) + ':'; Maske := Maske shr 1; end; end; procedure tf.WndProc(var Msg:TMessage); var drive:string; begin case Msg.wparam of DBT_DEVICEARRIVAL: if PDevBroadcastHdr(Msg.lParam)^.dbcd_ devicetype = DBT_DevTyp_Volume then begin Drive :=GetDrive(PDevBroadcastVolume(Msg. lParam)); // showmessage(drive); end // else Result:=DefWindowProc(FWnd,Msg,wPar am,lParam);-Здешь ошибку выдает end; end; {$R *.res} begin panelzadach; end. Посмотрите что не так? Последний раз редактировалось Baaandit; 03.12.2009 в 15:50. |
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
в правильном направлении движетесь, но класс забыли вызвать и еще кой-чего:
Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 03.12.2009 в 16:27. |
![]() |
![]() |
![]() |
#15 |
Заблокирован
Регистрация: 10.11.2009
Сообщений: 99
|
![]()
Все работает.Еще раз спасибо.
Последний раз редактировалось Baaandit; 03.12.2009 в 16:53. |
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
всегда поможем, чем cможем
![]()
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Флешка не форматировается! | РаТи | Компьютерное железо | 3 | 03.11.2009 14:37 |
Флешка | Sparky | Компьютерное железо | 6 | 05.10.2009 11:57 |
Поломалась флешка | Arigato | Компьютерное железо | 12 | 25.05.2009 11:09 |
Можно ли своей функцей менять цвет ячейки в которую эта фу-я вставлена? | maeglah | Microsoft Office Excel | 3 | 21.04.2009 05:23 |
Флешка | delphin100 | Операционные системы общие вопросы | 10 | 08.01.2008 20:03 |