Cornelius Concepts、LLCが提供するいくつかの有用なDelphiユニットとコンポーネント。
このライブラリには、私が開発したユニットとコンポーネントが含まれており、多くの状況で便利になります。しかし、彼らはただ有用であることを超えています - 彼らはまた教えています。コメントとサンプルがあり、コンポーネントには、実行時間と設計時間の間のパッケージの分離、コンポーネントの右クリックによってアクティブ化されたコンポーネントの統合方法、さらにはDelphiのSplashスクリーンへの統合とボックスについての統合を統合する方法など、デルファイコンポーネントの作成方法のいくつかの側面を示しています。
このコンポーネントをフォームにドロップするだけで、閉じたときにサイズと位置が自動的に保存され、開いたときに復元されます。さらに、便利な方法で他の値を保存します。 2つのバリエーションがあります。
これらのコンポーネントはどちらも、最小限の設定を備えた適切な場所にファイルまたはレジストリ設定を保存し、フォームの名前に基づいてキーまたはセクションを作成するデフォルトを備えています。そのため、これらのコンポーネントのいずれかを各フォームにすばやく簡単にドロップできます。
整数、文字列、およびブール値を保存/復元するための追加の方法により、単純なユーザーデータを非常に簡単に覚えています。
- procedure SaveStrValue(const Name:string;const Value:string);
- procedure SaveIntValue(const Name:string;const Value: Integer);
- procedure SaveBoolValue(const Name:string;const Value: Boolean);
- function RestoreStrValue(const Name:string; const Default: string = ''):string;
- function RestoreIntValue(const Name:string; const Default: Integer = 0): Integer;
- function RestoreBoolValue(const Name:string; const Default: Boolean = False): Boolean;
このコンポーネントには、数年前にDbisam NewsグループにNeilという名前の誰かが書いたルーチンが含まれています。コンポーネントになったため、コンピューターの不活性を監視するためにキーボードとマウスのWindowsフックに接続され、アプリケーションを閉じるためにカウントダウンタイマーでメッセージをポップアップします。ユースケースの1つは、ファイルとレコードを開いたままにする2層データベースアプリケーションです。
このコンポーネントは、DelphiのTSTOPWATCHクラスを使用することを支持して、Delphi 10.3 Rioバージョンから削除されました。
これは、操作のタイミングの詳細を隠す非常にシンプルなコンポーネントです。スタートを呼び出して、材料を実行してから停止するだけで、次のプロパティを利用できるようになります。
このコンポーネントは、タイムゾーン(モバイルデバイスで使用される場合)の変更をチェックしたり、夏時間を考慮したりしません。かなり短い操作(1時間未満)のために設計されました。
次のコンポーネントは、Delphi XEを通じてのみサポートされ、新しいパッケージから削除されました。
ずっと前に、私はあなたが入力するときに一致するレコードをリストする非常に素晴らしい増分検索コンポーネントを備えたコンポーネントのInfoPowerスイートを使用しました。このコンポーネントをそのアイデアからパターン化しましたが、ユーザー定義のボタンや他の多くの機能も追加しました。また、Raize Controlsを使用して、いくつかの特別なディスプレイ機能を使用しましたが、DBISAMデータベースコンポーネントに非常に密接に結び付けました。それは当時の特定のプロジェクトのためでしたが、私はそれを使用し、それ以来他のプロジェクトでそれを使用しました(ElevatedBコンポーネントのDBISAMを切り替えるなど)。
これは、複合コンポーネントを構築する方法の良い例であるため、見るのが興味深いコンポーネントかもしれません。
何年も前に古いプロジェクトをサポートするために書かれたため、これにより、名前=値のペアとデリミターとの単純なマージが可能になります。 TStringListの使用を支持して非難されました。
テキストファイルへの迅速かつ簡単なログを提供します。新しいライブラリとロギング方法が望ましいため、非推奨されます。
ポップアップモーダルウィンドウにあるシンプルなテキストファイルビューアー。
最後に、スタンドアロンユニットについての言葉。
このフォルダーには、2つのユニット、udmcustomwebgeneratorとudmdbisamwebgeneratorが含まれています。これらはデータモジュールであり、最初はいくつかのウェブブローカーコンポーネント、TPAGEProducerとTDatasettableProducerを備えたベースクラスです。これらは、コンテンツ管理システム(CMSS)が人気がある前に何年も前に書かれており、すべてのWeb開発にDelphiを使用しようとしていました。大規模なプロジェクトには価値があるよりも多くの仕事であることが判明し、現在は膨大な数の優れたWebツールがありますので、もう使用されていません。ただし、これらのルーチンが便利であると感じるタスクがまだあるため、私はそれらを維持します。
これらのクラスは、HTMLタグとデータベースの間のリンクを構築することにより、ウェブブローカーの有用性を拡張します。私がこの方法で使用した唯一のデータベースはdbisamでした。私は数年間DBISAMを使用していないので、それがまだコンパイルされているかどうかはわかりませんが、それはあなたの特定のニーズに基づいて基本クラスをどのように降りることができるかを示しています。
詳細については、コードのコメントをお読みください。
「その他」フォルダーには、3つのユニットが含まれています(後で追加される場合があります)、 UsearchReclist 、 Uxmldates 、およびuteStutils 。
最初のものであるUsearchReclistには、いくつかの手順タイプ宣言と1つの手順が含まれています。GetSearchRecs。
TPathStatusProc = reference to procedure (const Path: string; var Stop: Boolean);
TFileFoundProc = reference to procedure (FileInfo: TSearchRec);
procedure GetSearchRecs(const Path, Pattern: string; const Recursive: Boolean; PathStatusProc: TPathStatusProc; FileFoundProc: TFileFoundProc);
GetSearchRecsは、パターンに一致するファイルを探しているディレクトリツリーを横断し、パターンに一致するファイルが見つかったすべてのパスとファイルファウンドプロックのPathStatusProcを呼び出します。
これは、古いログファイルを削除する例の例です。
GetSearchRecs(LogFolder, '*.log', False, nil,
procedure (FileInfo: TSearchRec)
begin
if FileInfo.TimeStamp < Now - 90 then
FileDelete(TPath.Combine(LogFolder, FileInfo.Name), True);
end);
2番目のユニットであるUxmldatesを使用すると、XMLファイルにある日付を簡単に操作できます。一般的な形式は次のとおりです。yyyy-mm-dd "t" hh:mm:ssですが、メソッド、converttodelphidatefromxmlは、時間のない文字列を取ることができます。
3番目のユニットであるUteStutilsは、日付、時間、数字、支払いタイプなどのテストデータを生成する必要があるいくつかのプロジェクトで使用されるいくつかの機能を提供します。