|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"ダイヤルのプロパティ表示・取得(TAPI)"
みなさん、今日は。
TAPIを使用した、モデムの「ダイヤルのプロパティ」ダイアログ表示・取得です。
このサンプルには、Tapi.pas(Tapi2.0対応版)が必要です。
(Delphi Super Pageのd_tapi.zipにあるTapi.pasでテストしました)
本来ラインのコントロールには、ラインアプリケーションハンドルが必要ですが、
このサンプルは無視しています。
新規のフォームに、ボタン2個とメモコンポーネントを配置します。
UsesにTapi.pasを追加します。
// ダイヤルのプロパティ表示
procedure TForm1.Button1Click(Sender: TObject);
begin
lineTranslateDialog(0, 0, $00020000, Handle, '');
end;
// ダイヤルのプロパティ取得
procedure TForm1.Button2Click(Sender: TObject);
var
LineTranslateCaps: LPLineTranslateCaps;
LineLocationEntry: LPLineLocationEntry;
NeededSize, i: DWORD;
begin
LineTranslateCaps := nil;
NeededSize := SizeOf(TLineTranslateCaps);
try
// 所在地情報の取得
while True do
begin
ReAllocMem(LineTranslateCaps, NeededSize);
LineTranslateCaps^.dwTotalSize := NeededSize;
lineGetTranslateCaps(0, $00020000, LineTranslateCaps^);
NeededSize := LineTranslateCaps^.dwNeededSize;
if NeededSize <= LineTranslateCaps^.dwTotalSize then
break;
end;
LineLocationEntry := LPLineLocationEntry(LineTranslateCaps);
Inc(PChar(LineLocationEntry),
LineTranslateCaps^.dwLocationListOffset);
// 所在地の一覧(抜粋)
with Memo1.Lines do
begin
Clear;
for i:=1 to LineTranslateCaps^.dwNumLocations do
begin
Add(PChar(LineTranslateCaps) +
LineLocationEntry^.dwLocationNameOffset);
Add(IntToStr(LineLocationEntry^.dwCountryCode));
Add(PChar(LineTranslateCaps) +
LineLocationEntry^.dwCityCodeOffset);
Inc(PChar(LineLocationEntry), SizeOf(TLineLocationEntry));
end;
end;
finally
FreeMem(LineTranslateCaps);
end;
end;
ヨッシー NAH03473
Original document by ヨッシー 氏 ID:(NAH03473)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|