無節操なリファレンス Delphi編

 


ふむ、Borlandのページにもまとめてあるのね:
http://www.borland.co.jp/tips/delphi/dh002/dh_27.html

VBの命令との対比があって、わかりやすい。どうのこうのいって、VBのコマンド理解してるんだな(苦笑)
http://homepage2.nifty.com/boheme/delphi/vbtodel/delvb.html

現在:40件の説明が無造作にならべられてます。

配列Xを0〜Nまで定義 x : array [0..N] of 変数型;
値を代入するときは、まとめて記載して
x : array [0..N] of 変数型=(A1,A2,A3,A4・・・);
とする手もある。
変数代入 変数名:=値
通常は、
変数の型定義 var 変数名:形
文字列 型としては、Stringになる(あたりまえ)。シングルクォートで囲む
ダブルクォートだとエラーでます。
関数1(procedure) Procedure フォーム名.コンポーネント名 イベントの種類(引数)
procedure は、日本語訳すると、手続きという意味で、関数と言ってしまうと、御幣があるんだとさ。
functionは返り値をもつ・・・のかな?たしかそうだとおもう。

procedure 関数名();をprivate(または、public)宣言の中で行う。
ディフォルトで、

private
{ Private 宣言 }

ってなってるところですな。で、メイン(?)に、procedure フォーム名.関数名()を書いてBegin〜End;の中にかく。呼び出しは関数名()と書けばよし。
以上は、引数をもたないものについての関数の説明。引数をもつのは、Functionを使うみたい。fuctionは後述

文字→数値 数値変数=StrToInt(文字変数か文字列)
数値→文字 文字変数=IntToStr(数値変数か、数)
各コンポーネントのプロパティ変更 コンポーネント名.プロパティ=値
例:コンポーネント名.width=横幅
  コンポーネント名.Color=色
警告窓 showmessage('文字列'ないし、文字変数)
条件分岐 IF文の使い方は、ちょっとクセがありますね。気をつけるのは、ELSEの前・・・つまり、IF文の処理の最後のENDには、セミコロンはつけないということです。ELSEがない場合は、つけます変なの(ただし、真・偽のときの処理が一つしかない場合、Begin〜Endは省略可能になります)。

IF A=0 THEN
  Begin
   A:=2;
  End
 Else
  Begin
   A:=0;
  End;

等式は、==でなく=になる。
等しくない場合は、<>になる。

