Как сделать калькулятор в Delphi?

Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.

Как Delphi реализует многоплатформенную разработку?

Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...

Обработать момент вставки и вытаскивания CD

Советы » CD-ROM » Обработать момент вставки и вытаскивания CD

{ 
  Some applications need to know when the user inserts or 
  removes a compact disc or DVD from a CD-ROM drive without 
  polling for media changes. Windows provide a way to notify these 
  applications through the WM_DEVICECHANGE message. 
}

 type

TForm1 = class

(TForm) private

procedure

WMDeviceChange(var

Msg: TMessage); message

WM_DEVICECHANGE; public

end

; {...} implementation

{$R *.DFM} procedure

TForm1.WMDeviceChange(var

Msg: TMessage); const

DBT_DEVICEARRIVAL = $8000; // system detected a new device DBT_DEVICEREMOVECOMPLETE = $8004; // device is gone var

myMsg: string

; begin

inherited

; case

Msg.wParam of

DBT_DEVICEARRIVAL: myMsg := 'CD inserted!'; DBT_DEVICEREMOVECOMPLETE: myMsg := 'CD removed!'; end

; ShowMessage(myMsg); end

; {*********************************************} // Advanced Code: // When the device is of type volume, then we can get some device specific // information, namely specific information about a logical volume. // by Juergen Kantz unit

Unit1; interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class

(TForm) Button1: TButton; label1: TLabel; private

procedure

WMDeviceChange(var

Msg: TMessage); message

WM_DeviceChange; { Private declarations } public

{ Public declarations } end

; const

DBT_DeviceArrival = $8000; DBT_DeviceRemoveComplete = $8004; DBTF_Media = $0001; DBT_DevTyp_Volume = $0002; 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

; var

Form1: TForm1; implementation

{$R *.dfm} function

GetDrive(pDBVol: PDevBroadcastVolume): string

; var

i: Byte; Maske: DWORD; begin

if

(pDBVol^.dbcv_flags and

DBTF_Media) = DBTF_Media then

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

; end

; procedure

TForm1.WMDeviceChange(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)); label1.Caption := 'CD inserted in Drive ' + Drive; end

; DBT_DeviceRemoveComplete: if

PDevBroadcastHdr(Msg.lParam)^.dbcd_devicetype = DBT_DevTyp_Volume then

begin

Drive := GetDrive(PDevBroadcastVolume(Msg.lParam)); label1.Caption := 'CD removed from Drive ' + Drive; end

; end

; end

; end

.

Другое по теме:

Категории

Статьи

Советы

Copyright © 2024 - All Rights Reserved - www.delphirus.com