くだすれDelphi(超初心者)その28

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2005/12/28(水) 11:08:34
procedure TForm1.Button1Click(Sender: TObject);
begin
 flag := Random(15);
 ShowMsg(Format('%d-%d', [count,flag]));
 Inc(count);
end;

こういうことじゃないのか?
953デフォルトの名無しさん:2005/12/28(水) 11:47:12
>格納して出し入れしたい
954デフォルトの名無しさん:2005/12/28(水) 12:20:42
エロス
955950:2005/12/28(水) 12:55:44
>>951

あはっ、そうでした。たんに配列を使うだけでしたね。>>948 で解決ですよね。
956デフォルトの名無しさん:2005/12/28(水) 14:28:03
CheckBox1.Checked := True って値を入れると
CheckBox1のOnClickイベントが発生しちゃいますよね

OnClickイベントを通らずに、CheckBox1.Checkedの値を変更したいんですけど、
何か良い方法があればご教授おねがいします
957デフォルトの名無しさん:2005/12/28(水) 14:45:42
CheckBox1がForm1に貼り付けられているとして、
メンバー変数にブーリアン値を用意する。
で、それを起動時にfalseにでも初期化して、
CheckBox1のChecked値を変える直前にそのブーリアンをtrueにして、
変更したらブーリアンをfalseに戻す。
OnClickイベント内では、最初に、ブーリアンをチェックして、trueならexitする。
958デフォルトの名無しさん:2005/12/28(水) 14:47:32
>956
begin
 CheckBox1.OnClick := nil;
 CheckBox1.Checked := True;
 CheckBox1.OnClick := CheckBox1Click;


959デフォルトの名無しさん:2005/12/28(水) 15:14:48
>>957-958
ありがとうございました。うまく動きました。
958さんの方法をお借りしました。
957さんの方法のほうが分かりやすいんですけど、あまり変数は増やしたくなかったんで。
でもいろんなものに応用は利きそうですね。

脳みそにしわが1本増えました。どうもです。
960ななしへたぐらま ◆XcB18Bks.Y :2005/12/28(水) 17:02:16
そろそろ次スレの季節でございます.とりあえずテンプレを貼りますのでご意見よろしくお願いします.すいませんがまた連投いたします.
タイトル:くだすれDelphi(超初心者用)その29
※『用』がしばらく抜けていたので復活
-----------------------
このスレッドはBorland(ボーランド)のDelphi(デルファイ)について、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。

<前スレ>
くだすれDelphi(超初心者)その28
http://pc8.2ch.net/test/read.cgi/tech/1131168199/l50

<雑談・討論などはこちらへ>
バカボンのDelphi不買談話室その28
http://pc8.2ch.net/test/read.cgi/tech/1134668922/l50

<その他>
Borland Home Page
http://www.borland.co.jp/

#過去スレは>>2-10のどこかに
-----------------------
961ななしへたぐらま ◆XcB18Bks.Y :2005/12/28(水) 17:03:45
962ななしへたぐらま ◆XcB18Bks.Y :2005/12/28(水) 17:08:14
963デフォルトの名無しさん:2005/12/28(水) 17:48:02
イラネ
964デフォルトの名無しさん:2005/12/28(水) 17:54:56
もうどうでもいいです、はい
965デフォルトの名無しさん:2005/12/28(水) 18:42:16
乙。BDNも追加して欲しぃ
http://bdn.borland.com/delphi/
966デフォルトの名無しさん:2005/12/28(水) 20:09:20
967デフォルトの名無しさん:2005/12/28(水) 20:15:46
DelWikiのところは>>833に差し替えかな?
>>966はイラネ、必要なときはいつでもVSのスレに見に行きゃいいし
968デフォルトの名無しさん:2005/12/28(水) 20:17:49
966に反応するな
969デフォルトの名無しさん:2005/12/28(水) 20:45:10
俺はたるんだ某へのプレッシャーになるから>>966はあったほうがいいな。
いや、かならず入れるべきだよ。
970毛の生えたフサギコ:2005/12/28(水) 20:48:32
>>960
すみません。入力ミスで、その1からず〜っと気にしていたことですが・・・。

>何が何だが(×)
>何が何だか(○)です。

