くだすれDelphi(超初心者向け)

このエントリーをはてなブックマークに追加
952950:03/05/24 07:18
Imageをクリックした時の動作をTagごとに分けたいんです。
Imageは50個ぐらいでTagが1〜90ぐらいまであるので、caseの中身だけ使い回しできたら早いんですが。。
Image50個全部に↓を書いたら何千行になってしまいますよね。

case Image1.Tag of
 1 : 関数A;
 2 : 関数B;
 (以下略)
end;

この場合、caseで良いんでしょうか?
まだプログラミング始めて1週間なので、これ以外思いつきません。
>>952
関数なら関数ポインタとTagとを型キャストで相互変換するとか
メソッドならメソッド配列を作って配列引数として呼び出すとかさ
と書いた後で思ったのだが、Image.OnCickをTag毎に設定すればいいんじゃないの?
>Imageは50個ぐらいで

モグラたたきゲームか?
どっちにしろ、アプローチの仕方が悪いぞ。
956デフォルトの名無しさん:03/05/24 07:44
DelphiのUTF-8ライブラリってみなさん何使ってますか?
957950:03/05/24 08:43
>>953
全然意味がわかりません(´Д⊂

>>955
もぐらたたきじゃないんですけど、どうしてもImageを使わないといけないツールなんです。
958950:03/05/24 08:57
自己解決です。

case (Sender as TImage).Tag of
 1 : 関数A;
 2 : 関数B;
 (以下略)
end;

でできました。
ありがとうございました。
>>956
System.UTF8Decode/UTF8Encode
AnsiToUTF8 / UTF8ToAnsi
では足りない?どういった処理をしたい?
>>959
おい。先に言って下さい。

今し方UCS2<->UTF-8変換ルーチン書き終えてマターリしてたのに・・・。
すみません限界です。
メールチェッカーを作っている者ですが
アイコン上にマウスをもっていくと
エラーダイアログが大量に出て落ちてしまいます。
ソースを見て頂けませんか?
もう自分ではどこが悪いのかが分かりません…
ttp://isweb41.infoseek.co.jp/computer/ultra-k/test.txt
ここにテキスト形式であげました。
どうかよろしくお願いします<(__)>
962たぶん:03/05/24 10:19
TaskTrayWndProc 内で CheckIT 変数を参照していますが、
CheckIT変数には代入されないでしょう。

問題は、
1、コンストラクタ中でループしてる為に
  たとえば、  CheckIt:= TCheckIt.Create; としたとしても、TaskTrayWndProc メソッドが呼ばれる時には代入されてない

2、そもそも
if (Msg.LParam = LongInt(TaskBarReCreate)) then
 と Self を使えば CheckItを参照する必要はない


という事では?
>>961
>エラーダイアログが大量に出て落ちてしまいます。

エラーメッセージ読まぬものにプログラムする資格無し。
>>952
Image1にそれを書いて、
他のImageNのOnClickにImage1Clickを割り当てたらいいと思う。
またはActionList使う。
>>961
一行目の時点でミスってるからじゃないの?
>>965
ワラタ
967デフォルトの名無しさん:03/05/24 13:43
Delphi 6 RTL アップデート #3 キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
968950:03/05/24 14:15
>>964
それだと、Image2の時もImage1のTagを参照してしまうと思うんですが。
>>941
 手続きまたは関数の中で宣言する変数(ローカル変数)の場合は最初の値はどちらかはわかりません.それ以外の場合はFalseです.
type
TForm1 = class(TForm)
private
FNantoka: boolean; // フィールド変数.初期値はFalse
procedure Foo;
end;

var
Kantoka: boolean; // グローバル変数.初期値はFalse

function HoeHoe: boolean; // 関数の場合.戻り値も初期値は不定.戻り値は必ず代入しなければならない.
var
Flag: boolean; // ローカル変数.初期値は不定
begin
(略)
end;

procedure TForm1.Foo; // メソッドの場合
var
Done: boolean; // ローカル変数.初期値は不定
begin
(略)
end;

 実際には毎回同じ値が返ってくるので一見大丈夫そうですが,保証されていない以上,同じ値が返ってくることを当て込んではいけません.(コンパイラオプションによっては値が変わるようです) また,ローカル変数の初期値が不定なのはboolean型変数以外でも同じです.
970デフォルトの名無しさん:03/05/24 14:23
Readmeを見てもアップデートの仕方が良く分かりませんでした。
なぜ、今までと違う複雑な形式でアップデートさせようとしているのでしょうか?
デルファイの限界が垣間見えまし(ry
>>968
もっと頭使ってください・・・
Image1.Tagじゃなくて、Form1.Tagを使うとか
脳内保管で意味分かんないこと書いてしまった(↑2行目)
何やりたいのか見えてこない。頭使えとしか言えない
974A:03/05/24 14:30
>>968
その為の、
case (Sender as TImage).Tag of
だと思うぞ。
解決したんじゃ……?
975950:03/05/24 14:33
>>971
頭使ったんですけど、自分の力ではどうしようもないから先人の知恵をお借りしようとここへ来たわけです。

>>974
解決したんですが、後レスだったんで、そっちの方が良いのかなぁと思ったんです。
っていうか、もう上のほうで教えられてるのに、
それを調べもせず、分かろうともせずに「意味が分かりません」で終わらせているのはどういうことなんだろう。
ネタなんだろうか。
>>972「フサギコとモナーの」って何か幼稚(というよりマニアック)な感じがするんだけど、なんとかならんか
ギコ猫の相談室というスレがこの板が出来る前からあった。
その流れでフサギコやモナーが使われている。
a
aa
aaa
aaaa
aaaaa
aaaaaa
そいつは知らなかったぜ
986デフォルトの名無しさん:03/05/24 15:08
そろそろ新スレ.....

「くだらないDelphiはここに書き込め Part2」
sage
sagege
1000
992デフォルトの名無しさん:03/05/24 15:20
VB.NET最高
993に釣られてみるか。

>>993
VB厨のふりしたDel厨死ね
995デフォルトの名無しさん:03/05/24 15:23
ランタイムエラー出るんでないの?
996デフォルトの名無しさん:03/05/24 15:25
997デフォルトの名無しさん:03/05/24 15:27
( ´д)ヒソ(´д`)ヒソ(д` )
100!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。