Difference between revisions of "IDE tricks/ja"

From Lazarus wiki
(Object Inspector: Events: Frames: Jump to the source of an inherited event)
(Customize new unit / form)
Line 9: Line 9:
 
ただ、open file (Ctrl+o)で、存在しないファイルを指定します。たとえば、unit1.pasを指定すると、IDEはそのファイルを作るかどうか、尋ねます。
 
ただ、open file (Ctrl+o)で、存在しないファイルを指定します。たとえば、unit1.pasを指定すると、IDEはそのファイルを作るかどうか、尋ねます。
  
= Customize new unit / form =
+
= 新規のユニット、フォーム =
  
Since 0.9.27 you can right click on the 'New unit' (New form) speedbutton and set the file type that should be created.
+
0.9.27以降の場合、'New unit' (New form)のスピードボタンを右クリックし、生成するファイルタイプを指定することができます。
You can register more file types via the IDEIntf or the project templates package.
+
IDEIntfか、project templates パッケージで指定することで、別のファイルタイプを登録することもできます。
  
 
= IDE マクロ =
 
= IDE マクロ =

Revision as of 04:43, 5 September 2011

Deutsch (de) English (en) français (fr) magyar (hu) 日本語 (ja) 한국어 (ko) русский (ru) slovenčina (sk)

日本語版メニュー
メインページ - Lazarus Documentation日本語版 - 翻訳ノート - 日本語障害情報

Open file で新しいファイルを作る

新しいファイルをつくって、保存することができます。または、1回の操作で新しいファイルをファイル名とファイルタイプを指定して、作成することもできます。

ただ、open file (Ctrl+o)で、存在しないファイルを指定します。たとえば、unit1.pasを指定すると、IDEはそのファイルを作るかどうか、尋ねます。

新規のユニット、フォーム

0.9.27以降の場合、'New unit' (New form)のスピードボタンを右クリックし、生成するファイルタイプを指定することができます。 IDEIntfか、project templates パッケージで指定することで、別のファイルタイプを登録することもできます。

IDE マクロ

IDE Macros in paths and filenames/ja

IDEが作成したコマンドラインパラメータをコンパイラで取得する方法

Project -> Compiler Options -> Show Options でパラメータをコピーすることができます。ここに、プロジェクトディレクトリまでの相対パスがあります。多くの場合、調整することなく、これをコピーして使うことが出来ます。

これらのパラメータは *.compiled ファイルにも保存されます。たとえば、test1.lpiというプロジェクトに対しては、test1.compiledというファイルが生成されます。これは、単純なテキストのxmlファイルになっていて、オプションやパスを簡単に他のコンピュータにコピーすることができます。 このファイルは実行ファイルが作成されるのと同じディレクトリにおかれます。

パッケージも同じ仕組みになっています。

このように、lazarus IDEがなくても、(願わくばバグがなく、動く)コードをコンパイルすることができます。

1つを残して、他のエディタファイルをすべて閉じる方法

gtk環境においては、ソースエディタページは、ページ名の右側に閉じるボタンがあります。Ctrlキーを押しながら、そのボタンを押すと、クリックしたもの以外の全ファイルが閉じます。

コンポーネントパレット

パレットの中のコンポーネントを見つける

どのページになるかしならくても、コンポーネントの名前を一部でも知っていれば、コンポーネントを見つけることができます。 コンポーネントパレット上で右クリックをして、popupメニューを出します。'Find component'を選択します。 名前の一部をタイプすると、リストがフィルタされます。

パレットのコンポーネントのパッケージを開く

コンポーネントパレット上で右クリックをして、popupメニューを出します。'Open package'を選択します。

パレットのコンポーネントの宣言を見つける

コンポーネントパレット上で右クリックをして、popupメニューを出します。'Open unit'を選択します。

リナックスで、デバッグ中にアプリケーションがフリーズします。

