くだすれDelphi(超初心者)その28
レス数が1000を超えています。これ以上書き込みはできません。
0001前スレ1000
2005/11/05(土) 14:23:19他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
<前スレ>
くだすれDelphi(超初心者)その27
http://pc8.2ch.net/test/read.cgi/tech/1126590039/
<雑談・討論などはこちらへ>
ミ,,゚Д゚彡フサギコのフサフサDelphi不買談話室その27
http://pc8.2ch.net/test/read.cgi/tech/1130648644/
<その他>
Borland Home Page
http://www.borland.co.jp/
DelWiki (無料版Delphiの入手方法など)
http://onigiri.s3.xrea.com:8080/delphi/
0002前スレ1000
2005/11/05(土) 14:24:5127 ttp://pc8.2ch.net/test/read.cgi/tech/1126590039/
25 ttp://pc8.2ch.net/test/read.cgi/tech/1119008091/
24 ttp://pc8.2ch.net/test/read.cgi/tech/1115581376/
23 ttp://pc8.2ch.net/test/read.cgi/tech/1110470895/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1107332482/
21 ttp://pc5.2ch.net/test/read.cgi/tech/1104511938/
20 ttp://pc5.2ch.net/test/read.cgi/tech/1101530485/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1097454588/
18 ttp://pc5.2ch.net/test/read.cgi/tech/1093996761/
17 ttp://pc5.2ch.net/test/read.cgi/tech/1091671391/
16 ttp://pc5.2ch.net/test/read.cgi/tech/1089779142/
15 ttp://pc5.2ch.net/test/read.cgi/tech/1087823906/
14 ttp://pc5.2ch.net/test/read.cgi/tech/1085239007/
13 ttp://pc5.2ch.net/test/read.cgi/tech/1081003641/
12 ttp://pc5.2ch.net/test/read.cgi/tech/1076610073/
11 ttp://pc5.2ch.net/test/read.cgi/tech/1076609666/
10 ttp://pc5.2ch.net/test/read.cgi/tech/1074523803/
09 ttp://pc5.2ch.net/test/read.cgi/tech/1071294733/
08 ttp://pc5.2ch.net/tech/kako/1068/10682/1068201045.html
07 ttp://pc5.2ch.net/tech/kako/1065/10651/1065195699.html
06 ttp://pc5.2ch.net/tech/kako/1063/10632/1063202727.html
05 ttp://pc5.2ch.net/tech/kako/1061/10610/1061090908.html
04 ttp://pc5.2ch.net/tech/kako/1058/10588/1058834815.html
03 ttp://pc5.2ch.net/tech/kako/1055/10559/1055986736.html
02 ttp://pc5.2ch.net/tech/kako/1053/10537/1053757982.html
01 ttp://pc5.2ch.net/tech/kako/1051/10518/1051882835.html
0003デフォルトの名無しさん
2005/11/05(土) 16:20:1626 http://makimo.to/2ch/pc8_tech/1121/1121249711.html
25 http://makimo.to/2ch/pc8_tech/1119/1119008091.html
24 http://makimo.to/2ch/pc8_tech/1115/1115581376.html
23 http://makimo.to/2ch/pc8_tech/1110/1110470895.html
22 http://makimo.to/2ch/pc5_tech/1107/1107332482.html
21 http://makimo.to/2ch/pc5_tech/1104/1104511938.html
20 http://makimo.to/2ch/pc5_tech/1101/1101530485.html
19 http://makimo.to/2ch/pc5_tech/1097/1097454588.html
18 http://makimo.to/2ch/pc5_tech/1093/1093996761.html
0004デフォルトの名無しさん
2005/11/05(土) 16:21:1116 http://makimo.to/2ch/pc5_tech/1089/1089779142.html
15 http://makimo.to/2ch/pc5_tech/1087/1087823906.html
14 http://makimo.to/2ch/pc5_tech/1085/1085239007.html
13 http://makimo.to/2ch/pc5_tech/1081/1081003641.html
11 http://makimo.to/2ch/pc5_tech/1076/1076610073.html
11 http://makimo.to/2ch/pc2_tech/1076/1076609666.html
10 http://makimo.to/2ch/pc2_tech/1074/1074523803.html
09 http://makimo.to/2ch/pc2_tech/1071/1071294733.html
0005デフォルトの名無しさん
2005/11/05(土) 17:13:4707 ttp://pc5.2ch.net/tech/kako/1065/10651/1065195699.html
06 ttp://pc5.2ch.net/tech/kako/1063/10632/1063202727.html
05 ttp://pc5.2ch.net/tech/kako/1061/10610/1061090908.html
04 ttp://pc5.2ch.net/tech/kako/1058/10588/1058834815.html
03 ttp://pc5.2ch.net/tech/kako/1055/10559/1055986736.html
02 ttp://pc5.2ch.net/tech/kako/1053/10537/1053757982.html
01 ttp://pc5.2ch.net/tech/kako/1051/10518/1051882835.html
0006デフォルトの名無しさん
2005/11/05(土) 19:19:3326 ttp://makimo.to/2ch/pc8_tech/1121/1121249711/
25 ttp://pc8.2ch.net/test/read.cgi/tech/1119008091/
24 ttp://pc8.2ch.net/test/read.cgi/tech/1115581376/
23 ttp://pc8.2ch.net/test/read.cgi/tech/1110470895/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1107332482/
21 ttp://pc5.2ch.net/test/read.cgi/tech/1104511938/
20 ttp://pc5.2ch.net/test/read.cgi/tech/1101530485/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1097454588/
18 ttp://pc5.2ch.net/test/read.cgi/tech/1093996761/
17 ttp://pc5.2ch.net/test/read.cgi/tech/1091671391/
16 ttp://pc5.2ch.net/test/read.cgi/tech/1089779142/
15 ttp://pc5.2ch.net/test/read.cgi/tech/1087823906/
14 ttp://pc5.2ch.net/test/read.cgi/tech/1085239007/
13 ttp://pc5.2ch.net/test/read.cgi/tech/1081003641/
12 ttp://pc5.2ch.net/test/read.cgi/tech/1076610073/
11 ttp://pc5.2ch.net/test/read.cgi/tech/1076609666/
10 ttp://pc5.2ch.net/test/read.cgi/tech/1074523803/
09 ttp://pc5.2ch.net/test/read.cgi/tech/1071294733/
08 ttp://pc5.2ch.net/tech/kako/1068/10682/1068201045.html
07 ttp://pc5.2ch.net/tech/kako/1065/10651/1065195699.html
06 ttp://pc5.2ch.net/tech/kako/1063/10632/1063202727.html
05 ttp://pc5.2ch.net/tech/kako/1061/10610/1061090908.html
04 ttp://pc5.2ch.net/tech/kako/1058/10588/1058834815.html
03 ttp://pc5.2ch.net/tech/kako/1055/10559/1055986736.html
02 ttp://pc5.2ch.net/tech/kako/1053/10537/1053757982.html
01 ttp://pc5.2ch.net/tech/kako/1051/10518/1051882835.html
0007デフォルトの名無しさん
2005/11/05(土) 21:00:2726 http://makimo.to/2ch/pc8_tech/1121/1121249711.html
25 http://makimo.to/2ch/pc8_tech/1119/1119008091.html
24 http://makimo.to/2ch/pc8_tech/1115/1115581376.html
23 http://makimo.to/2ch/pc8_tech/1110/1110470895.html
22 http://makimo.to/2ch/pc5_tech/1107/1107332482.html
21 http://makimo.to/2ch/pc5_tech/1104/1104511938.html
20 http://makimo.to/2ch/pc5_tech/1101/1101530485.html
19 http://makimo.to/2ch/pc5_tech/1097/1097454588.html
18 http://makimo.to/2ch/pc5_tech/1093/1093996761.html
0008デフォルトの名無しさん
2005/11/06(日) 00:11:07159 - 衆 - 農林水産委員会 - 13号 平成16年04月27日 ○山田委員
エール大学神経病理学科外科部門の研究チームの検討を含め複数の研究で、剖検によりアルツハイマー病
あるいは痴呆症と診断されていた患者の三―一三%が実際はクロイツフェルト・ヤコブ病に罹患していた
ことが判明したとしている。米国では毎年アルツハイマー病と診断される患者が四百万人、痴呆症患者は
数十万人が発生していることから、最も少なく見積もって一万二千人以上のクロイツフェルト・ヤコブ病患者
が検出されず、公式統計に含まれない可能性がある。 注:12万人以上と思われる
実際、アルツハイマー病と診断された死亡患者数は一九七九年には八百五十七例であったものが、
二〇〇〇年には五十倍以上の五万例近くとなった。
159 - 衆 - 農林水産委員会 - 7号 平成16年03月18日 ○松木委員
記事の中に、アメリカでは、アルツハイマー病あるいは痴呆症と診断される人が年間四百万人いるそう
なんです。複数の研究機関の合同研究によると、このうち三から一三%が実際はヤコブ病であったことが
判明しております。少なく見積もっても十二万人はヤコブ病の公式統計に含まれていない可能性がある。
【狂牛病】米国食肉輸出連合会の米牛肉「安全」パンフを政府調査会座長代理が監修
http://news19.2ch.net/test/read.cgi/newsplus/1129163175/l50
「アルツハイマーや若年性痴呆の中に変異型ヤコブ病患者が」・・米国牛輸入再開に京大医学部教授衝撃的指摘
http://news18.2ch.net/test/read.cgi/dqnplus/1120196765/
【vCJD】牛海綿状脳症(BSE)と同じ病気“日本人発症しやすい”…厚労省研究班
http://news16.2ch.net/test/read.cgi/scienceplus/1088575874/l50
0009デフォルトの名無しさん
2005/11/06(日) 01:07:29例えばTHogeを継承したTHogeExというクラスを作って、
hoge: THoge;
hoge := THogeEx.Create;
とした場合、hoge.Freeで呼ばれるのってやはりTHogeのFreeですか?
その場合、THogeExのサイズが継承元より大きい時、メモリリークしたりします?
0010デフォルトの名無しさん
2005/11/06(日) 01:21:15overrideしてればちゃんとTHogeEx.Destroyが呼ばれる。
hoge: TObject;であってもちゃんと開放される。
0011デフォルトの名無しさん
2005/11/06(日) 01:33:0910さんの説明のとおりなんだが、これが多態性の一側面。
00129
2005/11/06(日) 02:24:32なるほど、thxです。
ということは、継承後のメンバを使いたい時にいちいちキャストしないといけないってこと以外は
特にデメリットはないと考えて良いですか?
0013デフォルトの名無しさん
2005/11/06(日) 02:50:55overrideできないって、overrideするのはFreeじゃなくてDestroyなんだが。
0014デフォルトの名無しさん
2005/11/06(日) 03:31:24まあそうなんだけど、メンバを参照するためにアップキャストが必要というのは
その時点ですでにあまり好ましくない。
まず、hogeにTHogeExしか代入されないならhoge: THogeExにするべき。
そうではない場合、
if hoge is THogeEx then THogeEx(hoge).HogeHoge;
なんて書き方が必要になる。
このような呼び出し側がオブジェクトの中身を気にする書き方はよくない。
あらかじめTHogeでカラのHogeHogeを定義してTHogeExでoverrideするなど、
オブジェクトの側で違いを吸収するのが正しい。
まあ、よくないと言いながらも他人の作ったアプリやコンポーネントの改造を
するときには思わずやってしまう手ではあるのだけれどもね。
>>13
>>11は分かって書いてると思うよ。
そもそも、きっとTHogeのFreeは存在しなくて、TObject.Freeが呼ばれている事も。
0015デフォルトの名無しさん
2005/11/06(日) 03:38:07アップキャストじゃなくて、ダウンキャストね。
0016デフォルトの名無しさん
2005/11/06(日) 04:35:31いやだから、仮想メソッドじゃないんだから Free は TObject.Free しかないでしょ。
0017デフォルトの名無しさん
2005/11/06(日) 04:37:110018デフォルトの名無しさん
2005/11/06(日) 05:46:180019デフォルトの名無しさん
2005/11/06(日) 07:36:090020デフォルトの名無しさん
2005/11/06(日) 12:18:15以前確保した彼女を開放(Free)したという事は、つまり振られたわけか。
0021デフォルトの名無しさん
2005/11/06(日) 14:38:20そういう事になるな
0022デフォルトの名無しさん
2005/11/06(日) 14:46:560023デフォルトの名無しさん
2005/11/06(日) 16:48:400024デフォルトの名無しさん
2005/11/06(日) 18:22:44間違い。静的メソッドにも隠蔽される可能性がある。
procedure THoge.Free; reintroduce;
0025デフォルトの名無しさん
2005/11/06(日) 18:25:490026デフォルトの名無しさん
2005/11/06(日) 19:15:29で、>>9 質問にはどう答えるつもり?
0027デフォルトの名無しさん
2005/11/06(日) 20:10:300028デフォルトの名無しさん
2005/11/06(日) 20:49:39にくちゃんねるのログじゃん
0029デフォルトの名無しさん
2005/11/06(日) 21:03:31それくらいのことは自分で調べな。
0030デフォルトの名無しさん
2005/11/06(日) 21:13:5000319
2005/11/06(日) 21:23:04仮想や動的メソッドは実行時にアドレス決定するので、インスタンスの型のメソッドがそれぞれ使われる、
という認識に至ったのですが、これで大丈夫ですか?
0032デフォルトの名無しさん
2005/11/06(日) 21:37:30ポリモーフィズムとはなんぞや、ってことが重要。
0033デフォルトの名無しさん
2005/11/06(日) 21:44:50多態性と言わずポリモーフィズムなんて言うのも知ったかによくある例
0034デフォルトの名無しさん
2005/11/06(日) 22:21:540035デフォルトの名無しさん
2005/11/06(日) 22:23:28説明してくれるだろうけどね。
0036デフォルトの名無しさん
2005/11/06(日) 23:13:130037デフォルトの名無しさん
2005/11/06(日) 23:25:520038デフォルトの名無しさん
2005/11/07(月) 00:14:37こいつら馬鹿
↓
0039デフォルトの名無しさん
2005/11/07(月) 00:24:230040デフォルトの名無しさん
2005/11/07(月) 02:19:380041デフォルトの名無しさん
2005/11/07(月) 02:46:070042デフォルトの名無しさん
2005/11/07(月) 03:30:49あ、32と33が2人で頑張ってるのかな?
0043デフォルトの名無しさん
2005/11/07(月) 08:49:090044デフォルトの名無しさん
2005/11/07(月) 10:19:110045デフォルトの名無しさん
2005/11/07(月) 13:39:11Freeに失敗した例外が暴れてるぞ。早くデバッグ作業に戻るんだ。
004633
2005/11/07(月) 17:53:160047デフォルトの名無しさん
2005/11/07(月) 18:06:450048デフォルトの名無しさん
2005/11/07(月) 18:08:120049デフォルトの名無しさん
2005/11/07(月) 19:50:19死ねよ
0050デフォルトの名無しさん
2005/11/07(月) 20:38:03プログラム実行中にコンポーネントのプロパティをいろいろ変えた後、
全部初期値に戻したいのですが、可能でしょうか?
初期値はどこかには保存されていると思うのですが、引っ張り出す
方法がわかりません。
よろしくお願いします。
0051デフォルトの名無しさん
2005/11/07(月) 20:43:330052デフォルトの名無しさん
2005/11/07(月) 20:47:45削除してもう一度配置するか
もう一個配置してフォームをエディタで表示してプロパティ部分をコピペ。
0053デフォルトの名無しさん
2005/11/07(月) 20:49:28005450
2005/11/07(月) 20:53:47ということは、プロパティエディタで設定しておくよりも
コード中に初期化部分を用意して呼び出したほうが楽ということですね。
>>52
設計中ではなくアプリケーション実行中に、起動時の初期設定値に
戻したいのです・・・
0055デフォルトの名無しさん
2005/11/07(月) 21:04:32005650
2005/11/07(月) 22:17:06ありがとうございます。
FormをRead/Writeすると、載ってるものも全部再生してくれるのには
ちょっと困りましたが。
こんな感じでなんとかなりそうです。
procedure TForm1.Button1Click(Sender: TObject);
var
n:integer;
ms:TmemoryStream;
begin
ms:=TmemoryStream.create;
ms.WriteComponent(self);
for n:=ComponentCount-1 downto 0 do Components[n].Free;
ms.Position:=0;
ms.ReadComponent(self);
ms.free;
end;
0057デフォルトの名無しさん
2005/11/07(月) 22:27:300058デフォルトの名無しさん
2005/11/07(月) 22:57:310059デフォルトの名無しさん
2005/11/08(火) 00:56:120060デフォルトの名無しさん
2005/11/08(火) 03:09:55Delphi2005ではデフォルトでC#言語をサポートしているようですが、
Delphi言語(Object Pascal)とC#言語は共存させることができますか?
0061デフォルトの名無しさん
2005/11/08(火) 08:42:140062デフォルトの名無しさん
2005/11/08(火) 09:56:390063デフォルトの名無しさん
2005/11/08(火) 10:36:06それなら別々の製品にしてほしいな。
0064デフォルトの名無しさん
2005/11/08(火) 11:27:13ばら売り希望のユーザの要望はD2005発売以前からあったけど、無視されつづけています。
0065デフォルトの名無しさん
2005/11/08(火) 12:02:450066デフォルトの名無しさん
2005/11/08(火) 12:20:47Delphi.NET だけ使いたい人は、個別ばら売り版を買い、となぜ選択できるように
しないのか謎。手が足りない、とかいう人がいるけど、実際そうだとしたら、
そんな製品は品質も信頼性も疑わしい。
0067デフォルトの名無しさん
2005/11/08(火) 12:31:440068デフォルトの名無しさん
2005/11/08(火) 12:56:390069デフォルトの名無しさん
2005/11/08(火) 12:59:400070デフォルトの名無しさん
2005/11/08(火) 13:02:370071デフォルトの名無しさん
2005/11/08(火) 14:23:36以下の機能を実現したいのですが、どうやったら可能でしょうか??
(前提条件)
列A=ドロップダウンリスト(0,1)
列B=小数点以下含む数値データ
・列Aの値が0の場合、列Bの数値は整数で表示・編集
・列Aの値が1の場合、列Bの数値は小数点以下含む数で表示・編集
ただしこれは同じ行のみ、そうしたいのです。(以下イメージ)
列A 列B
行1 0 112
行2 1 212.5
行3 0 312
苦し紛れの方法として、OnDrawColumnCellイベントで
TextRectして表示だけ少数点以下表示・非表示を切り替えることはできたのですが
編集状態に入ると小数点表示のままです。
いい方法はないでしょうか?
よろしくお願いいたします。
0072デフォルトの名無しさん
2005/11/08(火) 14:49:020073デフォルトの名無しさん
2005/11/08(火) 15:07:420074デフォルトの名無しさん
2005/11/08(火) 15:08:250075デフォルトの名無しさん
2005/11/08(火) 15:15:51それがプロフェッショナルも3000円(旧Spokeから無料アップグレード)らしいですよ
0076デフォルトの名無しさん
2005/11/08(火) 16:23:240077デフォルトの名無しさん
2005/11/08(火) 16:44:150078デフォルトの名無しさん
2005/11/08(火) 16:54:430079デフォルトの名無しさん
2005/11/08(火) 17:36:41それともネイティブ64bit対応すんの?
0080デフォルトの名無しさん
2005/11/08(火) 17:44:100081デフォルトの名無しさん
2005/11/08(火) 17:46:00VB・なでしこ・C++・C・Delphi・JavaなどでVIPブラウザを作るスレ
http://ex10.2ch.net/test/read.cgi/news4vip/1129736009/
0082デフォルトの名無しさん
2005/11/08(火) 17:48:25次スレまだ建ってないみたいだから参考スレ
ttp://age.s22.xrea.com/talk2ch/
http://info.2ch.net/wiki/pukiwiki.php
0083デフォルトの名無しさん
2005/11/09(水) 00:06:46DDEコンポーネントを使って、
300のトピックを扱おうと思っています。
アプリでは不可視なコンポーネントですが、
開発時はフォームデザイナにコンポーネントを300個おかなければならないのでしょうか?
ソースで書くだけで実現する方法はありませんか?
また、アプリ実行時に任意の数だけコンポーネントを配置することはできないでしょうか?
0084デフォルトの名無しさん
2005/11/09(水) 00:42:190085デフォルトの名無しさん
2005/11/09(水) 00:59:56最初はそう思ったんですが、
未定義の識別子とか怒られたりしたもんで・・・
ソースでCreateすることで動的にインスタンスを作成できるということですよね?
ちょっと勉強してきます。
ありがとうございました。
0086デフォルトの名無しさん
2005/11/09(水) 02:10:360087デフォルトの名無しさん
2005/11/09(水) 09:51:160088デフォルトの名無しさん
2005/11/09(水) 15:43:21状態を実現するために
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Shift in [ssCtrl,ssShift]) and (Key = VK_DELETE) then //エラー!
if (Shift = [ssCtrl]) and (Key = VK_DELETE) then //これはOK
・・・・・・・・
end;
としたのですがエラーになってしまいます。なんででしょ?
type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
なので問題ないと思うのですが。
0089デフォルトの名無しさん
2005/11/09(水) 15:48:440090デフォルトの名無しさん
2005/11/09(水) 16:20:49in のオペランドは順序型と集合型。
Shiftは集合型、[ssCtrl, ssShift]も集合型。
ヘルプの集合演算子を嫁
0091デフォルトの名無しさん
2005/11/09(水) 20:19:30房ですみませんが
英語が読めなくてdelphi6のライセンスが取れません↑
どうやって取るんでしょうか?
0092デフォルトの名無しさん
2005/11/09(水) 20:26:34適当に個人情報を入力して適当に某に登録すんだよ
その程度気合で解読しろ
0093デフォルトの名無しさん
2005/11/09(水) 20:45:32009491
2005/11/09(水) 21:06:32「英語が読める」方いませんか?
0095デフォルトの名無しさん
2005/11/09(水) 21:12:50それでは今後が思いやられる
0096デフォルトの名無しさん
2005/11/09(水) 21:22:05>1を100回読んで消えろ
0097デフォルトの名無しさん
2005/11/09(水) 21:32:0696が教えろ
0098デフォルトの名無しさん
2005/11/09(水) 22:13:30Delphi6の場合、ここは関係ないと思うし。
ttp://www.borland.com/products/downloads/download_delphi.html
0099デフォルトの名無しさん
2005/11/09(水) 22:35:300100デフォルトの名無しさん
2005/11/09(水) 22:39:410101デフォルトの名無しさん
2005/11/09(水) 22:41:36背伸び乙
0102デフォルトの名無しさん
2005/11/09(水) 23:21:35Delphi6 Personalをクリックして
New Userをクリックして
赤項目(氏名と住所など)を入力。
State/ProvinceにはN/Aを入力。
Registerをクリック。
0103デフォルトの名無しさん
2005/11/10(木) 00:18:27しかしインストール中に
Error
C\WINDOWS\デスクトップ\program 〜 .damの読み込みエラー
ファイルが存在していてアクセスできることを確認してください
と表示され「再試行」「無視」もできずに「キャンセル」しかできません。
どのような問題が発生しているのでしょうか
解決方法を教えてください
0104デフォルトの名無しさん
2005/11/10(木) 01:04:510105デフォルトの名無しさん
2005/11/10(木) 01:06:20にインストールしろよ
0106デフォルトの名無しさん
2005/11/10(木) 03:10:57まあ、楽しんで。
0107デフォルトの名無しさん
2005/11/10(木) 08:10:310108デフォルトの名無しさん
2005/11/10(木) 10:22:50Del5Entだとctrl+shift+cで簡単に作れた気がするんですが・・・
0109デフォルトの名無しさん
2005/11/10(木) 10:26:430110デフォルトの名無しさん
2005/11/10(木) 10:41:490111デフォルトの名無しさん
2005/11/10(木) 16:45:360112デフォルトの名無しさん
2005/11/10(木) 16:50:020113デフォルトの名無しさん
2005/11/10(木) 17:21:52>>93
0114デフォルトの名無しさん
2005/11/11(金) 00:12:251. Ctrl + J
2. 自分で書く
0115デフォルトの名無しさん
2005/11/12(土) 08:48:250116デフォルトの名無しさん
2005/11/12(土) 12:38:33i: Integer;
というのがあってこれを文字列にしたとき
0001
っといった感じで4桁にするにはどうすればいいですか?
IntToStr(i);
だと一桁になってしまいます。よろしくお願いします。
0117デフォルトの名無しさん
2005/11/12(土) 12:54:090118116
2005/11/12(土) 13:03:52スペースではなく0を入れるにはどうしたらいいですか?
0119116
2005/11/12(土) 13:07:21ありがとうございました。
ttp://www.borland.co.jp/qanda/delphi/d0000877.html
0120デフォルトの名無しさん
2005/11/12(土) 13:08:110121デフォルトの名無しさん
2005/11/12(土) 17:38:24他のアプリを前面に出した部分の画像だけちょん切れるんです。
FAQ かもしれませんが原因、対策のおわかりの方がいましたら、お願いします。
0122デフォルトの名無しさん
2005/11/12(土) 17:39:14複数のスレッドからform1にあるCheckBox1.Checkedを参照する時って
Synchronize使わないとダメですか?
0123デフォルトの名無しさん
2005/11/12(土) 18:14:56FAQ 以前に当たり前。ウィンドウの再描画はコードで行われる、って当然のことを
さぼってるだけ。普通は TPaintBox の OnPaint で画像を描く。TImage にすると
再描画が自動的に行われる。それから BitBlt を使うんじゃなくて 普通は
TCanvas.Draw() などのメソッドをつかう。そのために Canvas があるんだから。
0124デフォルトの名無しさん
2005/11/12(土) 18:16:31VCL はスレッドセーフじゃないから、メインスレッドのコントロールを操作するときは
Synchronize をつかってください。読むだけでもそうすべきです。
0125デフォルトの名無しさん
2005/11/12(土) 18:18:58RefreshとかApplication.ProcessMessageを挟むといいかも
>>122
TControlはスレッドセーフじゃないから駄目
何がスレッドセーフかはヘルプでSynchronize引けば載ってるよ
0126デフォルトの名無しさん
2005/11/12(土) 18:20:22分かりました
ありがとうございました
0127121
2005/11/12(土) 19:30:48練習をしておりまして、参考にした某書籍のコードをそのまま実行させてみたのです。
PaintBox でできるか、試してみたいと思います。
0128デフォルトの名無しさん
2005/11/12(土) 19:31:36OnClickで普通の変数にコピーして参照したり
ThreadのプロパティにセットするようにすればSynchronize不要になるな。
まあForm自体無駄の塊だからあまり気にする必要ないんだけど。
0129デフォルトの名無しさん
2005/11/12(土) 20:11:23排他制御になってないし。
0130デフォルトの名無しさん
2005/11/12(土) 20:16:130131デフォルトの名無しさん
2005/11/12(土) 20:22:010132デフォルトの名無しさん
2005/11/12(土) 22:06:41気になっているのは、
イベントが同時に起こった時の優先度は?
イベント処理中にイベントが起こった時は?
どなたか教えてくれませんか
0133デフォルトの名無しさん
2005/11/12(土) 22:56:06Checkedを読むのは、実際にはメソッド呼び出しになる。
たんに変数にコピーしただけだけだけど、Checkedを参照したいだけなら、これで十分
>>132
イベントは割り込みじゃないから、そのスレッド実行中に勝手にイベントが挿入されるわけじゃない。
0134132
2005/11/12(土) 22:58:53ほー、ということはイベント処理中に違うイベントが起こったときは、
その処理が終わってから次のイベントの処理を始めるってことでしょうか?
0135デフォルトの名無しさん
2005/11/12(土) 23:00:37英語を読めばいいです
0136デフォルトの名無しさん
2005/11/12(土) 23:45:230137デフォルトの名無しさん
2005/11/13(日) 00:03:04>Checkedを参照したいだけなら、これで十分
何言ってるの? 参照して変更することもあるでしょ。ウィンドウズのコントロール
なんだからメソッドっていってもメッセージ処理だよ。
0138デフォルトの名無しさん
2005/11/13(日) 00:07:12>ほー、ということはイベント処理中に違うイベントが起こったときは、
>その処理が終わってから次のイベントの処理を始めるってことでしょうか?
イベントは割り込みではないってこと。メッセージポンプっていって、メッセージ
があるかどうかを見にいってはじめてイベントが起こるかどうか決まる。
だからイベント処理中にイベントが起こることはない。わざとメッセージ処理を
するようにコードで記述することはできるけど。
0139デフォルトの名無しさん
2005/11/13(日) 00:07:12参照は参照。
0140デフォルトの名無しさん
2005/11/13(日) 00:08:140141デフォルトの名無しさん
2005/11/13(日) 00:09:500142デフォルトの名無しさん
2005/11/13(日) 00:14:04Delphiより日本語の勉強しろ
0144デフォルトの名無しさん
2005/11/13(日) 00:37:50元のお題はChecked値の参照だよとり頭君
014583
2005/11/13(日) 00:50:22コンポーネントを配置して、宣言しないと使えないんですが・・・
宣言しないでcreateするにはどうしたらいいんですか?
0146デフォルトの名無しさん
2005/11/13(日) 01:15:30後者なら
http://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200408_04080009.html
014883
2005/11/13(日) 03:06:34コンポーネントを大量に作成することはできたのですが、
それぞれのOnChangeイベントに同じ処理を加えたいのですが何か方法を教えてください。
おねがいします。
0149デフォルトの名無しさん
2005/11/13(日) 03:50:17で、Checked が変更されて、変数にコピーするまえに参照されたらどうなるの?
0150デフォルトの名無しさん
2005/11/13(日) 05:03:50それぞれのOnChangeに同じイベントハンドラを設定する。
0151デフォルトの名無しさん
2005/11/13(日) 09:03:30呼び出されるまで VCL のなかでは結構長いコードが実行される。その間に、コピーした
変数を読むと、同じタイミングで Synchronize して読むのとでは結果が異なる。
排他制御はまさにこのようなことが起こる確率をゼロにするためにある。
0152デフォルトの名無しさん
2005/11/13(日) 09:03:39環境に依存するらしい事はわかったのですがそれがどのくらいの単位での話なのかわかりません
0153デフォルトの名無しさん
2005/11/13(日) 09:21:26リソースについて明言するのは難しいですが、10個くらいならOKでは
0154デフォルトの名無しさん
2005/11/13(日) 09:36:07最大6個になります。ありがとうございました。
0155デフォルトの名無しさん
2005/11/13(日) 11:00:418でいいんでしょうか?
0156デフォルトの名無しさん
2005/11/13(日) 11:51:25telnet経由でいじるエディタだけ2。
0157デフォルトの名無しさん
2005/11/13(日) 12:22:110158デフォルトの名無しさん
2005/11/13(日) 12:44:48一般人は4で、年寄りや目かビーンズページが弱い人が8なんだろうなァ。
0159158
2005/11/13(日) 12:54:03Delphiのコードエディタは見やすいから、馬鹿や弱視でも2で十分実用可能だ。
0160デフォルトの名無しさん
2005/11/13(日) 14:54:31http://gedo-style.com/g/?v=37178&d=d.jpg
0162デフォルトの名無しさん
2005/11/13(日) 16:12:31hoge.onChange := onChangeProc;
onChangeProcはpublic節に定義しておいて
onChangeイベントでやりたい内容を記述する
016383
2005/11/13(日) 16:29:05ありがとうございます。
016483
2005/11/13(日) 17:04:33例えば、100個のDdeClientItemのonChangeで100個の対応するLabelに表示するってことをやりたいんですが・・・
0165デフォルトの名無しさん
2005/11/13(日) 17:11:440166デフォルトの名無しさん
2005/11/13(日) 17:17:43016783
2005/11/13(日) 17:20:35勉強してきます。
0168デフォルトの名無しさん
2005/11/13(日) 17:25:13BMP画像で指定の範囲のRGB値の平均を取得するってことをやろうとしてるんですが。
0169デフォルトの名無しさん
2005/11/13(日) 17:46:47単に画像のメモリアドレス指してあるだけだから当然出来る
32bitフォーマット、左から10ピクセルなら+4*10バイト
0170デフォルトの名無しさん
2005/11/13(日) 19:42:48http://pc8.2ch.net/test/read.cgi/tech/1062422335/977
誘導されてきました
今からここは次スレです
抵抗しても無意味です
ありがとうございました
0171デフォルトの名無しさん
2005/11/13(日) 20:32:210172デフォルトの名無しさん
2005/11/13(日) 20:39:03漏れもあっちから誘導されて来ました。
まだまだ駆け出しなので、よろしくお願いします。m(_ _)m
0173デフォルトの名無しさん
2005/11/13(日) 22:22:04回答ありがとです、安心しました。
ところで↓のプログラムでラベルにRGB値を表示してるのですがマウスカーソルが画像の範囲外になっても値が表示、変動して困ってます。
おそらく内部で画像が右側にいくつもつながってるようになっていると思うんですが(画像の右から外にいくと数値がループしてます)、画像外は取得しない(表示しない)ようにするにはどうすればいいんでしょうか?
http://www.uploda.org/file/uporg237043.zip
0174ななしへたぐらま ◆XcB18Bks.Y
2005/11/13(日) 23:29:51このソースでしたらたとえば以下のようにすればOKです.
if (X < Image1.Picture.Width) and (Y < Image1.Picture.Height) then
(既存のコード)
else
(画像外の時のコード);
このソースではイメージコンポのStretchがFalse(拡大縮小しない)でCenterがFalse(画像を左上に配置)ですので
Image1MouseMoveイベントハンドラのX,Yパラメータの値は画像のX,Y座標と一致します.
そのため上のような単純なコードでOKになります.
0175デフォルトの名無しさん
2005/11/13(日) 23:53:53http://pc8.2ch.net/test/read.cgi/tech/1062422335/968
ヒントをいただいたのですがまだわかりません
今やってることをまとめました
・ResetやReadlnで発生した例外をexceptで処理する
・発生する例外はどちらもEInOutErrorなので
ErrorCodeで例外の内容を判断
・ErrorCodeが2(ファイルを開けない)の場合はwriteln(filename);のあと
例外を再生成して外側のexceptに同じ例外を渡す
・ErrorCodeが2以外の場合はException.Create('読み込めねー');を
外側のExceptに渡す
ファイルがない場合や読み込めない場合を試したところ問題の通り動いています
どこが悪いのか検討もつかず、とっかかりが無い状態です
言語ガイドやKodersで色々なソースを読んでるのですがどうにもわかりません
ヒントの追加をお願いします
0177デフォルトの名無しさん
2005/11/14(月) 02:21:30img1:=TImage.Create(Self);
img2:=TImage.Create(Self);
(以下繰り返し)
って書いてたら、for文使いたくなってきたのさ
で、ヘルプの真似して
for i:=1 to 10 do
begin
TImage.Create(Self).Name:='img'+IntToStr(i);
end;
と書いて、ここまではいいんだけど、その後に
img1.Visible:=false;
ってやったらものすごい勢いで怒られました。
どうやったらうまく行くの?
0178デフォルトの名無しさん
2005/11/14(月) 02:34:27この違い分かる?
TForm1 の public のところに
img: array[0..9] of TImage;
と手書きで書きくわえて
for i:=1 to 10 do img[i] := TImage.Create(Self);
としてつくっておき、アクセスするときは
img[1].Visible := false;
とかにする
0179デフォルトの名無しさん
2005/11/14(月) 02:35:31○ for i:=0 to 9 do img[i] := TImage.Create(Self);
0180デフォルトの名無しさん
2005/11/14(月) 02:52:13ImageにはNameのほかにもTopとかVisibleとかいろんな性質があるけど、
その入れ物を作らずに、名前だけ作ってたってことですかね?
なんか無理矢理納得して直しておきます。
答えてくれてありがとう
いや、あれか。Nameってのはただの名札であって、本名じゃないと
0181デフォルトの名無しさん
2005/11/14(月) 03:03:591時間試行錯誤してた問題がすっきり解決。本当にありがとうございました
いやいや、とりあえず入れ物込みでImageを作っておいて、そいつの名札だけは決めておいたと…
ということは、TImage(FindComponent('img'+IntToStr(i))).Visible とかにすれば怒られないですむのかな?
でも、こんな長いの入力するの面倒なんで教わった方法でこの先もやっていきます
0182デフォルトの名無しさん
2005/11/14(月) 03:14:14読んでみたいのですが日本語訳はないでしょうか?
0183デフォルトの名無しさん
2005/11/14(月) 03:20:00Image1.Name := 'HogeHoge';
とした場合、
HogeHoge.Visible := true;
という文が馬鹿げていることは明白でしょう。
Image1.Visible := true;
が正しい。名前はオブジェクトのプロパティーの一つにすぎない。
オブジェクト自体の参照は Image1 という<変数>に代入してる。
変数なんだから、変数名はなんだっていい。
var
Honyarara: TImage;
と予め宣言してあれば、 Honyarara := Image1 と代入できるし、以後
Hanyarara.Visible := true;
としてもOK。
0184デフォルトの名無しさん
2005/11/14(月) 04:14:54あれっすか?
Image1って変数は実は本当のImage1そのものじゃなくて、本当のImage1の性質を記録した箱(って言うかタンス?)に過ぎないってこと?
なんていうか、伝えにくいんだけど、そんな気がしてきた。
ShowMessage(Image1.Name);ってやると、Image1って名前のタンスのNameっていう引出しの中身を見せろ ってこと?
で、TImageという型式の設計図でHonyararaってタンスを作って、
変数Honyararaの中身は変数Image1と同じですよー
つまりHonyararaに記録されているのは"本当のImage1"のいろんな性質なんだよ と
あれ?なんだか意味不明になってきた
0185デフォルトの名無しさん
2005/11/14(月) 04:22:26をどう解釈するか。これで混乱してるっぽい
イメージコンポーネントを作って、そいつのいろんな性質を変数Image1に関連付けますよ って感じですか?
次に、Honyararaの関連付け先はImage1と同じにしてるってこと?
0186ななしへたぐらま ◆XcB18Bks.Y
2005/11/14(月) 07:32:56Image1という変数は箱どころか
イメージコンポーネントがどこにあるかを書いた紙切れに過ぎません.
ですから>>183の
> var
> Honyarara: TImage;
は場所を記憶しておく紙切れを用意したに過ぎませんし,
> Honyarara := Image1
は場所を書き写しているに過ぎません.
0187デフォルトの名無しさん
2005/11/14(月) 10:18:13別のユニットにて定義するとかできないすか?
長いのがいくつかあるので、分けて書きたいのです。
0188デフォルトの名無しさん
2005/11/14(月) 10:35:020189デフォルトの名無しさん
2005/11/14(月) 10:35:520190デフォルトの名無しさん
2005/11/14(月) 10:48:580191デフォルトの名無しさん
2005/11/14(月) 11:40:26{$include foo.pas}
0192デフォルトの名無しさん
2005/11/14(月) 11:48:190193デフォルトの名無しさん
2005/11/14(月) 11:55:57http://pc8.2ch.net/test/read.cgi/tech/1062422335/
でも質問した者ですが
IEコンポーネントを表示することはできたのですが、
そこにHTMLを追加するにはどうすればいいんでしょう?
の質問に対してWebBrowser1.Navigate('URL');との回答が得られたのですが、
これはHTMLファイルを表示するための方法ではないでしょうか。
私がやりたいのはIEコンポーネント内のHTMLを追加したりしたいんです
どうすればできるのでしょうか?
0194デフォルトの名無しさん
2005/11/14(月) 12:48:43で動かす必要が出て気ました。メッセージ等は英語に変えられたのですが、
MessageBox の「はい」や「いいえ」の文字がそのまま表示され文字化けします。
日本語OS なら日本語で、英語OS なら英語で表示されればベストなのですが、
できないようであれば、YES や NO に固定でかまいません。
どなたかアドバイスください。
よろしくお願いします。
0195デフォルトの名無しさん
2005/11/14(月) 14:48:52この関数をPascalで書くとどうなるのでしょうか?
void f(int i)
{
for( ; !t[i]; i++)
if(43<=i) {
return; }
if (3==t[i]) {
t[i]-=3;
f(i);
t[i]+=3; }
if(t[i+1]&&t[i+2]) {
t[i]--,t[i+1]--,t[i+2]--;
f(i);
t[i]++,t[i+1]++,t[i+2]++; }
}
0196デフォルトの名無しさん
2005/11/14(月) 15:12:270197デフォルトの名無しさん
2005/11/14(月) 16:49:59Voidの関数はprocedure、i++はi := i + 1、for文はwhileに展開、!a はa=0、
i-=3はi:=i-3、if(a&&b)はif a and b thenで良いかな。
問題は標準Pascalにはreturnに相当する文がないこと。labelとgoto文を
使うか、フラグで処理しなくちゃならない。Turbo PascalもしくはDelphiなら
exitが使えるんだけど。
あとは頑張れ。私はCは嫌いだから、必要に迫られない限り読む気はしない
けど。
0198ななしへたぐらま ◆XcB18Bks.Y
2005/11/14(月) 16:53:54メソッドがやたら長いことが問題です.
他人(あるいは未来の自分)がソースコードを見たときに
何がなんだかさっぱりわからないコードになるからです.
そのメソッド内の処理の一部を別のクラスやメソッド,
あるいは汎用の関数や手続きに切り分けられないか検討してみて下さい.
(ちなみに私は過去に700行近くあるメソッドを書いたことがあります…手が付けられない)
0199デフォルトの名無しさん
2005/11/14(月) 16:54:06「IEコンポーネント内のHTML」って何? それにHTMLを追加って何をする
つもりなの? 何がしたいかよく分からないから、どう答えればいいかも
分からない。
0200デフォルトの名無しさん
2005/11/14(月) 17:35:59ttp://hogehoge2001.at.infoseek.co.jp/note-delphi.html
0201デフォルトの名無しさん
2005/11/14(月) 18:21:27すみません、書き足すという意味です。
>>200
ここに書き込む前にそこを読みましたが
>uses に SHDocVw_TLB, MSHTML_TLBを追加して
の意味がわかりません・・・
まだDelphiはじめて5日なんです。
0202199
2005/11/14(月) 19:00:37だから「IEコンポーネント内のHTML」が何を指していて、「HTMLを追加」
ってコンポーネントの何にどう追加(書き足す?)ってことなのかさっぱり
分からないんだけど。
こっちはそっちの状況が見える訳じゃないし、何をしたいのかも、何が出来
ないのかも、どうすれば目標が達成されたか(どういう方向に目標があるか)
も何も分からないんだから、分かるように細かく書いてくれないとどうしよう
もないぞ。
0203デフォルトの名無しさん
2005/11/14(月) 19:03:21http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi
0204デフォルトの名無しさん
2005/11/14(月) 19:13:170205デフォルトの名無しさん
2005/11/14(月) 19:16:57ファイルUnit1の上の方に
uses Windows, Messages, SysUtils, ...
というのがあるので
uses
Windows, Messages, SysUtils, ...,
SHDocVw_TLB, MSHTML_TLB;
と書き足す。
0206デフォルトの名無しさん
2005/11/14(月) 20:01:24まずはDelphiの基礎から勉強した方が早いと思う
usesも分からないようだと先が思いやられるし
ヘルプで見るだけでいいから、まずはその辺理解してから来なよ
0207デフォルトの名無しさん
2005/11/14(月) 20:15:37解かりました!そういうことだったんですね。
しかし ファイル 'MSHTML_TLB.dcu' が見つかりません となってしまいました
が、そのメッセージで検索してみるとActiveX取り込みから
Microsoft HTMLなんとかをインストールするといいそうでした。
何とかエラーなく思い通りの事を出来ました。ありがとうございました!
0208デフォルトの名無しさん
2005/11/14(月) 21:20:46http://www.wwlnk.com/boheme/delphi/tips/tec1550.htm
0209駆け出し名無し
2005/11/14(月) 21:27:47前スレ(【Delphi初心者】今から始めるDelphi Part01)で紹介したけど、
このサイトを一通り実際に入力しながらやると、やりたいことの参考になると思うよ。
実際、漏れはこれで実地に学んでコーディングのやり方を学べたから。初めは怒られたけど。(w
・Delphi はじめの一歩(ブラウザを作ってみよう)
ttp://delphi.sakura.vg/index2.html
0210176
2005/11/14(月) 21:31:01あれからちょびちょび追加してるんですが、RGB値を全部格納した配列から画像全体のRの合計値を表示させるつもりが微妙に数値がおかしいみたいなんです。
640×480の真っ白の画像で計算すると本来は640×480×255=78336000になるはずなんですが、78337330になります。
それだけならいいんですけど、画像を読み込むとエラーが出たり出なかったりで・・・。
どこをどう修正すればいいですか?
0211デフォルトの名無しさん
2005/11/14(月) 21:47:43ttp://junki.main.jp/
0212デフォルトの名無しさん
2005/11/14(月) 22:12:47あんまりよく見てないけど、recordをpackedにするとか
0213デフォルトの名無しさん
2005/11/14(月) 22:54:41すいません、まだ前スレの問題やってます
もうギブアップです、答え教えてください
0214デフォルトの名無しさん
2005/11/14(月) 23:37:49はい、ありがとうございます。
0216デフォルトの名無しさん
2005/11/15(火) 00:05:07すごく単純なことでした・・数値は取得範囲がおかしかったようです
エラーは画像が表示されてない部分の座標を取得しようとしてたからっぽいです
0217デフォルトの名無しさん
2005/11/15(火) 00:05:43237 :デフォルトの名無しさん :2005/11/14(月) 23:38:29
さあ話をそらしにかかりました
0218デフォルトの名無しさん
2005/11/15(火) 00:21:41> ちょっと恥ずかしいのですが、よろしく。
> この関数をPascalで書くとどうなるのでしょうか?
t[i] というのが何なのかわからないので、答えようがないと思われ。
0219駆け出し名無し
2005/11/15(火) 00:58:41Delphiは統合環境でエディターはIDEを使って書くので、知るとすぐに役立つ情報です。
・Delphi 6 のショートカットキー: ttp://www.ss.iij4u.or.jp/~somali/extra/_delphi_shortcut.html
・IDE Tips(e-manual): ttp://www.kanazawa-net.ne.jp/~pmansato/IDE_Tips.htm
・IDE の小技: ttp://kakinotane.s7.xrea.com/delphi/faq/f003.html
実際に漏れはこれを知ることで今は大変便利に使っています。きっと大多数にも役立つと思います。
次にコーディングスタイルについての情報です。正書法という基礎的な話ですが、基礎は何事も大事です。
・コーディング規約
ttp://onigiri.s3.xrea.com:8080/delphi/index.php?plugin=related&page=%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0%B5%AC%CC%F3
・Delphi の格言: ttp://kakinotane.s7.xrea.com/delphi/faq/f004.html
DelphiではGUIプログラミングが出来るので、画面デザイン・ユーザーインターフェースも大変重要なことです。
・ダメなユーザインタフェイス講座: ttp://www.geocities.co.jp/SiliconValley-Oakland/8192/
あと、前スレで教えてもらったこのツールもご紹介しておきましょう。
GExperts(日本語解説): ttp://onigiri.s3.xrea.com:8080/delphi/index.php?GExperts
GExperts(本家): ttp://www.gexperts.org/
実際にコードを書かなくても、これらの情報をどれか一つだけでも読むだけで確実にレベルアップします。
最後に、GExpertsを教えてもらったのですが、そのトップもご紹介しておきますね。殆どはここからです。
DelWiki - Borland Delphi用PukiWiki: ttp://onigiri.s3.xrea.com:8080/delphi/index.php?FrontPage
0220デフォルトの名無しさん
2005/11/15(火) 01:13:120221デフォルトの名無しさん
2005/11/15(火) 01:14:57昔はそうでもなかったけど、スレの主旨を理解してくれない人が増えた。
0222デフォルトの名無しさん
2005/11/15(火) 01:31:58教えてください↓
円単位で与えられたお金を紙幣(千円、二千円、五千円、一万円)
貨幣(1,5、10,100,500)を使い最も紙幣や貨幣の合計数
が少なくなるようにして表示せよ。
というプログラムをつくらなければなりません。本当にどうしたらいいか
わかりません。助けてください
0223デフォルトの名無しさん
2005/11/15(火) 01:32:52まずどこまでやったか書いてみ。
0224デフォルトの名無しさん
2005/11/15(火) 01:43:010225デフォルトの名無しさん
2005/11/15(火) 01:51:220226デフォルトの名無しさん
2005/11/15(火) 01:54:190227駆け出し名無し
2005/11/15(火) 01:55:19それ、Excelの研修でやったけど、金種表のやつだね。
問題には二千円が入っているから、ちょっと大変だけど、
アルゴリズムの参考にはなると思う。ぐぐったら以下か。
2000円札に対応した金種表を作る:
ttp://arena.nikkeibp.co.jp/tec/excel/20040310/107740/
0228デフォルトの名無しさん
2005/11/15(火) 02:08:54給与計算で常に必要になる金種表計算だね
ぐぐってみたら多分あるからそれをdelphiにしてみ
(ただ個人的には2000円に対応にしたものは見たことないな)
0229デフォルトの名無しさん
2005/11/15(火) 02:14:390230デフォルトの名無しさん
2005/11/15(火) 02:31:06プログラムで考えようとせず、手動でやるならどういう手順になるか考えれ
それをうまく手順としてまとめられたら、あとはそれをコード化するだけだ
分かりませんじゃこっちもどうしようもない
自分でまずやってみて、つまづいた箇所で聞け
0231デフォルトの名無しさん
2005/11/15(火) 02:59:130232デフォルトの名無しさん
2005/11/15(火) 03:35:250233デフォルトの名無しさん
2005/11/15(火) 04:45:03やっぱ大きい方から総当りしちゃうなw
0234デフォルトの名無しさん
2005/11/15(火) 05:15:38全部やるんだから
0235デフォルトの名無しさん
2005/11/15(火) 05:19:300236デフォルトの名無しさん
2005/11/15(火) 05:24:04procedure Calc(Money: Integer; var Y1, Y1000, Y10000: Integer);
var
A1, A1000, A10000: Integer;
MinSum: Integer;
begin
MinSum := MaxInt;
for A1 := 0 to 999 do
begin
for A1000 := 0 to 9 do
begin
for A10000 := 0 to Money div 10000 do
begin
if A1 + A1000 * 1000 + A10000 * 10000 = Money then
begin
if A1 + A1000 + A10000 < MinSum then
begin
MinSum := A1 + A1000 + A10000;
Y1 := A1;
Y1000 := A1000;
Y10000 := A10000;
end;
end;
end;
end;
end;
end;
0237デフォルトの名無しさん
2005/11/15(火) 05:42:53var
A1, A1000, A10000: Integer;
MinSum: Integer;
begin
MinSum := MaxInt;
for A10000 := 0 to Money div 10000 do
begin
if A10000 * 10000 > Money then Exit;
for A1000 := 0 to 9 do
begin
if A10000 * 10000 + A1000 * 1000 > Money then Exit;
for A1 := 0 to 999 do
begin
if A1 + A1000 * 1000 + A10000 * 10000 > Money then Exit;
if A1 + A1000 * 1000 + A10000 * 10000 = Money then
begin
if A1 + A1000 + A10000 < MinSum then
begin
MinSum := A1 + A1000 + A10000;
Y1 := A1;
Y1000 := A1000;
Y10000 := A10000;
end;
end;
end;
end;
end;
end;
0238デフォルトの名無しさん
2005/11/15(火) 05:46:520239デフォルトの名無しさん
2005/11/15(火) 07:32:450240デフォルトの名無しさん
2005/11/15(火) 09:16:12ここは流れ早いから別に立てたよ
http://pc8.2ch.net/test/read.cgi/tech/1132013685/
0241デフォルトの名無しさん
2005/11/15(火) 10:11:00Pascalの宿題は俺にやらせろ!!Part1
http://pc8.2ch.net/test/read.cgi/tech/1089719714/
0242デフォルトの名無しさん
2005/11/15(火) 10:33:33ちょっとみてきたけどキモイAAとかいっぱいあったので合流は遠慮しときます
0243デフォルトの名無しさん
2005/11/15(火) 10:36:490244デフォルトの名無しさん
2005/11/15(火) 11:59:57Google検索すればすぐヒットしそうな質問を何時間〜何日〜何週間も待ってる弱小開発者ばかりなのはくだすれクォリティかしら
0245デフォルトの名無しさん
2005/11/15(火) 12:03:28まともに情報収集(検索)も出来ない頭の弱いボウズが食い付いてくるし。
別に初心者はやるなとは言わないけど、最低限の事はしてほしいねとチラ裏でしたpwq 板汚しすまそ
0246デフォルトの名無しさん
2005/11/15(火) 12:16:250247デフォルトの名無しさん
2005/11/15(火) 12:19:190248デフォルトの名無しさん
2005/11/15(火) 12:26:37Memoコンポで標準で出る右クリックメニューを出すにはどうコードを書けばいいのでしょうか?
0249デフォルトの名無しさん
2005/11/15(火) 13:04:14>>1
ちゃんと回答する俺ってやさしいな。
0250デフォルトの名無しさん
2005/11/15(火) 13:28:56古いログにこういうのがあったけど・・・。
65 名前: デフォルトの名無しさん 投稿日: 02/09/30 13:06
TRichEditを右クリックしたとき
TMemoを右クリックしたときと同じように
ポップアップを表示させるのにはどうしたらよいのでしょうか?
TPopupMenuで作成するしかないのでしょうか?
66 名前: デフォルトの名無しさん 投稿日: 02/09/30 17:04
>>65
他に方法があるなら教えてくれ。
0251222
2005/11/15(火) 17:34:42本当にありがとうございました^^!!
0253デフォルトの名無しさん
2005/11/15(火) 23:25:170254デフォルトの名無しさん
2005/11/15(火) 23:55:09にセットするだけ
0255デフォルトの名無しさん
2005/11/16(水) 00:48:25PasteFromClipboard
CutToClipboard
SelectAll
あたりを使って、それぞれ「Memoのメニューと同じ動作」を考えて
コーディングしていく作業は、そんなに難しくないし
ある意味逆に楽しいかもw
0256デフォルトの名無しさん
2005/11/16(水) 11:52:440257デフォルトの名無しさん
2005/11/16(水) 11:55:110258256
2005/11/16(水) 12:36:31使ってますが、random関数の周期が知りたいです。
vbのrndの周期は2^24らしいですが、
randomはどの程度でしょうか?よろしくおねがいします。
0259デフォルトの名無しさん
2005/11/16(水) 12:45:42コピー操作(Ctrl+C or 右クリック->コピー)しても文字列がコピーされません。
VBでは何もコード書かなくてもWebBrowserコントロールで選択文字列のコピーが出来たのですが
DelphiでTWebBrowserに表示された文字列を選択コピーするにはどうすれば良いのでしょうか?
コード書かなくちゃならないんだとしたら、文字列変数の値をクリップボードに格納する方法は解るのですが
TWebBrowser上で範囲選択した文字列を取得する方法がわからないので
その辺の具体的なコードも教えてください。
WinXP Delphi6Personalです。よろしく御願いします。
0260デフォルトの名無しさん
2005/11/16(水) 13:47:11http://www.swissdelphicenter.ch/en/printcode.php?id=1174
0261デフォルトの名無しさん
2005/11/16(水) 14:24:06ttp://delphi.sakura.vg/index2.html
ここを参考にWebブラウザを作りまして、プログレスバーをつけたのですが
全く動作しません。
よろしければ、どなたか教えて下さい。
よろしくお願いします。
0262デフォルトの名無しさん
2005/11/16(水) 15:23:370263デフォルトの名無しさん
2005/11/16(水) 15:27:00お前には聞いてないから大丈夫w
0264デフォルトの名無しさん
2005/11/16(水) 15:47:50Randomのソースが見つからない・・・@D7
0265デフォルトの名無しさん
2005/11/16(水) 19:06:18あるアプリを実行中に、そのアプリの実行ファイルに
何らかのファイルをひとつD&Dしたら、既に実行されてるアプリに
そのパスを渡すってものを作りたいんだけど簡単なサンプルとか無いですか?
ttp://forum.nifty.com/fdelphi/faq/00191.htm
にサンプルはあったんですが、コマンドラインの制限文字数を
限界まで使って複数の引数を渡すことを考慮していてなんか面倒
ParamStr(1)をひとつ送るだけでいいので
そのために必要な最低限のコードを教えてください
現在、二重起動を防止あたりは出来てます
Del6Personalです
0267デフォルトの名無しさん
2005/11/16(水) 19:54:380268デフォルトの名無しさん
2005/11/16(水) 20:30:16一千年の未来から時の流れを超えてやってきた
Delphi5応答せよ
0269デフォルトの名無しさん
2005/11/16(水) 20:42:080270駆け出し名無し
2005/11/16(水) 20:49:55だから、それじゃわからないんだってば。
恐らくフォームに貼っただけじゃないの?
コードを書かないと駄目だよ。
何をどう表示するか、流石のDelphiちゃんにもわからないよ。
>>268
うまい!座布団1枚
というか、こんな雑談を書きたいんじゃないんだけどなあ・・・。
0271デフォルトの名無しさん
2005/11/16(水) 21:51:49い ま L_ / \ \、_,r Y Y ' 、 /';,'', ヽ 騎 |
方 り / | ^ ^ | 、 ,\ヽ, | | y /、 ,;;,,'';, i 士 マ
が 私 / | .>ノ(、_, )ヽ、.| \、\::::::::::/, /,, ;;, ;;く !? ジ
い を i __! ! -=ニ=- ノ!___ ヽ\ o 、 ,o / { ;;;;;;;,,//⌒l /`
い 怒 l´ ̄ ̄ |\`ニニ´/ `ソ [ \|:::|/ ] >"''''' !/
よ ら _ゝ |__  ̄ ̄ヾ >、.>ノ(、_, )ヽ、,, <,.<
ね せ 「 r---イ /|,、_,, ,',;:ノ ! ! -=ニ=- ノ! ト
l ヽ } /;\ / ヽ /''"L \\`ニニ´//
⌒レ'⌒ヽ厂 ̄ } ./;;;,, \ / ;;;;;;ヽ ,,;;','i _人__人ノ_
人_,、ノL_,iノ! / /;;,',';; ノ--, ',',;;::',',゙i ,,';';i 「 キ L_
ハ キ /'; /./,',',';;" / \ ',',',;;,'i ,;',i ノ モ 了
ハ ャ { / i 、 / ヽ ',;::'、| ) | |
ハ ハ ヽ ヾ丿 〈 ヽ'' {//く イ >
0272デフォルトの名無しさん
2005/11/16(水) 22:07:49おまいら!今日からDelphi言語を学んでいくぞー!02
http://pc8.2ch.net/test/read.cgi/tech/1132013685/
0273261
2005/11/17(木) 00:00:16すいません。>>267は自分じゃないです。
プロパティのpositionを増やしていけば良いと思うのですが、
その数値をどこから持ってくれば良いのかわかりません。
宜しくお願いします。
0274デフォルトの名無しさん
2005/11/17(木) 00:02:21call @RandInt
0275デフォルトの名無しさん
2005/11/17(木) 00:04:31何をしたいのか分からないので、
エスパーじゃないとどの数値を使えばいいか分かりません
つーか学習しろよ、小出しにするんじゃねボケ
0276デフォルトの名無しさん
2005/11/17(木) 00:18:13てめえには聞いてねえ。
偉そうな口きいてんじゃねボケ。
0277デフォルトの名無しさん
2005/11/17(木) 00:49:240278デフォルトの名無しさん
2005/11/17(木) 00:59:220279デフォルトの名無しさん
2005/11/17(木) 01:22:07>>278
バグ大杉だザケンナ。
0280デフォルトの名無しさん
2005/11/17(木) 01:28:270281デフォルトの名無しさん
2005/11/17(木) 02:54:13>>237を添削してくれないのだから、期待出来ない。
因みに>237は、小さすぎる場合は Continue できる。
ループのネストも必要無い。
こうなると総当たりとは言わず、割り算の替わりにループと掛け算で
求めることになる。
0282デフォルトの名無しさん
2005/11/17(木) 03:26:07漏れもブラウザ作った事があるんだけど、プログレスバーを実装しようと
色々調べてるうちに結局めどくなったのでやめた。
んで、改めて気になってぐぐってみたら、簡単に実装できる方法を発見。
TWebBrtowserのOnProgressChangeイベントに次のように記述するだけ。
//Progress ダウンロードの進行状況のバイト単位での数値、完了時に-1を返す
//ProgressMax ダウンロードするデータの大きさ(バイト単位)
if ProgressMax > 0 then //Progressが0で除算されるのを防ぐ
ProgressBar1.Position := Round(Progress / ProgressMax * 100);
ただしこれだとプログレスバーが100%表示されたままになっちゃう場合があるので、
後は自分で工夫するべし。
0283デフォルトの名無しさん
2005/11/17(木) 03:51:460284デフォルトの名無しさん
2005/11/17(木) 04:06:49ttp://www2.big.or.jp/~osamu/Delphi/tips.cgi?index=0132.txt
0285デフォルトの名無しさん
2005/11/17(木) 06:33:110287デフォルトの名無しさん
2005/11/17(木) 23:55:18釣りじゃなかったのか…。
煽るワケじゃないけど、あのページにプログレスバーのことは
書いてないじゃん。今、確認してきたけど。
ってことは、「(貼っただけで)動きません」って主張してたんだよね?
ちょっとそれはどうだろう…。
0288デフォルトの名無しさん
2005/11/18(金) 01:02:02まるっきり見当がつかなかったと。だから、ああいう書き方になっても、まぁ、
仕方ないかと。くだすれだし。
0289デフォルトの名無しさん
2005/11/18(金) 01:04:240290デフォルトの名無しさん
2005/11/18(金) 01:04:41ふーむ。そっか。
0291デフォルトの名無しさん
2005/11/18(金) 01:44:01MS製品のプログレスバーなんて9割ぐらいでピタッと止まって、
その後物凄く待たされたりするなんてことも良くあるしな
進捗を示すにあたって何を基準とするかが重要
0292デフォルトの名無しさん
2005/11/18(金) 02:47:500293デフォルトの名無しさん
2005/11/18(金) 05:50:15チャント答えてくれた人がいるってのにごねるなよ。
自分は読解力のない馬鹿ですって告白してるようなもんだぞ。
0294デフォルトの名無しさん
2005/11/18(金) 06:44:23ん?
0295デフォルトの名無しさん
2005/11/18(金) 11:26:18どのようにするといいのでしょうか。
0296デフォルトの名無しさん
2005/11/18(金) 11:28:41プリンタ関連は面倒なんで、NkPrinterとかのコンポーネント使ったほうがいいと思います。
0297デフォルトの名無しさん
2005/11/18(金) 11:29:47ありがとうございます。使ってみます。
0298デフォルトの名無しさん
2005/11/19(土) 02:06:580299デフォルトの名無しさん
2005/11/19(土) 02:08:210300デフォルトの名無しさん
2005/11/19(土) 02:12:210301デフォルトの名無しさん
2005/11/19(土) 02:31:100302駆け出し名無し
2005/11/19(土) 15:36:54ついでに、これらもまとめておきますね。
・DELPHIで良く使用する制御文字
改行コード CR: #13
改行コード LF: #10
改行コード CRLF: #13#10
タブ: #9
0303デフォルトの名無しさん
2005/11/19(土) 16:51:41Writeln('hoge'#9'hoge');
0304駆け出し名無し
2005/11/19(土) 17:22:00ということは、以下はどっちも通るってことですか?
Writeln('hoge'#9'hoge');
Writeln('hoge' + #9 + 'hoge');
違いがあるのは、他の言語からの移行性の考慮?
0305デフォルトの名無しさん
2005/11/19(土) 22:27:33どっちでも通る。漏れは付けない(すっきりする)。
移行性云々はシラネ。
0306ななしへたぐらま ◆XcB18Bks.Y
2005/11/19(土) 23:16:59Writeln('hogehoge') と書いても
Writeln('hoge' + 'hoge') と書いても
同じ結果になるでしょう?
それと同じ.
0307デフォルトの名無しさん
2005/11/19(土) 23:18:03Writeln('hoge''hoge')
とは書けないが
0308デフォルトの名無しさん
2005/11/20(日) 00:01:16それは書けるよ
もちろん意図したものとは異なることになるが
0309デフォルトの名無しさん
2005/11/20(日) 04:03:480310デフォルトの名無しさん
2005/11/20(日) 04:44:450311ななしへたぐらま ◆XcB18Bks.Y
2005/11/20(日) 06:01:42ではこんな感じではどうでしょうか?
------------------------------------
・ 'hoge'#9'hoge' これはひとつの文字列
・ 'hoge' + #9 + 'hoge' これは2つの文字列と1つの文字をつないだ式(式の値がひとつの文字列になる)
'hoge'#9'hoge' はあくまでひとつの文字列なので
たとえば文字列変数 s1, s2 をタブ文字でつなごうとして
s1#9s2
と書いてもダメです.この場合は s1 + #9 + s2 と書いてください.
------------------------------------
※ちなみにWriteln手続きなら Writeln('hoge', #9, 'hoge')と書けますね(すっかり忘れていました).
0312デフォルトの名無しさん
2005/11/21(月) 05:34:23func( int *a )
と言う整数配列ポインタ指定を引数とした関数にアクセスしたいのですが
Delphi側からは何を渡せばいいのでしょうか?
下記の感じで適当に配列を作って渡したみたのですが例外が出て動きません。。。。
var a: array[0..100] of integer;
begin
func ( int a );
end;
@で試しても例外にて停止しました
0313312
2005/11/21(月) 06:02:16動作確認はまだですが
宣言時にstdcall;追加でエラーはでなくなりました
0314デフォルトの名無しさん
2005/11/21(月) 10:14:45配列ポインタが引数ならちゃんと参照渡しにしないとダメ
静的配列だから@付ける事で参照渡しになるけど
動的配列だったら暗黙で参照渡しだから@付けると参照の参照で
悲惨な目に会う予感
0315デフォルトの名無しさん
2005/11/21(月) 10:27:580316デフォルトの名無しさん
2005/11/21(月) 15:11:20おまいさんは基本をやり直した方が良い感じ
0317デフォルトの名無しさん
2005/11/21(月) 20:45:21というのをやりたいのですが、ヘルプを見るとEnsureRangeというのがありますけど、この場合(配列から探すという場合)使えるんですかね?
0318デフォルトの名無しさん
2005/11/21(月) 21:35:22ループ回して "ある値" との差の絶対値が最も小さい値を見つければいいんでね?
0319デフォルトの名無しさん
2005/11/21(月) 21:39:59ほらよ('A`)ノ
function hoge(foo: Integer; bar: TIntArray): Integer;
var
i: Integer;
begin
i := Low(bar);
Result := bar[i];
Inc(i);
while i <= High(bar) do
begin
if Abs(foo - Result) > Abs(foo - bar[i]) then
begin
Result := bar[i];
end;
Inc(i);
end;
end;
つーかこれくらい自分で作りやがれボケ
添字の範囲チェックや高速化くらいは自分でやれよ
0320デフォルトの名無しさん
2005/11/21(月) 21:45:25何故か勝手に答えを提示した319に罵倒されてる317カワイソス
0321デフォルトの名無しさん
2005/11/21(月) 21:52:38もっとも Del のヘルプは信用できんから実は使えたり…と思ったのかもしれんが。
0322デフォルトの名無しさん
2005/11/21(月) 21:52:47文句言いつつエラーチェックや高速化を教えてくれてる辺り
0323デフォルトの名無しさん
2005/11/21(月) 21:53:53正しいかどうかは別にして
0324デフォルトの名無しさん
2005/11/21(月) 21:59:200325デフォルトの名無しさん
2005/11/21(月) 21:59:280327デフォルトの名無しさん
2005/11/21(月) 22:39:540328駆け出し名無し
2005/11/21(月) 22:46:27あっちでマターリしていればいいし。
だけど、上級スレが落ちたのはショックだったなあ。
続かせないと、どんな形であれ。Delphi、未だここにありって感じで。
0329320
2005/11/21(月) 22:49:08罵倒されるよりはいい?は?
そんなのやられるくらいなら無い方がいいっつーの
勘違いしてんじゃね
0330デフォルトの名無しさん
2005/11/21(月) 23:05:44大人の話をしようじゃマイカ
0331デフォルトの名無しさん
2005/11/21(月) 23:17:59DDE通信関連のアプリを作っているのですが、
1トピックの150アイテムでOnChangeイベントを使っています。
ログを取るためにOnChangeイベント内でファイル操作(開いて閉じる)をしたところ、
かなりデータに抜けが出てしまいました。
(値が変わっているのに、OnChangeイベント内の処理が行われない)
処理が重くなるかもとは思いましたが、抜けるとは思っていなかったのでびっくりしました。
そういうもんなんでしょうか?
アプリが動いている間、ずっとファイルを開いていていいもんでしょうか?
プログラムとしてあまり望ましくないですよね?
0332デフォルトの名無しさん
2005/11/21(月) 23:35:02DDEは触ったことないんで、その動作が正常なのかどうかは知らないんで置いておいて。
onChangeではキューにログを追加するだけで、後はTTimerのonTimerなり
TApplicationEventsのonIdleでキューから取り出してファイルに書き込むとか。
もっとクリティカルな状態であれば、キューから取り出してファイルに書き込む部分を
別スレッドにするとかでいいんでないかい。
0333331
2005/11/21(月) 23:42:54別スレッドにするとどんな感じになるんでしょうか?
やっぱり一回の値の変化でファイル操作をするとかなり重くなって
本スレッドの処理を圧迫してしまいますよね・・・
ちょっと教えて欲しいのですが、
DDEで最終的には300トピック、10000アイテムくらいを監視したいと思ってるんですが、
300スレッドに分けてしまったらさすがにまずいですよね・・・
そもそも別スレッドにしたものでOnChangeイベントを拾う方法ってあるのでしょうか?
0334デフォルトの名無しさん
2005/11/21(月) 23:44:24DDEも通信である以上は拾い損ねもあるよ。
0335デフォルトの名無しさん
2005/11/21(月) 23:46:45DDEはSendMessageで実装されてるぐらいなんで、いくらなんでも限度あるだろ。
0336デフォルトの名無しさん
2005/11/21(月) 23:47:44行数制限をするために、一定行数を超えたらMemo1.Lines.Delete(0)としてるのですが、
内部で配列を再確保、コピー、解放とやってるようで、かなり負荷があります。
また、ログの追加も頻繁なので、Addのコストもあります。
これらを解決する(負荷コストを下げる)良い方法ってあるでしょうか?
0337331
2005/11/21(月) 23:50:39エクセルで値を監視してるとかなりきっちり拾ってるんですよ。
プログラムをうまく作れば、千アイテムくらいならきっちり拾えるはずなんです。
OnChangeイベント内で重い処理ができないとなると、
考えているアプリを実現するのは結構難しいです・・・
>>335
しょうがないんです・・・
宿命なんです。
DDEで300トピック監視せざるを得ないのです・・・
0338デフォルトの名無しさん
2005/11/21(月) 23:51:31いやまじで。
メモ帳でちょっとでかいファイル開いてみてもわかるように
Windowsのエディットコントロールはあんま性能良くない。
0339デフォルトの名無しさん
2005/11/21(月) 23:53:54ListViewのカスタムデータ表示に切り替える。
Memo.Linesは重すぎ。
0340デフォルトの名無しさん
2005/11/21(月) 23:55:09どうしようもないんぢゃないの?
0341デフォルトの名無しさん
2005/11/22(火) 00:00:12宿命ですかそうですか。
んー…。
DDEコンポーネントもメインスレッドのメッセージキューを使ってる筈なんで、
いくらマルチスレッド化してもメインスレッドが耐えられなくなったら終わりそうなんで…
であればDDEコンポーネント使うのやめて、各スレッドでDDEML APIでも使って
通信まで別々にやっちまうぐらいしか?
しかも通信相手の都合もあるし、DDEの開始メッセージはブロードキャストされるしで、
自分の側だけどうにかして果たして効果が出るものなのかもわからん…。
すまんね。
0342デフォルトの名無しさん
2005/11/22(火) 00:03:51つまりデータの追加削除にかかるコストより、
描画処理の方が重いってことですか?
てっきりTMemoStrings内での配列のコピー周りで時間食ってると思ってました
0343デフォルトの名無しさん
2005/11/22(火) 00:07:32それで合ってるよ。
そして、TMemo(エディットコントロール)の内部構造なんかTMemoを使う限りどうしようもないっしょ?
だから、そもそもエディットコントロールを使わない、という選択肢が出てくるわけだ。
0344デフォルトの名無しさん
2005/11/22(火) 00:12:16合ってる、というのは、データの移動が描画より重いってあたりで。
あとエディットコントロールはUnicodeの合成文字とか
右から左へ書く言語とか全部サポートしてるので
重いのはそれなりの理由が合ったりする。
でも今回の役にはたたんでしょ?
自分で中身も管理するなら、追加と削除が高速なリンクリストにするなどの
データ構造への工夫を凝らすことができる。
0345デフォルトの名無しさん
2005/11/22(火) 00:20:26なにが問題なんだ。
DDEがからの通信が拾えてないのか、ログ書き込み時のファイル操作に失敗しているだけなのか。
後者ならいちいち閉じずにファイルハンドル使いまわして書き込めばいいだけ。
CreateFile/WriteFileはスレッドセーフだから一行単位で書き込む限り破綻しない。
0346デフォルトの名無しさん
2005/11/22(火) 00:28:43なるほど。
リンクリストとなるとスクロール時とかの表示がめんどくさそうですけど、
とりあえずそれで何とか頑張ってみます。
ありがとうございました。
0347331
2005/11/22(火) 00:31:55拾えてないんですよね・・・
OnChangeイベントが発生したら、Editの値を変えて、
ファイルを開いて、一行書き込んで閉じるってことをしてるんですが、
Editの値からして変わらないんです・・・
おそらく、ファイル操作してる時にイベントが起こって、
破棄される(?)かなんかしてるのかな
ファイルハンドル使いまわしてってのは、
一度開いたら閉じないで置くって意味ですか?
ファイル操作ってかなり重いですよね?
ファイル操作の代わりにそこそこの演算しても平気な可能性ありますよね?
0348デフォルトの名無しさん
2005/11/22(火) 00:36:040349デフォルトの名無しさん
2005/11/22(火) 00:39:00開きっぱなしで書き込んでいけばバッファリングされるからフォーマンスはかなり上がるはず。
0350331
2005/11/22(火) 00:39:50おそらく拾えると思われる。
色々事情があって、
そのテストをするのが明日の朝か明々後日の朝になる・・・
同時にイベントが起こったりしたら拾えない仕様だったりするんですかね?
処理が遅れるのはしょうがないと思ってたけど、
イベント自体はしっかり拾って保持してくれると思ってたんで、
ちょっと想定外。
どうやってプログラミングすればいいんだろ・・・
0352デフォルトの名無しさん
2005/11/22(火) 00:47:050353デフォルトの名無しさん
2005/11/22(火) 00:48:14>別にいいことなんですかね?
運用方法による。
tail -fなんかで外部から閲覧できればいいならFILE_SHARE_READすればいいし
フルコントロールしたいなら一定間隔でファイル名変えたりopen/closeするとか。
0354331
2005/11/22(火) 00:49:13私のことですか?
ExcelのVBAだと重いかなと思いまして、
複雑な処理がしたいこともあってdelphiでアプリを作ってます。
COMってのを使うとどんなことができるんでしょ?
0355デフォルトの名無しさん
2005/11/22(火) 00:51:020356331
2005/11/22(火) 01:00:39んじゃ、全然問題ないですね。
アプリを実行中にログを書き込む以外でファイルにアクセスするつもりないので。
明日はファイル開きっぱなしで抜けがでるか試してみます。
>>355
え・・・
http://pc8.2ch.net/tech/
このスレの1を見てdelphiなら間違いないと思ったのに・・・
0357デフォルトの名無しさん
2005/11/22(火) 01:02:260358デフォルトの名無しさん
2005/11/22(火) 01:08:37それで駄目なら100万倍高速化しても無理だぞ。
0359331
2005/11/22(火) 01:11:08http://pc8.2ch.net/test/read.cgi/tech/1099112351/
このスレっす!このスレっす!
0360デフォルトの名無しさん
2005/11/22(火) 01:14:07それは単体動作する場合だろ
どんなに凄い速度で動く言語があっても、
別のプロセスとやりとりするならかなり意味が無い
0361デフォルトの名無しさん
2005/11/22(火) 01:14:500362331
2005/11/22(火) 01:23:53意味が分からなくなってきてます!
単体動作が早いのが重要じゃないんですか?
DDE通信で得た値で結構複雑な演算をしたいと思っているので、
VBAだと重いのかなと思ったんです。
複雑な処理はしづらいのかなとも思って。
0363デフォルトの名無しさん
2005/11/22(火) 01:29:440365デフォルトの名無しさん
2005/11/22(火) 01:40:09>>358
0367デフォルトの名無しさん
2005/11/22(火) 01:45:010368デフォルトの名無しさん
2005/11/22(火) 02:11:16間接的にも読まずメッセージでやり取り、
しかも通信に失敗する可能性のあるものと、
普通の人間が考えたらどっちが良いと思う?
0369331
2005/11/22(火) 02:26:16あらぬ誤解を招いてしまったようで・・・
DDEServer側は全く違うアプリです。
そのアプリを通してしか、インターネット上のサーバにアクセスできません。
DDEClient側をExcelにするかDelphiでプログラミングしたアプリにするかって話です。
わかりづらくてすんません。
0370デフォルトの名無しさん
2005/11/22(火) 07:41:52ちゃんとまとめろアホ
0371デフォルトの名無しさん
2005/11/22(火) 09:00:310372デフォルトの名無しさん
2005/11/22(火) 09:13:230373331
2005/11/22(火) 09:16:51ファイル操作なしでも抜けまくりでした・・・
OnChangeイベントって同時に起こると拾えないのでしょうか?
DDEコンポーネントの問題でしょうか?
どうしたらいいかなぁ
0374デフォルトの名無しさん
2005/11/22(火) 10:20:02エスパーは滅多にいないんだよ
0375メ力名無しさん
2005/11/22(火) 16:26:16以下のような設定ファイルから「SLOPE」の行だけを読み出してDouble型のvolt[1]とDouble型のvolt[2]に代入し、
それをInt型の値と乗算しDouble型をString型に変換して出力することが解らずに悩んでいます。
----------------------------
STORAGE_MODE interlaced
FILE_TYPE INTEGER
SLOPE 1.87500E-04,1.87500E-04
X_OFFSET 0.00000E+00
Y_OFFSET 0.00000E+00,0.00000E+00
----------------------------
~~~~~~C 言語での例~~~~~~
for(ch=1;str[0]!='S' || str[1]!='L';ch++)fgets(str,60,fp2); /* SLOPE確定 */
sscanf(str,"%s %le,%le",&word,&volt[0],&volt[1]);
~~~~~~Delphiでやった部分~~~~~~~
while not Eof( hdrfile ) do // ファイルの終端までループ
begin
Readln( hdrfile, s );
if s[1]='S' then if s[2]='L' then Memo1.Lines.add(s); // SLOPE確定
// volt[1] volt[2] に読み込む
end;
まとめると解らないのは以下の2点
○ C言語でいう #le 型の読み込みがわからない
○ Double型をString形式にできない
是非教えていただきたく、お願いします。
0376デフォルトの名無しさん
2005/11/22(火) 16:50:04DoubleからStringはFloatToStrの事かな
馬鹿でごめんなさい><
0377デフォルトの名無しさん
2005/11/22(火) 16:54:20その配列を動的確保したいのですが、どういう風にしたら良いのでしょうか?
Cでの経験から自分なりにやってはみたのですが、コンパイラに弾かれます・・・
0378デフォルトの名無しさん
2005/11/22(火) 16:55:58setlength(s, 10);
s[1] := 'hello';
0379デフォルトの名無しさん
2005/11/22(火) 16:56:320380デフォルトの名無しさん
2005/11/22(火) 17:18:37こんなんでいかがでしょうか?DelphiらしくTStringListを使ってみました。
procedure TForm1.Button1Click(Sender: TObject);
var
fp: TextFile;
s: String;
sList: TStringList;
begin
AssignFile(fp, 'C:\test.txt');
Reset(fp);
try
while not Eof( fp ) do
begin
Readln( fp, s );
if (s[1]='S') and (s[2]='L') then
begin
Memo1.Lines.Add(s);
sList := TStringList.Create;
try
sList.CommaText := s;
Edit1.Text := sList.Strings[1]; Edit2.Text := sList.Strings[2];
finally
sList.Free;
end;
end;
end;
finally
CloseFile(fp);
end;
end;
0381デフォルトの名無しさん
2005/11/22(火) 18:33:53配列の添え字は0から使えるよ
0382デフォルトの名無しさん
2005/11/22(火) 18:35:410383デフォルトの名無しさん
2005/11/22(火) 19:46:090384デフォルトの名無しさん
2005/11/22(火) 20:08:290385375
2005/11/22(火) 20:56:38ありがとうございます。
その方法だと「SLOPE」の文字が残りそうなので「SLOPE」をDELETEしておけばいいんですね。
さっそく組み込んでみたいとおもいます。
>>Double型をString形式にできない
というのは「Str(X,S)」を用いることで解消できました。
そのままCSV形式で書き出したらExcelで読み込めたので、それでOKとしておきます。
デジタルオシロの出力ファイル(中身はバイナリ)を卒業研究用に変換するソフトでした。ありがとうございました。
0386ななしへたぐらま ◆XcB18Bks.Y
2005/11/23(水) 00:41:48>>336
> 内部で配列を再確保、コピー、解放とやってるようで、かなり負荷があります。
メモコンポのテキストはWindowsのMEMOコントロールが持っているのがすべてで
VCL内部では何も持っていません.
たとえば TMemoStrings.Delete(インデックス) では
以下の各処理でMEMOコントロールにメッセージを送っています.
・インデックスで指定された行の先頭位置を調べる
・次の行の先頭位置を調べる
・両者の間を選択する
・選択範囲を空文字列で置き換え(=削除)
0387デフォルトの名無しさん
2005/11/23(水) 00:54:00みたいな裏技は無いんですか?
頼む!「有る」って答えて!
0388デフォルトの名無しさん
2005/11/23(水) 00:57:49反対はCtrl+Shift+Iな
0389デフォルトの名無しさん
2005/11/23(水) 01:00:37>>388さんありがとう! とても興奮してます
0390デフォルトの名無しさん
2005/11/23(水) 01:02:340391デフォルトの名無しさん
2005/11/23(水) 01:11:24俺も以前質問して即レスもらった
0392デフォルトの名無しさん
2005/11/23(水) 01:25:090393ななしへたぐらま ◆XcB18Bks.Y
2005/11/23(水) 01:51:38(まぁこんなもんだろう)とか(しかたがないよ)とか思ったらなんの進歩もありませんから.
プログラミングの進歩も「どうすればもっと楽になるか」の繰り返しです.
0394駆け出し名無し
2005/11/23(水) 01:55:50Delphi 6 のショートカットキー: ttp://www.ss.iij4u.or.jp/~somali/extra/_delphi_shortcut.html
あと、何か役立つものが落ちているかもしれないからこっちも紹介。
おまいら!今日からDelphi言語を学んでいくぞー!02
ttp://pc8.2ch.net/test/read.cgi/tech/1132013685/
0395デフォルトの名無しさん
2005/11/23(水) 04:13:47具体的にどういったコードで知る事ができるのでしょうか?
環境はindy9、Delphi6Personalです。
0396デフォルトの名無しさん
2005/11/23(水) 04:27:550397デフォルトの名無しさん
2005/11/23(水) 04:42:01http://www.monazilla.org/document/indytips.html
0398デフォルトの名無しさん
2005/11/23(水) 09:45:09フリーカーソル無効化アドイン入れればTabでインデント、Shift+Tabで逆インデントできるよ
0399デフォルトの名無しさん
2005/11/23(水) 17:43:330400デフォルトの名無しさん
2005/11/23(水) 18:34:310401デフォルトの名無しさん
2005/11/23(水) 18:35:38普通に使ってればアプリのexeファイルの更新日時って変化しないよね?
0402デフォルトの名無しさん
2005/11/23(水) 19:19:510403デフォルトの名無しさん
2005/11/23(水) 23:20:31バイナリエディタで書き換えたりする人もいるかも。
0404デフォルトの名無しさん
2005/11/24(木) 00:29:58へたれが多くなったのではない。残っているユーザの中のへたれ比率が高まっただけ。
0405デフォルトの名無しさん
2005/11/24(木) 00:42:02タイムスタンプ関連情報
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpsysinf/html/_win32_setfiletime.asp
ttp://weblabo.griffonworks.net/dorlog/view.cgi?bbs=windows&num=15104
0406デフォルトの名無しさん
2005/11/24(木) 11:05:22漏れは良くリソースを書き換える
特にアクセラレータあたり
0407401
2005/11/24(木) 21:36:36いろいろ情報ありがとです
むーん、変わっちゃう事もあるんですか。まいったなぁ…
0408デフォルトの名無しさん
2005/11/25(金) 08:16:20DelphiのMainForm.exeから
同一フォルダにあるVBで作ったEXEを、
コマンドライン引数を渡して起動させる方法をお教え下さい。
0409デフォルトの名無しさん
2005/11/25(金) 08:21:56Application.ExeName
ShellExecute
0410デフォルトの名無しさん
2005/11/25(金) 08:56:300411デフォルトの名無しさん
2005/11/25(金) 09:16:11会社名丸出しでKylix-MLに投稿して、Delphi-MLで聞いたら?と言われたのでしょ。
それをスルーして、2chにカキコですか。。。大胆でつね。
後、VBのスレとマルチはおやめ。
0412デフォルトの名無しさん
2005/11/25(金) 09:25:11カレントディレクトリ次第
0413デフォルトの名無しさん
2005/11/25(金) 09:26:52別Exeの起動はCreateProcessAPIを使う。参考までにDelphiの例を
aExeの部分にExeのfフルパスと引数を入れる
var
Si: TStartupInfo;
Pi: TProcessInformation;
begin
FillChar(Si, Sizeof(TStartupInfo), 0);
FillChar(Pi, Sizeof(TProcessInformation), 0);
GetStartupInfo(Si);
CreateProcess(nil, PChar(aExe), nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, SI, PI);
CloseHandle(PI.hProcess);
CloseHandle(PI.hThread);
end;
>>409
駄目じゃないけどカレントパスが変わると
やっかいな事が起こりそうだからフルパス指定の方が安全
0414デフォルトの名無しさん
2005/11/25(金) 09:42:43反省します
0415デフォルトの名無しさん
2005/11/25(金) 10:09:40誤爆の可能性があるから、
自分でパスを扱うときの基本は絶対パス
0416デフォルトの名無しさん
2005/11/25(金) 11:17:18ttp://www.wwlnk.com/boheme/delphi/tips/tec0260.htm
PChar(aExe)のところはシングルクォーテーションでくくらないと
コンパイルできませんでした。。
procedure TForm1.Button1Click(Sender: TObject);
var
Si: TStartupInfo;
Pi: TProcessInformation;
begin
FillChar(Si, Sizeof(TStartupInfo), 0);
FillChar(Pi, Sizeof(TProcessInformation), 0);
GetStartupInfo(Si);
CreateProcess(nil, PChar('test.exe'), nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, SI, PI);
CloseHandle(PI.hProcess);
CloseHandle(PI.hThread);
end;
end.
0417410
2005/11/25(金) 11:19:53全然おけって思い込んでた。Windows の基本から勉強し直します…
0418デフォルトの名無しさん
2005/11/25(金) 11:27:35いいなぁ
0419デフォルトの名無しさん
2005/11/25(金) 17:40:090420デフォルトの名無しさん
2005/11/25(金) 20:11:550421デフォルトの名無しさん
2005/11/26(土) 00:20:490422デフォルトの名無しさん
2005/11/26(土) 01:34:07サンプル蔵かどこかにあったからぐぐれ
0423デフォルトの名無しさん
2005/11/26(土) 01:34:360424デフォルトの名無しさん
2005/11/26(土) 01:42:24検索で引っかからなくなるから、
そういう指摘は貴重であり重要。
初心者にとってはありがたい。
0425デフォルトの名無しさん
2005/11/26(土) 01:57:22Delphi 搭載のBorland製コンパイラに置き換えて使うことってできます?
Borland製のコンパイラと同じことができて、安定しているならそっちにしてみたいななんて思っています。
できた人、できた事例をご存じの人、やり方を知っている人がいましたらヒントをください。
0426デフォルトの名無しさん
2005/11/26(土) 02:04:13Windowsならボーランド製コンパイラが性能も安定性もたぶん一番だと思うし
置き換える意味は無いと思う。
Lazarusに移行するという話なら分かるけどね。
http://www.lazarus.freepascal.org/
0427デフォルトの名無しさん
2005/11/26(土) 02:57:34クソ重くて安定していないのはIDEのせいでコンパイラはまた
別物と思っていたけれど。ちがうの?
あのIDEをつかったままコンパイラだけ入れ替えてもあまり
意味ないような気がするけど、違うならぜひ教えて下さい。
0428デフォルトの名無しさん
2005/11/26(土) 05:22:06(演算子オーバーロードなんかとっくの昔からあるし*=とかもある)
Delphi IDEの解析機能なんかも通用しなくなるとおもわれ
…というかDelphi IDEはその手の解析にもdccxx.dll使ってるわけだが。
0429デフォルトの名無しさん
2005/11/26(土) 06:02:000430デフォルトの名無しさん
2005/11/26(土) 20:48:07お前みたいな香具師が居るから、技術が進歩しないのが分からないのか?
0431デフォルトの名無しさん
2005/11/26(土) 21:51:29遅レスすまそです。
不安定なのはIDEのせいなんですか・・・
2005とかは使ったこともないので安定性うんぬんのことは分かりませんが、
当方のDel 6 Per でコンパイルしたプログラムと WinXPは相性が悪いみたいなので、
非Borland 製コンパイラで原因不明のエラーとか64ビットへの対応が現状よりも改善できるようなら入れ替えも考えていました。
単純にDelphi 製ソフトが不安定 -> 自作ソフト以外でも起こるからコンパイラに原因ありか? -> コンパイラを変えたら直る? ->
IDEが使えないのは不便そうだ。 ->じゃあIDEはそのままでコンパイラだけ入れ替えられないか?
ってことで質問させてもらった次第です。
なにか改善の参考になるようなものがあれば教えてください。
0432デフォルトの名無しさん
2005/11/26(土) 21:52:00本人乙
今回の件は技術の進歩とは何の縁もないと思うが
ちょっと調べれば言語としても別物だと分かるし
0433デフォルトの名無しさん
2005/11/26(土) 21:53:37D7以降を試してから言って下さい
0434デフォルトの名無しさん
2005/11/26(土) 22:15:05これはDelphiのせいじゃないと思うぞ。
コンパイラを疑うより、自分のプログラムを疑えっていうのは言語にかかわらずFAQ。
0435デフォルトの名無しさん
2005/11/26(土) 22:33:30> -> コンパイラを変えたら直る?
典型的な厨房発想。言語、IDE、結果として出来るEXE、なんにも知らないらしい。
0436デフォルトの名無しさん
2005/11/27(日) 00:42:26これでも一応趣味グラマの端くれですから、自分のプログラムを疑うというのは当然のことというのは理解しているつもりです。
自分で作った以外のDelphi 製プログラムでも強制終了がかかる時があります。
現物を出せと言われたら困りますが、OpenJaneのソースを拾ってきて自分のところでコンパイルしてもエラーが出ることもあります。
(いつもいつもじゃないのでやっかいなんですが)
コンパイラを置き換えることが不可能に近くて、あんまり意味がないのは分かりました。
ありがとうございました。
>>435
レスしてもらっておいて悪いですけど、ちゃんと読んでください。
"自作ソフト以外でも起こるから" って書いたでしょ?
0437デフォルトの名無しさん
2005/11/27(日) 00:46:36COM使えってどこかに書いてあったけど、どうやって使えばいいのか
分からないっす><
0438デフォルトの名無しさん
2005/11/27(日) 01:48:38> OpenJaneのソースを拾ってきて自分のところでコンパイルしてもエラーが出ることもあります。
こんな物があるから使ってみほ。
http://onigiri.s3.xrea.com:8080/delphi/index.php?cmd=read&page=FastMM
0439デフォルトの名無しさん
2005/11/27(日) 02:09:29delphiは初心者用らしいので、ゆっくりプログラムを覚えるために
Javaは将来食うためです
最初にdelphi覚えたいって言ったら叩かれる事なんか多い
0440デフォルトの名無しさん
2005/11/27(日) 02:11:00http://pc8.2ch.net/test/read.cgi/tech/1130648644/
0441デフォルトの名無しさん
2005/11/27(日) 06:31:46なんだか、実行時のエラーの事を言ってるみたい。
0442デフォルトの名無しさん
2005/11/27(日) 07:51:570443デフォルトの名無しさん
2005/11/27(日) 07:55:02TPictureで登録されてるフォーマットを拡張子から探したいのです。
0444デフォルトの名無しさん
2005/11/27(日) 08:18:06Delphi6をアンインストールして別のフォルダで再インストールして、さらに
一度、フォルダーの dcuとか再構成可能なファイル全部消してみたら?
del /S *.dcu
del /S *.~*
del /S *.dsk
del /S *.dsm
del /S *.tds
0445デフォルトの名無しさん
2005/11/27(日) 08:39:23おまえのパソのハードかOSが不良なだけじゃねw
0446sage
2005/11/28(月) 13:35:15こういった場合、往々にしてOSの不具合、または、他のアプリとの関係による
場合が多いと思います。
できるのでしたら、一旦OSを入れ直し、まず初めにD6をインストールして
試されたら良いかと思います。
無理なようでしたら、別のPCで試したり、VMWAREで試したり、色々やってみて、
問題となっているPC+OSとの差を調べるのが良いかと思います。
0447デフォルトの名無しさん
2005/11/28(月) 15:45:55漏れはDelphi6Personalで作ったコードをWindowsXPでコンパイルしてるけど
出来上がったプログラムがXP上で問題を起こしたことは無いな。
ついでに言うと、Windows9xでの動作も問題ない。
というか、最初は問題出まくりだったんだが、コードを弄りまくったおかげで
Windows9xとXPでの互換性はバッチシだす。
で、そのプログラムを自分のHPで公開してるんだが、つい最近になってWindows2000で
実行すると妙な挙動をするのが判明した。
ホント 互換性は地獄だぜ! フゥハハハーハァーorz
0448デフォルトの名無しさん
2005/11/28(月) 16:55:07をDelphi語に訳すとどうなりますか?
0449デフォルトの名無しさん
2005/11/28(月) 17:02:27TEdit?TListBox?TForm?
0450デフォルトの名無しさん
2005/11/28(月) 17:02:450451デフォルトの名無しさん
2005/11/28(月) 17:05:040452デフォルトの名無しさん
2005/11/28(月) 17:11:11ちょっとはGotDotNetを見習ったらどうだ。
0453デフォルトの名無しさん
2005/11/28(月) 17:42:19何も教えない無知の貴方よりよっぽどマシです
0454デフォルトの名無しさん
2005/11/28(月) 17:46:570455デフォルトの名無しさん
2005/11/28(月) 17:52:50リターンキーを押したら閉じるというのをやろうとしてました
OnKeyDownのところに
if Key = VK_RETURN then close;
て書いたらできました
ありがとうございました
0456デフォルトの名無しさん
2005/11/28(月) 17:54:28begin
if Key = Chr(VK_RETURN) then
begin
なんたらかんたら〜
end;
end;
0457デフォルトの名無しさん
2005/11/28(月) 22:30:12プログラムをつくっているのですが、全ての円がいっぺんに表示されて
しまいます。
0.5秒にひとつ、といったように表示するのはどうすればよいのでしょうか。
0458デフォルトの名無しさん
2005/11/28(月) 22:34:44自分自身の関数名を返したいと思っています。
関数がたくさんあるので、全関数抜けるコーディングを同じにしたいのですが、
自分自身の関数名を取得する方法はあるのでしょうか?
0459デフォルトの名無しさん
2005/11/28(月) 22:50:52http://pc8.2ch.net/test/read.cgi/friend/1107658167/
ツワモノ求む
0460デフォルトの名無しさん
2005/11/28(月) 22:51:08前の円を消す
移動した円を表示
sleep(500);
0461デフォルトの名無しさん
2005/11/28(月) 22:53:440462デフォルトの名無しさん
2005/11/28(月) 22:56:46この手の場合、TTheadかTTimerを使うべき
0463デフォルトの名無しさん
2005/11/29(火) 01:21:15適当な値を抜けるコードに引数として渡したらどうだろう
0464デフォルトの名無しさん
2005/11/29(火) 03:38:58procedure hoge1(a: THoge); overload;
procedure hoge1(a: THoge2); overload;
があった場合、hoge1(nil) で呼び出したら(THoge, THoge2ともTObjectから継承ね)
どっちが呼び出されるか決まってる?
0465デフォルトの名無しさん
2005/11/29(火) 05:38:53あいまいな〜でエラーとしてハネとけよ。
0466デフォルトの名無しさん
2005/11/29(火) 07:32:31何も言わずに後にusesしたほうを使うからな。
0467デフォルトの名無しさん
2005/11/29(火) 07:47:010468デフォルトの名無しさん
2005/11/29(火) 08:08:09こんなんどうでしょう
function hoge1; Integer; begin
try
なんとかかんとか
except
raise Exception.Create('hoge1');
end
end;
function hoge2; Integer begin
try
なんとかかんとか
except
raise Exception.Create('hoge2');
end
end;
procedure Main;
begin
try
hoge1;
hoge2;
except
on E: Exception do begin
ShowMessage(E.Message);
exit;
end;
end;
end;
0469デフォルトの名無しさん
2005/11/29(火) 08:24:27まともな言語ならエラーにしますよねーww
さすがですねDelphiってw
0470デフォルトの名無しさん
2005/11/29(火) 08:34:000471デフォルトの名無しさん
2005/11/29(火) 09:40:440472デフォルトの名無しさん
2005/11/29(火) 11:01:39Edit1.Text = '';
(ここで10秒くらい待つ命令を書く)
Edit1.Text = '1';
みたいにしたいんですが。
0473デフォルトの名無しさん
2005/11/29(火) 11:07:140474472
2005/11/29(火) 11:07:26sleep()ですね。おさわがせしました。
0475472
2005/11/29(火) 11:08:52ホント申し訳ない。許してください。
0476デフォルトの名無しさん
2005/11/29(火) 11:10:55カワイイな。やらないか?
0478デフォルトの名無しさん
2005/11/29(火) 11:37:39なんだpersonalの貧乏人かよ。
0479デフォルトの名無しさん
2005/11/29(火) 11:40:18まあタダだからしょうがないけど>>469は恥ずかしいなw
0480デフォルトの名無しさん
2005/11/29(火) 12:29:24その10秒の間にウィンドウ動かしたりアプリを終了させることができないから
Sleepはあまりいいやり方とはいえない。
Timerコンポーネント使っとけ。
0481デフォルトの名無しさん
2005/11/29(火) 14:47:37それだったらその10秒待たなきゃ行けない処理全体を別スレッドでやったほうが‥
0482デフォルトの名無しさん
2005/11/29(火) 17:43:46CPU無駄使いするぐらいならタイマー使っとけ
0483デフォルトの名無しさん
2005/11/29(火) 18:29:48回答ありがとうございました。TTheadとTTimerについて、調べてみますね。
0484デフォルトの名無しさん
2005/11/29(火) 19:07:270485デフォルトの名無しさん
2005/11/29(火) 19:29:40ワーカスレッドなら安心して Sleep() 使えるからビジーループにならない
0486デフォルトの名無しさん
2005/11/29(火) 19:32:450487デフォルトの名無しさん
2005/11/29(火) 19:53:540488デフォルトの名無しさん
2005/11/29(火) 21:54:31最初に指定した関数が自動的に呼ばれてしまいます。
delphi5なんですが、どういった原因が考えられますでしょうか?
0489デフォルトの名無しさん
2005/11/29(火) 23:44:380490デフォルトの名無しさん
2005/11/30(水) 00:52:160491デフォルトの名無しさん
2005/11/30(水) 01:42:11TShellTreeView.Pathでフォルダパスを取得しようとしたんだが、
階層が深くなるとちゃんと取得できん!
そうゆうもん?
おしえてエロい人。
0492デフォルトの名無しさん
2005/11/30(水) 02:00:250493デフォルトの名無しさん
2005/11/30(水) 02:52:540494デフォルトの名無しさん
2005/11/30(水) 03:15:550495デフォルトの名無しさん
2005/11/30(水) 06:56:27別名の関数も用意したら?
>>491
IShellFolder::GetDisplayNameOf で取得してるのだけど
フルパスはMAX_PATHで260バイトとかに制限されている
0496デフォルトの名無しさん
2005/11/30(水) 08:46:56//指定時間待関数
procedure pWaitMiliSec(lwMiliSec: Longword);
{
lwMiliSec: 待ち時間(単位:ミリ秒)
}
var
StartTime, WaitTime: TDateTime;
begin
WaitTime := lwMiliSec/1000/24/60/60;
StartTime := Now;
while True do begin
Application.ProcessMessages;
if StartTime + WaitTime < Now then Break;
end;
end;
0497デフォルトの名無しさん
2005/11/30(水) 09:51:420498デフォルトの名無しさん
2005/11/30(水) 13:32:45どれに対するレス?
0499デフォルトの名無しさん
2005/11/30(水) 13:47:530500デフォルトの名無しさん
2005/11/30(水) 13:59:510501デフォルトの名無しさん
2005/11/30(水) 14:27:10・無駄にビジーウェイト
・ウェイト中にフォームを閉じられない
という2点で没だな。
0502デフォルトの名無しさん
2005/11/30(水) 14:37:130503デフォルトの名無しさん
2005/11/30(水) 15:23:03フォーム閉じたいなら、すでに出てるけど詳しい解説ここ
ttp://gumina.sakura.ne.jp/CREATION/OLD/COLUMN/CD1MATI.htm
0504デフォルトの名無しさん
2005/11/30(水) 15:39:35最初に張ればいいのに
0505デフォルトの名無しさん
2005/11/30(水) 15:53:13とりあえず誰に言ってるのかハッキリしような
0506デフォルトの名無しさん
2005/11/30(水) 16:04:44超基本のTTimerを勧めるべきじゃないなんて考えちゃったんだろう
0507デフォルトの名無しさん
2005/11/30(水) 16:09:40設計が悪いのでそれを変更すべきかもしれないが
質問の答えとしては適当でない
0508デフォルトの名無しさん
2005/11/30(水) 19:18:220509デフォルトの名無しさん
2005/11/30(水) 19:52:05何番?
0510デフォルトの名無しさん
2005/11/30(水) 19:57:500511デフォルトの名無しさん
2005/11/30(水) 20:14:58>508
0512デフォルトの名無しさん
2005/11/30(水) 20:44:220513デフォルトの名無しさん
2005/11/30(水) 21:15:150514デフォルトの名無しさん
2005/11/30(水) 23:05:430515デフォルトの名無しさん
2005/12/01(木) 00:01:29過去ログ見るようなやつばかりならそもそもこんなスレなくていい
0516デフォルトの名無しさん
2005/12/01(木) 00:05:01t := GetTickCount;
while (Now-t)<10000 do
begin
Sleep(16);
Application.ProcessMessages;
end;
こんなかんじでいいんじゃね?
0517デフォルトの名無しさん
2005/12/01(木) 00:05:330518デフォルトの名無しさん
2005/12/01(木) 01:16:38(;゚Д゚)・・・
0519デフォルトの名無しさん
2005/12/01(木) 06:50:01t := GetTickCount;
Enabled:=false;
try
while (GetTickCount-t)<10000 do // GetTickCount-tは片方がオーバーフローしてラップアラウンドして来ても 大丈夫
begin
Sleep(33);
Application.ProcessMessages;
end;
finally Enabled:=true end;
としたら、やっぱり固まるのと変わらなかったと
0520デフォルトの名無しさん
2005/12/01(木) 07:43:570521デフォルトの名無しさん
2005/12/01(木) 13:11:170522デフォルトの名無しさん
2005/12/01(木) 15:45:12実験すると連続っぽいのですが、どなたかご存知でしたら教えてください。
(ポインタで参照したいと思ってますので)
0523デフォルトの名無しさん
2005/12/01(木) 15:46:45PCharでキャストすりゃぁいいじゃん
0524デフォルトの名無しさん
2005/12/01(木) 15:50:030525デフォルトの名無しさん
2005/12/01(木) 15:54:20>>523 はい、そうしますです。
>>524 安心しました。どっかで違う場所にリンクしてる、何てしてないかと
心配だったので。
0526デフォルトの名無しさん
2005/12/01(木) 16:06:24やらないか
0527デフォルトの名無しさん
2005/12/01(木) 21:09:30フォームにButton1というTButtonのコンポーネントが張ってあったとして
ソースに直接Button1と書かずにstrを使ってButton1を操作する方法ないですか?
0528デフォルトの名無しさん
2005/12/01(木) 21:11:530529デフォルトの名無しさん
2005/12/01(木) 21:13:07どうもありがとうございます
0530デフォルトの名無しさん
2005/12/02(金) 14:57:180531デフォルトの名無しさん
2005/12/02(金) 15:03:190532デフォルトの名無しさん
2005/12/02(金) 16:38:47mciSendString('play "C:\test A\test.mid"',nil,0,0);
"で括ってるのに、これじゃダメなんでしょうか?
mciSendString('play "C:\testA\test.mid"',nil,0,0);
だと再生できます。
0533デフォルトの名無しさん
2005/12/02(金) 16:39:550534デフォルトの名無しさん
2005/12/02(金) 16:43:48http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200210/02100001.txt
0535532
2005/12/02(金) 17:18:30>>533
ExtractShortPathNameを使っても、C:\test~1\test.midとしてもダメでした。(TT)
>>534
リンク先の記事を見たんですが、やっぱりフルパスを"で括るんですよね??
だと、532の内容で再生できると思ったのですが。
0536デフォルトの名無しさん
2005/12/02(金) 17:55:460537532
2005/12/02(金) 18:15:03openしてからaliasをplayに渡してやったら鳴りました!!
直playは半角スペースが無い時のみ有効なのでしょうか。
だったら最初から鳴らせないようにして欲しいヨ。・゚・(ノД`)・゚・。
//--ソース--
name:='C:\test A\test.mid';
mciSendString(Pchar('open "'+ Name +'" type sequencer alias midifile'),nil,0,0);
mciSendString(Pchar('play midifile'),nil,0,0);
0538デフォルトの名無しさん
2005/12/02(金) 21:30:180539デフォルトの名無しさん
2005/12/02(金) 22:13:550540デフォルトの名無しさん
2005/12/02(金) 23:19:485.6なら二回ほど入れました
0541デフォルトの名無しさん
2005/12/03(土) 00:48:46http://onigiri.s3.xrea.com:8080/delphi/index.php?plugin=attach&pcmd=open&file=VBScript_RegExp_55_TLB.zip&refer=%A5%BD%A1%BC%A5%B9%C3%D6%A4%AD%BE%EC
0542デフォルトの名無しさん
2005/12/03(土) 12:20:44ありがとう
使ってみますね
0543デフォルトの名無しさん
2005/12/03(土) 21:43:54画面にエディットボックス1個とボタンが1個だけあって
ボタンを押すとトリップが表示されるような簡単なやつを
とりあえず作ってみたいのですが、どっかにいいサイトとか
ないでしょうか?
それを見てあとは勉強しながら進めていきたいので。
0544デフォルトの名無しさん
2005/12/03(土) 21:49:11http://www.google.com/
0545デフォルトの名無しさん
2005/12/03(土) 21:52:12それが俺があほだからかもしらんけど、
Delphiとcrypt3ではよくわからんのしかでてこないのよね。
0546デフォルトの名無しさん
2005/12/03(土) 21:52:45すんません。
0547デフォルトの名無しさん
2005/12/03(土) 22:08:290548デフォルトの名無しさん
2005/12/03(土) 23:25:02http://www.geocities.com/tk2001b/utripper/
ここでトリップ検索ソフトのソース公開しているから、
これを読んでPascalに翻訳するのが簡単かと。
>>547
バイナリを比較すると微妙に違う。
動作やパフォーマンスは変わらないはず。
0549デフォルトの名無しさん
2005/12/03(土) 23:48:19ありがとです。
ソース公開してくれてるのは勉強になるなぁ。
で、中身みたけどわけわからねーorz
トリップの部分だけでいいのに、いっぱいあって混乱中。
0550547
2005/12/03(土) 23:53:50なるほど。ありがとうございます。
>>549
探すと、PerlやPHPのサンプルコードが結構あったりします。
http://www.google.co.jp/search?hl=ja&q=2ch+%E3%83%88%E3%83%AA%E3%83%83%E3%83%97+%E7%AE%97%E5%87%BA&lr=
0551デフォルトの名無しさん
2005/12/04(日) 00:08:37たびたびありがとうございます。
そこに面白いページがあったので参考にしたいと思います。
0552デフォルトの名無しさん
2005/12/04(日) 00:13:200553デフォルトの名無しさん
2005/12/04(日) 07:06:50(効果を確認するためにIMEをオンにする)エンターキーを押した瞬間に Edit1.Text
に変換された文字が残り警告が何度も出てしまいます。これを避けるにはどうした
らいいのでしょう?
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
C: Char;
begin
C := Edit1.Text[1];
if Key in [#$81..#$9F, #$E0..#$FC] then //全角文字の処理
begin
MessageDlg('全角文字は入力できません',mterror, [mbok], 0);
Edit1.Text := ''+C;
end;
end;
0554デフォルトの名無しさん
2005/12/04(日) 07:31:03最後にedit1.text := ''+c;するからいつまでも入力されたkeyが残るんじゃないの?
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key in [#$81..#$9F, #$E0..#$FC] then //全角文字の処理
MessageDlg('全角文字は入力できません',mterror, [mbok], 0)
else edit1.text := edit1.text + key;
end;
こんな感じでどう?
0555デフォルトの名無しさん
2005/12/04(日) 07:35:270556デフォルトの名無しさん
2005/12/04(日) 07:37:430557デフォルトの名無しさん
2005/12/04(日) 07:50:12そこであまりがんばらずにOKボタン押したときに入力のチェックをして
2バイト文字が入ってたらエラー出してFocusをEdit1に移すとか
OnChangeでチェックしてOKボタンを無効にして押せないようにするのが定石。
0558デフォルトの名無しさん
2005/12/04(日) 15:00:36・与えられた時系列データからグラフを描画。
・与えられた時系列データから出来たグラフの線の長さを表示する。
開発環境delphi6
どなたかご教示お願いします・・・!
0559デフォルトの名無しさん
2005/12/04(日) 16:19:47自分で描画すればいいじゃん
0560デフォルトの名無しさん
2005/12/04(日) 18:18:16procedure TForm1.FormCreate(Sender: TObject);
begin
with stringgrid1 do
begin
cells[1,0]:='X座標';
cells[2,0]:='Y座標';
cells[0,1]:='始点';
cells[0,2]:='終点';
end;
end;
何にもエラーはでませんが実行してもセル内に文字が表示されません(当然ながらstringgrid自体は表示されてます)
文字を表示するために何か追加しないといけないことがあれば教えてください。
0561デフォルトの名無しさん
2005/12/04(日) 20:58:19uses
Clipbrd;
var
OldEditProc: TWndMethod;
MultiByte: Boolean;
procedure TForm1.FormCreate(Sender: TObject);
begin
OldEditProc := Edit1.WindowProc;
Edit1.WindowProc := EditProc;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if MultiByte then
begin
Key := #0;
MultiByte := False;
end
else
begin
if WORD(Key) >= $80 then
begin
Key := #0;
MultiByte := True;
end;
end;
end;
0562デフォルトの名無しさん
2005/12/04(日) 20:58:43var
i: integer;
s: string;
begin
if Message.Msg = WM_PASTE then
begin
if Clipboard.HasFormat(CF_TEXT) then
begin
s := Clipboard.AsText;
for i := 1 to Length(s) do
if WORD(s[i]) >= $80 then
Exit;
end;
end;
OldEditProc(Message);
end;
0563560
2005/12/05(月) 00:51:41ttp://vista.x0.com/img/vi13523.zip
↑この2つはどちらもStringgridのみのプログラムで内容も同じなんですが、片方はセル内に文字が表示されて(23のほう)片方は表示されてません(22のほう)。
この2つの差がわかれば表示されない原因もわかると思うんですが・・・どうやら解凍すると勝手に圧縮前にはなかったファイルが生成されるようで(22のほうだけ)そこもよくわかりませんが・・・
0564デフォルトの名無しさん
2005/12/05(月) 01:22:48>・与えられた時系列データから出来たグラフの線の長さを表示する。
というのがよくわからないけど、
Del6PerならばSGraphというコンポーネントを使ってみてはどうだろう。
ttp://pod0.chat.ru/prg_staf.htm
0565デフォルトの名無しさん
2005/12/05(月) 01:27:43求めるプログラムを作成せよ。また一般的にはABとBAが等しくならない
ことを確認せよ。』ですがどなたか教えてくれませんか?お願いします。
0566デフォルトの名無しさん
2005/12/05(月) 01:33:020567560
2005/12/05(月) 03:13:43begin
stringgrid1.cells[1,0]:='X座標';
stringgrid1.cells[2,0]:='Y座標';
stringgrid1.cells[0,1]:='始点';
stringgrid1.cells[0,2]:='終点';
end;
あれこれ調べましたけど、こうやってかくだけで本来は文字表示されるはずですよね
いったい何が原因なんだろう・・・
0568デフォルトの名無しさん
2005/12/05(月) 03:23:32最小限のプロジェクト作って少しづつ足していくとか、
逆にプロジェクトごとコピーして少しづつ削っていくとかして確認。
0569568
2005/12/05(月) 03:25:040570デフォルトの名無しさん
2005/12/05(月) 03:28:43これでstringgrid単体の最小のものだと思うんですけど、何も表示されないんですよね
インスペクタをいじっても特に変化はないようで
0571デフォルトの名無しさん
2005/12/05(月) 05:31:47オブジェクトインスペクタのForm1.OnCreateを確認してください。
0572デフォルトの名無しさん
2005/12/05(月) 05:40:37で、出来ました・・・物凄く初歩的でしたね(汗
ありがとうございます
0573デフォルトの名無しさん
2005/12/05(月) 08:06:12二次元配列と、行列の基本的演算で試合終了じゃないか?
0574デフォルトの名無しさん
2005/12/05(月) 14:03:09独自のキー操作を拵えたいのですが、
Ctrl+Vのような既に用意されている以外のキー操作では
ポンというビープ音が鳴ってしまいます
この音を抑制するにはどうすれば良いのですか?
0575デフォルトの名無しさん
2005/12/05(月) 15:29:05それの ShortcutKey に Ctrl+V を割り当て。
0576デフォルトの名無しさん
2005/12/05(月) 15:43:510577デフォルトの名無しさん
2005/12/05(月) 17:09:410578デフォルトの名無しさん
2005/12/05(月) 17:14:27KeyPressに#0したらポンが消えました
ありがとうございました
0579デフォルトの名無しさん
2005/12/05(月) 17:44:16ww
0580ななしへたぐらま ◆XcB18Bks.Y
2005/12/06(火) 21:10:10メニューアイテムのショートカットキーが働きません.
働くようにするにはどうすればよいでしょうか.
0581デフォルトの名無しさん
2005/12/06(火) 21:26:550582デフォルトの名無しさん
2005/12/06(火) 22:16:39出せる情報を全て出すことが早期解決への近道です。
0583デフォルトの名無しさん
2005/12/06(火) 22:20:18試してから言えよ糞が
0584デフォルトの名無しさん
2005/12/07(水) 00:00:16ShowMessageとIntToStrで表示できないか試してみたけどダメでした
0585デフォルトの名無しさん
2005/12/07(水) 00:04:020586デフォルトの名無しさん
2005/12/07(水) 01:33:13m9(^Д^)プギャー
0587デフォルトの名無しさん
2005/12/07(水) 01:42:06ありがとうございます
うまく表示されました
0588デフォルトの名無しさん
2005/12/07(水) 09:03:51function ShortCut(Key: Word; Shift: TShiftState): TShortCut;
??
0589デフォルトの名無しさん
2005/12/07(水) 13:05:11∧ ∧
ヽ(・∀ ・)ノ <ソース出しなよー!
(( ノ( )ヽ ))
< >
0590デフォルトの名無しさん
2005/12/07(水) 21:02:20フォームにあるラベルにエラーメッセージを表示しようとしています。
フレーム側で、エラーが発生したときに
[TClass型変数].ClassParent;
をループし、フォームを探し出す処理を入れました。
通常のフレームだとこれで表示されるのですが、
フレームの中にフレームを貼った場合、親フレームでクラスのループが終わってしまい、
そのまた親のフォームを探し出すところまで進みません。
フレームだったときにそのまた親にループを進めるにはどうしたらいいでしょうか。
0591デフォルトの名無しさん
2005/12/07(水) 21:12:39GetParentForm
ValidParentForm
0592デフォルトの名無しさん
2005/12/08(木) 03:02:53例 123 132 213 231 312 321
ってどういう感じで作れば良い?教えて
0593デフォルトの名無しさん
2005/12/08(木) 03:08:29randomize
random()
0594デフォルトの名無しさん
2005/12/08(木) 03:10:43labelがイヤならShowMessage( )
0595592
2005/12/08(木) 03:24:380596デフォルトの名無しさん
2005/12/08(木) 03:25:10n個の場合
1個目の数字を選ぶ
選ばれていない数字の中から2個目を選ぶ
選ばれていない数字の中から3米を選ぶ
・
・
・
選ばれていない数字の中からn-1個目を選ぶ
n個目はガチ
表示する
選ばれたかどうかのフラグは配列で持つ
もっと速い方法もあるけど簡単なのはコレ
0597592
2005/12/08(木) 03:26:410598デフォルトの名無しさん
2005/12/08(木) 15:55:58環境:Delphi 6 Personal
unit1とunit2の2つのフォームを用います。
unit1には、Doubleの配列形式(3列500行)のデータがあります。
Unit1側のButton1ClickでUnit2のImage1にそれをグラフ化させようと考えてなんとかUnit2の呼び出しまでは完成しました。
ですが、ポインタが上手く渡せてないみたいで悩んでしまいました。
---[unit1]----
use unit2;
public //大域変数です。
gyouretu : Array [ 1..3,1..500] of Double;
procedure TTrance.Button1Click(Sender: TObject);
begin
form2:=Tform2.create(@gyouretu);
form2.show;
end;
---[unit2]----
use unit1;
procedure TForm2.FormCreate(var gyouretu : Array of Double);
var
s: String;
begin
s:=floatTostr(gyouretu[2,2]);
Label1.Caption:=s;
end;
------------
[エラー] 配列型が必要です。
とりあえず、unit2に数値を一個でも表示させようとしています。
教えてください・・・m(_ _)m
0599デフォルトの名無しさん
2005/12/08(木) 16:07:360600デフォルトの名無しさん
2005/12/08(木) 16:15:48unit unit3
interface
gyouretu : Array [ 1..3,1..500] of Double;
implementation
end.
としてuses unit3;とすれば
gyouretuを両方のフォームからアクセスできる。
0601デフォルトの名無しさん
2005/12/08(木) 16:31:23type tgyouretu = array[1..3,1..500]of double;
procedure foo(var g: tgyouretu);
0602デフォルトの名無しさん
2005/12/08(木) 17:15:39TDoubleArray = Array [ 1..3,1..500] of Double;
TpDoubleArray = ^TDoubleArray;
THoge = class(TObject)
constructor Create; virtual;
destructor Destroy; override;
private
gyouretu : TDoubleArray;
function getHoge : TpDoubleArray;
public
property Hoge : TpDoubleArray read getHoge;
end;
0603602
2005/12/08(木) 17:17:45constructor THoge.Create;
begin
inherited;
gyouretu[2,2] := 100;
end;
begin
whith THoge.Create do
try
ShowMessage(
Format('%f', [FHoge.Hoge[2,2]])
);
finally
free;
end;end;
0604デフォルトの名無しさん
2005/12/08(木) 17:18:130605602
2005/12/08(木) 17:19:59function THoge.getHoge: TpDoubleArray;
begin
Result := @gyouretu;
end;
0607デフォルトの名無しさん
2005/12/08(木) 17:28:12つうかvarで十分なんだろ。
0608602
2005/12/08(木) 17:33:23varで十分ならなんでもどんな型でもvarやconst渡しで十分だろ
プロパティも内部はprocedureだろ
なぜプロパティ化していけないのか?
おしえろ
0609デフォルトの名無しさん
2005/12/08(木) 17:37:27THoge = class(TObject)
constructor Create; virtual;
destructor Destroy; override;
private
public
end;
とりあえずオレの環境ではコレではコンパイルすら出来ないわけだが
0611デフォルトの名無しさん
2005/12/08(木) 17:44:34少し落ち着け
0613デフォルトの名無しさん
2005/12/08(木) 17:48:280614598
2005/12/08(木) 18:12:04上記のコードを元にいろいろ弄ってみます。
609はどうみても釣りです。
ありがとうござ(ry
0615デフォルトの名無しさん
2005/12/08(木) 18:57:18>TpDoubleArray = ^TDoubleArray;
は
PDoubleArray = ^TDoubleArray;
にしようぜってくらいか
0616ななしへたぐらま ◆XcB18Bks.Y
2005/12/08(木) 20:41:17すいません,一日休みになってしまいましたが,一部晒します.その1.
procedure TPM01Form.AddMenuItem(aShortCut: TShortCut;
const aCaption: TCaption; ClickEvent: TNotifyEvent);
var
NewItem: TMenuItem;
begin
NewItem := TMenuItem.Create(self);
try
NewItem.ShortCut := aShortCut;
NewItem.Caption := aCaption;
NewItem.OnClick := ClickEvent;
FPopupMenu.Items.Add(NewItem);
except
NewItem.Free;
end;
end;
procedure TPM01Form.Build_FPopupMenu;
begin
AddMenuItem(ShortCut(ord('V'), [ssCtrl]), '貼り付け', Menu_Paste);
AddMenuItem(ShortCut(VK_DELETE, [ssCtrl, ssShift]), '全削除', Menu_DeleteAll);
end;
constructor TPM01Form.Create(AOwner: TComponent);
begin
inherited;
FPopupMenu := TPopupMenu.Create(self);
Build_FPopupMenu;
end;
(つづく)
0617ななしへたぐらま ◆XcB18Bks.Y
2005/12/08(木) 20:44:32procedure TPM01Form.Menu_DeleteAll(Sender: TObject);
begin
ListBox1.Items.Clear;
end;
procedure TPM01Form.Menu_Paste(Sender: TObject);
var
LinesToAdd: TStringList;
begin
LinesToAdd := TStringList.Create;
try
LinesToAdd.Text := Clipboard.AsText;
ListBox1.Items.AddStrings(LinesToAdd);
finally
LinesToAdd.Free;
end;
end;
procedure TPM01Form.Action_ExitExecute(Sender: TObject);
begin
Close;
end;
procedure TPM01Form.Action_PopupExecute(Sender: TObject);
begin
FPopupMenu.Popup(0, 0);
end;
(以上)
バージョンはDelphi 5 (Update2適用)です
0618ななしへたぐらま ◆XcB18Bks.Y
2005/12/08(木) 20:50:15なんか凄い初歩的な間違いをしてるかも…汗
0619ななしへたぐらま ◆XcB18Bks.Y
2005/12/08(木) 20:52:010620デフォルトの名無しさん
2005/12/08(木) 21:15:360621ななしへたぐらま ◆XcB18Bks.Y
2005/12/08(木) 21:41:09なんでこっちは駄目なんだろう….
0622デフォルトの名無しさん
2005/12/08(木) 21:57:070623ななしへたぐらま ◆XcB18Bks.Y
2005/12/08(木) 23:14:06コンストラクタに以下の行を追加.
PopupMenu := FPopupMenu;
または
ListBox1.PopupMenu := FPopupMenu;
実行時,設計時にかかわらず,
どのコントロールとも関連づけられていないポップアップメニューでは
ショートカットキーが働かないようです.
>>622 BorderStyleは影響しませんでした.
というわけで皆様ありがとうございました.
0624デフォルトの名無しさん
2005/12/08(木) 23:21:40begin
ShowMessage('hoge');
end;
procedure TForm1.hoge;
begin
ShowMessage('TForm1.hoge');
end;
procedure TForm1.FormClick;
begin
hoge; // (1)
end;
とすると (1) で TForm1.hoge が表示されますが、
hoge の方を明示的に呼び出す方法はありますか?
(C++ での ::hoge のように)
0625624
2005/12/08(木) 23:26:23Unit1.hoge; のようにユニット名付けたら呼び出せました
0626デフォルトの名無しさん
2005/12/10(土) 13:27:02divやRoundやTruncも 指定した演算子は使えません と怒られます。
0627デフォルトの名無しさん
2005/12/10(土) 13:28:16○実数型の変数に代入
0628デフォルトの名無しさん
2005/12/10(土) 13:46:050629デフォルトの名無しさん
2005/12/10(土) 13:47:370630デフォルトの名無しさん
2005/12/11(日) 02:55:22勘だけど ユニット名.hoge; でどうかな?
0631デフォルトの名無しさん
2005/12/11(日) 03:03:32>>625
0632デフォルトの名無しさん
2005/12/11(日) 22:32:202005なんか 最初 吹っ飛んで消滅していたじゃん。 消滅からハングに 大差ないしおどろくことではないかと 先行バグ取り隊の情報引き続きよろしく -- 2005-12-07 09:14:09 (水) New
>「消滅からハングに 大差ないしおどろくことではない」 どっちにしろ、真面目につかうものではなさそうですね。
「どっちにしろ、真面目につかうものではなさそうですね」 しらずに2005のときせっかく数時間かけて書いたコードが消滅して悲しい思いしたよ -- 2005-12-07 15:22:52 (水) New
0633デフォルトの名無しさん
2005/12/12(月) 00:18:54下のサンプルをつかって具体的に言うとsiteiを使って別のクラスのiの値を求めたり、
あるいは変更させたりしたいのですが。
Ttest = class;
sitei :string;
i : integer;
end;
Ttest1 :=Ttest.create;
with Ttest1 do begin sitei :='Ttest2'; i := random(100) end;
Ttest2 :=Ttest.create;
with Ttest2 do begin sitei :='Ttest3'; irandom(100) end;
Ttest3 :=Ttest(略
・・・
0634デフォルトの名無しさん
2005/12/12(月) 00:21:040635デフォルトの名無しさん
2005/12/12(月) 01:39:580636デフォルトの名無しさん
2005/12/12(月) 03:07:18ってどうやって表現すればいんでしょうか
1日考えたんですけどFindComponent('hoge')ぐらいまでしか出てこないです
0637デフォルトの名無しさん
2005/12/12(月) 03:17:00if tbutton(findcomponent('hoge')).caption <> '' then
ってこと?
0638デフォルトの名無しさん
2005/12/12(月) 03:25:40張ったコンポーネントのCaptionまたはTextプロパティを自動で変更したいんですけど、どうやったらいいのかわからないです
例えばラベルだったらCaptionを、エディットボックスだったらTextを変えたいんです
0639デフォルトの名無しさん
2005/12/12(月) 03:27:41hoge.Caption := '新しいキャプション';
みたいな感じです
0640デフォルトの名無しさん
2005/12/12(月) 05:08:360641デフォルトの名無しさん
2005/12/12(月) 07:06:110642デフォルトの名無しさん
2005/12/12(月) 10:26:51気がするだけ。偏りがあるかどうかを評価するプログラムがあるらしいよ。
あまり詳しくは知らないんだが、Delphi の Random() のアルゴリズムは
それなりに数学的には認められたアルゴリズムらしいよ。
0643デフォルトの名無しさん
2005/12/12(月) 11:20:07if GetKeyState(vk_LBUTTON)<0 then
begin
img.Width:= img.Width-???;
end;
end;
0644デフォルトの名無しさん
2005/12/12(月) 11:59:220645デフォルトの名無しさん
2005/12/12(月) 12:05:22Randomizeしてるか?
0646デフォルトの名無しさん
2005/12/12(月) 13:15:49まぁ仮に線形合同法でもC標準のrandomと同じ程度の
質の乱数が生成されるはずだし、何も問題ないな
0647デフォルトの名無しさん
2005/12/12(月) 17:17:14SendStreamすれば簡単にファイルを送信する事ができると知ったんですが、MSN Messengerみたいに
送信側が今どのくらい送信が完了したか進行度をTProgressBarで表したいのですが、OnWriteも反応してくれず、
どうやればいいのか分かりません・・(´・ω・) どうか知恵をお貸し下さい。
0648デフォルトの名無しさん
2005/12/12(月) 17:36:140649デフォルトの名無しさん
2005/12/12(月) 19:22:19ランタイムソースの中のTypInfo.pasを見てみ
0650デフォルトの名無しさん
2005/12/12(月) 20:15:23どうしたらいいでしょうか?
0651デフォルトの名無しさん
2005/12/12(月) 20:18:130652デフォルトの名無しさん
2005/12/12(月) 20:19:290653デフォルトの名無しさん
2005/12/12(月) 20:19:340654デフォルトの名無しさん
2005/12/12(月) 20:22:52ありがとうございます
実行した直後の位置は指定できたんですけど
ボタン押した後の代入の仕方がわからないのです
どうかお願いします
0655デフォルトの名無しさん
2005/12/12(月) 20:25:340656デフォルトの名無しさん
2005/12/12(月) 20:26:04procedure TForm1.Button1Click(Sender: TObject);
begin
Left := 10;
Top := 10;
end;
0657デフォルトの名無しさん
2005/12/12(月) 20:30:09すいません。ありがとうございました
0658デフォルトの名無しさん
2005/12/12(月) 20:43:30当時つくったリンク集をクリックしてみたら、半分以上がリンク切れだった。
結構有名どころだったのに・・・
0659デフォルトの名無しさん
2005/12/12(月) 21:02:120660デフォルトの名無しさん
2005/12/12(月) 22:50:330661デフォルトの名無しさん
2005/12/13(火) 04:51:34どうもよくわかりません。参考文献などを教えていただければうれしいです。英語もおkです。
0662デフォルトの名無しさん
2005/12/13(火) 04:55:02そのソフト、知らないけど
どうしてもソレじゃないとダメなの?
日本製のでフリーなのもあるけど。
0663662
2005/12/13(火) 04:57:080664デフォルトの名無しさん
2005/12/13(火) 04:59:580665デフォルトの名無しさん
2005/12/13(火) 05:37:43メインフォームを非表示にするにはどうすれば良いのでしょうか。
子フォームを作成すれば似たような事は可能なのですが。。
0666ななしへたぐらま ◆XcB18Bks.Y
2005/12/13(火) 07:52:13TControlクラスのSetTextBufメソッドを使うと良いでしょう.
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
NewCaptionOrText: string;
begin
for i := 0 to pred(ComponentCount) do
if Components[i] is TControl then //※1
begin
NewCaptionOrText := format('%d番目のコンポ', [1 + i]);
(Components[i] as TControl).SetTextBuf(PChar(NewCaptionOrText)); //※2
end;
end;
ラベルコンポやエディットコンポなど,実行時に目に見えるコンポーネントは基本的にTControlの仲間で,
SetTextBufというCaptionまたはTextを変更するメソッドを持っています.
そこで※1でis演算子を使ってフォーム上の番号iのコンポがTControlの仲間かどうかを調べ,もしそうなら,
※2でas演算子を使ってTControlの仲間として解釈し,SetTextBufメソッドを実行しています.
0667636,638,639
2005/12/13(火) 09:08:50レスありがとうございます。おかげ様で解決できました
>>636を書き込んだ時点で、
フォーム上に貼り付けたコンポーネントの全てのメソッドのヘルプを見ていたのですが、(もちろんSetTextBufも含む)
読解力が足りずにそのような事ができるとは読み取れてませんでした
自分のレベルに合わせて詳細な例文までつけてくれてとても助かります
0668デフォルトの名無しさん
2005/12/13(火) 09:14:290669デフォルトの名無しさん
2005/12/13(火) 09:18:56procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Canclose := false;
Hide;
end;
でできたっぽいけど、これだと他の手段で終了させようとしたときも隠れるだけで終了しないので、
もう一工夫必要っぽいです
ちなみに本当に終了させたいときは CanClose := true; にすれば終了します
0670デフォルトの名無しさん
2005/12/13(火) 09:35:29レスありがとうございます。
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
h : HWND;
begin
h := GetForegroundWindow;
if h = Form1.Handle then
begin
CanClose := False;
Hide;
end
else CanClose := True;
end;
のようにしてみたら、理想の動作をさせることができました。
ありがとうございました。
0671デフォルトの名無しさん
2005/12/13(火) 09:39:24if not CanClose then hide;
でいいやん
0672デフォルトの名無しさん
2005/12/13(火) 09:40:33なるほど。。そんな書き方ができたとは^^;
どうもありがとうございます。
0673デフォルトの名無しさん
2005/12/13(火) 12:55:10効き目ありません。連絡してもどこかに消える模様。
Quality Central
公式窓口はこちら
こちらに報告してもみてないふりをされます。
数え切れないくらいたくさん放置されているから、みにいけばわかります。 そのつけがどんどんのしかかってお粗末なバグがおおいソフトへと成長するのです。
※12月末出荷予定のBorland Developer Studio 2006に含まれるBorland C++Builderは「テクノロジープレビュー」版となります。 年末にご提供予定のアップデートを適用するまではサポートの対象になりません。
0674デフォルトの名無しさん
2005/12/13(火) 15:53:21|:::::::| ,,,,,_ ,,,,,,|
|r-==( 。);( 。)
( ヽ :::__)..:: }
,____/ヽ ー== ; ほほうッ ほうほう、それでッ!?
r'"ヽ t、 \___ !
/ 、、i ヽ__,,/
/ ヽノ j , j |ヽ
|⌒`'、__ / / /r |
{  ̄''ー-、,,_,ヘ^ |
ゝ-,,,_____)--、j
/ \__ /
| "'ー‐‐---''
0675デフォルトの名無しさん
2005/12/13(火) 19:48:490676デフォルトの名無しさん
2005/12/13(火) 23:57:40オブジェクトインスペクタをじっくり見なさい
0677デフォルトの名無しさん
2005/12/14(水) 03:22:320678デフォルトの名無しさん
2005/12/14(水) 08:16:05日本語やでたらめ英語じゃだめだよ。
0679デフォルトの名無しさん
2005/12/14(水) 09:17:44日本では絶滅するね。
0680デフォルトの名無しさん
2005/12/14(水) 10:28:230681デフォルトの名無しさん
2005/12/14(水) 10:43:54すれ違い
0682デフォルトの名無しさん
2005/12/14(水) 15:43:427000万円
0683デフォルトの名無しさん
2005/12/14(水) 15:51:18You is big fool man! ha ha ha!
0684デフォルトの名無しさん
2005/12/14(水) 22:25:21レスありがとう
じっくり見てきます
0685デフォルトの名無しさん
2005/12/14(水) 23:29:21be 動詞の2人称現在活用形は are です
0686デフォルトの名無しさん
2005/12/14(水) 23:37:22レス先に対するネタだろ
0687デフォルトの名無しさん
2005/12/15(木) 00:36:10いやー、いつ見ても恥ずかしいものですね^^;
0688デフォルトの名無しさん
2005/12/15(木) 02:31:470689デフォルトの名無しさん
2005/12/15(木) 03:38:01なんだってー ΩΩΩ
0690デフォルトの名無しさん
2005/12/15(木) 07:54:490691デフォルトの名無しさん
2005/12/15(木) 07:56:077000万円
0692デフォルトの名無しさん
2005/12/15(木) 09:27:580693デフォルトの名無しさん
2005/12/15(木) 13:41:370694デフォルトの名無しさん
2005/12/15(木) 14:22:080695デフォルトの名無しさん
2005/12/15(木) 19:44:19ttp://members.tripod.com/~HackerZBBS/
0696デフォルトの名無しさん
2005/12/16(金) 06:31:31Visual Studio 2005 Express Edition
http://www.microsoft.com/japan/msdn/vstudio/express/maninstall/
Microsoft .NET Framework Version 2.0 Redistributable Package (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyId=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en
Microsoft .NET Framework 2.0 日本語 Language Pack (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyID=39c8b63b-f64b-4b68-a774-b64ed0c32ae7&DisplayLang=ja
Microsoft .NET Framework 2.0 SDK 日本語版 (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=FE6F2099-B7B4-4F47-A244-C96D69C35DEC&displaylang=ja
0697デフォルトの名無しさん
2005/12/16(金) 06:34:26うざいとかスレ違いとか以前に、
そうやって貼りまくってると、猫も杓子もダウンローダーにかけてサーバー重くして
本当に熱心にVSを使おうとしてそれを落とそうとしてる人の迷惑にならないか?
0698デフォルトの名無しさん
2005/12/16(金) 07:00:440699デフォルトの名無しさん
2005/12/16(金) 08:07:24踏む人が少ないから平気でしょうw
0700デフォルトの名無しさん
2005/12/16(金) 08:59:59MFCを使ったVC++6のプロジェクト、上の2005 Express Editionだとビルドできず。
C++Builder 6 Proffesional Editionだとビルドも実行もできたのに。
0701デフォルトの名無しさん
2005/12/16(金) 10:32:42みんなVB.NETスレに移っちゃったのかな?
0702デフォルトの名無しさん
2005/12/16(金) 11:02:080703デフォルトの名無しさん
2005/12/16(金) 11:14:490704デフォルトの名無しさん
2005/12/16(金) 14:00:50エディットボックス(Edit1)に入力した数字までの合計値を、ボタン(Button1)を押したら、表示(Label1に表示)させよ。
なお変数は、エディットボックスの入力値(a)、合計値(Sum)、ループのカウンタ(i)とする。
procedure TForm1.Button1Click(Sender: TObject);
var
i,Sum:□□□□□□□;
a:integer;
begin
a:=StrToInt(Edit1.text);
Sum:=0;
for i:= □ to □ do
begin
Sum:= □□□+□
end;
Label1.Caption:=IntToStr(Sum);
end;
教えて!↑
0705デフォルトの名無しさん
2005/12/16(金) 14:10:27Integer, 0, a, Sum, i
答えた代わりとして、その問題集みたいな奴をください。
0706デフォルトの名無しさん
2005/12/16(金) 14:15:32Sum := a*(a+1) div 2;
0707デフォルトの名無しさん
2005/12/16(金) 14:26:35ボタン(Button1)を押したら、サイコロを600回振り、それぞれの目が出た回数を数えて表示(Label1に表示)しなさい。
なお変数は、1次元配列(Ary)、発生した乱数(n)、ループのカウンタ(i)とする。
【必須条件】要素数が6の1次元配列(Ary)を宣言し、RandomizeとRandom関数を使って乱数を発生させ、1〜6の目が出た回数を記録。
procedure TForm1.Button1Click(Sender: TObject);
var
n:Integer;
i:Integer;
Ary:array [1.. □] of Integer;
begin
Randomize;
//Aryの初期化
for i:= □ To □ do
Ary[□]:=0;
//出た目を数える
for i:= □ to □□□ do
begin
//Randomは、0<=X<Rangeの範囲にある乱数を返す
n:=Random (□)+ □;
//Label2.Caption:=Label2.Caption+IntToStr(n)+#13;
Ary[□]:=Ary[□] + 1;
end;
//結果の表示
for i:=1 To □ do
Label1.Caption:=Label1.Caption+IntToStr(Ary[□])+#13
end;
0708デフォルトの名無しさん
2005/12/16(金) 14:34:150709デフォルトの名無しさん
2005/12/16(金) 14:38:11コメントアウトしてるところが微笑ましい。
0710デフォルトの名無しさん
2005/12/16(金) 14:42:18馬鹿が湧くから宿題スレ池
0711デフォルトの名無しさん
2005/12/16(金) 16:17:110,600
i
0,600
6,1
n,n
6
i
0712デフォルトの名無しさん
2005/12/16(金) 16:38:490713デフォルトの名無しさん
2005/12/16(金) 16:44:15どこかおかしい解答がまぎれこんでいるはずだ
そしてそのまま提出した>>707はボロクソに怒られて>>696化すると
0714デフォルトの名無しさん
2005/12/16(金) 16:47:520715デフォルトの名無しさん
2005/12/16(金) 17:03:370716デフォルトの名無しさん
2005/12/16(金) 18:29:42Delphiユーザも試してみる価値はあります。
Visual Studio 2005 Express Edition
http://www.microsoft.com/japan/msdn/vstudio/express/maninstall/
Microsoft .NET Framework Version 2.0 Redistributable Package (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyId=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en
Microsoft .NET Framework 2.0 日本語 Language Pack (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyID=39c8b63b-f64b-4b68-a774-b64ed0c32ae7&DisplayLang=ja
Microsoft .NET Framework 2.0 SDK 日本語版 (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=FE6F2099-B7B4-4F47-A244-C96D69C35DEC&displaylang=ja
ユーザコミュニティーも賑わっています。
http://www.gotdotnet.com/japan/
書籍も続々刊行予定です!
0717デフォルトの名無しさん
2005/12/17(土) 07:45:486以外の答えを許さない問題を考えないと。
0718デフォルトの名無しさん
2005/12/17(土) 09:14:30Delphiユーザも試してみる価値はあります。
Visual Studio 2005 Express Edition
http://www.microsoft.com/japan/msdn/vstudio/express/maninstall/
Microsoft .NET Framework Version 2.0 Redistributable Package (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyId=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en
Microsoft .NET Framework 2.0 日本語 Language Pack (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyID=39c8b63b-f64b-4b68-a774-b64ed0c32ae7&DisplayLang=ja
Microsoft .NET Framework 2.0 SDK 日本語版 (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=FE6F2099-B7B4-4F47-A244-C96D69C35DEC&displaylang=ja
ユーザコミュニティーも賑わっています。
http://www.gotdotnet.com/japan/
書籍も続々刊行予定です!
0719デフォルトの名無しさん
2005/12/17(土) 10:36:30>【必須条件】要素数が6の1次元配列(Ary)を宣言し
6 以外の答えって何?
0720デフォルトの名無しさん
2005/12/17(土) 16:38:09どなたか詳しく手順を教えてください
0721デフォルトの名無しさん
2005/12/17(土) 16:49:230723デフォルトの名無しさん
2005/12/17(土) 18:27:510724720
2005/12/17(土) 18:43:380725デフォルトの名無しさん
2005/12/17(土) 21:31:40新規プロジェクトにWindows Serviceがないんですが、
Unitファイルからガリガリ作れってことですか? orz
0726デフォルトの名無しさん
2005/12/17(土) 23:52:190727デフォルトの名無しさん
2005/12/18(日) 00:54:20英語XPに持っていくとレイアウトが崩れます。
ボタンとかMemoコンポとかがウィンドウからはみ出すかんじ。
日本語フォントは使っていないし、まあそれでもフォントの
問題は一応疑ってみたけど、到底フォントのせいでボタン
がでかくなったとかそういうレベルのずれ方じゃないんです。
どなたか解決策わかるかたいましたら教えてください。
0728デフォルトの名無しさん
2005/12/18(日) 01:07:060729デフォルトの名無しさん
2005/12/18(日) 04:03:46そうそうあんまないね。
本買うしかねーな
おれも最近delphiやりだしたんだけどネットだけじゃだめだね。
基本の本と、Tips系の本を5冊買ったらなんとかなったよ。
0730デフォルトの名無しさん
2005/12/18(日) 07:36:15http://www.marcocantu.com/code/md5/
0731デフォルトの名無しさん
2005/12/18(日) 08:53:15まぁ、急ぎで英語読めないなら本買うのがいいかもな。
0732デフォルトの名無しさん
2005/12/18(日) 08:58:36http://www.delphibasics.co.uk/
0733デフォルトの名無しさん
2005/12/18(日) 14:50:39インデント機能を追加しようとしたときに
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then
begin
Memo1.lines.Add(' ');//エンターキーが押されたときに次のラインの先頭にタブを追加したい
end;
if Key=VK_TABthen
begin
Memo1.lines.Add(' ');//タブ押したら' 'を先頭に追加したい
end;
end;
と、言うふうに書いてみたのですが、実行すると
エンターキーを押したときは
aniki //一行目、ここでエンターを押した
//二行目、「' '」が追加されている
//三行目、ここにカーソルが来てしまう
タブを押したときに至っては全く反応無しという有様なのですが、どのように書けばいいのでしょうか?
0734デフォルトの名無しさん
2005/12/18(日) 15:51:23ApplicationEvents を Form1 の置いて、その OnMessage イベントを使うと良い。
public
procedure WMApp(var Msg: TMessage); message WM_APP;
end;
....
procedure TForm1.WMApp(var Msg: TMessage);
begin
case Msg.WParam of
VK_RETURN: Memo1.SelText := #13#10'RET';
VK_TAB : Memo1.SelText := 'TAB';
end;
end;
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if (Msg.message = WM_KEYDOWN) and (Msg.hwnd = Memo1.Handle) then
case Msg.wParam of
VK_RETURN, VK_TAB: begin
PostMessage(Handle, WM_APP, Msg.wParam, 0);
Handled := true;
end;
end;
end;
0735デフォルトの名無しさん
2005/12/18(日) 16:27:13おお!ありがとうございます。しっかり動きました。
では、中身を理解する作業に戻ります
0736デフォルトの名無しさん
2005/12/18(日) 18:42:380737デフォルトの名無しさん
2005/12/18(日) 20:54:22オフィシャルコースウェア買えカス
0738デフォルトの名無しさん
2005/12/18(日) 21:49:410739デフォルトの名無しさん
2005/12/18(日) 21:50:150740デフォルトの名無しさん
2005/12/19(月) 07:17:450741デフォルトの名無しさん
2005/12/19(月) 07:18:530742デフォルトの名無しさん
2005/12/19(月) 07:51:09詳しく
0743デフォルトの名無しさん
2005/12/19(月) 17:16:31フォームを起動した瞬間にイベントが起こるようにしたい
ちょっと的はずれ的な考えだと思うが
フォームにチェックボックスをひとつ
チェックが入ってる状態だと常に最前面
入ってない状態だとノーマルにしたい
Onkeypressだと思ってやってみたがそれだと一度チェックつけてからチェックはずしても常に最前面の状態のままになってしまう。
0744デフォルトの名無しさん
2005/12/19(月) 17:27:04ちなみにフォームが起動する瞬間ってのはOnCreateかOnActivate?
どっち使うかは書き方次第だが。
0745デフォルトの名無しさん
2005/12/19(月) 17:41:28>>Onkeypressだと思ってやってみたがそれだと一度チェックつけてからチェックはずしても常に最前面の状態のままになってしまう。
OnClickと間違えたかも
で、OnClickを使うと一度チェックつけてからチェックはずしても常に最前面の状態のままになってしまう。
0746デフォルトの名無しさん
2005/12/19(月) 18:03:50procedure TForm1.cbformstyleClick(Sender: TObject);
begin
if CheckBox1.Checked then
Form1.FormStyle := fsStayOnTop
else Form1.FormStyle := fsNormal;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CheckBox1.Checked := False;
end;
0747デフォルトの名無しさん
2005/12/19(月) 18:04:51procedure TForm1.CheckBox1Click(Sender: TObject);
0748デフォルトの名無しさん
2005/12/19(月) 19:06:23ディレクトリパスと拡張子を指定して、あるディレクトリにある
任意拡張子のファイルのファイル名のみを列挙したいのです。
0749デフォルトの名無しさん
2005/12/19(月) 19:10:43FindFirst
0750デフォルトの名無しさん
2005/12/19(月) 19:18:42ファイル名のみはChangeFileExtで取得してる
0751デフォルトの名無しさん
2005/12/19(月) 22:24:35TPopupMenuに動的にメニューを追加する方法なんですが、サブメニューも追加したくて・・・
例えば
MenuA
-SubMenuA
-SubMenuB
MenuB
-SubMenuA
-SubMenuB
-SubC
こんな感じでサブメニュー含めて動的に追加するにはどうしたらいいですかね?
0752デフォルトの名無しさん
2005/12/19(月) 22:50:06TMenuItemを動的に生成してAddしてやる
0753デフォルトの名無しさん
2005/12/19(月) 22:59:21文字列型二次元配列を宣言して代入した文字列をTMemo.Lines.Addで出力したいのですが
Addでの出力で StringとArrayには互換性が無い と言われます。宣言と代入は
words: array [0..9,0..29] of String
words[0] := '文字列1'
words[1] := '文字列2'
words[2] := '文字列3'
:
みたいな感じで記述したのですがどこが悪いのでしょうか。
0754デフォルトの名無しさん
2005/12/19(月) 23:07:14と宣言したのなら、
words[i]は要素数30のStringの配列じゃん
0755ミ,,゚Д゚彡 ◆A6VzDeLphI
2005/12/19(月) 23:14:47MenuItem := TMenuItem.Create(Self);
MenuItem.Caption := 'MenuA';
PopupMenu1.Items.Add(MenuItem);
SubMenuItem := TMenuItem.Create(Self);
SubMenuItem.Caption := 'SubMenuA';
MenuItem.Items.Add(SubMenuItem);
SubMenuItem := TMenuItem.Create(Self);
SubMenuItem.Caption := 'SubMenuB';
MenuItem.Items.Add(SubMenuItem);
MenuItem := TMenuItem.Create(Self);
MenuItem.Caption := 'MenuB';
PopupMenu1.Items.Add(MenuItem);
SubMenuItem := TMenuItem.Create(Self);
SubMenuItem.Caption := 'SubMenuA';
MenuItem.Items.Add(SubMenuItem);
SubMenuItem := TMenuItem.Create(Self);
SubMenuItem.Caption := 'SubMenuB';
MenuItem.Items.Add(SubMenuItem);
SubMenuItem := TMenuItem.Create(Self);
SubMenuItem.Caption := 'SubC';
MenuItem.Items.Add(SubMenuItem);
0756デフォルトの名無しさん
2005/12/19(月) 23:24:41つまり宣言の仕方が違うのですか?
とりあえず自分でもう少し調べてみます。
ちなみに↓と同じ様なことを実現したかったのです。
int i;
char words[10][30] = {
"文字列1", "文字列2", "文字列3",…
};
for (i = 0; i < 29; i++) {
printf("%s\n", word[i]);
}
0757ななしへたぐらま ◆XcB18Bks.Y
2005/12/19(月) 23:58:55>>722さんも指摘していますが確かに File not found になっていますね.
>>743
別解.アクションオブジェクトを使う方法.
・フォームにアクションリストコンポを置く.
・アクションを追加(ここでは名前をAction_StayOnTopとする)
・アクションのCaptionを「最前面に表示」とでもする
・チェックボックスのActionプロパティにこのアクションオブジェクトを指定.
・起動時にフォームを最前面に表示する場合はフォームのFormStyleにfsStayOnTopを指定.
・アクションオブジェクトのOnExecuteとOnUpdateイベントのイベントハンドラを以下のように書く.
procedure TForm1.Action_StayOnTopExecute(Sender: TObject);
begin
if FormStyle = fsStayOnTop then
FormStyle := fsNormal
else
FormStyle := fsStayOnTop;
end;
procedure TForm1.Action_StayOnTopUpdate(Sender: TObject);
begin
(Sender as TAction).Checked := (FormStyle = fsStayOnTop);
end;
0758デフォルトの名無しさん
2005/12/20(火) 00:05:350759デフォルトの名無しさん
2005/12/20(火) 00:12:520760753
2005/12/20(火) 00:20:24HelloWords[1,0] := 'TEST2';
HelloWords[2,0] := 'TEST3;
として
for i:=0 to 2 do
Form1.TMemo1.Lines.Add(HelloWords[i,0]);
で出力できましたが、これは正しいのでしょうか?
0761デフォルトの名無しさん
2005/12/20(火) 00:23:07Delphiのstringは可変長。
固定長にしたいなら、array[0..9] of string[30];とか、array[0..9, 0..29] of Char;とか。このふたつもちょっと違う。
0762デフォルトの名無しさん
2005/12/20(火) 00:23:28Delphiのstringは、文字列の長さに応じて動的に確保してくれるので
Cのように長さを指定する必要はありません。
(長さを指定する事も可能ですが、あまり使われません)
もし、Cの文字列を同じものが欲しいのなら、
array[0..9] of AnsiChar とすると、要素数10のchar配列と同等になります。
stringの配列を作るのなら、単純に
words: array[0..29] of string;
とすれば要素数30のstring配列を宣言でき、
words[0] := '文字列1';
words[1] := '文字列2';
・・・と代入できますし、
Memo1.Lines.Add(words[0]);
で、Addに渡すこともできます。
0763デフォルトの名無しさん
2005/12/20(火) 00:33:37とてもよく分かりました。
固定だと何かと不便そうなので指定なしのStringでやることにします。
ありがとうございました。
0764デフォルトの名無しさん
2005/12/20(火) 01:02:041行ずつではなく、1文字ずつ横に追加する方法はないでしょうか?
0765デフォルトの名無しさん
2005/12/20(火) 01:13:440766デフォルトの名無しさん
2005/12/20(火) 01:31:300767デフォルトの名無しさん
2005/12/20(火) 01:52:37それなら簡単ですね。(なぜ気づかなかったのか・・)
でも文字列が長くなっていくと、画面がちらつく感じがしました。
>>766
まさに求めていたものです。
お二人方ありがとうございました。
0768デフォルトの名無しさん
2005/12/20(火) 09:27:16MenusユニットのNewItem,NewSubMenuあたり使うともちょっとすっきり書けるよ
0769デフォルトの名無しさん
2005/12/20(火) 10:12:15リセットする(最初からカウント)にはどうしたらいいですか?
0770デフォルトの名無しさん
2005/12/20(火) 10:15:48カウントする変数をEnable := Trueのタイミングで初期化するしかないのでは
0771デフォルトの名無しさん
2005/12/20(火) 10:24:06レスありがとうございます
Interval内でボタン押したらタイマーを初期化したいんですけど
TrueFalseの切り替えだと間隔がまちまちになってしまい困ってます
0772デフォルトの名無しさん
2005/12/20(火) 10:32:420773デフォルトの名無しさん
2005/12/20(火) 10:45:43どう見ても超初心者向けの回答じゃないみたいですね
ありがとうございました
0774デフォルトの名無しさん
2005/12/20(火) 10:57:25timeSetEvent辺りをググレ
0775デフォルトの名無しさん
2005/12/20(火) 10:59:21初期化はTimer.Createで調べてみよう
腐らないで頑張れよ
0776デフォルトの名無しさん
2005/12/20(火) 14:17:10Enable を true/false で切り替えるのは API で見ると一時停止じゃないよ。
0777デフォルトの名無しさん
2005/12/20(火) 14:32:14Timer1.Enabled := True;
でInterval分がリセットされる
つう話か?
0778デフォルトの名無しさん
2005/12/20(火) 15:01:280779769
2005/12/20(火) 16:37:55いろいろとありがとうございました。
0780デフォルトの名無しさん
2005/12/20(火) 21:50:51この状態で ToolButton を右クリックするとポップアップメニューが表示されました。
で、今度は PopupMenu の TrackButton プロパティを tbLeftButton に変えたのですが、
左ボタンには反応しません(右クリックには反応します)。ご存知の方が
いましたら教えてください。(D7 Pro ,WinXP です)
0781デフォルトの名無しさん
2005/12/20(火) 23:43:15PopupMenuじゃなくてDropdownMenuに割り当てればいいって話?
0782780
2005/12/21(水) 08:57:16TPopupMenu の TrackButton プロパティにかかわらずに、
DropdownMenu に割り当てると、左ボタンでメニューが表示
PopupMenu に割り当てると、右ボタンでメニューが表示
となりました。
0783デフォルトの名無しさん
2005/12/21(水) 10:24:39Sell_NotifyIconを使ってタスクトレイに登録すると、アイコンの色がちゃんと出ません
かすれたようになってしまいます。どうにかして色を出したいのですが、ご教示願います
0784デフォルトの名無しさん
2005/12/21(水) 10:44:16そのアイコンはWindowsのアイコンファイルとして正しいのか?
エクスプローラは拡張子だけicoの中身ビットマップも正常に表示できるけど通常はそういったファイルは表示できないぞ。
あと、アイコンとして保存する際に16色で保存してるとかパレットが変とか‥・
0785デフォルトの名無しさん
2005/12/21(水) 11:10:070786デフォルトの名無しさん
2005/12/21(水) 11:20:330787デフォルトの名無しさん
2005/12/21(水) 11:38:25Windows2000はタスクトレイのアイコン表示が最大16色。
なもんで、Explorer.exeにパッチ当てると256色まで表示できるようになる。
ttp://www.dr-hoiby.com/TrayIconIn256Color/index.php
0788デフォルトの名無しさん
2005/12/21(水) 11:41:000789デフォルトの名無しさん
2005/12/21(水) 11:42:44こいつら頭ワルスw
0790デフォルトの名無しさん
2005/12/21(水) 12:26:200791デフォルトの名無しさん
2005/12/21(水) 14:23:460792デフォルトの名無しさん
2005/12/21(水) 18:43:26実行ファイルのサイズが極端に軽くなりますが
チェックをいれる事によるメリット、デメリットってあるんですか?
0793デフォルトの名無しさん
2005/12/21(水) 18:57:06デメリット:実行時パッケージの配布
0794デフォルトの名無しさん
2005/12/21(水) 19:07:07そのようなことはできるものでしょうか。
OnKeyDown で MainMenu1.Items[0].Items[0].Click;
などとしてもだめでした。
0795デフォルトの名無しさん
2005/12/21(水) 20:14:16Alt キーを押してから F キーを押すと [ファイル] メニューがドロップダウンする。
同様にして、コードでドロップダウンするときは、keybd_event() API でキー入力を
シミュレートするとできるよ。
0796794
2005/12/21(水) 20:39:27(keybd_event って昔はよく使ってたんですけど、何だかで一切使わなく
なっちゃたんですよね。何でだっけかな?)
[ファイル(&F)]−[登録(&R)]のサブメニューを表示するイメージとしては
keydown(Alt)
keydown(F)
keyup(F)
keyup(Alt)
keydown(R)
keyup(R)
てな感じかな。どっかでApplication.何とかをはさむ必要もあるかも
試してみます。
0797794
2005/12/21(水) 21:03:46ただ、Alt キーが押されている状態(メニューにフォーカスがいっている状態)では
開かない、という事象がありますが。とりあえずは良しとしたいと思います。
ありがとうございました。
OnKeyDown で Timer1.Enabled := True;
Timer1 で
Timer1.Enabled := False;
keybd_event(VK_MENU, 0, 0, 0); // Altキーを押す
keybd_event(Word('F'), 0, 0, 0); // 'F'キーを押す
keybd_event(Word('F'), 0, KEYEVENTF_KEYUP, 0); // 'F'キーを離す
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0); // Altキーを離す
keybd_event(Word('R'), 0, 0, 0); // 'R'キーを押す
keybd_event(Word('R'), 0, KEYEVENTF_KEYUP, 0); // 'R'キーを離す
としました。
0798デフォルトの名無しさん
2005/12/21(水) 22:27:010799デフォルトの名無しさん
2005/12/21(水) 22:29:56ポストしておけば OnKeyDown イベントのあとで実行できるよ。
0800デフォルトの名無しさん
2005/12/22(木) 04:53:39TFormにはBorderStyleの選択肢にbsSizeableがありますが、TPanelにはありません
少ない脳みそで考えた結果、
OnMouseMoveでマウスがパネルのはじっこに乗ってるか判定して、
はじっこだったらマウスカーソルの絵を変えて、
その状態でマウスの左ボタンを押したらサイズ変更を開始させて、
ボタンを離したら左ボタンを押した時と離した時の座標の差を元にパネルのサイズを変更する
という頭の悪い方法しか考えつかないです(しかも超面倒くさそう・・・)
他にもっと簡単な方法はありませんか?
0801デフォルトの名無しさん
2005/12/22(木) 05:31:24http://forum.nifty.com/fdelphi/samples/00008.html
0802デフォルトの名無しさん
2005/12/22(木) 08:10:15誰かwikiの後継ぎしてくれ
0803794
2005/12/22(木) 09:04:05変更したいと思います。
>>800 自分は GetWindowLong ,SetWindowLong ,SetWindowPos などの API を使った
ことがあります。
0804デフォルトの名無しさん
2005/12/22(木) 10:46:140805デフォルトの名無しさん
2005/12/22(木) 10:50:360806デフォルトの名無しさん
2005/12/22(木) 12:12:420807デフォルトの名無しさん
2005/12/22(木) 12:43:36ロシアンルーレットのようなプログラムを作りたいんですが。
0808デフォルトの名無しさん
2005/12/22(木) 12:59:430809デフォルトの名無しさん
2005/12/22(木) 13:05:06var
i, n: Integer;
begin
Randomize;
n := 100;
i := Random(n);
end;
0810デフォルトの名無しさん
2005/12/22(木) 14:01:35関数で何度も呼び出す必要性はないな
0811デフォルトの名無しさん
2005/12/22(木) 18:27:220812デフォルトの名無しさん
2005/12/22(木) 18:30:05Randomize は、何度やってもいいんだよ。ランダムなんだから(藁
0813デフォルトの名無しさん
2005/12/22(木) 18:32:21関数呼び出す毎に実行してなにが悪い?
0814デフォルトの名無しさん
2005/12/22(木) 18:32:53いや、Delphiクイックリファレンスにも書いてあるんだけど、
Randomizeを毎回呼ぶことによってランダム性が崩れるんだとさ。
というわけで、Randomizeは、プログラム開始時に一回だけ呼ぶのが正しいらしい。
0815デフォルトの名無しさん
2005/12/22(木) 18:35:53なんで2回じゃ正しくないのかな?
0816デフォルトの名無しさん
2005/12/22(木) 18:37:52あとはよくわからん。
とりあえず、俺は本を信じとくけど。
0817デフォルトの名無しさん
2005/12/22(木) 18:38:48データの間でランダム性の相関が必要なときは、1回だけが正しい。
相関が無いときは、何度実行しても関係ない。
0818デフォルトの名無しさん
2005/12/22(木) 18:52:480819デフォルトの名無しさん
2005/12/22(木) 19:40:04乱数の種がどういう意味持ってるか分からない人はそれ相応の入門書でも読むとよろし
0820デフォルトの名無しさん
2005/12/22(木) 20:24:50一見複雑な結果が得られる。で、一様で長周期な Random() 関数の実装が、論理的な
プログラミングと一見矛盾して見えるんだよね。乱数発生のアルゴリズムは、一生を
かけて研究するに値する学問分野ではあるらしい。不思議な感じがするよね。
0821デフォルトの名無しさん
2005/12/22(木) 21:24:410822デフォルトの名無しさん
2005/12/22(木) 21:28:210823デフォルトの名無しさん
2005/12/22(木) 21:29:260824デフォルトの名無しさん
2005/12/22(木) 21:42:380825デフォルトの名無しさん
2005/12/22(木) 22:00:200826デフォルトの名無しさん
2005/12/22(木) 22:00:350827デフォルトの名無しさん
2005/12/22(木) 22:02:510828デフォルトの名無しさん
2005/12/22(木) 22:14:360829デフォルトの名無しさん
2005/12/22(木) 22:20:480830デフォルトの名無しさん
2005/12/22(木) 22:23:310831デフォルトの名無しさん
2005/12/22(木) 23:22:080832800
2005/12/22(木) 23:32:00>>803
まんま望み通りの事がFAQっぽいところに載ってるとは・・・勉強不足すんまそん
でもイメージ的にはあってたみたいですね
提示してくれた物の方が比べ物にならないくらいスマートですが
ちょっと改造すれば解決しそうです。ありがとう
0833デフォルトの名無しさん
2005/12/22(木) 23:50:37http://wiki.s54.xrea.com/delphi/
もし良かったら使ってね
0834デフォルトの名無しさん
2005/12/23(金) 00:07:07粘着のせい??
0835デフォルトの名無しさん
2005/12/23(金) 02:20:27管理する気あるのかよ
0836デフォルトの名無しさん
2005/12/23(金) 02:42:190837デフォルトの名無しさん
2005/12/23(金) 05:37:480838デフォルトの名無しさん
2005/12/23(金) 07:43:120839デフォルトの名無しさん
2005/12/23(金) 08:30:310840デフォルトの名無しさん
2005/12/23(金) 09:15:120841デフォルトの名無しさん
2005/12/23(金) 10:14:050842デフォルトの名無しさん
2005/12/23(金) 10:37:590843デフォルトの名無しさん
2005/12/23(金) 11:15:170844デフォルトの名無しさん
2005/12/23(金) 11:17:470845デフォルトの名無しさん
2005/12/23(金) 11:20:170846デフォルトの名無しさん
2005/12/23(金) 11:42:230847デフォルトの名無しさん
2005/12/23(金) 14:15:120848835
2005/12/23(金) 15:08:32あっても無くてもどうでもいけどね^^
0849デフォルトの名無しさん
2005/12/23(金) 15:18:28S: String;
begin
SetLength(S, 100);
lstrcpy(PChar(S), 'Hoge');
end;
こういう使い方してもSは自動的に解放されるんですか?
0850デフォルトの名無しさん
2005/12/23(金) 16:28:18S: String; ←
0851デフォルトの名無しさん
2005/12/23(金) 16:33:35される。
0852デフォルトの名無しさん
2005/12/23(金) 16:44:33少し気になってたもので
0853デフォルトの名無しさん
2005/12/23(金) 18:15:50TRec = record
aaa: Integer;
case Byte of
0: (bbb: array[0..10] of AnsiChar);
1: (ccc: array[0..10] of Byte);
ddd: Integer; <---未定義の識別子:'ddd' だって???
end;
わし、なんか勘違いしてますか。
0854デフォルトの名無しさん
2005/12/23(金) 18:24:51レコードの可変部分はレコードの最後でなければならない。
0855デフォルトの名無しさん
2005/12/23(金) 18:28:25じゃー、構造体の中間は再定義できないの?
0856デフォルトの名無しさん
2005/12/23(金) 18:50:090857デフォルトの名無しさん
2005/12/23(金) 19:29:26できない。 Windows.pasでは以下のように対処している。
TRec = record
aaa: Integer;
case Byte of
0: (bbb: array[0..10] of AnsiChar);
1: (ccc: array[0..10] of Byte;
ddd: Integer);
end;
0858デフォルトの名無しさん
2005/12/23(金) 21:28:34リストビューでタスクマネージャーみたいに
列を非表示にしたいのですが、どうすれば
いいでしょうか?
0859デフォルトの名無しさん
2005/12/23(金) 21:32:53以前やったときはそんなプロパティ見つからなかったので、あきらめました。
0860デフォルトの名無しさん
2005/12/23(金) 21:37:290861デフォルトの名無しさん
2005/12/23(金) 21:38:31Width := 0 じゃ・・・だめだよね。
0862デフォルトの名無しさん
2005/12/23(金) 21:39:31それじゃ、列ヘッダだろ。
0863デフォルトの名無しさん
2005/12/23(金) 21:41:180864デフォルトの名無しさん
2005/12/23(金) 21:41:40非表示にするやり方ってあったような気が。
0865858
2005/12/23(金) 21:54:18Widthを0にしても隠れているだけで境界をドラッグすると
列が表示されてしまいますし、MinSizeとMaxSizeを0にし
ても駄目でした。
完全に非表示にするやり方が多分存在すると思います
ので、いろいろと探してみます。
しっている方がいましたらよろしくお願いします。
0866デフォルトの名無しさん
2005/12/23(金) 22:05:48俺も調べてみるけど、解決したらこのスレに書き込んでね。
0868デフォルトの名無しさん
2005/12/23(金) 23:08:500869868
2005/12/24(土) 00:10:25procedure TForm1.Button1Click(Sender: TObject);
var
LC : TListColumn;
LI : TListItem;
I : Integer;
begin
ListView1.Columns.Clear;
LC := ListView1.Columns.Add;
LC.Caption := 'One';
LC := ListView1.Columns.Add;
LC.Caption := 'Two';
LC := ListView1.Columns.Add;
LC.Caption := 'Tree';
ListView1.Items.Clear;
for I := 1 To 10 do begin
LI := ListView1.Items.Add;
LI.Caption := '1';
LI.SubItems.Add('2');
LI.SubItems.Add('3');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ListView1.Columns.Delete(1);
end;
0870デフォルトの名無しさん
2005/12/24(土) 00:10:41リストを仮想ビューにして、OnDataでフラグ見ながらAdd
くらいしか思いつかない
0871870
2005/12/24(土) 00:12:52そこに対応しようとすると処理が煩雑になるが、
タスクマネージャ仕様でいくなら、そこは非表示にできなくなってるのでおkかな
0872デフォルトの名無しさん
2005/12/24(土) 00:23:17CPU使用率とかメモリ使用量とかを非表示にするができるけど、どう
いうふうに実現しているんだろうね。
恐らく無茶苦茶簡単な方法が用意されている予感がしてならない。
0873デフォルトの名無しさん
2005/12/24(土) 00:29:100874デフォルトの名無しさん
2005/12/24(土) 00:29:580875デフォルトの名無しさん
2005/12/24(土) 00:47:03http://www.sakaki.keiaikai.or.jp/cgi-bin/ConvRoom/webconv.dll/alltree?No=17730
0876デフォルトの名無しさん
2005/12/24(土) 01:02:55これならカラムの並び順入れ替えも簡単に対応できるし
0877デフォルトの名無しさん
2005/12/24(土) 01:35:130878デフォルトの名無しさん
2005/12/24(土) 01:43:16頭悪くね?
0879デフォルトの名無しさん
2005/12/24(土) 01:46:43色もつけれるし
0880デフォルトの名無しさん
2005/12/24(土) 01:51:010881デフォルトの名無しさん
2005/12/24(土) 01:55:23StringGridでやれば?ってどんな回答だよwww
0882デフォルトの名無しさん
2005/12/24(土) 02:44:410883デフォルトの名無しさん
2005/12/24(土) 02:56:150884デフォルトの名無しさん
2005/12/24(土) 02:56:27だからそのコードをだな(ry
>>882
仮想リストビューは立派なリストビューだろ
0885デフォルトの名無しさん
2005/12/24(土) 03:06:47StringGridはどうしても機能的に限界がある
0886デフォルトの名無しさん
2005/12/24(土) 03:07:390887デフォルトの名無しさん
2005/12/24(土) 05:26:38> 列を非表示にしたいのですが、どうすれば
> いいでしょうか?
875 で解決したんだから、議論の余地なし。
0888デフォルトの名無しさん
2005/12/24(土) 10:09:040889デフォルトの名無しさん
2005/12/24(土) 10:16:140890デフォルトの名無しさん
2005/12/25(日) 00:23:47登録用のサイトってどこ?
0891デフォルトの名無しさん
2005/12/25(日) 00:25:170892デフォルトの名無しさん
2005/12/25(日) 00:26:01↑ここに詳細があるかもしれない。
0893デフォルトの名無しさん
2005/12/25(日) 01:33:12BDNのアカウントを作る
http://bdn.borland.com/delphi/0,1419,1,00.html
0894デフォルトの名無しさん
2005/12/25(日) 03:25:20超基礎事項を理解し、簡単なアプリ、ミニゲームを2〜3個作り、クラスの概念をなんとなく理解した
このあと、何を学べばいいんだろうか。なんとなく自分としては
オブジェクト指向的な設計、クラスの自作、コンポーネントの自作、Win32API、VCLの内部処理
とやっていこうと思うんだけど、脱・初心者を目的としたオススメの指南サイトありませんか?
0895デフォルトの名無しさん
2005/12/25(日) 04:24:49> コンポーネントの自作、VCLの内部処理
http://www.impress.co.jp/ebook/title/263-1.html
> Win32 API
http://homepage2.nifty.com/Mr_XRAY/Halbow/index.html
http://www.amazon.co.jp/exec/obidos/ASIN/4822228266/
http://www.amazon.co.jp/exec/obidos/ASIN/4756136001/
> クラスの自作、オブジェクト指向的な設計
http://www.amazon.co.jp/exec/obidos/ASIN/4822281957/
http://www.amazon.co.jp/exec/obidos/ASIN/4774104272/
あとはデザインパターン本を1冊かなー。
ちなみに素人さんは上流の設計論は無視して良し。
ポトペタで楽しくやっている人がユースケースを書いても詰まらないと思うから。
0896デフォルトの名無しさん
2005/12/25(日) 11:19:44DelphianWorld へいって、簡単なコンポをDLして、その動作とコードを研究する
ことを勧めるよ。OOP も Win32API も自然に身に付くと思うし。
0897デフォルトの名無しさん
2005/12/25(日) 11:41:140898デフォルトの名無しさん
2005/12/25(日) 14:12:520899デフォルトの名無しさん
2005/12/25(日) 14:31:26http://pc7.2ch.net/test/read.cgi/software/1135426816/
これを日本語化しようと思っています、興味のある人は協力お願いします。
0900894
2005/12/25(日) 17:25:26>>895
やっぱりそろそろ入門本を買うべきなのか
ここまで全部無料で済ませてきたからweb上の情報だけでやっていきたいけど、そろそろ限界なのかな
>>896
なるほど、その手は思いつかなかった
うまい(きれいな)コードの書き方とかも気になってたから、さっそく何か落としてみます
>>897
使ったコンポーネントのプロパティ、メソッドの全部読みはやったけど、開発者ガイドはやってなかった
けど、初心者にとってdelphiのヘルプってなんか読みづらいんだよね
0901デフォルトの名無しさん
2005/12/25(日) 17:38:08大丈夫、開発者ガイドは誰が読んでも読みづらい。
0902デフォルトの名無しさん
2005/12/26(月) 11:35:090903デフォルトの名無しさん
2005/12/26(月) 12:13:540904デフォルトの名無しさん
2005/12/26(月) 16:36:100905デフォルトの名無しさん
2005/12/26(月) 16:41:540906デフォルトの名無しさん
2005/12/26(月) 16:42:44Delphiでお願いします
0907デフォルトの名無しさん
2005/12/26(月) 16:49:18なんか話が噛み合わない
0908デフォルトの名無しさん
2005/12/26(月) 16:53:39MessageDlgPos('Are you there?',mtConfirmation, mbYesNoCancel, 0, 200, 200);
よろしくお願いします
0909デフォルトの名無しさん
2005/12/26(月) 16:57:31プログラムで閉じたいってことか?
0910デフォルトの名無しさん
2005/12/26(月) 16:58:30はい、それです
0911デフォルトの名無しさん
2005/12/26(月) 17:02:29ユーザーがはい、いいえ、キャンセル選んでもらうのに勝手に閉じるとかありえない
0912デフォルトの名無しさん
2005/12/26(月) 17:06:09ボタンが押されるまでプログラムはそこで止まる
別アプリか別スレッドでらFindWindowAPI使ってダイアログのハンドル取得して
それにWM_Closeメッセージ送るとか?
この場合戻り値は何が返ってくるのかわからん
0913デフォルトの名無しさん
2005/12/26(月) 18:31:250914デフォルトの名無しさん
2005/12/26(月) 19:55:350915デフォルトの名無しさん
2005/12/26(月) 22:34:13ただ単にメッセージをMessageDlgPosみたいにポップアップで表示したいなら
新たなフォーム表示させてTimerで
if MsgForm.showing = true then MsgForm.Hide;
とかで消せばいいんじゃない?
0916デフォルトの名無しさん
2005/12/26(月) 22:53:24TComponentのFindComponentみたいな感じで
TForm1内に存在する関数を検索したいのですが
0917デフォルトの名無しさん
2005/12/26(月) 23:04:48RestoreKey関数にてレジストリデータの上書きしたいのですが関数がTrueを返してくれません。
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
begin
try
RootKey:=HKEY_LOCAL_MACHINE;
Access:=KEY_ALL_ACCESS;
if RestoreKey('\SOFTWARE\hogehoge\hoge', 'C:\hivefile') = True then
ShowMessage('OK!')
else ShowMessage('Err');
finally
Free;
end;
end;
end;
0918917続き
2005/12/26(月) 23:06:44REG_FORCE_RESTORE, REG_NO_LAZY_FLUSH -> 何故か未定義と言われる
REG_REFRESH_HIVE, REG_WHOLE_HIVE_VOLATILE -> 関数がERROR_INVALID_PARAMETERを返す
var
key: HKEY;
begin
if RegOpenKeyEx(HKEY_LOCAL_MACHINE,PChar('SOFTWARE\hogehoge\hoge'), 0, KEY_ALL_ACCESS, key)
= ERROR_SUCCESS then begin
try
if GetSeRestorePrivileges = ERROR_SUCCESS then begin // SE_RESTORE_PRIVILEGE特権取得成功時
if RegRestoreKey(key,PChar(C:\hivefile),REG_WHOLE_HIVE_VOLATILE) = 0 then
ShowMessage('OK!')
else ShowMessage('Err');
end;
finally
RegCloseKey(key);
end;
end;
0919デフォルトの名無しさん
2005/12/26(月) 23:44:52板違いだったらすみません。誘導してください
0920デフォルトの名無しさん
2005/12/27(火) 01:18:510921デフォルトの名無しさん
2005/12/27(火) 01:31:36関数をpublishedに置いてMethodAddress
0922デフォルトの名無しさん
2005/12/27(火) 04:44:58Windows.pasくらい見ろ
Personalだからソースないは無しな、Personalでもパッチ当てればあるから
未定義って言われてなんでそのメッセージを疑うんだよ
未定義だから未定義って出てるわけ、分かる?
0923デフォルトの名無しさん
2005/12/27(火) 06:03:010924デフォルトの名無しさん
2005/12/27(火) 08:12:24九族もろとも苦しんで死ね
0925デフォルトの名無しさん
2005/12/27(火) 10:21:330926デフォルトの名無しさん
2005/12/27(火) 10:33:260927デフォルトの名無しさん
2005/12/27(火) 10:34:560928デフォルトの名無しさん
2005/12/27(火) 10:37:42.netは死滅します
.netは死滅します
.netは死滅します
.netは死滅します
.netは死滅します
.netは死滅します
.netは死滅します
.netは死滅します
.netは死滅します
0929デフォルトの名無しさん
2005/12/27(火) 10:45:020930デフォルトの名無しさん
2005/12/27(火) 10:46:030931デフォルトの名無しさん
2005/12/27(火) 20:10:33簡単なアプリ(ボタンを押したら文字が出る)をつくって、インストーラーつくってみました。
すると、インストールはできるんですが、アンインストーラーがついていないんです。
インストールシールドExpress for Delphiの設定で「アンインストーラーをつける」みたいな設定項目がみつけられないんですが、
これって、自分でアンインストーラーを作成して(Delphiやなんかで)一緒に抱き合わせてインストーラーに仕立てるんでしょうか?
Delhi アンインストーラーなどでググってみたんですが、意図したようなサイトがみつからなくて・・
0932デフォルトの名無しさん
2005/12/27(火) 20:26:14これじゃ・・・
0933デフォルトの名無しさん
2005/12/27(火) 20:28:17とんでもない勘違いをしているので、
とりあえずヘルプよく読みなさい
0934デフォルトの名無しさん
2005/12/27(火) 21:40:13特に何もしなくても「アプリの追加と削除」に普通に項目出てくるよ。
もう一回プロジェクト作り直してみたら?
0935デフォルトの名無しさん
2005/12/27(火) 22:56:32インド人嘘つかない
0936デフォルトの名無しさん
2005/12/27(火) 23:01:510937デフォルトの名無しさん
2005/12/27(火) 23:49:23Delphi のバージョンとか
OSくらい書かないと。
0938デフォルトの名無しさん
2005/12/27(火) 23:55:02次に処理するファイルを選択するためにOpenDialogを開いたときに
すでに処理したファイルは選択できないようにできるでしょうか。
できれば すでに処理したファイルだけ赤字とか赤の横線に表示できないかと…
0939デフォルトの名無しさん
2005/12/27(火) 23:58:310940デフォルトの名無しさん
2005/12/28(水) 00:13:580941931
2005/12/28(水) 00:34:43えぇ、「追加と削除」からは削除できます。でも、市販のゲームとか買うと、スタート→プログラム→○○(自作アプリ)のとこにアンインストーラーも出るでしょう?
ああいう感じのアンインストーラーを期待してたんですが・・
>>937
OSはWin2000、Delphiのバージョンは5proです。
Delphiは姉から譲りうけました。
0942ななしへたぐらま ◆XcB18Bks.Y
2005/12/28(水) 00:49:53実例を見せる方が勉強になるかもしれないと思ったのでとりあえず作ってみました.
ユーザーが混乱しないように残り時間が表示されるようになっています.
type
{ ●制限時間付きメッセージダイアログ風フォーム
◆使い方
CountdownFormのMsgにメッセージを書き込んでShowModal.
どれが押されたかはShowModalの戻り値でわかる.
◆主なプロパティ
Msg ... 表示したいメッセージ文字列を指定
TimeoutSeconds ... タイムアウトするまでの秒数(デフォルト:3)
TimeoutResult ... タイムアウトしたときにModalResultに代入される値(デフォルト:mrYes)}
TCountdownForm = class(TForm)
Timer1: TTimer;
YesButton: TButton;
NoButton: TButton;
CancelButton: TButton;
MsgLabel: TLabel;
CountdownLabel: TLabel;
procedure Timer1Timer(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
FTimeoutSeconds: cardinal;
FTimeoutResult: TModalResult;
FLeftSeconds: cardinal;
procedure UpdateCountdownLabel;
procedure ResetCount;
procedure CountDown;
function GetMsg: string;
procedure SetMsg(const Value: string);
(※しばらくつづく)
0943ななしへたぐらま ◆XcB18Bks.Y
2005/12/28(水) 00:51:42constructor Create(AOwner: TComponent); override;
property Msg: string read GetMsg write SetMsg;
property TimeoutSeconds: cardinal read FTimeoutSeconds write FTimeoutSeconds;
property TimeoutResult: TModalResult read FTimeoutResult write FTimeoutResult;
end;
◆設計時にコンポに設定するプロパティ
Timer1: Enabled: False
YesButton: Caption: '&Yes', ModalResult: mrYes
NoButton: Caption: '&No', ModalResult: mrNo
CancelButton: Caption: '&Cancel', ModalResult: mrCancel
◆↓実装
procedure TCountdownForm.CountDown;
begin
FLeftSeconds := FLeftSeconds - 1;
if FLeftSeconds = 0 then
Timer1.Enabled := False;
UpdateCountdownLabel;
end;
constructor TCountdownForm.Create(AOwner: TComponent);
begin
inherited;
FTimeoutSeconds := 5;
FTimeoutResult := mrYes;
end;
(※つづく)
0944ななしへたぐらま ◆XcB18Bks.Y
2005/12/28(水) 00:52:14var Action: TCloseAction);
begin
Timer1.Enabled := False;
end;
procedure TCountdownForm.FormShow(Sender: TObject);
begin
ResetCount;
Timer1.Enabled := True;
end;
function TCountdownForm.GetMsg: string;
begin
Result := MsgLabel.Caption;
end;
procedure TCountdownForm.ResetCount;
begin
FLeftSeconds := FTimeoutSeconds;
UpdateCountdownLabel;
end;
procedure TCountdownForm.SetMsg(const Value: string);
begin
MsgLabel.Caption := Value;
end;
(※つづく)
0945ななしへたぐらま ◆XcB18Bks.Y
2005/12/28(水) 00:52:48begin
CountDown;
if FLeftSeconds = 0 then
ModalResult := FTimeoutResult;
end;
procedure TCountdownForm.UpdateCountdownLabel;
begin
CountdownLabel.Caption := format('あと%d秒', [FLeftSeconds]);
end;
◆呼び出し側(例)
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
begin
CountdownForm.Msg := '内容が変更されています.保存しますか?';
{CountdownForm.TimeoutSeconds := 7;
CountdownForm.TimeoutResult := mrCancel;}
case CountdownForm.ShowModal of
mrYes: s := 'mrYesが選ばれました';
mrNo: s := 'mrNoが選ばれました';
mrCancel: s := 'mrCancelが選ばれました';
else s := '???';
end;
ShowMessage(s);
end;
(※終わり)
0946デフォルトの名無しさん
2005/12/28(水) 02:42:15flag:word;
procedure TForm1.Btn1,Click(Sender: TObject);
begin
flag:=randomize(15);
end;
例えばボタンを10回押してflagの値が8,4,6,8,15,1,5...
コレをn回目の情報と一緒に格納して出し入れしたいのですが。
1-8,2-4,3-6,4-8,5-15,6-1,7-5...みたいに。
0947デフォルトの名無しさん
2005/12/28(水) 02:42:15追加と削除へのショートカットをインストール時に作れ
作り方はぐぐれば分かる
0948デフォルトの名無しさん
2005/12/28(水) 02:44:01flagを配列にすればいいじゃん
あと乱数初期化してどうする
0949946
2005/12/28(水) 02:45:13randomize;
flag := Random(15);
0950デフォルトの名無しさん
2005/12/28(水) 09:54:26そういう、「出来事」の数を数えることを「ヒストグラムをつくる」といいます。
こんな感じ。
procedure TForm1.Button1Click(Sender: TObject);
var
histogram:array[0..15] of integer;
i: integer;
begin
randomize;
for i := 0 to 15 do histogram[i] := 0; // 初期化
for i := 1 to 100 do inc(histogram[random(16)]); // 100回の「出来事」
for i := 0 to 15 do
Memo1.Lines.Add(Format('%.2d - %.2d',[i, histogram[i]])); // 表示
end;
0951デフォルトの名無しさん
2005/12/28(水) 10:57:230952デフォルトの名無しさん
2005/12/28(水) 11:08:34begin
flag := Random(15);
ShowMsg(Format('%d-%d', [count,flag]));
Inc(count);
end;
こういうことじゃないのか?
0953デフォルトの名無しさん
2005/12/28(水) 11:47:120954デフォルトの名無しさん
2005/12/28(水) 12:20:420956デフォルトの名無しさん
2005/12/28(水) 14:28:03CheckBox1のOnClickイベントが発生しちゃいますよね
OnClickイベントを通らずに、CheckBox1.Checkedの値を変更したいんですけど、
何か良い方法があればご教授おねがいします
0957デフォルトの名無しさん
2005/12/28(水) 14:45:42メンバー変数にブーリアン値を用意する。
で、それを起動時にfalseにでも初期化して、
CheckBox1のChecked値を変える直前にそのブーリアンをtrueにして、
変更したらブーリアンをfalseに戻す。
OnClickイベント内では、最初に、ブーリアンをチェックして、trueならexitする。
0958デフォルトの名無しさん
2005/12/28(水) 14:47:32begin
CheckBox1.OnClick := nil;
CheckBox1.Checked := True;
CheckBox1.OnClick := CheckBox1Click;
0959デフォルトの名無しさん
2005/12/28(水) 15:14:48ありがとうございました。うまく動きました。
958さんの方法をお借りしました。
957さんの方法のほうが分かりやすいんですけど、あまり変数は増やしたくなかったんで。
でもいろんなものに応用は利きそうですね。
脳みそにしわが1本増えました。どうもです。
0960ななしへたぐらま ◆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のどこかに
-----------------------
0961ななしへたぐらま ◆XcB18Bks.Y
2005/12/28(水) 17:03:4527 ttp://pc8.2ch.net/test/read.cgi/tech/1126590039/
26 ttp://pc8.2ch.net/test/read.cgi/tech/1121249711/
25 ttp://pc8.2ch.net/test/read.cgi/tech/1119008091/
24 ttp://pc8.2ch.net/test/read.cgi/tech/1115581376/
23 ttp://pc8.2ch.net/test/read.cgi/tech/1110470895/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1107332482/
21 ttp://pc5.2ch.net/test/read.cgi/tech/1104511938/
20 ttp://pc5.2ch.net/test/read.cgi/tech/1101530485/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1097454588/
18 ttp://pc5.2ch.net/test/read.cgi/tech/1093996761/
17 ttp://pc5.2ch.net/test/read.cgi/tech/1091671391/
16 ttp://pc5.2ch.net/test/read.cgi/tech/1089779142/
15 ttp://pc5.2ch.net/test/read.cgi/tech/1087823906/
14 ttp://pc5.2ch.net/test/read.cgi/tech/1085239007/
13 ttp://pc5.2ch.net/test/read.cgi/tech/1081003641/
12 ttp://pc5.2ch.net/test/read.cgi/tech/1076610073/
11 ttp://pc5.2ch.net/test/read.cgi/tech/1076609666/
10 ttp://pc5.2ch.net/test/read.cgi/tech/1074523803/
09 ttp://pc5.2ch.net/test/read.cgi/tech/1071294733/
08 ttp://pc5.2ch.net/tech/kako/1068/10682/1068201045.html
07 ttp://pc5.2ch.net/tech/kako/1065/10651/1065195699.html
06 ttp://pc5.2ch.net/tech/kako/1063/10632/1063202727.html
05 ttp://pc5.2ch.net/tech/kako/1061/10610/1061090908.html
04 ttp://pc5.2ch.net/tech/kako/1058/10588/1058834815.html
03 ttp://pc5.2ch.net/tech/kako/1055/10559/1055986736.html
02 ttp://pc5.2ch.net/tech/kako/1053/10537/1053757982.html
01 ttp://pc5.2ch.net/tech/kako/1051/10518/1051882835.html
-----------------------
0962ななしへたぐらま ◆XcB18Bks.Y
2005/12/28(水) 17:08:14過去スレ(保管庫)
27 ttp://makimo.to/2ch/pc8_tech/1126/1126590039.html
26 ttp://makimo.to/2ch/pc8_tech/1121/1121249711.html
25 ttp://makimo.to/2ch/pc8_tech/1119/1119008091.html
24 ttp://makimo.to/2ch/pc8_tech/1115/1115581376.html
23 ttp://makimo.to/2ch/pc8_tech/1110/1110470895.html
22 ttp://makimo.to/2ch/pc5_tech/1107/1107332482.html
21 ttp://makimo.to/2ch/pc5_tech/1104/1104511938.html
20 ttp://makimo.to/2ch/pc5_tech/1101/1101530485.html
19 ttp://makimo.to/2ch/pc5_tech/1097/1097454588.html
18 ttp://makimo.to/2ch/pc5_tech/1093/1093996761.html
17 ttp://makimo.to/2ch/pc5_tech/1091/1091671391.html
16 ttp://makimo.to/2ch/pc5_tech/1089/1089779142.html
15 ttp://makimo.to/2ch/pc5_tech/1087/1087823906.html
14 ttp://makimo.to/2ch/pc5_tech/1085/1085239007.html
13 ttp://makimo.to/2ch/pc5_tech/1081/1081003641.html
11 ttp://makimo.to/2ch/pc5_tech/1076/1076610073.html
11 ttp://makimo.to/2ch/pc2_tech/1076/1076609666.html
10 ttp://makimo.to/2ch/pc2_tech/1074/1074523803.html
09 ttp://makimo.to/2ch/pc2_tech/1071/1071294733.html
-----------------------
テンプレ案は以上です.問題点等があればご指摘願います.
以下は私見ですが新スレがたっても速攻埋め立てはしない方がよいのではないかと思います.
旧スレにレスしたい場合もあるでしょうし,現状では速攻でdat落ちさせる必要もないと思うのですが.
この点についてもご意見を伺いたく思います.
0963デフォルトの名無しさん
2005/12/28(水) 17:48:020964デフォルトの名無しさん
2005/12/28(水) 17:54:560965デフォルトの名無しさん
2005/12/28(水) 18:42:16http://bdn.borland.com/delphi/
0966デフォルトの名無しさん
2005/12/28(水) 20:09:20Visual Studio 2005 Express Edition
http://www.microsoft.com/japan/msdn/vstudio/express/maninstall/
Microsoft .NET Framework Version 2.0 Redistributable Package (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyId=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en
Microsoft .NET Framework 2.0 日本語 Language Pack (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyID=39c8b63b-f64b-4b68-a774-b64ed0c32ae7&DisplayLang=ja
Microsoft .NET Framework 2.0 SDK 日本語版 (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=FE6F2099-B7B4-4F47-A244-C96D69C35DEC&displaylang=ja
0967デフォルトの名無しさん
2005/12/28(水) 20:15:46>>966はイラネ、必要なときはいつでもVSのスレに見に行きゃいいし
0968デフォルトの名無しさん
2005/12/28(水) 20:17:490969デフォルトの名無しさん
2005/12/28(水) 20:45:10いや、かならず入れるべきだよ。
0970毛の生えたフサギコ
2005/12/28(水) 20:48:32すみません。入力ミスで、その1からず〜っと気にしていたことですが・・・。
>何が何だが(×)
>何が何だか(○)です。
訂正をおねがいします。
0971デフォルトの名無しさん
2005/12/28(水) 20:49:120972デフォルトの名無しさん
2005/12/28(水) 21:18:140973デフォルトの名無しさん
2005/12/28(水) 21:40:53サンクス。見られました。
0974ななしへたぐらま ◆XcB18Bks.Y
2005/12/28(水) 22:18:24そう考えるとそういう人たちにとっては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のどこかに
-----------------------
これから帰宅なので帰宅後もう一度来るつもりですが,徹夜明けなので爆睡してしまうかもしれません,そのときはごめんなさい.
0975デフォルトの名無しさん
2005/12/29(木) 00:01:59というわけで有料鯖か自鯖でよろしく。
0976デフォルトの名無しさん
2005/12/29(木) 00:07:000977デフォルトの名無しさん
2005/12/29(木) 00:15:25何もできない猿がよく言うよ┐(;´〜`)┌
0978デフォルトの名無しさん
2005/12/29(木) 00:29:15問題は、Wikiは情報を溜める場所であって議論のための議論は他所でやれ、ってのがどこまで徹底できるか、かな
0979デフォルトの名無しさん
2005/12/29(木) 01:00:510980デフォルトの名無しさん
2005/12/29(木) 07:35:340981デフォルトの名無しさん
2005/12/29(木) 09:04:21駅で階段見上げたら女子中学生がいてさ、スカートの中見ちゃったんだよ。
そんでその女子中学生にいきなり振り向かれて
「せ、責任とってお嫁に貰ってください・・・」
って言われちゃったんだ。
俺は慌てちゃってさ
「・・え?は、はぁ・・・」
みたいに返してそのまま通り過ぎようとしたら
俺のシャツをチョコンと指で掴んでずっとついてくるのね。
そんでとうとう家までついて来ちゃってさ
「はじめてですけど覚悟は出来てます・・・」
とか言うわけよ。
俺もう理性が吹っ飛んじゃって
(全てを読むにはワッフルワッフルと書き込んでください)
0982デフォルトの名無しさん
2005/12/29(木) 13:29:450983デフォルトの名無しさん
2005/12/29(木) 15:57:03やりたいことは「キー」と「値」をハッシュで管理したいのですが、使用方法が分かりません。
データを追加するときはAdd('キー=値')で登録するとして、データを取り出すときはどうするのでしょうか。
IndexOfName(キー)でインデックスは取得できるようですが、値は自分で分解するのでしょうか?
もっとスマートなやりかたが有りそうな気がするのですがヘルプを見ても分からないし・・・
よろしくお願いします。
0984デフォルトの名無しさん
2005/12/29(木) 16:20:300985デフォルトの名無しさん
2005/12/29(木) 16:40:40いるのですが、これをファイルに保存したり読み出したりする方法をご存知の
方がいましたらご教授お願いします。(Delphi7Pro,WindowsXPです)
0986デフォルトの名無しさん
2005/12/29(木) 16:45:55TMemIniFile.ReadStringのソース見ると
Copy(Strings[Strings.IndexOfName(キー)], Length(キー) + 2, Maxint);
って感じで取ってるからそーゆーことなんじゃ?
つーかTHashedStringListの代わりにTMemIniFile使った方が扱いは楽かもよ
0987デフォルトの名無しさん
2005/12/29(木) 16:55:35やり方は山ほどある。
俺なら、TFileStreamを使って、
配列の中身を一個ずつ
filestream.write( ex , sizeof(ex) ) ; // ex : extended ;
とかするかな。
0988デフォルトの名無しさん
2005/12/29(木) 17:00:11i := hoge.IndexOfName('キー');
Value := hoge.Values[hoge.Names[i]];
0989988
2005/12/29(木) 17:04:10Values['キー']で充分だな
0990デフォルトの名無しさん
2005/12/29(木) 17:36:240991983
2005/12/29(木) 17:49:07プログラムの中でしこしこしたかったもので。
>>986
TMemIniFileなんてあるのですか。なんでIniFilesユニットなのかと不思議でした。
>>988,989
あ、なるほど。この様に使うのですか。
皆さん、有難うございました。やっと使えそうです。
0992デフォルトの名無しさん
2005/12/29(木) 17:56:06ただ、配列の要素数が数万件あるのです。試してみるつもりですが、
他の方法もご存知でしたら教えていただけますでしょうか。
0993デフォルトの名無しさん
2005/12/29(木) 18:12:100994デフォルトの名無しさん
2005/12/29(木) 18:16:400995デフォルトの名無しさん
2005/12/29(木) 18:41:42でも試してみたところ、1件の動的配列の読み書きはほとんど一瞬で終わりました。
ですが実は数万件の配列要素を複数(ユーザー次第)同時にI/Oする処理が追加に
なる予定ですので、(ブロッキングみたいな?)他の方法を聞いた次第なのです。
と、ここまで書いてきて、TMemoryStream に書いといてから Write する、みたい
な方法も思いついたのでちょっと試したいと思います。
0996デフォルトの名無しさん
2005/12/29(木) 19:14:48数が固定されてるならファイルマッピングとか
0997デフォルトの名無しさん
2005/12/29(木) 19:26:04Delphiでファイル書き込みってのはさ、基本的に4つなのよ。
1 ファイル変数を使う
2 TStreamの派生クラスを使う
3 その他のクラスを使う
4 Windows APIを使う
3の場合ってのは、今回なら例えば、一項目を一行のテキストデータにしておいて、
TStringListで書き込むとかいう場合ね。
0998デフォルトの名無しさん
2005/12/29(木) 19:55:43ファイルのI/Oもいろいろな方法がありますですね。小出しにしてすみませんが
将来は他のバイナリデータやテキストデータもいっしょくたにひとつのファイルに
書かなくてはならないので(さっき思い出しました)、TStream を使って進めて
行きたいと思います。
0999デフォルトの名無しさん
2005/12/29(木) 21:05:081000デフォルトの名無しさん
2005/12/29(木) 21:17:5210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。