記事カテゴリ

ユーザー機能


 2024年5月17日(金) 12:15 JST

Delphi2005 Update2 for English release.

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

英語版 Delphi 2005 のUpdate2がでました。
更新内容を見ようとリリースノートを見たのですが、内容はCodeCentral参照と言うことで何も記載されていませんでした。仕方なく、CodeCentralを見たのですがどこに載ってるかわからない。
でも、日本語版のUpdate2が待ち遠しいですね。
今度はProfessionalだけ遅れてということはやめてほしいな...

Delphi 8 のGeneral Update3もでてますね。これもAvailable Englishになっているんですが...

□関連記事

[Delphi] ひらがなからカタカナへ、カタカナからひらがなへ(.Net)

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

ひらがなからカタカナに、カタカナからひらがなに変換したい時って無いですか?たとえば、フリガナ入力欄などにユーザがカタカナって書いてるのにひらがなで入力してくる人いませんか?そんなとき、変換関数があったら便利ですよね。
でも、結構こんな日本語の変換関数を作るのは骨が折れるもの、作ってもデバッグが大変。だったら、あるものを使う方が楽じゃない?標準で日本語変換してくれる関数を持った言語って...と考えると C 言語とかありますね。でも、C 言語は .Net Frramework には見あたらないです。C# にはそのような変換関数は無いようです。でも、Visual Basic には StrConv 関数がありますね。これを使いましょう。
今までだと、他の言語の機能を使うときは、その言語でその機能を呼び出す DLL を作って使っていたかもしれませんが、StrConv は .Net Framework で Microsoft.VisualBasic アセンブリとして、元々入っています。ということは、これを使っても配布の必要すらないということです。
これを呼び出すには、プロジェクトツリーの「参照先」を右クリックして、参照の追加で Microsoft.VisualBasic を追加します。これだけで、使う準備は完了です。
あとは、必要な場所で StrConvを呼び出すだけです。

カタカナに変換する場合
edtKata.Text := Strings.StrConv(edtHira.Text, VbStrConv.Katakana);
    
ひらがなに変換する場合
edtHira.Text := Strings.StrConv(edtKata.Text, VbStrConv.Hiragana);
    

StrConv には、半角⇔全角変換などの機能があります。これらも同様の方法で使えるので、是非試してみてください。

[Delphi] アプリケーションの多重起動を防止する(.Net)

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

アプリケーションの多重起動を防止したい場面は結構あるのではないでしょうか? 処理結果を特定のファイルに出力するケースなどがあった場合、複数のアプリケーションがその処理を行うと、最悪そのファイルが壊れるケースが出てきそうですし、ファイルが壊れなくても、内容が変になる危険性が高いと思います。 多重起動防止方法にはいくつか方法があると思いますが、ここではもっとも実装が一般的だと思われる Mutex を使った方法をご紹介します。
Mutex に付いての詳細は、@ITにわかりやすい解説があったのでそちらを参照してもらえれば、くろねこの下手な文章よりわかりやすいと思います。
ただ、@IT では Delphi のサンプルが無かったので、Delphi での多重起動防止についてサンプルを作ってみました。
Delphi で .Net 対応アプリを作るのは大きく分けて2とおりの方法があります。VCL.Net を使う方法と、 Windows Form を使用する方法です。VCL.Net で Mutex を実装する際にまた2とおりの方法に分かれます。2とおりの方法とは、VCL.Net (SyncObjs ユニット) にある TMutex クラスを使う方法と、.Net Framework (System.Threading) にある Mutex クラスを使う方法です。くろねこ的には、.Net Framework を使用する方が美しいかと思います。

[Delphi] 半角(SBCS)と全角(MBCS)を区別する (for VCL.Net)

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

半角文字と全角文字を区別する方法です。.Net環境ではDelphiもほかの言語と同じように Unicode になってしまったので、従来のような ByteType 関数による半角文字と全角文字の判定は行うことができません。
同じように、Win32 API のIsDBCSLeadByte などの API も使用できなくなっています。
(ここでは半角 = 1バイト文字、全角文字 = 2バイト以上の文字としています。2バイト半角文字もありますが、使用される頻度がほとんど無いため考慮の対象から除外しています。)
そこで、Unicodeの環境では、Shift-JIS(Windows環境ではコードページ932と定義されています)の形に変換してからチェックを行う必要があります。
以下は、エディットボックスに半角文字しか入力させないようにする例です。このコードを埋め込むには uses に System.Text を追加する必要があります。

procedure TForm5.Edit1KeyPress(Sender: TObject; var Key: Char);
const
  VK_Z = 26;
var
  nByteSize: Integer;
begin
  if not (Ord(Key) in [VK_BACK, VK_RETURN, VK_Z]) then // 除外キー
  begin
    nByteSize := Encoding.GetEncoding(932).GetByteCount(String(Key));
    if (nByteSize <> 1) then Key := #0;
  end;
end;

PEVerify

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

今頃になってやっと PEVerify ツールを知り(昔どこかで見たような気はするけど、忘れてました)、JDBGridのサンプルプログラムをチェックしてみました。
すると、下記のような検査結果が...

Unable to OpenScopeOnMemory for IMetaDataImport:8013110B

う、しまった。こんなコンポーネントを公開していたのか...


サイトカレンダー

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

2024年 05月
«
»
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日)