訂正をおねがいします。
971デフォルトの名無しさん:2005/12/28(水) 20:49:12
ところでInternet Archive から本家 DelWikiってみられない気がするんだが。
972デフォルトの名無しさん:2005/12/28(水) 21:18:14
ポート番号付けたら見られるよ。
973デフォルトの名無しさん:2005/12/28(水) 21:40:53
>>972
サンクス。見られました。
974ななしへたぐらま ◆XcB18Bks.Y :2005/12/28(水) 22:18:24
某社がアレだという点には同意ですが,このスレにいらっしゃる方というのは基本的にDelphiについて情報を得たい方です.
そう考えるとそういう人たちにとってはDelphiと無関係の情報はノイズでしかないと思うのです.
このスレでしつこくリンクを貼り付けるより,Visual Studioのスレを盛り上げて興味を引かせる方が効果的でしょう.
と,いうわけで,ほぼ全部取り入れてみた新しい >>1 です.BDEは役に立つ方がどれくらいいるのかという気もするのですがとりあえず入れました.
-----------------------
このスレッドはBorland(ボーランド)のDelphi(デルファイ)について、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。

<前スレ>
くだすれDelphi(超初心者)その28
http://pc8.2ch.net/test/read.cgi/tech/1131168199/l50

<雑談・討論などはこちらへ>
バカボンのDelphi不買談話室その28
http://pc8.2ch.net/test/read.cgi/tech/1134668922/l50

<その他>
Borland Home Page
http://www.borland.co.jp/
DelWiki 避難所。
http://wiki.s54.xrea.com/delphi/
BDN(Borland Developer Network)※英語
http://bdn.borland.com/delphi/

#過去スレは>>2-10のどこかに
-----------------------
これから帰宅なので帰宅後もう一度来るつもりですが,徹夜明けなので爆睡してしまうかもしれません,そのときはごめんなさい.
975デフォルトの名無しさん:2005/12/29(木) 00:01:59
同じxreaというか無料鯖にwiki作っても旧wikiと同じ末路を辿るとしか思えないんだが。
というわけで有料鯖か自鯖でよろしく。
976デフォルトの名無しさん:2005/12/29(木) 00:07:00
wikiってログイン必須に出来ないの?
977デフォルトの名無しさん:2005/12/29(木) 00:15:25
>>975
何もできない猿がよく言うよ┐(;´〜`)┌
978デフォルトの名無しさん:2005/12/29(木) 00:29:15
MediaWikiなら編集者の履歴が残るが…マァ折角置いてくれたんだし、どうこう言うこともなかろう
問題は、Wikiは情報を溜める場所であって議論のための議論は他所でやれ、ってのがどこまで徹底できるか、かな
979デフォルトの名無しさん:2005/12/29(木) 01:00:51
すきにやればいいじゃないの。やなら見なけりゃいいんだし。
980デフォルトの名無しさん:2005/12/29(木) 07:35:34
ライブドアのwikiならログイン必須
981デフォルトの名無しさん:2005/12/29(木) 09:04:21
乙。BDNも追加して欲しぃ

駅で階段見上げたら女子中学生がいてさ、スカートの中見ちゃったんだよ。
そんでその女子中学生にいきなり振り向かれて
「せ、責任とってお嫁に貰ってください・・・」
って言われちゃったんだ。
俺は慌てちゃってさ
「・・え?は、はぁ・・・」
みたいに返してそのまま通り過ぎようとしたら
俺のシャツをチョコンと指で掴んでずっとついてくるのね。
そんでとうとう家までついて来ちゃってさ
「はじめてですけど覚悟は出来てます・・・」
とか言うわけよ。
俺もう理性が吹っ飛んじゃって

(全てを読むにはワッフルワッフルと書き込んでください)
982デフォルトの名無しさん:2005/12/29(木) 13:29:45
ワッフルワッフル
983デフォルトの名無しさん:2005/12/29(木) 15:57:03
すいません、THashedStringListの使用方法について教えてください。

やりたいことは「キー」と「値」をハッシュで管理したいのですが、使用方法が分かりません。
データを追加するときはAdd('キー=値')で登録するとして、データを取り出すときはどうするのでしょうか。
IndexOfName(キー)でインデックスは取得できるようですが、値は自分で分解するのでしょうか?
もっとスマートなやりかたが有りそうな気がするのですがヘルプを見ても分からないし・・・

よろしくお願いします。
984デフォルトの名無しさん:2005/12/29(木) 16:20:30
LoadFromFileじゃダメだった?
985デフォルトの名無しさん:2005/12/29(木) 16:40:40
今年も残り少ないのですが質問です。動的配列にExtended型のデータを入れて
いるのですが、これをファイルに保存したり読み出したりする方法をご存知の
方がいましたらご教授お願いします。(Delphi7Pro,WindowsXPです)
986デフォルトの名無しさん:2005/12/29(木) 16:45:55
>>983
TMemIniFile.ReadStringのソース見ると
Copy(Strings[Strings.IndexOfName(キー)], Length(キー) + 2, Maxint);
って感じで取ってるからそーゆーことなんじゃ?

つーかTHashedStringListの代わりにTMemIniFile使った方が扱いは楽かもよ
987デフォルトの名無しさん:2005/12/29(木) 16:55:35
>>985
やり方は山ほどある。
俺なら、TFileStreamを使って、
配列の中身を一個ずつ
filestream.write( ex , sizeof(ex) ) ; // ex : extended ;
とかするかな。
988デフォルトの名無しさん:2005/12/29(木) 17:00:11
>>983
i := hoge.IndexOfName('キー');
Value := hoge.Values[hoge.Names[i]];
989988:2005/12/29(木) 17:04:10
ごめ、IndexOfNameに気を取られすぎてた('A`)
Values['キー']で充分だな
990デフォルトの名無しさん:2005/12/29(木) 17:36:24
ワッフル!
991983:2005/12/29(木) 17:49:07
>>984
プログラムの中でしこしこしたかったもので。

