開発者が知りたい実践プログラミングテクニック!

Similar documents
PowerPoint プレゼンテーション

共有フォルダ接続手順 1 共有フォルダ接続ツールのダウンロード 展開 CSVEX のトップページから共有フォルダ接続ツールの zip ファイルをダウンロードします ダウンロードした zip ファイルを右クリックして すべて展開 を選択します (Windows 環境では zip ファイルを解凍しなくて

知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス 8.0

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

新バージョンDelphi/400 XE7ご紹介 - マルチデバイスデザイナ機能で開発効率アップ! -

知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス4.0

知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス

SAMBA Stunnel(Mac) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxxxx 部分は会社様によって異なります xxxxx 2 Mac OS 版ダウンロー

カルテダウンロード 操作マニュアル

Delphi/400 テクニック公開 Windows7に最適化した アプリ開発・運用テクニック

Microsoft Word JA_revH.doc

PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP が被るとローカル環境内接続が行えなくな

Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]

ランタイム版 Pro 版共通 症例登録システム 2018/12/11 Q & A 目次 1. 起動時のエラー... 2 Q11. " ファイル jsgoe_data3.fmp12 を開くことができません" と表示されます (Windows) 2 Q12. ショートカットから起動できません (Wind

目次 1. はじめに 準備 機器構成 やさしく名刺ファイリング Pro v.14.0 セットアップと動作確認 やさしく名刺ファイリング Pro v.14.0 セットアップ... 5 Windows Windows 8.

これらの情報は 外部に登録 / 保存されることはございません 5 インターネット接続の画面が表示されます 次へ > ボタンをクリックしてください 管理者様へ御使用時に設定された内容を本説明文に加筆ください 特に指定不要で利用可能であった場合は チェックボックスを オフ していただきますようご案内くだ

チェックを外す 以上で マクロの有効と保護ビューの解除は完了です < 保護ビューの解除について > 保護ビューの解除については 特に設定しなくても EX はインストールできると思いますが 保護ビューのエラーメッセージが出た時に慌てないように念のため解除しておきます セキュリティが心配な方は EX が

SAMBA Remote(Mac) 編 PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP

知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス 9.0

PowerPoint Presentation

カルテダウンロード 操作マニュアル

クイックセットアップ for モバイル(Windows)

クイックセットアップ for モバイル(Windows)

Ⅰ OUTLOOK 2013設定 1.OUTLOOK2013を起動します 4.次へをクリックします ①ファイルをクリック 2.アカウント情報を設定します ①電子メールアカウント欄にチェックが入っていることを確認する ②次へをクリック 5.アカウントを手動設定します ①アカウント設定をクリック ②アカ

IBM SPSS Amos インストール手順 (サイト ライセンス)

SureFile for 達人プラスインストールマニュアル V1.7 本マニュアルでは アイスペシャル C-Ⅱ C-Ⅲ 専用画像振り分けソフト SureFile for 達人プラスについて 下記に示した項目を説明しています SureFie( 標準版 ) のアンインストール インストール 起動 設定の

Microsoft Word - XOOPS インストールマニュアルv12.doc

PrintBarrierV3L50(V ) アップデート手順書 第 1.01 版 株式会社富士通アドバンストエンジニアリング 平成 25 年 3 月 7 日 1

厚生労働省版ストレスチェック実施プログラムバージョンアップマニュアル (Ver2.2 から Ver.3.2) 目次 1. プログラム概要 バージョンアップ実施手順 要注意 zip ファイル解凍の準備 Windows によって PC が保護されました と

InstallAwareを使った Delphi/400運用環境の構築

クイックセットアップ for モバイル(iOS/Android)

CodeGear Developer Camp

クイックセットアップ for モバイル(iOS/Android)

項番 現象 原因 対応手順書など 4 代理店コードでのダウンロード時に以下のメッセージの画面が表示される サービス時間外のため 現在 このサービスはご利用になれません 当機能のサービス時間外です 以下の時間帯にダウンロードしてください 月曜日 ~ 金曜日 7:00~21:00 土曜日 7:00~17

Ver25 メディアマート株式会社 アドバンスト アナリティクス株式会社 Statistics 25.0 のインストール手順書 Authorized User ライセンス ( シングルライセンス ) 1. 事前に IBM SPSS Statistics 25 をインストールする場合 Administ

WebSAM System Navigator JNS isadmin SNMP Trap 連携設定手順書 NEC 2012 年 12 月

保存を行いたい場所 ( デスクトップ 等 ) を選択し 保存 (S) ボタンを押してください ファイル名 ファイル名は Jsas_TKNPrint.exe という初期値になっていますが 変更することができます 2 データのダウンロード ボタンを押すと 指導面接用紙の一括印刷用ソフトに取り込む指導対象

間取りプレミアム ライセンス削除 移行手順 利用中のパソコンより作図画面を表示し [ ヘルフ (H)] [ ライセンス削除 ] をクリックして下さい 間取りプレミアムのデータバックアップ 間取りプレミアムのデータバックアップが必要な場合は ライセンス削除前に データ移動 を行って下さい ライセンス削

Microsoft Word - 01_CommonMPインストール解説書.doc

目次 第 1 章はじめに 取扱いについて 記載内容について... 6 第 2 章基本操作 Excel Online を開く ファイル ( ブック ) を作成する ファイル ( ブック ) を開く..

V-Client for Mac ユーザーズガイド

同期を開始する ( 初期設定 ) 2 1 Remote Link PC Sync を起動する 2 1 接続機器の [PIN コード ] [ ユーザー名 ] [ パスワード ] を入力する [PIN コード ] などの情報は 接続機器の設定画面でご確認ください 例 )HLS-C シリーズの場合 :[R

クイックスタート [USB メモリのセキュリティ無料版用 ] 2 / 18 パソコンへのインストール セットアップファイルの名前は次のファイル名です 環境によっては ".exe" の部分は表示されていない場合もあります このファイルを実行 ( ダブルクリック ) して インストールを開始します エデ

目次 レジストリの設定...2 トレーディングソフトの自動起動設定...7 VPS 自動再起動の設定

目次 1. はじめに...3 概要...3 利用環境 (HTML5)...3 利用環境 (Citrix Receiver) リモート PC への接続と終了...4 接続方法の変更...4 HTML5( 簡易バージョン ) での接続...5 リモート PC の操作メニュー...8 Cit

ダウンロードページアップデートマニュアル.ppt

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

誓約書の同意 4 初回のみ 下記画面が表示されるので内容を確認後 同意する ボタンをクリック 同意していただけない場合はネット調達システムを使うことができません 参照条件設定 5 案件の絞り込み画面が表示されます 5-1 施工地域を選択して 施工地域選択完了 ボタンをクリック - 2 -

1. WebShare(HTML5 版 ) 編 1.1. ログイン / ログアウト ログイン 1 WebShare の URL にアクセスします xxxxx 部分は会社様によって異なります xxxxx 2 ユーザー名 パ

ミガロ.製品 最新情報

鳥取県物品電子入札システムセキュリティ ポリシー設定マニュアル IC カードを利用しない応札者向け 第 1.7 版 平成 31 年 2 月鳥取県物品契約課 鳥取県物品電子入札システムセキュリティ ポリシー設定マニュアル Ver.01-07

FastReportへの効率的な帳票レイアウトコンバート

3 アドレスバーに URL を入力し ( 移動ボタン ) をタップします 入力した URL のホームページに移動します ネットワークへのログオン 画面が表示された場合は ユーザー名 を確 認し パスワード を入力して OK をタップしてください ホームページがうまく表示されないときは Opera B

Ver26 メディアマート株式会社 アドバンスト アナリティクス株式会社 Statistics 26.0 のインストール手順書 (Windows 版 ) Authorized User ライセンス ( シングルライセンス ) 1. 事前に IBM SPSS Statistics 26 をインストール

H-R041-2_j

アーカイブ機能インストールマニュアル

PitStop マル秘テク

10 完了 をクリック 13 このサーバーは認証が必要 をチェックして 設定 をクリック Windows メール Windows Vista に標準のメールソフト Windows メール の設定方法を説明します 1 スタート から 電子メール Windows メール をクリック 11 続いて設定ファ

1. インストール方法 STEP 1 ダウンロードしたファイルを任意の場所に解凍します Windows 標準の機能を用いて解凍する場合は ファイルを選択して 右クリックメニューから [ すべて展開 ] を選択し 表示されたメッセージに従って解凍します STEP 2 解凍されたフォルダにある Setu

目次 1. システム概要 設置手順 注意事項 動作環境 初期設定 システム設定 ( 環境設定 ) システム設定 ( ログインパスワード変更 ) システム設定 ( ファイルのパスワード変

(2) [ バックアップツール ] が表示されます [1] [2] [3] [4] [5] [6] Windows Storage Server 2012 バックアップ手順 (V_01) < 画面の説明 > [1] バックアップ項目リスト登録されているバックアップセットの一覧です [2] 新規 ボタ

目次 第 1 章はじめに 取扱いについて 記載内容について... 6 第 2 章基本操作 OneNote Online を開く ノートブックを開く ノート ( セクション ) を作成する... 11

給管鳥 : 請求入金額管理ツール Ver4 のインストール方法 1. 給管鳥請求入金額管理ツール Ver4 セットアップウィザードへようこそ の画面が表示されたら 次へ (N) をクリックします 2. インストールフォルダーの選択 画面が表示されます 特に変更の必要がなければ 次へ (N) をクリッ

(6) コンボドライブのドライブ文字の変更 コンピュータの管理 ウィンドウの右下側フレームの CD-ROM 0 DVD (E:) と書かれた箱 ( 図 02-2) にマウスのポインタを合わせ, 右ボタンをクリックしてメニューを表示する メニューから ドライブ文字とパスの変更 (C)... を選択する

共済会_Kねっと利用マニュアル(2018).indd

目次 1. 教育ネットひむかファイル転送サービスについて ファイル転送サービスの利用方法 ファイル転送サービスを利用する ( ひむか内 ) ファイル転送サービスへのログイン ひむか内 PCでファイルを送受信する

Microsoft PowerPoint ï½žéł»å�’å–¥æœ�ㇷㇹㅃㅀ㇤ㅳㇹㅋㅼㅫ曉逃.ppt [äº™æ‘łã…¢ã…¼ã…›]

目次 第 1 章はじめに 取扱いについて 記載内容について... 6 第 2 章基本操作 Word Online を開く 文書 ( ドキュメント ) を作成する 文書 ( ドキュメント ) を開く.

保存を行いたい場所 ( デスクトップ 等 ) を選択し 保存 (S) ボタンを押してください ファイル名 ファイル名は Jsas_TSKPrint.exe という初期値になっていますが 変更することができます 2 データのダウンロード ボタンを押すと 一括印刷用ソフトに取り込む停止及び警告認定者 (

LCV-Net ファイルコンテナ ユーザーマニュアル

どこでも写真管理 Plus (ios 版 ) 操作手順書 ( 黒板作成 連携ツール使用時 ) EX-TREND 武蔵の写真管理 黒板作成 連携ツール どこでも写真管理 Plus でデータを連携して 電子小黒板機能付き工事写真を撮影する手順を解説します 解説内容がオプションプログラムの説明である場合が

ユーザーズマニュアル

メール設定 Outlook Express 6 の場合 (Windows 98 ~ XP) Outlook Express 6 の場合 (Windows 98 ~ XP) Windows XP に付属する Outlook Express 6 に αweb のメールアカウントを追加する方法についてご案

Alfa-Products_installguide

基礎からの MySQL 改訂版 は Windows10 や Windows8.1 にも対応しています Windows10 および Windows8.1 をお使いの読者が 基礎からの MySQL 改訂版 を読み進めると きの補足説明 1. 基礎からの MySQL 改訂版 の Windows10 および

SystemDirector Developer's Studio(V3.2) 適用ガイド

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

Indyを利用したメール送信機能開発

DrugstarPrime アップデート手順書 DrugstarPrime アップデート手順書 DrugstarPrime のアップデート手順をご案内いたします 本書は DrugstarPrime2 DrugstarPrime に共通の手順書です 手順内の画面は Prime2 を使用しています [

目次 第 1 章概要....1 第 2 章インストールの前に... 2 第 3 章 Windows OS でのインストール...2 第 4 章 Windows OS でのアプリケーション設定 TP-LINK USB プリンターコントローラーを起動 / 終了するには

JACi400のご紹介~RPGとHTMLで簡単Web化~

目次 1. 回答作成手順 2 2. ツールの起動 3 3. 一般情報の入力 6 4. 成分表の入力 9 5. 依頼者情報の入力 エラーチェック XMLファイルの作成 動作設定 ( 任意 ) ( ご参考 ) 各種シートのボタン機能 ( ご参

黒板作成 連携ツールの概要 黒板作成 連携ツールは 事前に撮影する工事写真用の黒板を作成するツールです 本書では EX-TREND 武蔵の写真管理 黒板作成 連携ツール ios アプリ 現場 DE カメラ土木版 の連携について 説明します 写真管理 EX-TREND 武蔵の写真管理で作成した 工種分

Microsoft Word - 補足説明_Win7_Server2008R2__R1.doc

CS-DRC1操作説明書

1. 画面のリンクやボタン タブをクリックしても反応しない 現象 ログイン後 リンクやタブをクリックしても反応がない ( 画面が変わらない ) 原因 (1)Internet Explorerの互換表示設定が外れている (2) ツールバーの アドオン と呼ばれる追加機能によりブロックされている (1)

Corporate Document

自宅でJava言語の開発環境を作る方法

Transcription:

セッション No.4 Delphi/400 テクニカルセッション開発者が知りたい実践プログラミングテクニック! 株式会社ミガロ. RAD 事業部技術支援課吉原泰介

Delphi/400 テクニカルサポートより現場で役立つ実践プログラムテクニックをご紹介 サポートには月 100 件弱 年間 1000 件以上のお問合せ Delphi/400 問合せ内容比率 コンホ ーネント 2% サート ハ ーティ 12% 環境 他連携 21% フ ロク ラム方法 65% フィードバック ミガロ.HP メンテナンス専用ページ 開発者皆様でプログラムテクニックを更に共有いただきたい

アジェンダ Delphi/400 実践プログラミングテクニック 実践テクニック 1 エクスプローラーの簡易組込 実践テクニック 2 アプリケーション起動制御 実践テクニック 3 ネットワーク接続認証 実践テクニック 4 ファイルの圧縮 解凍 実践テクニック 5 開発環境便利機能

実践テクニック 1 エクスプローラーの簡易組込

実践テクニック 1 エクスプローラーの簡易組込 エクスプローラー機能の実装 Windows のエクスプローラーを Delphi/400 のアプリケーション内で利用するには 通常は WindowsAPI 等を使ってファイルやフォルダのリスト一覧を取得して TreeView 等で表示を実装します もっと簡単に実装したい!

実践テクニック 1 エクスプローラーの簡易組込 ShellTreeView コンポーネントの利用 ShellTreeView コンポーネントを使えば エクスプローラの機能を 5 分で実装することができます コンポーネントを貼り付ける コンパイルして実行する

実践テクニック 1 エクスプローラーの簡易組込 ShellTreeView コンポーネントの組込み手順 ShellTreeView コンポーネントは Delphi/400 V2007 まで標準で組み込まれていますが V2009 以降はソースでのみ提供されています V2009 以降のバージョンをお使いに場合には 以下のコンポーネントのパッケージファイル (dclshlctrls.dpk) を参考に組み込む必要があります ~ dclshlctrls.dpk のバージョン毎パス ~ V2009 C: Users Public Documents RAD Studio 6.0 Demos DelphiWin32 VCLWin32 ShellControls V2010 C: Users Public Documents RAD Studio 7.0 Demos DelphiWin32 VCLWin32 ShellControls VXE C: Users Public Documents RAD Studio 8.0 Samples Delphi VCL ShellControls VXE3 C: Users Public Documents RAD Studio 10.0 Samples Delphi VCL ShellControls WindowsXP では C: Documents and Settings All Users Documents RAD Studio で読み替え下さい

実践テクニック 1 エクスプローラーの簡易組込 ShellTreeView コンポーネントの組込み手順 1dclshlctrls.dpk を開き プロジェクトマネージャ上で右クリックのメニューからインストールを実行

実践テクニック 1 エクスプローラーの簡易組込 ShellTreeView コンポーネントの組込み手順 2 メニューの [ ツール オプション ] よりライブラリを選択しライブラリリストに 1 のコンポーネントパスを追加

実践テクニック 1 エクスプローラーの簡易組込 ShellTreeView コンポーネントのプロパティ ルートフォルダのパス 関連コンポーネントの連動設定 ShellCombobox ShellListView イメージ表示 True False 選択しているフォルダパスは path プロパティでアクセスできます

実践テクニック 1 エクスプローラーの簡易組込 ShellTreeView コンポーネントサンプル ShellCombobox ShellTreeView 連動 ShellListView 選択したらパスを表示 ( ソースは次頁 ) 連動 選択したフォルダパスを Edit(edtPath) に出力

実践テクニック 1 エクスプローラーの簡易組込 ShellTreeView コンポーネントサンプル ShellTreeView の選択イベント処理 ( ソース ) procedure TfrmT1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode); begin // エディットに選択したフォルダパスを設定 edtpath.text := ShellTreeView1.Path;

実践テクニック 2 アプリケーション起動制御

実践テクニック 2 アプリケーション起動制御 アプリケーション起動制御 EXE アプリケーションはダブルクリックすると基本的には制限なく起動するため 同じアプリケーションを複数起動することができます 照会系アプリケーションで複数同時起動は便利ですが 更新系アプリケーションでは複数同時に実行されると整合性で不都合となる場合もあります 1 つ目の起動 2 つ目の起動を制御したい!

実践テクニック 2 アプリケーション起動制御 アプリケーション起動の制御 アプリケーション起動処理 1( プロジェクトソース ) program T41; uses Forms, Windows, // 追加が必要 T41frm in 'T41frm.pas' {frmt41}; {$R *.res} Mutex とは MUTual EXclusion( 相互排他 ) の省略形 const MutexName ='App1'; // 特定できる Mutex 名を設定 var hmutex: THandle; begin // 対象 Mutex 名の起動数をチェック hmutex := OpenMutex(MUTEX_ALL_ACCESS, False, MutexName); 起動数チェック

実践テクニック 2 アプリケーション起動制御 アプリケーション起動の制御 アプリケーション起動処理 1( プロジェクトソース ) //Mutex の起動数が 0 以外であればエラー if hmutex <> 0 then begin MessageBox(Application.Handle, ' 既にアプリケーション 1 が起動しています ', ' テクニカルセミナーサンプルプログラム ', MB_OK); // エラーメッセージ表示 Exit; 起動数があればエラー //Mutex を生成 hmutex := CreateMutex(nil, False, MutexName); try Application.Initialize; Application.CreateForm(TfrmT41, frmt41); Application.Run; finally ReleaseMutex(hMutex); end. 起動時に Mutex を生成 終了時に Mutex を破棄

実践テクニック 2 アプリケーション起動制御 アプリケーション起動の制御応用 アプリケーション起動処理 2 応用 ( プロジェクトソース ) program T42; uses Forms, Windows, T42frm in 'T42frm.pas' {frmt42}; {$R *.res} const MutexName1 ='App1'; // 特定できる Mutex 名を設定 MutexName2 ='App2'; // 特定できる Mutex 名を設定 var hmutex: THandle; Begin 起動数チェックの対象を増やせば 他のアプリを考慮した起動制御も可能 Ex.) 受注入力アプリを起動していたら 月次処理アプリを起動制限 受注入力中は月次アプリ起動を制限

実践テクニック 2 アプリケーション起動制御 アプリケーション起動の制御応用 アプリケーション起動処理 2 応用 ( プロジェクトソース ) // 対象 Mutex 名の起動数をチェック hmutex := OpenMutex(MUTEX_ALL_ACCESS, False, MutexName1); //Mutexの起動数が0 以外であればエラー if hmutex <> 0 then begin MessageBox(Application.Handle, ' 既にアプリケーション1が起動しています ', ' テクニカルセミナーサンプルプログラム ', MB_OK); // エラーメッセージ表示 Exit; // 対象 Mutex 名の起動数をチェック hmutex := OpenMutex(MUTEX_ALL_ACCESS, False, MutexName2); //Mutex の起動数が 0 以外であればエラー if hmutex <> 0 then begin MessageBox(Application.Handle, ' 既にアプリケーション 2 が起動しています ', ' テクニカルセミナーサンプルプログラム ', MB_OK); // エラーメッセージ表示 Exit; 起動数チェック 1 起動数チェック 2

実践テクニック 2 アプリケーション起動制御 アプリケーション起動の制御応用 アプリケーション起動処理 2 応用 ( プロジェクトソース ) //Mutex を生成 hmutex := CreateMutex(nil, False, MutexName2); try Application.Initialize; Application.CreateForm(TfrmT42, frmt42); Application.Run; finally ReleaseMutex(hMutex); end.

実践テクニック 3 ネットワーク接続認証

実践テクニック 3 ネットワーク接続認証 ネットワーク接続認証 IBM i 接続時にログオン認証が必要なように ネットワーク上でもリモート PC やファイルサーバに認証が必要な場合があります 例えばファイルサーバから最新の EXE や Excel などをコピーする場合に 接続が認証がないとエラーとなります 認証ができていないとエラーやフリーズとなり 処理できません 認証 プログラムでリモート接続を認証したい!

実践テクニック 3 ネットワーク接続認証 ネットワーク接続認証 API ネットワークでの接続認証には WindowsAPI の WNetAddConnection2 を利用すれば実現することができます また同様に WNetCancelConnection2 を利用すれば 接続の切断を行うこともできます (Web アプリでも Web サーバで活用できます ) 応用すればドライブ割当も可能

実践テクニック3 ネットワーク接続認証 WNetAddConnection2 接続 APIのパラメータ WNetAddConnection2( lpnetresource, // 接続リソース lppassword, // パスワード lpusername, // ユーザー名 dwflags) // 種類 WNetCancelConnection2 切断 API のパラメータ WNetCancelConnection2( lpname // 接続先 ( 接続資源 ) dwflags, // 種類 fforce) // 無条件切断オプション どちらの API も結果として dword を返却します

実践テクニック 3 ネットワーク接続認証 ネットワーク接続処理 接続ボタン押下処理 ( ソース ) procedure TfrmT3.Button1Click(Sender: TObject); var netres : TNetResource; // 接続リソース host : string; // ホスト名 ret : DWord; // 処理結果 begin // 接続リソースの作成 FillChar(netres, SizeOf(netres s), 0); netres.dwtype := RESOURCETYPE_DISK; host := ' ' + edthost.text + ' IPC$'; netres.lpremotename := PChar(host); 接続リソースのタイプは RESOURCETYPE_DISK を指定 ホスト名には IPC$ を付与 (Inter-Process Communication プロセス間通信 ) 接続先は接続リソースの lpremotename に指定 // 接続 ret := WNetAddConnection2(netres, PChar(edtPass.text), PChar(edtUser.text), CONNECT_UPDATE_PROFILE); 種類には CONNECT_UPDATE_PROFILE を指定してプロファイルを更新

実践テクニック 3 ネットワーク接続認証 ネットワーク接続処理 接続ボタン押下処理 ( ソース ) // エラー処理 if ret <> NO_ERROR then begin case ret of ERROR_SESSION_CREDENTIAL_CONFLICT: begin showmessage(' 既に共有リソースに接続されています '); else begin showmessage( ' エラー :' + IntToStr(ret) ); 既に接続リソースがある場合 それ以外はエラー番号を表示

実践テクニック 3 ネットワーク接続認証 ネットワーク切断処理 切断ボタン押下処理 ( ソース ) procedure TfrmT3.Button2Click(Sender: TObject); var host : string; // ホスト名 ret : DWord; // 処理結果 begin // 切断ホスト設定 host := ' ' + edthost.text + ' IPC$'; // 切断 ret := WNetCancelConnection2(PChar(host), CONNECT_UPDATE_PROFILE, False); // エラー処理 if ret <> NO_ERROR then begin case ret of ERROR_OPEN_FILES: begin showmessage(' 共有リソースに接続しているため切断できません '); else begin showmessage( ' エラー :' + IntToStr(ret) ); 種類には CONNECT_UPDATE_PROFILE を指定してプロファイルを更新 接続中で切断ができない場合 それ以外はエラー番号を表示

実践テクニック 3 ネットワーク接続認証 ネットワークドライブ割当処理 ( 応用 ) ドライブ割当ボタン押下処理 ( ソース ) procedure TfrmT3.Button3Click(Sender: TObject); var netres : TNetResource; // 接続リソース host : string; // ホスト名 ret : DWord; // 処理結果 begin // 接続リソースの作成 FillChar(netres, SizeOf(netres), 0); netres.dwtype := RESOURCETYPE_ANY; host := edthost.text; netres.lpremotename := PChar(host); netres.lplocalname := PChar('K:'); netres.lpprovider :=nil; 接続リソースのタイプは RESOURCETYPE_ANY を指定 ホスト名は割当フォルダを指定 接続先 共有フォルダ ローカルに割当するドライブを指定 // 接続 ret := WNetAddConnection2(netres, PChar(edtPass.text), PChar(edtUser.text), CONNECT_UPDATE_PROFILE); 種類にはCONNECT_UPDATE_PROFILE を指定してプロファイルを更新

実践テクニック 3 ネットワーク接続認証 ネットワークドライブ割当処理 ( 応用 ) ドライブ割当ボタン押下処理 ( ソース ) // エラー処理 if ret <> NO_ERROR then begin case ret of ERROR_SESSION_CREDENTIAL_CONFLICT: begin showmessage(' 既に共有リソースに接続されています '); else begin showmessage( ' エラー :' + IntToStr(ret) ); ネットワークドライブをプログラムで追加 ( 端末初期設定で便利 )

実践テクニック 4 ファイルの圧縮 解凍

実践テクニック 4 ファイルの圧縮 解凍 ファイルの圧縮 解凍ネットワークでファイルを配布 送受信する場合 ファイルのサイズがネットワークの負荷や待ち時間に大きく影響します 例えば 10MB の EXE ファイルを 100 名のユーザーに配布する場合 1000MB の通信負荷がかかります ファイルを圧縮して送信し 受信したものを解凍することがプログラムで実現できれば ネットワーク上での負荷軽減や速度を向上させることができます プログラムで自動圧縮 解凍したい!

実践テクニック 4 ファイルの圧縮 解凍 TurboPower Abbrevia コンポーネントの利用オープンソースの TurboPower Abbrevia に公開されている AbZipper/ AbUnZipper コンポーネントを使えば 圧縮 解凍を 10 分で実装することができます TurboPower Abbrevia http://sourceforge.net/projects/tpabbrevia/ ダウンロード 解凍展開

実践テクニック 4 ファイルの圧縮 解凍 TurboPower Abbrevia コンポーネントの組込み手順 1 解凍フォルダ Abbrevia packages Delphi XXX.groupproj を開き 右クリックから すべてビルド を実行 XXX 部分はバージョン

実践テクニック 4 ファイルの圧縮 解凍 TurboPower Abbrevia コンポーネントの組込み手順 2 プロジェクトマネージャ上で AbbreviaVCLDesignXXX.bpl を プロジェクトマネージャ上で右クリックから インストール を実行 XXX 部分はバージョン

実践テクニック 4 ファイルの圧縮 解凍 TurboPower Abbrevia コンポーネントの組込み手順 3 メニューの [ ツール オプション ] よりライブラリを選択しライブラリリストに解凍フォルダ Abbrevia source を追加

実践テクニック 4 ファイルの圧縮 解凍 AbZipper( 圧縮 ) コンポーネントのプロパティ 圧縮対象のフォルダパス 圧縮ファイル名 圧縮パスワード 圧縮作業 ( テンポラリ ) フォルダ

実践テクニック 4 ファイルの圧縮 解凍 AbUnZipper( 解凍 ) コンポーネントのプロパティ 解凍展開対象のフォルダパス 解凍ファイル名 解凍パスワード 解凍作業 ( テンポラリ ) フォルダ

実践テクニック 4 ファイルの圧縮 解凍 圧縮 解凍プログラムサンプル 圧縮ファイル名 パスワード 圧縮 圧縮対象フォルダ 展開対象フォルダ 解凍

実践テクニック 4 ファイルの圧縮 解凍 圧縮 解凍プログラムサンプル 圧縮ボタン押下イベント処理 ( ソース ) procedure TfrmT2.BitBtn1Click(Sender: TObject); var chrtemppath : array [0..MAX_PATH] of char; // テンポラリ取得用 begin // 圧縮対象フォルダの設定 AbZipper1.BaseDirectory := edtzip.text; // 圧縮作業フォルダの設定 ( テンポラリフォルダ取得 ) GetTempPath(Length(chrTempPath),chrTempPath); AbZipper1.TempDirectory := chrtemppath; // 圧縮ファイル名設定 AbZipper1.Filename := edtfile.text + '.zip'; // パスワード設定 AbZipper1.Password := edtpass.text; // ファイルの追加 ( 全拡張子ファイル ) AbZipper1.AddFiles('*.*', 0); // 圧縮 AbZipper1.Save; AbProgressBar1.Reset; // 完了メッセージ ShowMessage(' 圧縮が完了しました '); プロパティの設定 圧縮実行

実践テクニック 4 ファイルの圧縮 解凍 圧縮 解凍プログラムサンプル 解凍ボタン押下イベント処理 ( ソース ) procedure TfrmT2.BitBtn2Click(Sender: TObject); var chrtemppath : array [0..MAX_PATH] of char; // テンポラリ取得用 begin // 解凍展開対象フォルダの設定 AbUnZipper1.BaseDirectory := edtunzip.text; // 解凍作業フォルダの設定 ( テンポラリフォルダ取得 ) GetTempPath(Length(chrTempPath),chrTempPath); AbUnZipper1.TempDirectory := chrtemppath; // 圧縮ファイル名設定 AbUnZipper1.Filename := edtfile.text + '.zip'; // パスワード設定 AbUnZipper1.Password := edtpass.text; // ファイル解凍展開 AbUnZipper1.ExtractFiles('*.*'); AbProgressBar2.Reset; // 完了メッセージ ShowMessage(' 解凍が完了しました '); プロパティの設定 解凍展開実行

実践テクニック 5 開発環境便利機能

実践テクニック 5 開発環境便利機能 コードエディタの便利なショートカット コードエディタ 一般 ショートカット F1 F12 Ctrl+Shift+Enter Ctrl+Enter Ctrl+J Ctrl+F12 Ctrl+Shift+C Ctrl+Space 動作選択箇所のヘルプ検索 フォームとその関連するユニットを切り替える 選択内容の使用箇所を検索 カーソル位置のファイルを開く テンプレートメニューを開く ユニットのリストを表示 クラス宣言に対応するクラス補完 コード補完を開く

実践テクニック 5 開発環境便利機能 編集系 ショートカット 動作 Ctrl+/ 選択行に //( コメント ) 追加 解除 (Delphi2005 以降で有効 ) Ctrl+I タブ文字を挿入 Ctrl+N 改行を挿入 Ctrl+Y 選択行を削除 Ctrl+Shift+I 選択されたブロックをインデント Ctrl+Shift+U 選択されたブロックのインデント解除 [Alt]+[Backspace] 元に戻す [Alt]+[Shift]+[Backspace] やり直し 移動系 ショートカット Ctrl+ クリック Ctrl+Shift+ Ctrl+Shift+ Ctrl+ 数字キー (0~9 指定 ) Ctrl+Shift+ 数字キー (0~9 指定 ) Ctrl+PgDn Ctrl+PgUp 動作宣言部に移動 宣言 実装に相互移動 宣言 実装に相互移動 ブックマーク位置に移動 カーソル位置にブックマークを設定 画面の最下部に移動 画面の最上部に移動

実践テクニック 5 開発環境便利機能 FastMM によるメモリリーク調査 Delphi 2006 からはメモリマネージャとして FastMM が組み込まれています プロジェクトに 1 行組み込むだけで プログラミングで気付いていないメモリリーク等を検出することができます 例 )StringList の解放ミス procedure TForm1.Button1Click(Sender: TObject); var sl : TStringList; begin sl := TStringList.Create; sl.add('aaa'); sl.add('bbb'); sl.add('ccc'); Create したのに Free を忘れている!

実践テクニック 5 開発環境便利機能 FastMM のメモリリーク検出 エラー処理 アプリ終了時にエラー表示 TStringList のメモリリークが発生していることが分かる!

実践テクニック 5 開発環境便利機能 FastMM のソース組込 FastMM の組込 ( プロジェクトソース ) program Project1; uses Vcl.Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin ReportMemoryLeaksOnShutdown := True; //1 行追加 Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end. この 1 行で FastMM が有効

ご清聴ありがとうございました