記事カテゴリ

ユーザー機能


 2024年3月29日(金) 00:58 JST

[Delphi] ネットワークドライブの割り当て/解除

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    13,422

ネットワークドライブを追加したいと思ったことはありませんか?通常企業などの場合、アプリケーションではなく起動時などにログオンスクリプトなどで割り当てすると思います。しかし、アプリケーションで割り当て、解除を行うことでアプリケーションを起動するまでのユーザーの操作にかかわらず安心して環境を構築できます。

ネットワークドライブを割り当てるには、WNetAddConnection2 APIを使用します。
また解除には、WNetCancelConnection2 APIを使用します。
さらにネットワークドライブの一覧の作成には、WNetOpenEnum と WNetEnumResource WNetCloseEnum の3つのAPIを使用します。
このAPIを3つの関数にしてみました。実際の使用方法はサンプルを見てください。

サンプルプログラムのダウンロードは→[Delphi FAQ用サンプル] ネットワークドライブの割り当て/解除

[Delphi] うるさい音をミュート!

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    6,592

音が出てうるさいと思ったことはありませんか? また、何でここで音が出るんだろう?と思ったことはありませんか? そんなときには強引に音が出るデバイスに対して止めに入るなんてのも1つの手かもしれませんね。
まず、「Beep」ボタンをクリックして音が出ることを確かめてください。音が出ることを確かめたら 「Mute」をクリックして音が出なくなるのを確かめます。最後に「Loud」をクリックして元の音量に戻ることを確かめてください。ただし「Mute」は2回クリックしないようにお願いします。

サンプルプログラムのダウンロードは→[Delphi FAQ用サンプル] うるさい音をミュート!

[Delphi] 全角スペース文字対応のTrim

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    14,148

Delphiの標準関数(Trim、TrimLeft、TrimRight)は全角の空白を取り除いてくれません。 全角空白を取り除くためには、ループしてこの文字を見つけて取り除く必要があります。以下に全角対応のTrimを作成しました。

※2012/05/02 Unicode対応

  • ZTrim ... 全角対応 Trim
  • LTrim ... 全角対応 TrimLeft
  • RTrim ... 全角対応 TrimRight

[Delphi] カレントレコードをコピーする

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    6,863

今見ているデータの一部を編集して、新しくデータを作成したいありませんか?こんなときには、現在のレコードをコピーしてそのレコードを編集するのが簡単!
ということで、以下はカレントレコードをコピーする関数の例です。

procedure AppendCurrent(Dataset: TDataset); 
var 
  aField: Variant; 
  i: Integer; 
begin 
  // バリアント型の配列を作成 
  aField := VarArrayCreate([0, Pred(DataSet.FieldCount)], VarVariant); 
  // フィールドのデータを先ほどの配列にコピー 
  for i := 0 to Pred(DataSet.FieldCount)do 
    aField[i] := DataSet.Fields[i].Value; 
  // 新規レコードを追加 
  DataSet.Append ; 
  // 新規レコードに配列のデータを書き戻し 
  for i := 0 to Pred(DataSet.FieldCount)do 
    DataSet.Fields[i].Value := aField[i]; 
end; 

[Delphi] 実行時にダイナミックにDLLをロードする

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    6,281

以下のサンプルコードは実行時にDLLを動的にロードし、その中のエントリポイントを取得します。
DLLがロードでき、エントリポイントが正常に見つかってその機能を使用できる場合には true を返しますが不幸にもロードできなかった場合にはfalseを返します。
GetModuleHandle、GetProcAddress WindowsAPIを使用して指定した名前のエントリポイントを探していますが、この方法はDelphiがControlユニットなどでIMMを使用するのに使っています。

function FuncAvail(Lib, Func: string; var hnd: THandle; var ptr: 
Pointer): boolean;
begin 
  Result := false;
  hnd := 0;
  if LoadLibrary(PChar(Lib)) = 0 then
  begin
    Exit;
  end;
  hnd := GetModuleHandle(PChar(Lib));
  if (hnd <> 0) then
  begin
    ptr := GetProcAddress(hnd, PChar(Func));
    if (ptr <> nil) then
    begin
      Result := true;
    end;
  end;
end;

サイトカレンダー

サイトカレンダーをスキップ

2024年 03月
«
»
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

新着情報

記事 新着(24時間)

-

コメント 新着(2日)

-

トラックバック 新着(2日)

-

リンク 新着(2週)

新しいリンクはありません

ファイル (14日)