>>986
TMemIniFileなんてあるのですか。なんでIniFilesユニットなのかと不思議でした。

>>988,989
あ、なるほど。この様に使うのですか。

皆さん、有難うございました。やっと使えそうです。
992デフォルトの名無しさん:2005/12/29(木) 17:56:06
>>987 ありがとうございます。TFileStream で検討したいと思います。
ただ、配列の要素数が数万件あるのです。試してみるつもりですが、
他の方法もご存知でしたら教えていただけますでしょうか。
993デフォルトの名無しさん:2005/12/29(木) 18:12:10
1要素のサイズが分かっていて、個数も分かってるんだから一行で TFileStream に書き込めるでしょ。
994デフォルトの名無しさん:2005/12/29(木) 18:16:40
そういやそうだな
995デフォルトの名無しさん:2005/12/29(木) 18:41:42
>>993 あ、そうなんですけど、性能が心配だったもので…
でも試してみたところ、1件の動的配列の読み書きはほとんど一瞬で終わりました。
ですが実は数万件の配列要素を複数(ユーザー次第)同時にI/Oする処理が追加に
なる予定ですので、(ブロッキングみたいな?)他の方法を聞いた次第なのです。
と、ここまで書いてきて、TMemoryStream に書いといてから Write する、みたい
な方法も思いついたのでちょっと試したいと思います。
996デフォルトの名無しさん:2005/12/29(木) 19:14:48
>>995
数が固定されてるならファイルマッピングとか
997デフォルトの名無しさん:2005/12/29(木) 19:26:04
>>995
Delphiでファイル書き込みってのはさ、基本的に4つなのよ。

1 ファイル変数を使う
2 TStreamの派生クラスを使う
3 その他のクラスを使う
4 Windows APIを使う

3の場合ってのは、今回なら例えば、一項目を一行のテキストデータにしておいて、
TStringListで書き込むとかいう場合ね。
998デフォルトの名無しさん:2005/12/29(木) 19:55:43
>>996 >>997 色々と情報、ありがとうです。要素数は固定されてないのです。
ファイルのI/Oもいろいろな方法がありますですね。小出しにしてすみませんが
将来は他のバイナリデータやテキストデータもいっしょくたにひとつのファイルに
書かなくてはならないので(さっき思い出しました)、TStream を使って進めて
行きたいと思います。
999デフォルトの名無しさん:2005/12/29(木) 21:05:08
次スレは?
1000デフォルトの名無しさん:2005/12/29(木) 21:17:52
ワッフルワッフル!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。