08/06/03 16:00:43
RTLには含まれていないので自分で定義してください。
830:828
08/06/03 16:57:30
>>829
ども、わかりました。
831:デフォルトの名無しさん
08/06/03 22:11:26
>>825
> 1
> 2
> 4
> 8
> ・
これは2乗ではないな、 1 を 起点に x2 していってるだけ
> ボタンをクリックするたびに
なら、ボタンクリックだけでいきなり44444444回もループしたらダメだろ?
Button1のTagプロパティに1をセットして、
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add(IntToStr(Button1.Tag));
Button1.Tag:=Button1.Tag*2;
end;
これでいいんではないか?
832:デフォルトの名無しさん
08/06/03 23:10:46
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
1^2 = 1
2^2 = 4
3^2 = 8
の違いか。
833:デフォルトの名無しさん
08/06/03 23:43:13
ぢゃ、こうか?
Button1のTagプロパティを0に戻して
Memo1.Lines.Add(FloatToStr(IntPower(2,Button1.Tag)));
Button1.Tag:=Button1.Tag+1;
834:デフォルトの名無しさん
08/06/04 09:34:00
>>825
>for i :=1 to 44444444 do s := i * 2;
>>831 が
>なら、ボタンクリックだけでいきなり44444444回もループしたらダメだろ?
と、つっ込んではいるものの、なぜ「44444444」と記述したのか?
それを知りたい。
835:デフォルトの名無しさん
08/06/04 10:41:03
825です
すいません。2のn乗でした。
444444としたのはとにかくどこまでも2倍ができるように作りたかったからです。
836:デフォルトの名無しさん
08/06/04 11:03:00
それならforよりもwhileじゃね?
837:デフォルトの名無しさん
08/06/04 11:13:03
forつかって書いてみなさい的な課題だったので・・・。
バリバリ初心者なのでわからないのですが・・・。
838:デフォルトの名無しさん
08/06/04 11:30:05
なんだよその課題
教師アホすぎてワロタw
839:834
08/06/04 11:53:59
>>835
とりあえず納得、ありがと。
840:デフォルトの名無しさん
08/06/04 21:13:37
for でも while でも case でも if でも何でもいいじゃん
目の前の問題が解決できりゃ万々歳 でしょ?
とりあえず Delphi 実行できる環境があるんなら何でも試してみたら
いいじゃん。それで出来なかったらガンガン質問すりゃいいじゃん!
このスレ、結構ガンガン突っ込む人多いみたいだから安心だよ。
841:デフォルトの名無しさん
08/06/04 21:39:52
ボタンをクリックするたびに、*2するんじゃないのか?
forの中で、キー入力待ちするの?
それとも、forで一気に*2していくのか? 見えないぞ。
842:デフォルトの名無しさん
08/06/04 21:40:58
2レスで解決してるのに引っ張るねぇ
843:825
08/06/04 22:28:29
先生が見せてた見本ではクリックするたびに2,4,8,16,とMemoに表示されていってました。
長引かせてしまいすいません;
プログラム板の人は親切な人が多いですね。
ありがとうございました。これからは授業ちゃんと聞きます。
課題は途中経過を書いて出します。
844:デフォルトの名無しさん
08/06/05 03:17:04
こういうことじゃね?
procedure Form1.Button1Click(Sender: TObject);
var
i,j: Integer;
begin
j := 1; // 計算用変数jの初期値として1を入れておく
with Button1 do
begin
Tag := Tag + 1; // ボタンを押した回数をTagに記録
for i := 1 to Tag do// ボタンを押した回数分jに2を掛ける処理
j := j * 2;
end;
Memo1.Lines.Add(IntToStr(j));
end;
845:デフォルトの名無しさん
08/06/05 15:56:11
これくらいでwith使うな
OnCreateでButton1.Tag = 1;
Button1.OnClickで
Button1.Tag = Button1.Tag * 2;
Memo1.Lines.Add(IntToStr(Button1.Tag));
又は
Button1.Tag = Button1.Tag + 1;
Memo1.Lines.Add(IntToStr(Math.Power(2,Button1.Tag)));
846:デフォルトの名無しさん
08/06/05 18:09:56
>>826
でいいじゃん。
numはグローバル変数にして、
var
num: Integer = 1;
のほうが楽かも。
847:844
08/06/05 18:13:04
>>845
Button1のNameプロパティ変えたりすることを考えると、
どうしてもwith使ってしまう悪い癖は抜け切れそうに無い。
Form1のプロパティを参照したい時に面倒になるのは承知済み。
この場合、複数のボタンで使いまわし出来るよう
with TButton(Sender)の方が良かったけどね。
>>837に従って無理やりfor文を入れたけど、
for文を使わなくても良いのなら>>845でFA。
848:デフォルトの名無しさん
08/06/05 19:52:52
すごい初心者で申し訳ないんのですが、
URLリンク(dn.codegear.com)
ここを参考にデータベースでなんか作ってみたのですが
これをコンパイルしたときに、interbaseを起動していないとエラー落ちしてしまいます。
たとえばexeを配布するときにはどうしたいいのですかね。
すごくしょうもないこと言っていたらすいません。
849:デフォルトの名無しさん
08/06/05 20:11:47
>>848
そりゃInterbaseに接続して処理するんだからしょうがない。
それと配布するとなるとインストール先にもInterbaseのライセンスが必要になる。
単一アプリケーションの内蔵データベースとしてしか使わないんであれば、Interbaseの代わりにEmbeded Firebirdの使用をおすすめ。
FirebirdはInterbase6.0互換だからVCLのInterbase接続コンポがそのままつかえる。
※IDEからデバッグ実行したときにカレントディレクトリとexeファイルのパスの違いで問題起きるので、
アプリケーションの初期化のところでexeファイルの場所にSetCurrentDirectoryを使ってカレントディレクトリを変更しておくといい。
850:デフォルトの名無しさん
08/06/05 21:35:19
A-Zの26人の人がいて、8人くらいでじゃんけんをしたとする。
その結果を書いたtxtがあって、
1.自分の勝率(自分はAとする)
2.自分のBに対する勝率
3.自分が相手にすると勝率が高い人TOP5
4.自分と一緒に勝つ確立が高い人TOP
を出力したいのですが、全然ナにやっていいかわからないで困っています。
1.テキストをTmemoに取り込んだ
2.勝った人の1人目をlistboxに出力してみた、うまくいかなかった
3.データベースは使い方がよくわからなかった
4.試合数だけ数えてみた:これはできた
5.やりたいことをするために何をすればいいのかわからなくなってきた
いまここ
851:デフォルトの名無しさん
08/06/05 21:42:30
> うまくいかなかった
そのうまくいかなかった部分を言おうよ
852:デフォルトの名無しさん
08/06/05 22:10:50
>>851
ReadInがうまく使えなかったw
853:デフォルトの名無しさん
08/06/05 22:12:48
それじゃ誰にも答えてもらえないよ
さようなら
854:デフォルトの名無しさん
08/06/05 23:02:58
>>850
文字列解析の課題かな。 txtファイルがどんなのかわからないと答えようがない。
csv形式なら、TStringList.CommaTextを使ってデータを切り分けれる。
855:デフォルトの名無しさん
08/06/05 23:36:43
プログラム以前の問題でしょう。
やるべきことを整理して箇条書きにして、一歩一歩解決していくしかないでしょう。
質問が具体的じゃないと、具体的に回答できるはずもありません。
856:デフォルトの名無しさん
08/06/06 00:44:00
txtをどっかにうpすれば誰かやってくれそうなもんだけどな
857:デフォルトの名無しさん
08/06/06 01:43:47
書き方悪くてすいません。850です。
URLリンク(irsj.bestplaying.com)
ここのページのhtmlを取得してやろうと思ったんですが、まずはテキストと思い、
39274 フリー@(´゚ω゚`)ナッツエレガント 2008/06/06 01:30
Win genzouzi(1648) satou(1717) Molt(1437) hujisan(1438)
Lose masa4_(1864) hyakusiki(1152) parusah(1610) against(1600)
Upload コメント (0)
こんな感じで出力されました。
これが一個のレコード?になります。なのでCSVではないです。
で、フローチャートを考えてみたのですが、それがまずわからなくて悩んでいます。
858:デフォルトの名無しさん
08/06/06 03:12:34
>>855を1000回読んでから出直して来い
859:デフォルトの名無しさん
08/06/06 20:44:15
何言ってんのかさっぱりわからんな
860:デフォルトの名無しさん
08/06/06 22:25:14
htmlから必要なデータを抜き出したいのか。
StrPosを使って、'>Win<'を探す。
それ以降にある '</a>'を探す。 名前は >mog</a> となっているから、>から<まで抜き出す。
こんな感じでやればいいよ。
861:デフォルトの名無しさん
08/06/07 10:11:55
>>859
お前がバカだからだよ
862:デフォルトの名無しさん
08/06/07 13:16:05
俺ほどぢゃないだろ
863:デフォルトの名無しさん
08/06/07 19:20:24
つうかこんなスレ、リキ入れて読んでられないからさ~
酒のみながらみてるときもあるし…
できるだけわかり易い文章か母性本能くすぐりーの感じで書かないと
864:デフォルトの名無しさん
08/06/07 22:15:08
>>863
MLでやれ
865:デフォルトの名無しさん
08/06/07 23:31:06
質問です。
壁紙を手前に表示するソフトを作ろうと思っています。
そこで TForm と TImage を半透明にして常に手前に表示してマウスなどの入力は背後のウィンドウに渡すようにしたいのですがどうすればできますか?
866:デフォルトの名無しさん
08/06/07 23:36:04
GetNextWindowで次にあるウィンドウ出して送ればいいと思う
867:デフォルトの名無しさん
08/06/08 00:21:32
>>866
ありがとうございます。GetNextWindow を調べてみます。
868:デフォルトの名無しさん
08/06/08 06:48:50
Delphiのフォームに画像はりつけて全画面かつ最前面表示して
後ろのExcelやExplorerを自然に操作するってことか。
フォームへのウィンドウメッセージをすべての他の適切なウィンドウに再送信しまくるなんて
かなり面倒なことをしないといけなさそうだな。たぶん挫折するだろう。
付箋紙のイメージ表示機能で我慢しておいた方がいいんじゃね。
869:デフォルトの名無しさん
08/06/08 08:52:20
>>865
つ SetLayeredWindowAttributes
つ WS_EX_TRANSPARENT
870:デフォルトの名無しさん
08/06/08 08:57:30
ここの人、親切。
でも「付箋紙のイメージ表示機能で我慢」になりそうです。
クリックすると逃げるようにして邪魔にならないようにしています。
でも多謝。
871:デフォルトの名無しさん
08/06/08 13:48:56
delphi6なんだけど
ListViewでオーナーデータだとマルチセレクト出来ない?
出来ない場合出来るようにする方法とか教えてください
872:デフォルトの名無しさん
08/06/08 23:00:30
TClientSocketでデータを数値として受け取るにはどうすればいいんでしょうか?
Ordで大丈夫なんでしょうか
873:デフォルトの名無しさん
08/06/08 23:32:36
バイナリデータを受信したとき、ってこと?1バイトならOrdでいいかな。複数バイトならバイトオーダの考慮も
忘れずに。
874:デフォルトの名無しさん
08/06/08 23:58:47
普通にテキスト化して送ったら
875:デフォルトの名無しさん
08/06/09 23:29:59
TListViewからの派生クラスを書いているのですが、縦スクロールバー出現によるクライアントエリアの横サイズ変更に追従するには
どのメソッドで変更に追従する処理をすればよいのでしょうか?
派生クラスで実装するので、できればメソッドのオーバーライドで処理したいです。
876:デフォルトの名無しさん
08/06/10 07:19:56
RGB0~255を三次元空間に見立てて
その中に数十個のピクセルをFormなりImageなりに表示するのを支援してくれる
ライブラリってないですか?
DirectXやOpenGLほどハイパフォーマンスで大げさなのじゃなくて
ちょっとしたグラフライブラリ程度のもので。
877:デフォルトの名無しさん
08/06/10 13:53:10
いっていることがわからないのだが、ボクセルということだろうか
878:デフォルトの名無しさん
08/06/10 14:25:41
色立体とかいう物を表示したいんじゃなかろうか。
879:デフォルトの名無しさん
08/06/10 23:32:26
>>877
バカか?
880:デフォルトの名無しさん
08/06/10 23:33:25
>>870
シナ人失せろ
881:デフォルトの名無しさん
08/06/10 23:37:13
スマン
ど忘れして しかも ググッテも出てこない
範囲指定して字下げするのってどうやるんだっけ?
忘れちまった・・・・・
年だ・・・・
882:デフォルトの名無しさん
08/06/10 23:44:14
>>881
Ctrl+Shift+I/U
フリーカーソル無効化してるならTab/Shift+Tabでもできる。
883:デフォルトの名無しさん
08/06/10 23:58:55
>>882
やるね!!
まあああああああああああベラス!!
ありがとう!!
フリーカーソル?・・・・ググッタ!コンポーネントかぁ メモメモ
ついでに、選択したところ全て注釈にする方法わかりますか?
これも出来たはずなんだが・・・
884:デフォルトの名無しさん
08/06/11 00:13:32
テプラ作った大切にするぉ
サンキュウ デルファイ マイスターズ
885:デフォルトの名無しさん
08/06/11 09:34:41
>>879
バカっていうんなら、人にわかるように説明しろよ
886:デフォルトの名無しさん
08/06/11 09:43:27
グラフライブラリって書いてあるじゃんw
887:デフォルトの名無しさん
08/06/11 10:35:03
TChartって2次元までだっけか?
888:デフォルトの名無しさん
08/06/11 13:39:59
>>883
選択状態にして選択範囲を右クリックしてみるといいよ。
ちなみに、Ctrl+/で出来る。
889:デフォルトの名無しさん
08/06/11 14:29:00
TlistBoxを3つ並べてスクロールを同期させたいんだがどうすればいい?
890:デフォルトの名無しさん
08/06/11 14:36:13
>>886
いやそこの前の話
891:デフォルトの名無しさん
08/06/11 19:59:06
>>889
OnScrollで他もスクロールさせる。
892:デフォルトの名無しさん
08/06/11 20:38:46
>>888
ふむふむ
ありがとう
テプラットきます
893:デフォルトの名無しさん
08/06/12 12:31:07
>>888
それ、D7で出来ないみたい
あと、いつの間にか右クリックして「しおり」のテンキーの数字が効かなくなってるし
894:デフォルトの名無しさん
08/06/12 21:33:02
>>893
うん
やってみた
ターボの方は出来るんですけれど
7はダメでした
報告ありがとう
でも 7でもやる方法があった様な気がするが
はて 勘違いかなあ
895:デフォルトの名無しさん
08/06/12 23:12:29
MainMenuについて聞きたいんですが
項目の右側に勝手に(Z)と付くのはどうにか出来ませんか?
896:デフォルトの名無しさん
08/06/13 00:38:15
>895
AutoHotKeysをmaManualに。
897:デフォルトの名無しさん
08/06/13 00:50:17
>>896
ありがっとう!
898:デフォルトの名無しさん
08/06/13 09:30:41
>>894
GExpertsのマクロでコメントアウトなどできた気がするよ
899:デフォルトの名無しさん
08/06/13 10:59:51
URLリンク(homepage2.nifty.com)
ここの通りにやってlistviewのカラムクリックでソートができたのですが
カラムをもう一回クリックしたら逆順ソートになるようにしたいのですが、どうしたらいいか教えてください。
900:デフォルトの名無しさん
08/06/13 11:09:25
>>899
フラグでも立てて、Compareに-1掛ければいい。
901:デフォルトの名無しさん
08/06/13 11:17:28
>>900
それはわかるんですけど、そのフラグがわからんのです。
そもそもcompareイベントの仕組みがよくわからなくてコピペしたのがいけないんですが・・w
902:デフォルトの名無しさん
08/06/13 11:39:40
デバッガで追いかけろ
903:デフォルトの名無しさん
08/06/13 11:46:29
前に書いたソートサンプル。適当に解読してくれ。
{ Private 宣言 }
ColumnToSort: Integer;
LastColumnToSort: Integer;
Ascending: Integer;
procedure TForm1.FormCreate(Sender: TObject);
begin
ColumnToSort := -1;
LastColumnToSort := -1;
end;
procedure TForm1.listviewColumnClick(Sender: TObject; Column: TListColumn);
begin
ColumnToSort := Column.Index;
if (Ascending > 0) and (ColumnToSort = LastColumnToSort) then
Ascending := -1
else
Ascending := 1;
LastColumnToSort := ColumnToSort;
listview.AlphaSort;
end;
procedure TForm1.listviewCompare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
begin
Compare := ( StrToInt(Item1.SubItems[ColumnToSort-1]) - StrToInt(Item2.SubItems[ColumnToSort-1]) ) * Ascending;
end;
904:デフォルトの名無しさん
08/06/13 11:59:15
>>903
助かった。thx!
コピペでできてしまったので、次使うときのために解読しとくわ。
905:デフォルトの名無しさん
08/06/13 13:44:41
コピペだけでアプリ一本作りそうな勢いだなww
906:デフォルトの名無しさん
08/06/13 15:35:05
>>905
教科書はネットのみだからおのずとコピペが多くなってしまうのは仕方ない気がw
アプリはもうできてて今は改善している段階でふ。
907:デフォルトの名無しさん
08/06/14 01:34:51
ifの条件が複数あるときはVBのようにandで繋ぐことは出来ないんでしょうか?
908:デフォルトの名無しさん
08/06/14 01:38:27
そんなの入門サイトに乗ってそうだけどなあ
回答としては「出来る」よ
909:デフォルトの名無しさん
08/06/14 16:33:57
listviewで表を作っているんですが
ある条件を満たしたときに画像を文字の後ろに付け足したいのですがどうすればいいですか?
column1,column2,・・・
名前,数学の点数,国語の点数,
で、数学の点数や国語の点数が80点を越えたときに
各々数学マーク.bmp、国語マーク.bmpを名前の後ろに付け足したいという意味です。
910:デフォルトの名無しさん
08/06/14 17:20:45
>>907
自分で答えを書いているじゃないかw
911:デフォルトの名無しさん
08/06/14 17:47:55
>>909
OwnerDrawするしかないと思う
912:デフォルトの名無しさん
08/06/14 18:59:06
listviewのownerdrawか・・・激しく挫折しそうだ・・
913:デフォルトの名無しさん
08/06/14 20:38:35
>>907-908
演算子の優先度がVBと違うからできないと思ったのかもしれないな
if (条件) and (条件) ~
みたいに括弧で括らないといけないから
914: ◆XcB18Bks.Y
08/06/15 01:09:49
>>912
ListViewのOwnerDrawはOwnerDataを使っていなければそんなに難しくないと思います。
OwnerDataを使っているならHeaderコントロール+ListBoxマジオススメ。
915:デフォルトの名無しさん
08/06/15 11:58:17
ListViewやListBoxの内容は直接編集出来ないんでしょうか?
916:デフォルトの名無しさん
08/06/15 12:36:59
クリックしたときに、カーソル直下のセルに内容入れたTEdit生成して、TEditがフォーカス失ったらTEditの内容をセルに書き込めばいいと思うよ。
TStringGridで用が足りることも多いけどNE
917:デフォルトの名無しさん
08/06/15 22:17:04
formcreateでiniファイルを読み込んで、listboxにiniの内容を書き出したいのですが
for do でループしようと思ったら、iniファイルのセクションの項目数をカウントする方法が思いつかずに
困っているのですが、これはどうしたらいいのでしょうか
逆にtxt形式にしてreadlnでuntil Eofとかしないとだめなのでしょうか。ご教授ください。
918:デフォルトの名無しさん
08/06/15 22:43:28
>>917
ReadSections
919:デフォルトの名無しさん
08/06/15 22:47:52
>>918
ありがとう
920:デフォルトの名無しさん
08/06/17 08:04:52
>>919
自演おつ
921:デフォルトの名無しさん
08/06/18 16:54:27
AnsiやUTF8の文字列をUTF32にエンコードするにはどうすればいいんでしょう?
WikipediaのUnicodeの項目を見るとUCS4とUTF32は互換性があるらしいですが、
WideStringToUCS4Stringでエンコードしても、UCS4StringをStringに正常にキャストする方法が見つからず、
UTF32かどうか確かめられません
よろしくお願いします
922:デフォルトの名無しさん
08/06/18 18:44:59
WideStringToUCS4Stringがあれば、当然UCS4StringToWideStringもあるわけだけど、
直接Stringにしたいって事?
923:921
08/06/18 19:30:09
すみません、自己解決しました
MBCSUtils(URLリンク(cc.codegear.com))のAnsiStringToUtf8をしたあと、Utf8ToWideStringをしたら
望むとおりの結果がでました
>>922
そうです
UTF8にしたときは普通にStringとして取得できますが、WideStringToUCS4Stringだと
取得できないので、それを取得しようと思ったのです