マウスを捕捉しているアプリケーションがgdb(デバッガ)によって停止させられると、X (デスクトップ) がフリーズすることがあります。

2番目のXセッションを使う

2番目のXを次のように開始することができます。

  X :1 &

Ctrl-Alt-F7 で、:0 へ切り替えることができます。同様に、 Ctrl-Alt-F8 で :1 へ切り替えることができます。

この後で、2番目のgnomeセッションを次のように開始します。

  gnome-session --display=:1 &

VNCを使う

tightvncserver/realvncserverによる VNCサーバ/クライアントをインストールすることで使うことも出来ます。

サーバを開始するには、

  vncserver :1

セッションも同時に開始されます。vncviewerを通してvncserverに接続します。

アプリケーションをセカンドサーバでデバッグする

Lazarusではプロジェクトのrun parameterで、"use display"にチェックを入れて  :1を入力してください。

これでアプリケーションは2番目のXサーバで実行されます。アプリケーションがデバッグされて停止することがあっても、2番目のXサーバがフリーズするだけで、最初のXサーバーには影響することがないでしょう。

IDEのコンパイルを速くする

Lazarus自身を開発する作業をしていると、IDEを何度もリビルドすることがあります。 もし、次のような裏技をつかうと、沢山のメモリと最新のCPUがあれば、あっという間にIDEをコンパイルすることができます。

  • Lazarusのソースは高速なハードディスクにおいてください。ネットワーク上におくと遅くなります。
  • 必要なパッケージのみインストールしてください。
  • USESVN2REVISIONINC=0 にして、revision.incのアップデートをスキップしてください。
  • 部分だけをコンパイルしてください。パッケージ登録が再コンパイルされると、全てのインストールされているパッケージも再コンパイルされます。IDEIntfが再コンパイルされると、すべての設計時パッケージが再コンパイルされます。

IDEウインドウのソースファイルを探す

  • IDE ウインドウを開きます.
  • Ctrl+Shift+F1を押してヘルプエディタを開きます。
  • ウインドウのクラス名を覚えて、閉じます。
  • 'Find In Files'を使って、そのクラスのソースファイルを探します。

オブジェクトインスペクタ: Events: Frames: 継承されたイベントにジャンプする

オブジェクトインスペクタは、ClassName.MethodNameとして継承されたイベントを表示します。 ダブルクリックすることで、新規のイベントを生成します。 コンボボックス上で、Ctrlとマウスクリックをすると、新規のイベントを生成せずに、継承されたメソッド本体にジャンプします。

Events (Method properties) in the Object Inspector

Events (Method properties) are special properties, because they need as value a code address pointer, which does not exist at design time. That's why Lazarus uses the same trick as the Delphi IDE: Every method value can be type casted to TMethod, which contains Data (the object or class pointer) and the Code (the address pointer). Normally both are not nil. The IDE sets Data to a special key value for its internal lookup table and sets Code to nil. This means:

  • At runtime when the program loads the .lfm file the real method (Data+Code) is used
  • At designtime a method value can either be a real method (Data<>nil and Code<>nil) or a fake method (Data<>nil,Code=nil)
  • The compiler has for Delphi compatibility some specials about comparing method values.

Do not use: <Delphi> if OnMyEvent<>nil then OnMyEvent(...); // wrong, because it checks Data too </Delphi>

Because this checks both Data and Code and will execute the fake method, resulting in a jump to nil. This will only raise an exception, so it does not do much harm, but the IDE will show the user an error dialog. Use instead the Assigned function: <Delphi> if Assigned(OnMyEvent) then OnMyEvent(...); // correct, checking only Code </Delphi>

Do not use: <Delphi> if OnMyEvent=NewValue then exit; // wrong, because it compares only Code </Delphi>

Because this only compares the Code. Use instead <Delphi> if CompareMem(@FOnMyEvent,@NewValue,SizeOf(TMethod)) then exit; // correct, checking both Data and Code </Delphi>