16進数表記 あたまに$をつける
with.・・・do 特定のコンポーネントに対して、処理を行うときに、endまでの処理において、コンポーネント名を省略する(の?)。複数もOK。以下参考(http://hp.vector.co.jp/authors/VA015850/program/dtips16.html
Form2.Flag.Flag1 := Form3.CheckBox1.Checked;
Form2.Flag.Flag2 := Form3.CheckBox2.Checked;
Form2.Flag.Flag3 := Form3.CheckBox3.Checked;
Form2.Flag.Flag4 := Form3.CheckBox4.Checked;
Form2.Flag.Flag5 := Form3.CheckBox5.Checked;
with Form2.Flag, Form3 do
begin
  Flag1 := CheckBox1.Checked;
  Flag2 := CheckBox2.Checked;
  Flag3 := CheckBox3.Checked;
  Flag4 := CheckBox4.Checked;
  Flag5 := CheckBox5.Checked;
end;
現段階で複数利用は未使用(情報のみ)
TMemoコンポーネント コンポーネント名.Lines[行数]で配列みたいに考えることができる
コンポーネントに書かれたものの保存 コンポーネント名.SaveToFile('ファイル名')
ファイルを読みこんでコンポーネントに与える コンポーネント名.LoadToFile(’ファイル名’)
乱数 Form作成時(Createの中で)randomize;関数を用いる。
で、乱数の発生をホントの乱数にする
変数=random(最大値)で、乱数発生
変数のスコープ Implementation内で定義→Private
Interface内で定義→Public

関数内で定義する場合、beginの前にかく。

構造体 AのB(C,D,E)のデータ

Type
 適当な名前=record
 var B=型;
 var C=型;
 var D=型;
End;
var 適当な名前:A

以上のように構造体Aについて設定できる。
AのBを参照、代入するには、
A .Bというかんじで、ドットで区切る。

クラス 構造体内部に関数をもつようになったもの。意味不明?ごめん、説明できない。
ComboBox の参照位置
変数:=コンポーネント名.ItemsIndex;
数値扱いなので、showmessageで確認するときは、IntToStrで文字化する。

なお、コンボボックスの内容・・・HTMLだとOPTIONにあたる個所はプロパティの中のItemsをクリックすると、エディタが出てくる。
ただ、HTMLのOPTIONのValueに相当するのが、わからん。

今参照させてるOPTIONの番号を確認するのは、簡単にできるんだけど・・・番号を確認するときは、

数値変数:=ComboBox名.ItemIndex;

また、参照されてる文字を調べたければ

文字変数:=ComboBox名.Items[ComboBox名.ItemIndex]

でOK.。つまり、ComboBox.Items[番号]は、配列のように参照できる、ということですね。多分、ListBoxも同様にできると思う。HTMLでいえば、SELECTでSIZE指定して縦幅を増やすようなかんじですね。

Edit の値は、Textをとる。Labelだと、Captionでしたねぇ。
close その窓を閉じる命令です。
関数内での変数定義 procedureとbeginの間に、定義する。関数内でつかうFOR文のループ変数も定義する。忘れずに
関数から出る ←この書き方でわかるかな?多分、Exit;でいいんだと思う。
画像参照(ファイルから) If OpenPictureDialog1.Execute then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

OpenPictureDialog1というインスペクトが存在するときに、Image1という画像インスペクトの上に表示するときは以上の書き方になる。

CHECKBOXとRADIOBOX まぁ、Checkedがtrueか、falseをとるわけだ。問題はRadio.boxの場合。同じグループで、一つと選ぶわけだから。そういうときは、RadioGroupeというコンポーネントがあるんで、それを表示して、その上に、RadioBoxをのせてあげる・・・のですね、多分。
ポップアップメニュー ポップアップメニューは右クリックの処理です。FORM上に配置しても実行されない非表示のコンポーネントの一つです。メニューを設定するような感覚でやってください。メニューと共有することが多いので、その場合、同じ関数を実行するようにイベントを選んでください。
スクロールバー スクロールバーで数値入力するってヤツありますね。これ、スクロールバーのコンポーネントで、MaxとMinを指定してあげます。で、それぞれの値を知りたいときは、
数値変数:=ScrollBar1.Position;でOK

こいつ、3つ用意して、色を作りたいとき、たとえば、Panel1の色を編かさせるなら

Panerl1.Color:=RGB(ScrollBar1.Position, ScrollBar2.Position, ScrollBar3.Position);

なんて具合。動いてすぐに変化させるなら、イベントのところをonChangeで指定して関数書くよろし。ただ、色の指定が、Blue,Green、Redの順なんですねぇ〜

SPLIT・・・つか文字列を適当な文字で分けて配列にいれる。 これがわからんと、データ保存できんやん(−−;というわけで、探そう!
http://homepage1.nifty.com/bmonkey/delphi/delphi.html
コンポーネントでは、Splitができるものも存在する。また、以下にあげるのは、ココで見つけた。ぶうかさん自作の関数。他にも一年生Home Pageさんの自作関数であるこれもほぼ同様の働きをもつ。

カンマ区切りの文字列から指定番目の文字列を切り取る
プログラムをしていると、カンマ区切りの文字列からデータを切り出したいという場面が多々あります。この辺も関数化して、共通ライブラリとしておくと便利です。

カンマ区切りのテキストから、指定番号目のデータを切り出します
Src String 切り取る文字列
Num Integer 切り取るデータの番号
<res> String 切り取ったデータ
ex)
Ans = CutData("ABC,DEF,GHI,JKL",3) = "GHI"
Ans = CutData("ABC,DEF,GHI,JKL",9) = ""

■ソース

function CutData(Src: String; Num: Integer): String;
var
  WStr: String;
  Ans: String;
  CP: Integer;
  CT: Integer;
begin
  WStr:=Src;
  Ans :='';
  CT :=Num;
  while CT>0 do begin
    CP:=AnsiPos(',',WStr);
    if CP>0 Then begin
      Ans :=Copy(WStr,1,CP-1);
      WStr:=Copy(WStr,CP+1,Length(WStr)-CP);
      CT:=CT-1;
    end else begin
      if CT=1 then Ans:=WStr;
      CT:=0;
    end;
  end;
  Result:=Ans;
end;

コントロール・・・コンポーネントを一括して、配列として認識する http://www.asahi-net.or.jp/~HA3T-NKMR/tips002.htm

ここ参照。JSで、FORMをNAMEで参照する場合と、配列で参照する場合が、ある。後者を使う方が、添え字を用いれて楽なわけ。上記URLの文章は自分なりにあとでまとめる。
現段階で未使用(情報のみ)

文字列の置き換え 現段階で未使用(情報のみ)

Delphi4から、文字列の置換を行なう「StringReplace」という関数が追加されました。
この関数を使えば、簡単に文字列の置換を行なうことが出来ます。

StringReplace(対象文字列 , 置き換え前の文字列 , 置き換え後の文字列 , オプションフラグ)

オプションフラグは文字列全体を対象とさせるrfReplaceAllと、 英大文字小文字を無視して置換するrfIgnoreCaseを指定します。
(集合型ですので[rfReplaceAll]などと指定します。)
戻り値として、置き換えられた文字列が返されます。

例)
s := StringReplace('Built by VisualBasic','VisualBasic','Delphi',[]);

変数sには「Built by Delphi」という文字列が返されます。

色変数(笑)を文字にする ColorToString
16進数変換 IntToHex
文字列の挿入
Insert 手続き  ユニット  System
Insert は部分文字列を文字列の指定された位置に挿入します
現段階で未使用(情報のみ)
文字の長さ
Length 関数  ユニット  System
Length は,文字の長さを返します。
配列の長さも出ないかなぁ・・・(^^;未確認だけど
文字列から、指定文字を探し出す
Pos 関数  ユニット  System
Pos は,指定された文字列にある特定の部分文字列の最初の文字のインデックス値を返します。
現段階で未使用(情報のみ)
関数(function) 関数は、必ず、その関数を使うメインプログラムよりも前で、定義しなくてはなりません。

function は、処理の結果を、返すことのできる関数です。結果は、Result に、代入します。以下、書式です。

	function 名前 ( 変数 : 変数の型; 変数 : 変数の型; ... ) : 関数の型 ;
	begin
	end;

それでは、実際の例です。

	// 関数の定義
	function Tasizan ( a : Integer; b : Integer ) : Integer;
	begin
	  Result := a + b;
	end;

// メインプログラム var kekka : Integer;
begin kekka := Tasizan ( 300, 500 );
Writeln ( kekka ); Readln;
end.

http://www.text2music.com/mine/delphi/kouza/index.htmより抜粋してます。詳しくはそちらを・・・

集合型、レコード型 レコード型は構造体のところでも説明済み。
http://isweb21.infoseek.co.jp/computer/wblue/prog/c2_03.htm

わかりやすいと思う。後日まとめます。

[Q]共有イベントでどのボタン(コントロール)から呼ばれたかを調べるには? http://www2.biglobe.ne.jp/~sakai/gensfaq2.htm#a001

ふうん、タグプロパティってこういうときにつかうんだね。ある関数Aにおいて、複数のイベントからよびだされたとき、どのイベントから呼び出されたか?(Bというボタン、Cというボタン、Dというコンボボックスのセレクト)・・・それら複数のイベントから呼び出されたときに、Aの関数内で、これは、ここからきたやつだな?ってかんじで見分けるのに、Tagを使うそうです、はい。

CSVファイルのインポート、アウトプット カンマ区切りの・・・のところで、利用させていただいた、ぶうかさん自作の関数でデータベース用の自作関数をオープンソースで公開してくださってます。ありがたや〜ありがたや〜。

 

 


給料前でお金がない・・ 低金利でお得なローン探し 過払い金の回収ならこちら
[PR] | RMT防犯カメラ中国転職サイトSEO対策消費者金融不動産担保ローン車 買取ハワイ挙式転職テンプレート沖縄旅行免許合宿二輪引越し消費者金融税理士ゴルフ会員権留学レーシックマッサージFX投資信託くりっく365アフィリエイト育毛剤FXホームページ制作デイトレード海外現地情報タイバンコクハワイ レンタカーベスト ハワイ ホテル レーツバリ島Hawaii hotelsHawaii Activitiesbhhrハワイホテル
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行 - タイムシェア - ホテル 予約
無料ホームページ - 携帯ホームページ - 無料ホームページ作成 - レンタルサーバー - ブログ - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル - ハワイ 不動産 - プーケット ホテル - タイムシェア - Timesell