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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドはBorland(ボーランド)のDelphi(デルファイ)について、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。

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

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

<その他>
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のどこかに
2デフォルトの名無しさん:2006/01/27(金) 22:56:21
3デフォルトの名無しさん:2006/01/27(金) 22:57:14
4デフォルトの名無しさん:2006/01/27(金) 23:00:04
5デフォルトの名無しさん:2006/01/27(金) 23:39:57
>>1
スレ立て乙ですー
6デフォルトの名無しさん:2006/01/28(土) 16:06:26
Delphiの文法って、Perlなんかでいうヒアドキュメントって使えますか?
'' + #13#10って入力しまくるの疲れる・・・
7デフォルトの名無しさん:2006/01/28(土) 17:18:23
ない
8デフォルトの名無しさん:2006/01/28(土) 17:20:06
だいたいソースにリテラルでながぁーい文字列打ち込むのは変だろ。
リソース使うとか resourcestring 使うとか。
9デフォルトの名無しさん:2006/01/28(土) 17:35:04
そうなところにスクリプト言語とコンパイル言語の差みたいなもんがあるよね。
10デフォルトの名無しさん:2006/01/28(土) 18:49:35
やっぱり無いですね。
HTML形式で出力するプログラムを書いてますが、
既存のHTMLソースから貼り付けてそのまま使えたらと思ったのですが・・

>>8
アドバイスありがとうございます。
リソース使うのがやはり作法ですかね
11デフォルトの名無しさん:2006/01/28(土) 20:14:10
Delphi 6 PersonalでTheme Managerをインストールする方法を教えてください。
12デフォルトの名無しさん:2006/01/29(日) 01:57:33
あと今鍵取得するときにいる登録をしてもなかなか鍵が送られてこなかったりする
13デフォルトの名無しさん:2006/01/29(日) 01:58:06
ごめん書く場所みすった
14デフォルトの名無しさん:2006/01/29(日) 17:08:20
質問です。Delphi7pro WinXpです。
ValueListEditor で IDE のオブジェクトインスペクタにあるような
キーの階層化(左側に + や - を表示)というのは出来るものなの
でしょうか。ご存知の方がいましたらお願いします。
15デフォルトの名無しさん:2006/01/29(日) 17:22:59
どこかでfor文のカウンタに使った変数はfor文を抜けた後、中身が保証されなくなる
みたいな事を聞いたんですけど、例えばStringListの中に文字列'hoge'が何行目にあるか調べる処理で、

for Line := 0 to StrtingList.Count-1 do
begin
 if StrtingList.Strings[Line] = 'hoge' then Break;
end;
ShowMessage(IntToStr(Line) + '行目にあるよ');

と書くのは間違いですか?
16デフォルトの名無しさん:2006/01/29(日) 17:49:41
>>14 昔できなくてあきらめた記憶がある。
>>15 hogeが見つからなかった場合に誤った行番号が表示される。
17デフォルトの名無しさん:2006/01/29(日) 18:21:43
>>15
Delphi 6 のヘルプの「for 文」には
> for 文の終了後,カウンタの値は未定義になります。
と書いてあるね。
だからそこは、while とか repeat〜until を使うところなんじゃない?例えば

Line := 0;
while Line < StrtingList.Count do begin
 if StrtingList.Strings[Line] = 'hoge' then Break;
 Inc(Line);
end;
if Line < StrtingList.Count then
 ShowMessage(IntToStr(Line + 1) + '行目にあるよ') // 行数は1から始まる
else
 ShowMessage('どこにもなかたーよ(´・ω・`)');

とか。
18デフォルトの名無しさん:2006/01/29(日) 18:33:56
BDS2006のヘルプではこうなってるから問題なさそう。
>for 文の終了後(Break または Exit によって強制終了したのではない場合),
>counter の値は未定義になります。
19デフォルトの名無しさん:2006/01/29(日) 18:36:57
>BDS2006のヘルプではこうなってるから問題なさそう。
間違えた、breakしたときは問題なさそうだった。。。
20デフォルトの名無しさん:2006/01/29(日) 19:29:54
どうしてもfor文で作りたいんなら変数の中にでもいれとけ
21デフォルトの名無しさん:2006/01/29(日) 19:42:50
配列を返す関数を作成したいのですけど、
どのようにすればいいでしょうか?
22デフォルトの名無しさん:2006/01/29(日) 19:46:32
type
 ThogeArray: array of Integer
function GetHogeArray: ThogeArray

objectPascalは型に厳しいから
function GetHogeArray: array of Integerなんてやるとエラーになる
自分で予め型を定義しておくこと
23デフォルトの名無しさん:2006/01/29(日) 19:53:52
それかポインタしてキャストしてやりとりするか。
これはおすすめしないが。
24デフォルトの名無しさん:2006/01/29(日) 19:56:04
25デフォルトの名無しさん:2006/01/29(日) 19:56:52
>>21
普通にvarなりoutな引数じゃだめなの?。
2621:2006/01/29(日) 20:00:12
>>22
できました。
ありがとうございました。

>>25
戻り値として取得できる方が関数らしいので
そうしたかったのです。
27デフォルトの名無しさん:2006/01/29(日) 20:44:22
exeファイルから、どのようなコンポーネントが使用されているか
調べるツールない?
2815:2006/01/29(日) 20:46:47
答えてくれた人ありがとう
全部書き直しか・・・ショボン
29デフォルトの名無しさん:2006/01/29(日) 20:56:58
Delphi 6 PersonalでTheme Managerをインストールする方法を教えてください。
30デフォルトの名無しさん:2006/01/29(日) 21:09:41
>>29
エラーが出るDB関係の部分をひたすらコメントアウトしていけばOK。
31デフォルトの名無しさん:2006/01/30(月) 00:45:39
>>28
全部ってこともないでしょ
処理を抜ける際にループカウンタを別の変数へ代入しておけば大丈夫
32デフォルトの名無しさん:2006/01/30(月) 02:35:54
ShellTreeView1.Path := 'C:\Windows'
とやっても指定したパスが選択状態にならないんですが
どうすればいいんでしょうか?
33デフォルトの名無しさん:2006/01/30(月) 05:47:58
dosプロンプトを使用せずにpingのtimeを取得するにはどうやればできるのか教えて下さい
34デフォルトの名無しさん:2006/01/30(月) 06:00:01
ICMP echoを自前で撃つ
35デフォルトの名無しさん:2006/01/30(月) 08:16:40
>>32
D6ならバグってるのでShellCtrlsの修正が必要
36デフォルトの名無しさん:2006/01/30(月) 09:40:32
TTimerで1秒ずつ処理をさせているのですが、
新しいフォームをShowなどで表示してから閉じると
TTimerの挙動がおかしくなります(時々0.5秒間隔になったりする)。
なぜこんなことが起こるのでしょうか?
37デフォルトの名無しさん:2006/01/30(月) 09:46:30
タイマーは優先度が低い、要は精度が凄く悪いんだよ
何か処理要求があると、それだけでズレが生じる
確かMMSystemのtimeSetEventが精度的に多少良かったはず
38デフォルトの名無しさん:2006/01/30(月) 09:56:51
そうですか・・ではそのtimeSetEventとやらを使ってみます。
ありがとうございました。
39デフォルトの名無しさん:2006/01/30(月) 10:01:25
間にApplication.ProcessMessageを挟めば直るかも
(Application.ProcessMessageのご利用は自己責任で)
40デフォルトの名無しさん:2006/01/30(月) 10:24:12
精度が悪いのはそういう仕様だからで、直りはしないと思うよ
41デフォルトの名無しさん:2006/01/30(月) 10:31:34
溜まったメッセージが処理されるからイケると思ったけどやっぱりダメか
42デフォルトの名無しさん:2006/01/30(月) 10:32:56
>>36
timeSetEventは別スレッドだから排他制御しないとバグるぞ。
VCL触るとなると結構面倒。

TTimerのインターバルを10ms位にして(実際は55ms位で呼ばれる)
イベントハンドラ内で1秒経過したかどうかを判定するコード書いたほうが楽だ。
43デフォルトの名無しさん:2006/01/30(月) 10:38:25
TMMTimer、TZTimerといったコンポーネントを使うと楽
44デフォルトの名無しさん:2006/01/30(月) 11:05:01
StringReplaceにWideString突っ込んでも大丈夫なんですか?

var
S: WideString;
begin
S:= 'あばDelphiばば';
S:= StringReplace(S, 'Del', 'HOGE', [rfReplaceAll]);
end;

これで普通に'あばHOGEphiばば'がSに入るので一見大丈夫に見えるのですが…
45デフォルトの名無しさん:2006/01/30(月) 11:06:17
BorlandDeveropar2006に入っているDelphiはDelphi7とDeiphi8なのかな?
でもそれだったら2005と同じなんだけど。
Win32APIに対応したDelphiだけ欲しいんだけど、Dephi7ProとDeve~2006Proの値段が1万円ちょっとしか変わらないから、どっち買うか迷っている。
46デフォルトの名無しさん:2006/01/30(月) 11:14:04
>>44
StringReplaceに突っ込んだ時点で文字コードがSJISにされるから
SJISにない文字は化けるよりしゃこヲタ
47デフォルトの名無しさん:2006/01/30(月) 11:26:46
なるほど、Delphiの中の人が出来る範囲で良きに計らってたのですか
どうもありがとうございました
48デフォルトの名無しさん:2006/01/30(月) 14:52:12
てか、StringReplace の第一パラメータは string なんだから、代入するとき
たんに自動で変換されただけ、なんだが
49デフォルトの名無しさん:2006/01/30(月) 15:29:02
>>37-38
TApplication.OnIdleを使うという手もあるね。
50デフォルトの名無しさん:2006/01/30(月) 18:46:31
TComponent直径のコンポーネントを作っているのですが、
Target: TWinControlなプロパティで他のコントロールを指定して
このTargetにMouseOverが発生を検出したい(できれば座標も)のですが
どうやればいいでしょうか?

できればTargetのイベントハンドラ等はいじらずに済ませたいです。
51デフォルトの名無しさん:2006/01/30(月) 19:08:27
>>50 Windowをサブクラス化してメッセージを横取りとか。
52デフォルトの名無しさん:2006/01/30(月) 20:58:50
質問です。何と呼べばよいのかわからないのですが、ListViewをベースにTree表示もできるコントロール
のソース付きフリーコンポーネントってないでしょうか?
ExpressQuantumTreeListほどの機能は必要ないのですが・・・。
53デフォルトの名無しさん:2006/01/30(月) 21:24:41
Virtual Treeviewは?
5452:2006/01/30(月) 21:47:35
>>53
ありがとうございます。まさに求めていたものでした。
このコンポはDelphiのIDEにも使われているのですね。

ライセンスもMPLが選べるので、個人的には問題なしですが、
IDEはライセンスどうしているのかな。。。
55デフォルトの名無しさん:2006/01/31(火) 09:52:08
リストに100行ほどデータがあるとして、
1〜10行を1.txtに保存、11〜20行を2.txtに保存・・・
としたいのですが、何か効率の良い方法はないでしょうか?
56デフォルトの名無しさん:2006/01/31(火) 10:07:44
100行程度なら効率はまったく問題にならないので
開発効率を優先してください。
あなたが真っ先に思いついた方法でOKです。
57デフォルトの名無しさん:2006/01/31(火) 10:34:00
いえ、実際は2000万行ほどあるので、困っています。
58デフォルトの名無しさん:2006/01/31(火) 10:51:01
今やっている方法は、最初の6万行を別のリストに移動し、移動された
リストをファイルに保存して・・・といったことを元のリストが空に
なるまで繰り返していますが、ものすごく時間がかかってしまいます。
59デフォルトの名無しさん:2006/01/31(火) 10:53:40
>>55
データベース
60デフォルトの名無しさん:2006/01/31(火) 13:13:28
リストを移動させずにやるだけでだいぶ早くならないか?
61デフォルトの名無しさん:2006/01/31(火) 13:37:49
200万個ファイル作るだけで相当な時間かかるだろうから
それ以外の処理なんかよほどアホなことしない限りどうでもいいだろ
言い換えればどうしようもない
62デフォルトの名無しさん:2006/01/31(火) 13:58:05
>>60
ありがとうございました。
リスト項目を削除しなければかなり(約110倍)速くなりました!!
63質問:2006/01/31(火) 19:11:47
EInvalidPointerクラスの例外が発生しました。
無効なポインタ操作…

といったエラーが発生したのですが、これはどういった時に発生するエラーなのでしょうか?
64デフォルトの名無しさん:2006/01/31(火) 19:13:43
無効なポインタ操作をした時に発生します。
65デフォルトの名無しさん:2006/01/31(火) 21:45:26
微妙にスレ違いかもしれませんが、DelWiki避難所ってファイルの添付はできないのでしょうか?
画像が張れないのはかなり厳しいと思うのですが・・・。
66デフォルトの名無しさん:2006/01/31(火) 21:51:16
階層化できないのも辛いな
67デフォルトの名無しさん:2006/01/31(火) 23:05:09
PageControlを置く。
PageControl1にTabSheetを3個新規作成する。

procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
TS: TTabSheet;
begin
 TS := TTabSheet.Create(Self);
 try
  for i := 1 to 3 do
  begin
   TS := TTabSheet(FindComponent('TabSheet'+IntToStr(i)));
   TS.Caption := 'Page'+IntToStr(i);
  end;
 finally
  TS.Free;
 end;
end;

なんでTabSheet3が消えてるの?あまり俺を怒らせるなよ?
68デフォルトの名無しさん:2006/01/31(火) 23:08:57
>TS := TTabSheet.Create(Self);
これ何の意味があるの?
69デフォルトの名無しさん:2006/01/31(火) 23:09:49
あと消えてるのはTabSheet3解放してるからに決まってるジャン
70デフォルトの名無しさん:2006/01/31(火) 23:11:13
>>67
何その池沼が書いたコード
71デフォルトの名無しさん:2006/01/31(火) 23:15:38
72デフォルトの名無しさん:2006/02/01(水) 00:03:31
>>27
XN Resource Editor で使用しているUnitを調べる
73デフォルトの名無しさん:2006/02/01(水) 01:45:22
Delphi 2006+WinXPです
TListViewをおいて、適当にアイテムを追加します。
つぎにOnCustomDrawItemイベントに以下を割り当てます。

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
ShowMessage(IntToStr(Word(State))); //ブレークポイント
end;

デバッガで起動してブレークポイントのところでStateの値をみてみると
[(out of bound) 9]
ってなってます。
TCustomDrawStateの宣言は
TCustomDrawState = set of (cdsSelected, cdsGrayed, cdsDisabled, cdsChecked,
cdsFocused, cdsDefault, cdsHot, cdsMarked, cdsIndeterminate)

他の有効な要素が含まれる場合もありますが、そのときでも「9」が入っていました。
どういうことか分かるかたいますか?
74デフォルトの名無しさん:2006/02/01(水) 02:28:03
(On)CustomDrawItemに渡されるTCustomDrawStateの値は
NMCUSTOMDRAW.uItemStateからキャストされた値だからじゃないの?

NMCUSTOMDRAW.uItemStateはXPで拡張されたのにTCustomDrawStateが
そのままだから……
75デフォルトの名無しさん:2006/02/01(水) 10:25:44
それでは XP に対応してるとは言い難いな。
76デフォルトの名無しさん:2006/02/01(水) 13:16:15
>>74
なるほど。
QCに登録しておいた方がいいかな?
77デフォルトの名無しさん:2006/02/01(水) 17:59:38
数値を123,456,789のように表示するのに
Format('%.0n',[n*1.0])
以外の書き方ありますか?
78デフォルトの名無しさん:2006/02/01(水) 18:11:25
FormatFloat
79デフォルトの名無しさん:2006/02/01(水) 18:13:50
FormatFloat(',0', n);
80デフォルトの名無しさん:2006/02/01(水) 19:17:13
Win32のみやるとして、Delphi7とDelphi2006、買うとしたらどっちですか?
81デフォルトの名無しさん:2006/02/01(水) 19:25:25
どっちもVistaでは動かなくなっちゃうからC#にしといたほうがいいよ。
82デフォルトの名無しさん:2006/02/01(水) 20:13:14
文字列を文字数分の * (アスタリスク)に変換したいのですが、
どうすればスマートかつエレガントでしょうか?
Delphi7です。
83デフォルトの名無しさん:2006/02/01(水) 20:18:05
StringOfChar('*', Length(s))
84デフォルトの名無しさん:2006/02/01(水) 20:29:04
>>83 う、こんな関数あったんでつか…
Format とか、ずっとヘルプで調べてたのに…
どもありがとうござましたです。
85デフォルトの名無しさん:2006/02/01(水) 20:30:29
ms := TMemoryStream.Create;
ms.WriteComponent(Form1);
してこれをdfmのようなテキストファイルに落とすのってどうやってるんですか?
86デフォルトの名無しさん:2006/02/01(水) 21:17:27
>85
ObjectTextToBinary()
ObjectBinaryToText()
あたりを調べてみては
87デフォルトの名無しさん:2006/02/01(水) 21:39:09
>>80
そりゃ2006でしょ。ただ、開発機がかなりのくロースペックだったら7の方がサクサク動いていいかもしれないが。
88デフォルトの名無しさん:2006/02/01(水) 22:08:13
ハイスペックだと7のほうが遅くなるのか?
89デフォルトの名無しさん:2006/02/01(水) 22:14:15
なんでそういう解釈になるのか謎なんだが
90デフォルトの名無しさん:2006/02/01(水) 22:21:16
何で専用スレでやらないのかと
91デフォルトの名無しさん:2006/02/01(水) 22:29:40
>>87
D6のIDEに慣れてるのと、2006のIDEはバグだらけって話聞いて迷ってたんですが、
そうでもないんですか?
92デフォルトの名無しさん:2006/02/01(水) 22:32:52
D6よりよっぽどIDEは安定してると思うけど。
93デフォルトの名無しさん:2006/02/02(木) 00:17:54
そーなの? D6を4年つかって不安定と思ったことは一度もない。
どこがBDS2006より不安定だと?具体的に。
94デフォルトの名無しさん:2006/02/02(木) 00:29:56
D6,7は起動時、フォームデザイン時、終了時にvclxx.bplかrtlxx.bplで落ちることが時々あったな。
95デフォルトの名無しさん:2006/02/02(木) 00:43:48
4年間、ほぼ毎日起動していちどもない。BDS は起動時、フォームデザイン時、終了時には安定してる?
96デフォルトの名無しさん:2006/02/02(木) 00:45:58
2006は安定してるけど、箱形選択使いにはお勧めしない。
97デフォルトの名無しさん:2006/02/02(木) 03:32:59
>>14
亀レスだけど、>>14の望む機能を持つコンポーネントがある。
D7で使えるかわからないけど、試したら?
ttp://www.geocities.jp/cqw26355/vclindex.htm
98デフォルトの名無しさん:2006/02/02(木) 09:44:18
グラデーション表示させるTooBarにテキストを置く方法を教えてください。
Panelを使っていたのですが、グラデーション表示させるとPanelには反映されないので苦労しています。
99デフォルトの名無しさん:2006/02/02(木) 10:24:40
Panel + PaintBox でいかようにも描けるだろうに
100デフォルトの名無しさん:2006/02/02(木) 13:00:45
Del7を毎日使ってるが、終了時にエンドレスエラーになったり、別のプロジェクト開くときに
エラーでたりする。2日に1回はエラーを見る。
101デフォルトの名無しさん:2006/02/02(木) 13:04:13
組み込んだコンポーネントはIDEと同じプロセスで動くようになるから
開発中のとかどっかで拾った怪しげなコンポを安易に入れるとおかしくなる。
102デフォルトの名無しさん:2006/02/02(木) 13:10:05
オレのDel6は去年マシン買い換えてから
デバッグ中のメッセージループ開始直後?あたりで
IDEが超高確率で固まるようになった
タスクマネジャーで強制終了する必要があるから、全然デバッグ出来ないんだなコレが
何度再インスコしても駄目だったから、相性の問題なのだろうが、
別に必要でもないのにDel2005買わされて泣いた去年の初冬
103デフォルトの名無しさん:2006/02/02(木) 13:47:45
VS2005 はそんなことは一度もないな。まだ2ヶ月しか使ってないが。
D6 から見ると、コードエディタの IntelliSense とアシスト機能が超便利。
104デフォルトの名無しさん:2006/02/02(木) 14:38:49
D6はWinXPでマルチスレッドのアプリケーションをデバッガで走らすとOSごと落ちるね。
固まったDelphi6をホットキーで殺せるアプリケーションがあるからそれを導入しとくと便利
105デフォルトの名無しさん:2006/02/02(木) 14:50:01
ほんと糞だね。XPって
106デフォルトの名無しさん:2006/02/02(木) 15:14:58
突っ込むところはそこなのか
107デフォルトの名無しさん:2006/02/02(木) 15:58:19
だって2000じゃ落ちないし
108デフォルトの名無しさん:2006/02/02(木) 16:22:45
俺今200個近くスレッド使うアプリ作ってるけど落ちないぞ?
109デフォルトの名無しさん:2006/02/02(木) 21:47:29
.dpr:プロジェクト全体の構成を記述してる
.dfm:フォーム自身やそれに付随するコンポーネントに関する設定
.pas:ソースコード
.~系:バックアップ?
ここまではなんとなく予想がついたんだけど、.dcuって何なの?
Delphi Cooperation United ?
110デフォルトの名無しさん:2006/02/02(木) 21:50:34
delphi compiled unitでないのと調べずにかきこ
111デフォルトの名無しさん:2006/02/02(木) 22:07:38
.rc : コンパイル前のリソースユニット
.res : コンパイル済みリソースユニット
.dof : プロジェクトの設定ファイル
.cfg : よくわからん

.dcuはコンパイル済みのソースユニットだ。.pasがコンパイルされた物でこれがオブジェクトにリンクされるんだとおも
112デフォルトの名無しさん:2006/02/02(木) 22:10:57
あんた詳しいな
.dofなんて存在すら知らなかったよ
113デフォルトの名無しさん:2006/02/02(木) 22:19:11
cfgはConfigじゃね?
114デフォルトの名無しさん:2006/02/02(木) 22:41:42
Del6 Personalです。
RichEditコントロールで、マウスを右クリックしたときに
ただのTEditコントロールで出てくるようなポップアップメニュー

元に戻す(U)
----------------
切り取り(T)
コピー(C)
・・・

のようなやつを表示させるにはどうしたらよいでしょうか。
TPopupMenuを貼り付けて自力でガリガリ実装する以外の方法は
ないでしょうか?
115デフォルトの名無しさん:2006/02/02(木) 22:46:06
ない。ガリガリってほどでもないよ。
116デフォルトの名無しさん:2006/02/02(木) 22:59:40
アクション結びつけるだけじゃないの


表示させるだけなら
117デフォルトの名無しさん:2006/02/02(木) 23:03:26
聞かれたことに黙って答えろ
118デフォルトの名無しさん:2006/02/03(金) 00:20:12
黙って、尚且つ答えないといけないのか。
難しいな。
119デフォルトの名無しさん:2006/02/03(金) 00:23:11
VCLアプリで、TEditなんかでCtrl+Aをおしても「すべてを選択」されない
(ビープ音が鳴る)のですが、これは自分でショートカットを
割り当てないといけないということですか?
(コピーやペーストはWindowsが勝手にやってくれてるんでしょうか?)

また、自分で実装しなければいけない場合、どうするのがスマートですか?
120デフォルトの名無しさん:2006/02/03(金) 00:35:55
>>119
ActionListかActionManagerで標準アクションの追加でTEditSelectAll を追加する。
121デフォルトの名無しさん:2006/02/03(金) 01:54:45
cfgはコマンドラインコンパイラが使う。
122デフォルトの名無しさん:2006/02/03(金) 01:57:15
>>120
できました。ありがとうございます
123デフォルトの名無しさん:2006/02/03(金) 07:45:01
GetAsyncKeyStateでテンキーではない1〜0が押されているか検知したいのですが
VK_で始まるものが定義されていません。
どのように指定すればよいのでしょうか?
124デフォルトの名無しさん:2006/02/03(金) 08:08:45
>>123
{ VK_0 thru VK_9 are the same as ASCII '0' thru '9' ($30 - $39) }
{ VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' ($41 - $5A) }
125デフォルトの名無しさん:2006/02/03(金) 12:00:32
$00000030-$00000039って事ですね。
ありがとうございました。
126114:2006/02/03(金) 19:47:38
>>115
即レスありがとうございます。
幸い、そのものズバリのサンプルを見つけましたので参考にして実装してみます。
127デフォルトの名無しさん:2006/02/03(金) 20:46:31
UTF8なURL encodeってどうやるの?
128デフォルトの名無しさん:2006/02/03(金) 22:35:36
RFC読むかIndyかなんかで手抜き
129デフォルトの名無しさん:2006/02/04(土) 04:32:20
フォームにTMemoを乗せました
MemoのPopupMenuが空っぽの状態でも、
フォームにPopupMenuが設定してあるとMemo上で右クリックしたときに
標準の「切り取り、コピー、貼り付け」のポップアップが出ずにフォームに設定してあるポップアップが出てしまいます
フォームに設定してあるポップアップを出さずに標準のポップアップメニューを出すようにするにはどうすればいいのでしょうか
「親コントロールの設定は引き継がない」「ParentPopup := false」のような設定はありませんか?
130デフォルトの名無しさん:2006/02/04(土) 05:24:46
あ、本当だ。 仕様なのかな。
フォームにPopupMenuを設定せず、手動で表示してはどうでしょう?
131デフォルトの名無しさん:2006/02/04(土) 06:05:23
サブフォームにvsReportにしたListView置いて、メインフォームからShowで表示させた途端にKernel32.dllの書き込み違反だかって言うエラーダイアログが断続的に出るんだけどどうすればいい?
ちなみにWinXP HOME SP1のDelphi6 Personal。
132デフォルトの名無しさん:2006/02/04(土) 12:31:08
>>129
PopupMenuのAutoPopupをfalseにしておいて、FormのOnMouseDownでtrueにして、
OnMouseUpでfalseにするというのはどう?
133デフォルトの名無しさん:2006/02/04(土) 13:41:40
MouseEnter/Leaveを使ったほうがいいと思うけど、2006じゃないと駄目かな。
134デフォルトの名無しさん:2006/02/04(土) 14:31:57
132 に一票。
135デフォルトの名無しさん:2006/02/04(土) 15:11:52
何でOnMouseDown?どうせならOnContextPopup使えよ
136129:2006/02/04(土) 15:54:35
レスどうもです
残念ながら MouseEnter/Leave は使えません
OnMouseDown/OnMouseUp/OnContextPopupをヘルプで調べながらやってみます
137129:2006/02/04(土) 17:14:37
OnContextPopupを使うとAutoPopupをfalseに戻す方法がわからなかったので
OnMouseDown/OnMouseUpで対処しました
どうもありがとうございました
138デフォルトの名無しさん:2006/02/04(土) 19:15:49
OnMouseDown/OnMouseUpだとフォームからmemoに右ドラッグしたときに、
MouseUpがおきないからおかしくなるよね。
MouseUpの代わりにPopupMenuのOnPopupのほうがマシとおもわれ。
139129:2006/02/04(土) 20:32:09
>>138
全く気づきませんでした。その通りですね
さっそく修正します
140すみません:2006/02/05(日) 08:04:22
すみません・・質問です

irvineのソースを実行させてるんですが・・
読み込み中のエラーとか出まして、
irvineのソースのあるフォルダの.pasのファイルが認識されず、
仕方なくLIBフォルダに.pasを移動させて、
登録して行くんですが・・

この場合(irvineのフォルダにある.pasのファイルを)
まとめて、登録することが出来るんでしょうか?
それとも、もっと別の良い方法があるでしょうか?

教えてくださいませm(_ _)m
141デフォルトの名無しさん:2006/02/05(日) 10:07:42
えー、標準以外のコンポをインストールしたことないの?
同じディレクトリにコピーするとそこの pas ファイルは uses するだけで
つかえるようになる。要は、Delphi IDE からみてパスと通ったところに
置く、と。
142デフォルトの名無しさん:2006/02/05(日) 15:25:48
TWebBrowserの拡張版であるTEmbeddedWBを使っています。
HTMLドキュメントをロードした後に、アンカー(<a name="hoge">)に
ジャンプする方法が分かりません。
Navigate('http://example.com/index.html#hoge')は当然できるんですが、
メモリストリームから読み込んだドキュメント内で移動したい場合は
どうしたらいいでしょうか?
(ロードした後で、Navigate('#hoge')とかやってみたけどだめでした。)

MSDNのWeb Devlopment以下を必死でみてるんですが、
MSDNの読み方に習熟してないのと、COMの基礎が分かってないので苦戦しております。

よろしくお願いします。
143デフォルトの名無しさん:2006/02/05(日) 15:37:03
144デフォルトの名無しさん:2006/02/05(日) 16:07:41
145デフォルトの名無しさん:2006/02/05(日) 16:22:08
>>143
ありがとうございます。できました。
146すみません:2006/02/05(日) 18:55:37
>>141
レス感謝です
早速、教えて頂いたように試してみます
147デフォルトの名無しさん:2006/02/05(日) 20:35:59
プログラムフォルダのBorland Delphi Personal Installerが、146MB
もあるのでけど、CD-Rに焼いて、使用しているかたいません?
148デフォルトの名無しさん:2006/02/05(日) 21:04:57
>>147
ノシ
149デフォルトの名無しさん:2006/02/05(日) 21:11:58
>>147
お前は次に「それってどうやってやるんですか?」と言うッ!!
150デフォルトの名無しさん:2006/02/05(日) 21:18:51
メディアプレイヤーコンポーネントでMIDIを再生しているのですが、
MIDIファイルを途中で変えるにはどうしたらよいですか?
151デフォルトの名無しさん:2006/02/05(日) 21:29:06
いったん止めてもう一度普通に再生しようとした時と同じ処理をすれば良い
152デフォルトの名無しさん:2006/02/05(日) 21:33:46
>>151
最初のファイルの指定はオブジェクトインスペクタでファイルネームを指定したんですが
もう一度再生するときに
mediaplayer1.filename := 'another.mid'としても、最初に指定したMIDIが流れてしまうんです。
153デフォルトの名無しさん:2006/02/05(日) 21:50:38
フォームにbutton1、button2、button3を置いてbutton1のonclickに

button2.assign(button3);

としてhbutton3のプロパティ全部をbutton2にコピーしようとしたんですが
エラーが出てしまいました。

解説本によるとassignはオブジェクトのコピーに使う と書いてあったので
これが出来ると考えてしまったのですがどうして駄目なのでしょうか。 よろしくお願いしますm(___)m
154デフォルトの名無しさん:2006/02/05(日) 21:59:41
コンポーネントは Assign メソッドは実装されていない。
多分 Name の衝突とか、そんな理由カナ?
155153:2006/02/05(日) 22:08:58
>>154
なるほど、コンポートだと駄目なんですか。
どうもありがとうございましたm(_ _)m
156デフォルトの名無しさん:2006/02/05(日) 22:11:26
コンポート
157デフォルトの名無しさん:2006/02/05(日) 22:16:20
どうして button2. と打つと Assign が候補にあがるのは何故?
コンポートだと使えないのに意味ないすきゃっち。
158デフォルトの名無しさん:2006/02/05(日) 22:20:14
>>157
メソッドが存在しないわけではない。
メソッド自体は TPersistent から public に存在している。
TButton などのコンポーネントのクラスで「オブジェクトのコピー」という動作が実装されていないだけ。
159デフォルトの名無しさん:2006/02/05(日) 22:20:55
まず一旦Assignのヘルプを嫁
メソッドは呼べるけどButton用の実装にはなってないってこと
160デフォルトの名無しさん:2006/02/05(日) 22:32:06
なるほど! overrideして自分で処理を書いて使うものなんですね?
なんとなく分かりました、どうもありがとうー!
161デフォルトの名無しさん:2006/02/06(月) 00:38:15
改めて伺いますが、メディアプレイヤーコンポーネントで
複数のMIDIファイルを扱うにはどうすればよいでしょうか
162デフォルトの名無しさん:2006/02/06(月) 01:02:45
「複数のMIDIファイルを扱う」ってなんやねん
163デフォルトの名無しさん:2006/02/06(月) 01:05:48
もうめんどくさいからMIDIの数だけコンポーネント置けばいいんじゃね?
164デフォルトの名無しさん:2006/02/06(月) 01:21:08
TListView.ItemsでTStrings.Exchangeのように項目を入れ替えるにはセコセコと値を
コピーしていくしかないんでしょうか?
165デフォルトの名無しさん:2006/02/06(月) 01:26:04
ほかにどんな方法があると考えられますか?
166デフォルトの名無しさん:2006/02/06(月) 02:24:41
つCustomSort
167デフォルトの名無しさん:2006/02/06(月) 02:29:55
>>162
ひとつのメディアプレイヤーコンポーネントで、任意のmidi,fileを鳴らせるようにしたいということです。
168デフォルトの名無しさん:2006/02/06(月) 03:17:38
>>167
API呼んで自分で処理しなよ
169デフォルトの名無しさん:2006/02/06(月) 04:13:58
ファイルの拡張子を直接変えるにはどうすればよいのでしょうか?
170デフォルトの名無しさん:2006/02/06(月) 05:11:28
>>169
RenameFile
ChangeFileExt
171すみません:2006/02/06(月) 05:19:36
質問です・・
コンポーネントをいろいろインストールしていくと、
ある時、コンポーネントの表示が出なくなったりして、
再起動しても、コンポーネントが表示されず・・
コンポーネント→パッケージのインストール・・を表示すると、

(省略)\Borland\Delphi6\Projects\Bpl\dclusr.bpl
この部分のチェックマークがOFFになっていて・・
チェックを入れるとファイルが足らないとかエラー表示・・^^;
dclusr.bplを削除して、再度コンポーネントを登録しても、
次回起動で、やはりコンポーネントが表示されてない・・
こんな問題に何回か直面してますが、
皆様はこんな体験してるんでしょうか?
DELPHI6のパーソナル版です
この状態になったら、再インストール以外での改善の仕方
ありますでしょうか・・?
172デフォルトの名無しさん:2006/02/06(月) 05:35:57
>>170
できました。ありがとうございました。
173デフォルトの名無しさん:2006/02/06(月) 08:28:25
>>81
それはDelphi2006にしとけという意味ですか?
174デフォルトの名無しさん:2006/02/06(月) 09:52:14
質問です。

BDS2006のようなメニュースタイルにするにはどうすれば良いのでしょうか?
オンカーソル時はライトブルーになり、プルダウン時にアイコンとメニューテキストが色分けされるやつです。
175デフォルトの名無しさん:2006/02/06(月) 10:44:11
>>174
.NET Framework使う。
176デフォルトの名無しさん:2006/02/06(月) 12:09:30
>>174
標準のコンポーネントでやるなら、ActionMainMenuだね。
177デフォルトの名無しさん:2006/02/06(月) 13:01:44
>>173
それネタだから気にしない方がいいよ。
結局VistaでもWin32/64がネイティブみたいだし。
178174:2006/02/06(月) 13:46:05
>>176
ActionMainMenuですかぁ。途中まで調べて却下していました;;
やってみます、ありがとうございました!

>>175
VCLでの話でした。説明が足らずにすいまっせん。
179デフォルトの名無しさん:2006/02/06(月) 17:33:57
Delphiでプログラムを組めてる方に質問です

最初はどのサイトを見てどのようなプログラムをつくりました
180デフォルトの名無しさん:2006/02/06(月) 17:36:45
最初は公式サイトを見て入門向けのようなプログラムをつくりましたか?
181デフォルトの名無しさん:2006/02/06(月) 18:15:45
先輩からオラクル使ったデータベースアプリのソース渡されて後は独学
182デフォルトの名無しさん:2006/02/06(月) 18:19:25
俺も>>181と同じだ
当時はまじで全然わからんかった
183デフォルトの名無しさん:2006/02/06(月) 18:22:08
俺はちょっと違う。 先生からミラクルもらった。
184デフォルトの名無しさん:2006/02/06(月) 19:08:41
よーし、パパ マジレスしちゃうぞー

[超初心者編]
Delphiって何?Delphiでどんな事ができるの?レベルの人用
プログラムの流れがわかるように実例をもとに解説してる
ttp://www.h5.dion.ne.jp/~tuyano/DlphTutor/index.html(基礎、グラフィック系)
ttp://ww3.tiki.ne.jp/~torigoe/(インストール後の設定、グラフィックビューア)
ttp://delphi.sakura.vg/index2.html(タブブラウザ)
ttp://www.geocities.co.jp/SiliconValley-Bay/3828/index.html(MDIのテキストエディタ?読んでないからわからん)

[初心者編]
Delphiの概要をなんとなく理解して、基礎を1から勉強したい人用
一気に読んでも身につかないと思うので、少しずつ進めるのが吉
ttp://kakinotane.s7.xrea.com/(後半が少しダレ気味、ソースを自分で解読する派の人向け)
ttp://wblue.web.infoseek.co.jp/(基礎、クラス、アプリ製作、カスタムコンポ、全てにおいて詳しい説明。マジオススメ!)
185デフォルトの名無しさん:2006/02/06(月) 19:09:20
[中級者編](Tips)
基礎を理解して、簡単なアプリは作ったけど、細かいところで壁にぶつかってる人用
ttp://lupin.client.jp/delphi/index.html (Tips)
ttp://www.wwlnk.com/boheme/ (Tips、関数別のコーナーもある)
ttp://www2.big.or.jp/~osamu/Delphi/(DelphiMLの膨大な情報をまとめてある、検索もできる)
ttp://homepage2.nifty.com/Mr_XRAY/index.htm(サンプルプログラム集、リンクがおすすめ)
ttp://homepage2.nifty.com/Mr_XRAY/Halbow/index.html(上のサイト主が保存してる貴重な情報、WinAPI for Delphi)
ttp://web.archive.org/web/20040411160657/http://hp.vector.co.jp/authors/VA009712/take/delphi/

[その他]
Delphiじゃないけど、オブジェクト指向についてわかりやすい説明がある
他にも有用な情報がたくさんある
ttp://mikata.curiocube.com/index.php

まぁ、俺がお世話になってるサイトを全部書いただけだが…
186デフォルトの名無しさん:2006/02/06(月) 20:15:33
はじめてのDelphiって本を買った。
いちおう本の通りにやってみたけど、その時はぜんぜんあたまにはいらんかった。
それでけっきょくDelphi1はほとんど使いこなせず。
187184:2006/02/06(月) 20:29:33
スマン、これ入れるの忘れた

[初心者編]
ちょっと情報が古いけど、付属コンポーネントガイドでお世話になった
ttp://www.geocities.co.jp/SiliconValley-SanJose/2560/delphi4/index.htm
188デフォルトの名無しさん:2006/02/06(月) 20:35:38
>>180
・クイックスタートガイドのチュートリアル見ながらメモ帳もどき
・TActionManagerがPerに無かったから標準アクション相当のコード書いてみる
・テキストの一括置換ソフト書いてみる(全部Unit1.pasに実装)
・スパゲッティコード完成
・begin/endが気に入らないのでBCBに以降
・憂鬱本とかデザパタ本読む
・自分でクラス書いてみる
(以下略)
189デフォルトの名無しさん:2006/02/06(月) 20:40:18
DelWiki by PukiWikiマダー
190デフォルトの名無しさん:2006/02/06(月) 20:51:09
>>189
よろしく
191デフォルトの名無しさん:2006/02/06(月) 21:49:39
>>180
1.適当なサンプル
2.15パズル(ゲーム)
3.パックマン(ゲーム)
4.ちょっとしたツール ← 今ここ
192デフォルトの名無しさん:2006/02/07(火) 02:47:44
5.もう少し便利なソフト ←いまここ
193デフォルトの名無しさん:2006/02/07(火) 02:49:58
0.IrvineをコンパイルしようとしてD6のあまりの不安定さにブチ切れ ← 今ここ
194デフォルトの名無しさん:2006/02/07(火) 08:39:27
>>179
付属のマニュアル類。
サイトなんて気軽に見られる時代ではなかったが、紙のマニュアルは充実してた。

最初に書いたのはマンデルブロ集合を描画するソフト。
当時は、言語を習得する最初に必ず書いてた。
195デフォルトの名無しさん:2006/02/07(火) 09:07:55
1.作りたいソフトを考える
2.考えたソフトをコーディングし始める
3.当然行き詰る
4.調べる
5.新知識を4.の過程で入手しつつコーディングする
6.完成する
7.レベルがアップしている
196デフォルトの名無しさん:2006/02/07(火) 12:50:58
アクセスキーを非表示にする方法を教えてくだされ。
197デフォルトの名無しさん:2006/02/07(火) 13:00:16
メニュー項目の AutoHotkeys プロパティを maManual に設定します。
198デフォルトの名無しさん:2006/02/07(火) 14:59:55
ValueListEditor で EditStyle を esPickList にすると、ドロップダウン
リストを表示させることができます。ここに、ComboBox の OnDrawItem で
描けるような絵を表示させたいのですが、ご存知の方がいましたらお願い
します。
199デフォルトの名無しさん:2006/02/07(火) 16:17:20
割り方教えて下さい。
200デフォルトの名無しさん:2006/02/07(火) 16:21:00
まともな質問文書く事すら面倒なら今すぐ息の根を止めてみましょう。
すべてが解決するはずです。
201デフォルトの名無しさん:2006/02/07(火) 16:36:17
ADSI使ってパスワードの有効期限を7日後にしようとしています。
下のように書くとFullNameは更新されるのに
PasswordExpirationDateは変わらないんですが、
変数dtの型が間違ってます? 
ちなみにTDateTime型なんですが。

Server := 'WinNT://Server';
User := 'Test';
PassWord := 'test';

HR := ADsOpenObject(PWideChar(Server),
PWideChar(User),
PWideChar(PassWord),
ADS_SECURE_AUTHENTICATION,
IID_IADsContainer,
unknownObj
);

conObj := unknownObj as IADsContainer;
userObj := conObj.GetObject('user', 'Test');
userObj := unknownObj as IADsUser

userObj.GetInfo;

userObj.Put('FullName','Name');
dt := Now() + 7;
userObj.Put('PasswordExpirationDate', dt);

userObj.SetInfo;
202デフォルトの名無しさん:2006/02/07(火) 17:29:57
質問は、簡潔に。普遍的に。特化しない。
203デフォルトの名無しさん:2006/02/07(火) 18:30:50
>199
両手で持って力をいれる。割れたときに破片が飛び散るので怪我をしないように気をつけて
204デフォルトの名無しさん:2006/02/07(火) 19:24:35
>>197
ありがとー。
205デフォルトの名無しさん:2006/02/07(火) 22:23:54
MDIの親フォームにスクロールバーを付けないいっちゃん簡単でエレガントな
方法を教えていだだけますでしょうか。
206デフォルトの名無しさん:2006/02/07(火) 23:45:54
TUIWebBrowserを使ってソフト作っているんだけど、
何故かショートカットと、マウスジェスチャーが効かなくなる。
おそらく、TUIWebBrowserがイベント(メッセージ?)を堰き止めちゃっているんだと思うんだけど、
なんとかして、ショートカットとマウスジェスチャーを作動させる方法ないですかね?
207デフォルトの名無しさん:2006/02/08(水) 03:25:40
imagelistでdrawメソッドつかったらなぜかグレー一色になったんだけど
透過したイメージだけして描くのってどうしたらいいの?
208デフォルトの名無しさん:2006/02/08(水) 03:58:11
>>207
Transparent
マスク
209デフォルトの名無しさん:2006/02/08(水) 08:48:52
>>205
Form2.Parent := Form1;
210デフォルトの名無しさん:2006/02/08(水) 09:23:00
Form1からForm2を作成して表示する際、Form2のFormCreate中で
ある変数フラグに従って処理を分岐させたいです。
この変数フラグをForm1から設定したいのですが、
Form2をCreateしてから設定するのでは遅すぎてだめです。
どうすればいいでしょうか?
211202:2006/02/08(水) 09:34:27
>202
スマソ。
簡潔に言うと
> userObj.Put('PasswordExpirationDate', DateTime);
でPasswordExpirationDateが変えられるか?
ということが聞きたいんですが。
212デフォルトの名無しさん:2006/02/08(水) 10:02:08
>>210
Form2を生成する前に設定すればいいじゃん
213デフォルトの名無しさん:2006/02/08(水) 10:07:29
>>211
TDateTime型の宣言を見なさい
その後にdt := Now() + 7;の意味を考えなさい
それで分からないなら諦めなさい
214デフォルトの名無しさん:2006/02/08(水) 10:55:33
>>210
Form2に変数フラグを引数とするコンストラクタを追加する。
215210:2006/02/08(水) 11:01:03
>>212
とりあえず Form1 で変数フラグを Public で宣言し、
Form2 の中で Form1.hoge などとしました。
が、スマートでないというか・・・

>>214
できれば具体的にお願いしたいのですが・・・
216デフォルトの名無しさん:2006/02/08(水) 11:20:04
プロジェクトオプションの「自動作成の対象」からTForm2を外す。
TForm2のPublicに追加。
constructor Create(AOwner: TComponent; hoge: integer);

implementationに記述。
TForm2.Create(AOwner: TComponent; hoge: integer);
begin
 inherited Create(AOwner)
//hogeの処理?
end;

TForm1から
Form2 := TForm2.Create(Self, hogehoge);
Form2.Show;

こんな感じ.。(おかしい点があったら指摘してください)
個人的にはこんなことせず、
>Form2をCreateしてから設定するのでは遅すぎてだめです
の条件を回避する努力をするけど。
217210:2006/02/08(水) 11:55:54
>>216
ばっちりでした。ありがとうございました。
コードもすっきりしました。
218201:2006/02/08(水) 13:30:18
>213
ヘルプによると
type TDateTime = type Double;
で、整数部が経過日数を表すんだから
dt := Now() + 7;
だと今日から7日後でいいんじゃないですか?

前の書き込み、スレ番まちがえて書いてたわ…。
219デフォルトの名無しさん:2006/02/08(水) 14:12:29
今日から7日後ですね

var
dt: TDateTime;
begin
dt := Now() + 7;
showmessage(FormatDateTime('yyyy/mm/dd', Now));
showmessage(FormatDateTime('yyyy/mm/dd', dt));
showmessage(FormatDateTime('yyyy/mm/dd', Now + 7));
220デフォルトの名無しさん:2006/02/08(水) 14:48:38
斜めの直線を描画してそいつをドラッグアンドドロップしたいです。
水平な線や垂直な線はShapeを使って無理やりやっています。
斜めの線は長方形のパネルかShapeのキャンバスに斜めの線を描いてやるしかないんでしょうか?
221デフォルトの名無しさん:2006/02/08(水) 15:19:37
そう思うならまずはやってみなさい
222デフォルトの名無しさん:2006/02/08(水) 15:27:36
それだと出来るんですけどそれだとフォーカスを取る範囲が無駄に広くなったり、重なったりします。
コンポーネントの形状を斜めにすることは出来ないのでしょうか?
223デフォルトの名無しさん:2006/02/08(水) 15:52:43
>>222
リージョン
224デフォルトの名無しさん:2006/02/08(水) 16:14:11
すみません・・質問があります

irvine をビルドしようとして出てしまう、
WallPaperListview・・・・このクラス(コンポーネント?)
について知ってる方いますか?

WallPaperListviewで検索しても、全くヒットしません・・
もしファイルがあるならば誰か場所を知ってる方しますか?
教えてくださいまでm(_ _)m



225デフォルトの名無しさん:2006/02/08(水) 16:17:03
いまさらOpenIrvineかよ

あれも結局作者がJWORDに走って、ないがしろにされたな
226デフォルトの名無しさん:2006/02/08(水) 16:25:52
× 教えてくださいまで
○ 教えてくださいませ
誤字・・情けない^^;

・・Irvineのビルドをかなえたくて・・すみません。
ここにIrvineのビルドされた方いますでしょうか・・?
227デフォルトの名無しさん:2006/02/08(水) 17:08:15
m(_ _)mとか^^;とかウザイのですが
228デフォルトの名無しさん:2006/02/08(水) 17:13:34
ActionMangerのカテゴリを追加・変更するにはどうすればいいのでしょう?
229デフォルトの名無しさん:2006/02/08(水) 18:18:06
>>228
Actionのプロパティで存在しないカテゴリを設定すれば勝手にできるよ。
230228:2006/02/08(水) 18:46:01
>>229
ありがとうございました
231デフォルトの名無しさん:2006/02/08(水) 19:09:08
StringGridで1セルに二行以上の文字を表示させる
要するに改行なんですが
可能であればやり方を教えてください。
232デフォルトの名無しさん:2006/02/08(水) 19:12:43
233デフォルトの名無しさん:2006/02/08(水) 21:56:18
234デフォルトの名無しさん:2006/02/08(水) 23:26:20
delphiインストールしてみたいんだけども、米ボーランドからライセンスの取得 のところで激しく行き詰ってしまいました
誰かたすけてくだしあ
235デフォルトの名無しさん:2006/02/08(水) 23:34:19
>>234
お前には二つの選択肢がある

1 英語を勉強する
2 日本語を勉強する
236デフォルトの名無しさん:2006/02/08(水) 23:37:45
>>235
とりあえず米のところでダウンロードはしたんだけども
keyが載ってないんだ…
237デフォルトの名無しさん:2006/02/08(水) 23:47:39
238デフォルトの名無しさん:2006/02/09(木) 00:18:14
MP3ファイルを2曲同時に再生していますが、TrackBarなどで
個別にボリュームを制御するにはどうすれば良いでしょうか。

239デフォルトの名無しさん:2006/02/09(木) 01:25:23
お前さんがどうやってMP3を再生してるか分からないのにその情報なしで答えろと?
240240:2006/02/09(木) 09:30:27
ボタンなどの上で左のマウスボタンを押し、
そのままドラッグしてボタン以外の領域へカーソルを移動させ、
そこでマウスボタンを離すとMouseUpイベントが発生しますが、
右のマウスボタンの場合発生しません。
左と同じようにMouseUpイベントを発生させられないでしょうか?

やりたいことは、MouseDownした位置とMouseUpした位置との
差を調べ、その値によって色々と処理を変えていきたいのです。
で、この処理を左右のマウスボタンで分けようとしたのですが、
左しかMouseUpが反応しないので困っています。
241240:2006/02/09(木) 10:38:37
自己解決しました。
SetCaptureControlでできました。
242デフォルトの名無しさん:2006/02/09(木) 11:07:48
>>232
>>233
できました。ありがとうございます。
243デフォルトの名無しさん:2006/02/09(木) 11:18:04
244デフォルトの名無しさん:2006/02/09(木) 12:15:55
Delphi 、 終わったな
245デフォルトの名無しさん:2006/02/09(木) 13:08:43
お手軽に暗号化を実装したいのだけど・・

暗号化するコンポーネントとかあるんですか?
できれはMD5とかでしたいっす。
246デフォルトの名無しさん:2006/02/09(木) 13:12:28
RC4とかメジャーなやつならいくつかコンポーネントある。
そこにMD5なんかのハッシュ関数も入ってるよ
247デフォルトの名無しさん:2006/02/09(木) 13:43:36
248デフォルトの名無しさん:2006/02/09(木) 13:46:15
一応指摘しておくけど、MD5で暗号化なんてできないよ。
249デフォルトの名無しさん:2006/02/09(木) 13:53:35
つかWin32APIにある。
.pasファイルがあるかどうかは知らんけど
250デフォルトの名無しさん:2006/02/09(木) 17:57:08
システムのプロパティを表示するコードをお願いします
251デフォルトの名無しさん:2006/02/09(木) 18:50:06
>>250
sysdm.cplをShellExecuteする。
さすがにコード例はいらんでしょ?
252238:2006/02/09(木) 22:48:04
>>239
すんません。
現状は鳴らすだけの状態でTMEdiaPlayer2つを使ってます。
ただこれだと音量調整が出来ないしWaveOutSetVolumeを使ったら
両方音量が下がるし…という状態です。
253デフォルトの名無しさん:2006/02/09(木) 23:46:20 BE:271700238-
QuadrupleDでTPanelの上に描画しなければならなくなったので、
http://gamdev.org/w/?%5B%5BQD3%A4%C7TPanel%A4%CE%BE%E5%A4%CB%C9%C1%B2%E8%A4%B9%A4%EB%CA%FD%CB%A1%5D%5D
このページに載っている方法を試してみたのですが、TPanelをForm1より小さくすると縮んで表示されてしまい、うまく行きません。
対処法を知っているお方はいらっしゃいませんか?
254デフォルトの名無しさん:2006/02/10(金) 04:18:54
MD5はハッシュ関数でしょ。 暗号化はCRC。
255デフォルトの名無しさん:2006/02/10(金) 04:29:36
ここは笑うところですか?
256デフォルトの名無しさん:2006/02/10(金) 05:03:18
>>253
パネルのサイズが変わるとそれに応じて伸縮して全体を表示しようとしてしまう。
画面が切れてもいいから伸縮しないようにしたい。
という質問だと承りました。
であればフロントバッファのサイズをパネルのサイズに合わせる必要があります。
具体的には以下の通りです。

パネルのサイズが変わるときに
FLastPP.BackBufferWidth:=Panel1.Width;
FLastPP.BackBufferHeight:=Panel1.Height;

http://gamdev.org/up/img/4608.zip
257デフォルトの名無しさん:2006/02/10(金) 07:18:26 BE:203775629-
>>256
うまく行きました。ありがとうございます!!
258245:2006/02/10(金) 18:17:56
>>247
ありがとす。
Blowfish でやってみます。
259デフォルトの名無しさん:2006/02/11(土) 12:49:46
Delphi2006でReportMemoryLeaksOnShutdownを有効にして、
ttp://www.sakaki.keiaikai.or.jp/cgi-bin/ConvRoom/webconv.dll/body?No=13396
ここにあるようなコードを実行したところメモリリークしたのですが、
これはDelphi2006側のバグですか?それともサンプルコードに間違いが?
260デフォルトの名無しさん:2006/02/11(土) 13:21:39
解放忘れたオブジェクトの型とかでないの?
261デフォルトの名無しさん:2006/02/11(土) 13:26:36
>>260
出ないですし、変数もTForm1だけなんで解放忘れでもないので、
何なのか困り果ててますorz
デバッガで追いかけたらDestroyに入ったので異常終了でもないですし
262デフォルトの名無しさん:2006/02/11(土) 13:30:43
リークしてるメモリ領域ダンプしてVMT読めばクラス名がわかる
263デフォルトの名無しさん:2006/02/11(土) 13:59:06
DLLを読み込んでる関係でメモリマネージャが勘違いしてるのかな
DLL内でリークしててもそれは検出できないと思うんだが
264デフォルトの名無しさん:2006/02/11(土) 14:09:34
>>259
そのサンプルではメモリリークは出ないけど。
265デフォルトの名無しさん:2006/02/11(土) 14:10:10
>>263
検出できているみたいだが。
266デフォルトの名無しさん:2006/02/11(土) 14:15:54
>>265
わざわざ検証してくれたのか。
ありがとう
267デフォルトの名無しさん:2006/02/11(土) 14:41:03
何か良い本ない?
皆どうやって知識を増やしているの?
268デフォルトの名無しさん:2006/02/11(土) 16:37:22
試した。
で…別に何ともない。

そもそもEXEとDLLではメモリマネージャが別なので…

ということはだ。ShareMemかなんか使って無いか?>>259
269デフォルトの名無しさん:2006/02/11(土) 16:49:36
>>267
本なんかいるか!!
キアイダ!!
270デフォルトの名無しさん:2006/02/11(土) 17:05:27
Free; と FreeAndNil(); ってどう違うの?
どっち使ったほうがいいの?
271デフォルトの名無しさん:2006/02/11(土) 17:13:44
>>270
Free。
後々nilにしておく必要がある時も、a.Free; a := nil; と明示的に書いた方がいいと思う。
FreeAndNilの引数は形無しで、class型を後々recordに直したような修正に弱い。
ただ、解放しないといけないものがいっぱいあってめんどくさいときはFreeAndNil並べた方がいいかも。
272デフォルトの名無しさん:2006/02/11(土) 17:19:44
273デフォルトの名無しさん:2006/02/11(土) 17:48:10
マウスカーソルを変える場合、
デフォルトで用意されている
カーソルであるならば、
Screen.Cursor := crHourGlass;
Screen.Cursor := crDefault;
という感じで指定ができるのですが、

フリーのマウスカーソルやアニメーションアイコンにしたい場合には
どうすればよいでしょうか?

よろしくお願いします。
274デフォルトの名無しさん:2006/02/11(土) 18:16:45
>>271 FreeAndNilもかなり明示的だと思うが。
275デフォルトの名無しさん:2006/02/11(土) 18:26:28
>>270
nil突っ込みたかったらFreeAndNil推奨。
nil突っ込む必要がなければFreeを呼ぶだけでよい。

なぜnilを突っ込むかといえばpが無効であることを明示できるから。

if Assigned(p) then // pが初期化済みならFooを呼ぶ
 p.Foo;

みたいなコードが書ける。

おまけ
p.Free; p := nil;と手書きした場合の問題点
・Free(内部のDestroy)で例外吐いたらnilがセットされない
・Freeした直後に別スレッドでpにアクセスした場合pはdestructされた参照を保持していておかしくなる。
276デフォルトの名無しさん:2006/02/11(土) 19:05:20
でもrecordがメソッドをもてるようになったから、classからrecordに変更したくなることも確かにあるね。

なんで引数がTObjectじゃないんでしょうね?
277デフォルトの名無しさん:2006/02/11(土) 19:23:51
>>275
・デストラクタで例外なんてのは回復不可能と見なされる類のものじゃないか?
・異なるスレッドから同じ変数にアクセスする時は同期しろよ
278デフォルトの名無しさん:2006/02/11(土) 19:27:06
バージョン管理システムのJVCSを使ってる方いますか?
使用感などを教えていただきたいのですが。
279デフォルトの名無しさん:2006/02/11(土) 19:35:02
>>273
ヘルプに書いてない?
Screen.Cursors にLoadCursor APIで返ってきたハンドルを格納。
280デフォルトの名無しさん:2006/02/11(土) 19:42:16
>>278
確かVSSみたいな感じ。
281デフォルトの名無しさん:2006/02/11(土) 19:48:40
>>277
1オブジェクトのデストラクタが例外吐いても
動き続けるかどうかはアプリが決めることだし
assignedチェック程度は同期取らずに行うかもしれない。
そういったケースでもなるべく正しく動くようにするささやかな試みってだけ。
282デフォルトの名無しさん:2006/02/11(土) 19:50:23
FreeAndNil使うか手書きでnilぶち込むかは最早好みの領域だろ
オレはnilぶち込みの方が好きだが
283デフォルトの名無しさん:2006/02/11(土) 19:57:41
>>282
渡された型が何だろうと、上で言われてるようにデストラクタで例外出ようと
FreeAndNilは確実に対象をnilにするという点ではそっちの方が優れてる
手書きで毎回FreeAndNilと同じ動作させるのはめんどくさすぎるし
284281:2006/02/11(土) 20:03:10
普通に好みの問題だと思うし両方の問題点も出たし
本題のFree/FreeAndNilの使い分けとも外れるし
これ以上伸ばしても意味ないと思うが。

# 何でいちいち白黒つけるために噛み付き合わないと気がすまないのかね。疲れる。
285273:2006/02/11(土) 20:05:26
>>279
失礼しました
ありがとうございました
286デフォルトの名無しさん:2006/02/11(土) 20:56:15
>>284
そう思うならスルーしろよ
あんたが一番しつこい
287281:2006/02/11(土) 20:57:18
はぁ?消えろよカス
288281:2006/02/11(土) 22:19:26
>>287
偽者は消えろ
289281:2006/02/11(土) 22:40:28
>>287-288
勝手に人を騙らんでくれ
290デフォルトの名無しさん:2006/02/11(土) 22:42:32
偽者も含めて281は消えろ
上でも書かれてるが君が一番しつこいと思う
291デフォルトの名無しさん:2006/02/11(土) 23:01:51
>>290
そう思うならスルーしろよ・・・
292デフォルトの名無しさん:2006/02/11(土) 23:15:51
>>280
VSSは使ったことがないのでどんなものか分からないのですが、とりあえず入れてみました。

結構使いやすいみたいなんですが、日本語を使うとちょっと問題ありますね。
293281:2006/02/12(日) 02:30:29
偽者いい加減にしてくれよ。ほんと。
294デフォルトの名無しさん:2006/02/12(日) 13:21:29
TMyClass = class
private
 FHoge: Integer;
end;

--別ユニット--

TMyHogeClass = class(TMyClass)
private
 FHoge: Integer;
end;

以上の宣言が別のユニットに書かれている場合、それぞれの FHoge は
名前は同じでも全く別の変数ですよね?
295デフォルトの名無しさん:2006/02/12(日) 13:39:29
そうだよ
296デフォルトの名無しさん:2006/02/12(日) 15:02:35
>>294
何をもってして「全く別の」とするかがよく分からんが、
動作自体は同じユニットでも別ユニットでも変わらないと思うが?
297デフォルトの名無しさん:2006/02/12(日) 15:29:23
>>295
ありがとうございます

>>296
説明不足でしたが、継承したクラスから継承元のprivateにアクセスできるか?
っていう質問です。
298デフォルトの名無しさん:2006/02/12(日) 17:05:19
>>297
> メンバーは,それが定義されているクラス内だけで使えるようにする場合は private として宣言します。
> 定義されているクラスとその下位クラスだけで使えるようにする場合は,protected として宣言します。
と、Delphi6のヘルプ
(カスタムコンポーネントの作成 - コンポーネント開発者のためのオブジェクト指向プログラミング - アクセスの制御)
に書いてあるね。
ただし、同一ファイル内に限るなら、private でもアクセスできてしまう。
299デフォルトの名無しさん:2006/02/12(日) 17:20:11
まあ、>>294のようなコードは書かない方がいいというのは間違いない。
300デフォルトの名無しさん:2006/02/12(日) 17:30:27
300
301デフォルトの名無しさん:2006/02/14(火) 03:53:00
ラベルのフォントの高さをセンチメートル単位で指定して、
どの解像度でも同じ高さにするにはどうすればよいのでしょうか。
302デフォルトの名無しさん:2006/02/14(火) 04:04:06
>>301
できない!
303デフォルトの名無しさん:2006/02/14(火) 04:22:03
>>301
ちなみにこんなツールがあります。
http://www.newtone.co.jp/productrs100.html
304デフォルトの名無しさん:2006/02/14(火) 04:29:00
なんか匂う
305デフォルトの名無しさん:2006/02/14(火) 09:06:45
>>301
同じ解像度でも物理的に同じ長さになるなんて保証ないんですが
306デフォルトの名無しさん:2006/02/14(火) 10:09:21
初回起動時にでも四角形とトラックバー2本表示して、
「この四角形がディスプレイ上で1cm x 1cmに表示されるようにサイズを調整してください」
とかやればよくね

倍率がわかったら後は自前でゴリゴリ描くだけ
307デフォルトの名無しさん:2006/02/14(火) 10:27:07
そんな糞UI使う気にならないけどなw
308デフォルトの名無しさん:2006/02/14(火) 10:30:17
ちょっと本がでてこないからうろ覚えだけど
windowsって長さに仮想単位使ってて
ピクセルやmmに変換できるはず
VB4やってるときに組んだんだけど……
局面菅と平面菅でちょっと差が出るという程度に抑えられたはず
309デフォルトの名無しさん:2006/02/14(火) 12:27:58
DPI取ってスケーリング
310デフォルトの名無しさん:2006/02/14(火) 12:33:06
>>308
ユーザーがモニタを調整できるので精密なことは、やっぱりユーザーまかせにしないといけないね
311デフォルトの名無しさん:2006/02/14(火) 15:44:13
ディスプレイを17インチから21インチに変えたけど
「モニタの種類」はプラグアンドプレイモニタのまま。

こんな環境の人には対応できなさそう。
312デフォルトの名無しさん:2006/02/14(火) 15:49:16
>>311
信号は取れなかったっけ?
313デフォルトの名無しさん:2006/02/14(火) 18:19:19
TListViewのvsReportでカラムヘッダーがクリックされた時にソートしようと考えているのですが
自分で退避領域を確保しなきゃいけないんですか?
もっとスマートに処理する方法があれば教えて下さい。
314デフォルトの名無しさん:2006/02/14(火) 18:57:42
退避領域?
315デフォルトの名無しさん:2006/02/14(火) 19:03:55
プロジェクトファイルをダブルクリックで開こうとすると「ファイルが見つかりません」と
出ます。メニューからは普通にみられます。何ででしょう?
316デフォルトの名無しさん:2006/02/14(火) 19:06:09
パスが長すぎとか日本語とか
317デフォルトの名無しさん:2006/02/14(火) 19:13:13
>>313
データベースから値を取得してるんであれば
クリックされたカラムでORDER BYかけるとか
そうでないならCompareイベントにソート処理書いてそれを呼ぶとか
318デフォルトの名無しさん:2006/02/14(火) 19:51:35
>>313 なんとなくこんな感じ。
 TForm1 = class
  SortIndex: Integer;
  SortAscending: Boolean;
 end;
procedure TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
 if Column.Index = SortIndex then
 begin // 同じカラムがクリックされたらソート順を逆にする
  SortAscending := not SortAscending;
 end
 else
 begin // 別のカラムがクリックされたら昇順でソート
  SortIndex := Column.Index;
  SortAscending := True;
 end;
 // 左端の空欄をクリックした場合ソートしない
 if SortIndex = 0 then Exit;
 ListView1.SortType := stNone;
 ListView1.SortType := stData;
end;
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
begin
 if SortIndex = -1 then begin
  Compare := 0;
  Exit;
 end;
 Compare := // todo: SortIndexに応じて比較
 if not SortAscending then
  Compare := -Compare;
end;
319313:2006/02/14(火) 20:05:42
>>317,318
よくわかりました。ありがとうございました。
320デフォルトの名無しさん:2006/02/14(火) 21:43:26
Delphi7入れたのですが、起動してデスクトップが後ろに見えていますが
見えないモードみたいなのに出来ませんか?
321デフォルトの名無しさん:2006/02/14(火) 21:44:26
VB.NETなら見えないよ
322デフォルトの名無しさん:2006/02/14(火) 23:36:00
>>320
出来なかったような気がする
323デフォルトの名無しさん:2006/02/15(水) 09:10:53
>>320
状況がよく分からん。デスクトップを見えないようにすると言うことか???
IDEを最小化したいなら「環境オプション」−「実行時に最小化」をチェックすればOK。

はずしてたらごめん。
324デフォルトの名無しさん:2006/02/15(水) 09:42:25
壁紙が見えてしまっているってことだろ?VBとかだと灰色だったような。
俺もVBからDelphiに移行したときは驚いた。
325デフォルトの名無しさん:2006/02/15(水) 10:38:39
>>320
BDS2006をご購入くださいませ
Delphi7まではMDIではありません。
326デフォルトの名無しさん:2006/02/15(水) 12:20:14
>>325
いや、どっちにしろMDIではないけど。
327デフォルトの名無しさん:2006/02/15(水) 12:23:19
確かに、初めてDelphi起動した時はウィンドウがバラバラで驚いたな
今じゃ慣れてどってこたぁないが
328デフォルトの名無しさん:2006/02/15(水) 12:35:01
とにかく何のアプリを使う場合でも、最大化表示やフルスクリーン表示が嫌いな俺には
D7までの形がしっくりくる
329デフォルトの名無しさん:2006/02/15(水) 13:34:17
2005辺りから選べるようになってるんじゃなかったっけ?
330323:2006/02/15(水) 15:31:49
ああ、そういうことか。
Visual Studioのようなのがいいのか。
おれはSDIのすかすか画面が好みだな。
331デフォルトの名無しさん:2006/02/15(水) 16:53:54
Delphi7ですが、

d:double;

d:=StrToFloat('-INF');

で、エラーが出るの、どうにかなりませんか。
NegInfinityが返って欲しいのですが・・。
332デフォルトの名無しさん:2006/02/15(水) 17:14:55
こんなんじゃ駄目なのか

function GetNum(AStr: String): double;
begin
 if AnsiCompareStr(AStr, '-INF') = 0 then
  Result := NegInfinity;
end;
333デフォルトの名無しさん:2006/02/15(水) 20:18:34
elseが無いっすね。
そしてじゃあ、'INF'はどうしようかという・・。

参ったのは、TIniFile.ReadFloat メソッドで、その内部でStrToFloatしてくれてるので、
iniにInfinity,NegInfinityが書き込めないんですよね。
334デフォルトの名無しさん:2006/02/15(水) 21:41:20
>elseが無いっすね。
>そしてじゃあ、'INF'はどうしようかという・・。

それ位自分で書けんのか
335デフォルトの名無しさん:2006/02/15(水) 22:07:50
応用力0だな
くだすれにふさわしい
336デフォルトの名無しさん:2006/02/15(水) 22:09:32
>>332に文字列で扱う方法あるんだから
ReadStringで読み込めばいいだろ
337デフォルトの名無しさん:2006/02/16(木) 05:34:55
mainmanuをcontrolbar内に取り込めませんか?
buttonやtoolbarなら普通にできるのにmainmanuだけは試行錯誤して数時間・・
338デフォルトの名無しさん:2006/02/16(木) 08:22:17
>>337
MainMenuとToolBarを追加して、FormのMenuプロパティを空にして
ToolBarのMenuプロパティにMainMenuを指定する。
339333:2006/02/16(木) 15:13:04
そうっすね。
仕方ないので、TIniFileの下位クラスを作って、INF対応しました。

infinityの取り扱いがmathユニットにあるってことは、Floatでの
演算において、Infinityは通常ありえないって事なんすかね。

納得行かないのは、FloatToStrでは、INF,-INFをはき出すくせに、
StrToFloatでは戻せないってとこだけで、一時的な解決自体は
問題なくできました。

BDS2006とかだと、正常に動作するんすかね。
340デフォルトの名無しさん:2006/02/16(木) 15:36:44
比較ができないって点で察しろ
341デフォルトの名無しさん:2006/02/16(木) 16:31:33
>>338
できました
thx!
342デフォルトの名無しさん:2006/02/16(木) 16:33:26
listbox.items.objectsの関連付けについてなんですが、
var pstr:Pstring;i:integer;
begin
  new(Pstr);
  pstr^:='戦闘中...';
  i:= ListBox1.Items.Add('16:15現在の状況 ');
  Listbox1.items.objects[i]:= Tobject(pstr);
 この行に関連付けられている文字列などを変更したい場合、
  Pstring(listbox1.Items.Objects [0])^ :='転進中...' ;
としていいんでしょうか?だめでしょうか?
343デフォルトの名無しさん:2006/02/16(木) 18:18:17
しょぼい質問すみません。

D7でScreenToClient APIを使いたいのですが、メインフォームのイベント内で
次のように記述すると、

var
b:boolean;
hw:hWND;

begin
b:=ScreenToClient(hw,p);
end;

コンパイルエラーで「 'TPoint' と 'HWND' には互換性がありません」と出て、通りません。
恐らくFormのScreenToClientに引っかかってるのだと思いますが、APIを呼ぶにはどうしたら良いでしょうか。
344デフォルトの名無しさん:2006/02/16(木) 18:27:20
そーゆー場合は、ユニット名を明示する
Windowsユニットだっけ?
だったら、Windows.ScreenToClietってな感じ
345デフォルトの名無しさん:2006/02/16(木) 18:41:51
よく目にするオークションの価格情報などを表示してくれるソフトのように、
(たとえばAuctionListReader Yahoo!のように)
WEB上から該当する情報を引っぱってきて
ソフトウェアに取り込むのって、どのようにするのが一般的ですか?
WEB BROWSERコンポーネントを使っても、二進も三進もいかなくて困ってます。
346デフォルトの名無しさん:2006/02/16(木) 18:47:40
WinInet、IndyとかのGetじゃだめなの?
347345:2006/02/16(木) 19:00:37
>>346
それでできそうです!
ありがとうございます。
348デフォルトの名無しさん:2006/02/16(木) 20:10:04
TButtonとかTMemoとかの最初のTは、何を意味するのでしょうか?
349デフォルトの名無しさん:2006/02/16(木) 20:16:37
Type
350345:2006/02/16(木) 20:35:53
IndyのGetで通常のWEBページからの取得に成功しました。
ありがとうございます!
しかし、SSL認証でつまづいてしまいました。
これは初心者には手が出ない○| ̄|_
351デフォルトの名無しさん:2006/02/17(金) 00:18:47
352343:2006/02/17(金) 01:32:04
>>344
ありがとうございます、助かりました。こういう指定方法があるとは知りませんでした。



ところで、別のアプリケーションのTMainMenuのMenuItemを実行させたいのですが、
WindowFromPoint等ではメニューアイテムのhWNDが取得できず、メッセージの
送信先がわからず、行き詰まっています。

一般的にはこういう場合、どのように処理をするのでしょうか。
353デフォルトの名無しさん:2006/02/17(金) 01:56:46
Win2000以降は他プロセスのハンドルは取得出来ない
354デフォルトの名無しさん:2006/02/17(金) 07:25:08
delphiなくなっちゃうの?
355デフォルトの名無しさん:2006/02/17(金) 08:12:02
いいえ
356デフォルトの名無しさん:2006/02/17(金) 08:21:57
>>352
Menuはウィンドウでないので、ウィンドウハンドルはない。
Menuを持ったウィンドウから辿っていく。

>>353
そんなわけないでしょ・・・。
357デフォルトの名無しさん:2006/02/17(金) 10:39:16
>>354
DelphiはGoogleが買い取って、フリーウェアにして、
全世界に広めて、VBとCを殲滅します(かも)。
358デフォルトの名無しさん:2006/02/17(金) 11:01:43
>Menuはウィンドウでないので、ウィンドウハンドルはない。
いやいや、あるでしょ・・・。
正すのはいいけど、間違った知識教え込まないでね。
359デフォルトの名無しさん:2006/02/17(金) 11:02:35
>Menuはウィンドウでないので、
ここからして違う。
標準コントロールとは、ただの出来合いウィンドウ。
360デフォルトの名無しさん:2006/02/17(金) 11:03:53
>>357
Googleが買い取るのはまずありえないだろ
言語なんて採算全然取れないんだから、
昔のGoogleならともかく、儲けに走った今は無理
361デフォルトの名無しさん:2006/02/17(金) 11:11:38
他所でやれ
362デフォルトの名無しさん:2006/02/17(金) 11:35:03
そういうコメントこそチラシの裏にでも書けw
363デフォルトの名無しさん:2006/02/17(金) 11:53:41
みんな、止めて!
私の為に争わないで!
364356:2006/02/17(金) 12:07:01
>>358,359
TMainMenuってメニューを開かなくても
ウィンドウハンドル持ってるんですか?

WindowHandleプロパティは自身のハンドルでないし、Handleプロパティは、GetMenu APIなどで取得できるメニューハンドルですよね?
365デフォルトの名無しさん:2006/02/17(金) 12:09:28
Googleの内側はPythonで出来ていて中の人もPython好き
今さらDelphiに宗旨替えするなんて考えにくい
366デフォルトの名無しさん:2006/02/17(金) 12:15:26
別にDelphiでGoogleを作るわけじゃない
367デフォルトの名無しさん:2006/02/17(金) 12:19:20
>>364
GetMenuの戻り値はhWndですが何か
368デフォルトの名無しさん:2006/02/17(金) 12:21:39
>>367
それだと語弊があるな
369356:2006/02/17(金) 12:35:51
>>367
つまり、HMENUとHWNDは同じ物ってことなんでしょうか?

メニューハンドルをたとえばIsWindowVisibleに渡してみると、ウィンドウハンドルが無効です、となりますが。。。
370デフォルトの名無しさん:2006/02/17(金) 12:42:32
353といい、何か変なこと言う奴が出現してるな
HWNDとHMENUは共にCardinalという点では同じでも、
扱う上では全く異なるからこそ別の型として定義されているんだろ
371356:2006/02/17(金) 12:48:08
>>370
私はもちろんそう思ってるのですが、
GetMenuで得られるメニューハンドルがHWNDだというので一応確認してみました。
372デフォルトの名無しさん:2006/02/17(金) 12:52:13
いちいち噛み付くお前らも同罪
スルーしろ
373デフォルトの名無しさん:2006/02/17(金) 13:13:15
374デフォルトの名無しさん:2006/02/17(金) 13:37:38
>>352
findwindow->getmenu->GetMenuItemID
375デフォルトの名無しさん:2006/02/17(金) 14:46:09
質問があります。
どうしても FreeOnTerminate = True を使わずにスレッド
を解放したいのですけど、以下のように OnTerminate で
Free するとフリーズしてしまいます。
どういう風にプログラムするのが正しいのでしょうか?

var
 DrawThred: TDrawThred;

procedure TForm1.DrawTerminate(Sender: TObject);
begin
 DrawThred.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 DrawThred := TDrawThred.Create(False);
 DrawThred.OnTerminate := DrawTerminate;
end;
376デフォルトの名無しさん:2006/02/17(金) 15:19:53
>>375
素直にFreeOnTerminate使わない理由は?
377デフォルトの名無しさん:2006/02/17(金) 15:33:37
>>376
プログラムが終了する OnDestroy で WaitFor を使って
スレッドの実行が完全に終了するまで待機したいからです。
FreeOnTerminate = True にしたら Execute が終了した段階
でハンドルが無効になっているみたいで WaitFor を実行する
と例外が発生しますし。
378デフォルトの名無しさん:2006/02/17(金) 15:43:37
>>342なのですが、下のように変更する場合、
Pstring(listbox1.Items.Objects [i])^ :='転進中...' ;
Pstring(listbox1.Items.Objects [i])^ :='作戦完了' ;
のようにしちゃっていいのですか?
本当に教えてください。
379デフォルトの名無しさん:2006/02/17(金) 15:48:58
>>377
プログラム終了するのになんで待つ必要があるわけ?
380デフォルトの名無しさん:2006/02/17(金) 15:49:35
>>378
お好きなようにどうぞ
381デフォルトの名無しさん:2006/02/17(金) 15:56:51
>>379
スレッドでファイル処理をしているので、
それらの処理が完全に終わるまで途中
でプログラムが終了されたくないわけです
382デフォルトの名無しさん:2006/02/17(金) 16:02:27
>>380 本当ですか。よくわかりませんが、ありがとうございます!!
 
383デフォルトの名無しさん:2006/02/17(金) 16:05:17
>>375
Terminate
(Resume)
WaitFor
Free
の順ではダメなのかな?
384デフォルトの名無しさん:2006/02/17(金) 16:06:09
SSL認証で情報を取得したいのですが、
IdHTTPとTIdSSLIOHandlerSocketOpenSSLを使用したサンプルの
文献ってほとんどないですね…。
SSL認証はIndyではあまり行わないのでしょうか?
DelphiでSSL認証をするサンプルがあるところに
誘導願います。
385デフォルトの名無しさん:2006/02/17(金) 16:21:13
>>383
ちょっと考えてみますね。
386デフォルトの名無しさん:2006/02/17(金) 16:36:07
>>384 ここで聞くより【Delphi】 Indyコンポーネント 【C++Builder】
http://pc8.2ch.net/test/read.cgi/tech/1093654251
で聞いてみたら。
まったくわからないので知らんけど。
387384:2006/02/17(金) 17:00:19
>>386
ありがとう!こっちで聞いてみます。
388デフォルトの名無しさん:2006/02/17(金) 17:47:56
おうおう!さっきから何回も
「シンボル 'FindData' はプラットフォームに依存すると宣言されています」
ってでるんだけど、コイツを表示しないようにするにはどうすればいい?
エディタが狭くなるっつーの!
389デフォルトの名無しさん:2006/02/17(金) 17:49:07
{$WARN SYMBOL_PLATFORM OFF}
390デフォルトの名無しさん:2006/02/17(金) 18:12:25
おめえ、やるなー
おかげですっきりしたもんだ!
ありがとよっ
391デフォルトの名無しさん:2006/02/17(金) 18:24:09
Win32API以外録にサポートしてないんだからプラットフォーム依存も糞もないだろっつうの
392デフォルトの名無しさん:2006/02/17(金) 18:43:03
ほんとに。Kylix の弊害がここにも。ヘルプにもたっぷり。
393デフォルトの名無しさん:2006/02/17(金) 19:05:42
>>375
DrawThreadがOnTerminateを呼び出すんだから、その中で
DrawThreadを破棄したらおかしくなるのは当然でしょ。

FreeOnTerminateをTrueにして、OnTerminate内で
DrawThread := nilにして、Assignでチェックしてループって
手もあるけど、>383が確実だと思う。
394デフォルトの名無しさん:2006/02/20(月) 14:40:39
D7のヘルプから、CLX関連を全部消せないですかね。
ヘルプ引く際にいちいち選択が鬱陶しい。
395デフォルトの名無しさん:2006/02/20(月) 14:48:03
7は知らんけど

CLXヘルプの解除 †

readme.txt l258を読んで解除しておく

2.DELPHI6.OHL,DELPHI6.OHI,および DELPHI6.OHC をテキストエディタで開きます。
3.それぞれのファイルの中で,"DLX1CLX" という文字列を含む行の先頭にセミコロンを入力してその行をコメントアウトします。
4.各ファイルを保存します。
5.Delphi\Help フォルダを開き,拡張子が "GID" の隠しファイルをすべて削除します。同様に,拡張子が "F" で始まるすべてのファイルを削除します。
396394:2006/02/20(月) 15:21:10
>>395
ありがとう、できました。若干手順が違ったので参考に。

2.D7.OHL,D7.OHI,および D7.OHC をテキストエディタで開きます。
3.それぞれのファイルの中で,"CLX" という文字列を含む行の先頭にセミコロンを入力してその行をコメントアウトします。
4.各ファイルを保存します。
5.Delphi\Help フォルダを開き,拡張子が "GID" の隠しファイルをすべて削除します。

こんな感じでいけました。
どもです。
397デフォルトの名無しさん:2006/02/20(月) 15:55:00
何やってるんだお前ら

カスタマイズでCLX関連のヘルプのリンクを切ればいいだけじゃん
398デフォルトの名無しさん:2006/02/20(月) 16:01:01
解決しようがしまいが俺様以外のやり方は一切認めず指が折れるまで毎日ケチ付けまくる君乙
399デフォルトの名無しさん:2006/02/20(月) 16:01:22
CLXっていうファイルを削除するだけでOK。
400デフォルトの名無しさん:2006/02/20(月) 17:28:25
必死だな。文字通り
401デフォルトの名無しさん:2006/02/20(月) 17:44:39
>>395
394ではないが、超助かった。ナイスな情報ありがとう
402デフォルトの名無しさん:2006/02/20(月) 20:19:54
procedure ListSort(Param: Integer);
 function DoSort(ItemA, ItemB: Pointer): Integer;
 begin
  Result:= CompareValue(PInteger(ItemA), PInteger(ItemB)) * Param;
  end;
begin
 List.QuickSort(@DoSort);
end;

TListでQuickSortするにあたり引数Paramに1とか-1を入れて
エレガントに昇順と降順を入れ替えようとしたら結果が常に降順になったけど何で?
グローバルな変数に一旦Paramの値を入れ、DoSort内ではそのグローバル変数を参照させたら巧くいったのも何で?
403デフォルトの名無しさん:2006/02/20(月) 20:22:11
関数内関数を渡しちゃいかん
404デフォルトの名無しさん:2006/02/20(月) 20:32:43
テキストへの書き込みについてなのですが、
var
 F: TextFile;
begin
 AssignFile(F, txtName);
 try
  Append(F)
  Writeln(F, src);
 finally
  CloseFile(F);
 end;
とするとテキストの最終行に書き込めるのですが、
先頭行に書き込むにはどうすればよいのでしょうか?

一度テキストファイルを全部読み込んで、
先頭行に今回の文字列を書き込んでから、
既存の文字を書き込むではスマートではないと思いまして

よろしくお願いします。
405デフォルトの名無しさん:2006/02/20(月) 20:42:20
>>403
そうなんだ。でも何で?スタックがズタズタになるの?
406デフォルトの名無しさん:2006/02/20(月) 20:43:13
>>404
つまり追記ではなく、挿入が行いたいと言うことだね。もちろんできないと思う。

それと、簡単なテキストファイルIOならTStringListを使った方が楽だね。
メモリに入れても問題ないサイズでなければならないけど。
407デフォルトの名無しさん:2006/02/20(月) 20:44:14
408デフォルトの名無しさん:2006/02/20(月) 20:51:05
>>407
リンク先の内容全然わかんないけど、
とりあえず呼び出し規約違うからNGって覚えてみる
ありがと
409404:2006/02/20(月) 20:57:23
>>406
つまり、TextFileならメモリに入れないから大容量ファイルも扱えるけど不便、
Stなら簡単だけどメモリを使うと覚えておけばよいわけですね。
イメージ通りにできました。ありがとうございました。

var
 St: TStringList;
begin
 St := TStringList.Create;
 St.LoadFromFile(txtName);
 St.Insert(0, '先頭に追加');
 St.SaveToFile(txtName);
 St.Free;
410デフォルトの名無しさん:2006/02/21(火) 01:42:18
>>404
TFileStreamで開いてSeekでもしとけ
411デフォルトの名無しさん:2006/02/21(火) 02:27:22
>>410
それじゃ挿入は出来ません。
412デフォルトの名無しさん:2006/02/21(火) 04:19:18
>>404
関数内関数を渡す事は出来るけど、
そこから外のローカル変数(Paramの事)にアクセスできないじゃなかった?
413デフォルトの名無しさん:2006/02/21(火) 11:42:55
Delphi7ですがエディタの言語がいろいろ選べるけど
結局それだけだよね?
最初見たときどんな言語でも自動移植してくれるのかと思った。
414デフォルトの名無しさん:2006/02/21(火) 14:12:04
以下のコードを実行するたびにメモリが4KBくらい減っていきます。
なぜでしょう?(Win2k SP4, D5)

var
hLib: THandle;
begin
hLib := LoadLibrary(PChar(ExtractFilePath(Application.Exename) + 'Tools.dll'));
FreeLibrary(hLib);
end;
415デフォルトの名無しさん:2006/02/21(火) 14:23:17
Delphi FAQに、あんまりDLLをリンクしたり解放すると、メモリリーク起こすって書いてあったな
Cの開発環境でも試してみなよ
416デフォルトの名無しさん:2006/02/21(火) 14:23:55
4KBってのが何か怪しい
DLL内でString型を使ってるとか
417デフォルトの名無しさん:2006/02/21(火) 15:07:00
これかー。

DLL のロード・アンロードでメモリリーク?
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=12#0106.txt
418デフォルトの名無しさん:2006/02/21(火) 15:23:34
>>417
情報が古すぎる(1999/02/08)けど、今はどうなんだろ?
419デフォルトの名無しさん:2006/02/21(火) 15:26:35
>>418
D5だからちょうどいいんじゃね
420デフォルトの名無しさん:2006/02/21(火) 15:40:01
>>414は、何もしないDLLを作ってそれで試してみなよ
それで同じ事が起きるなら、開発環境側の問題かな
421デフォルトの名無しさん:2006/02/21(火) 16:25:53
D6も増えるけど、増えてるのIDEのメモリ使用量だから別にいいやって感じ。
422デフォルトの名無しさん:2006/02/21(火) 16:49:37
IDE
IDE
IDE
423414:2006/02/21(火) 16:50:15
>>417-419
この情報はD5の時代っぽいから、OKとしました。

>>420
これはやってみましたが、やはり増えました。
なんででしょ;;

>>421
いや〜でも、ユーザーにもよるでしょうけど、常時PC起動で、
何度も関数を発行すると、いつかは大変なことに・・・

とりあえず、DLL無しの方向で検討してみます。
424デフォルトの名無しさん:2006/02/21(火) 17:09:27
>>422
何か?

>>423
アプリ側のメモリ使用量が増えてるの?
425デフォルトの名無しさん:2006/02/21(火) 17:13:05
つまりIDEからじゃなくて、アプリ単独で起動してもどんどん増えてくのかっちゅう事ね。
426414:2006/02/21(火) 17:15:22
>>424-425
そうです。EXEで起動しても、どんどん増えます。
427デフォルトの名無しさん:2006/02/21(火) 17:16:45
それはまずいね
428デフォルトの名無しさん:2006/02/21(火) 17:23:44
StringGridで特定のセルだけ色を変える方法ってありますか
429デフォルトの名無しさん:2006/02/21(火) 20:36:03
あります
430デフォルトの名無しさん:2006/02/21(火) 20:53:11
onDrawCellイベント内でCanvasの色を変えればいいのです
右寄せ左寄せ均等割りなどもできます
431428:2006/02/21(火) 23:51:32
ヒントを元にぐぐって
ttp://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/068/068888.html
を参考にできました。
ありがとうございました。
432デフォルトの名無しさん:2006/02/22(水) 09:26:34
以下を実行すると、アプリのメモリ使用量(タスクマネージャで見えるもの)が激減します。
なぜでしょう?

ShellExecute(Handle, nil, PChar(ExtractFilePath(Application.Exename) + 'hoge.lnk'), nil, nil, SW_SHOW);
433デフォルトの名無しさん:2006/02/22(水) 10:05:43
起動されたアプリがメモリを喰うからでしょ
434デフォルトの名無しさん:2006/02/22(水) 13:59:53
デバッグ用のメッセージを出力する事ってできませんか?
デバッグ時にログを吐くような関数をMLで見た覚えがあるのですが、ご存じ無いでしょうか。
435デフォルトの名無しさん:2006/02/22(水) 15:01:15
>>434
WindowsAPIにOutputDebugStringがある。
出力内容はイベントログに表示。

ただしPerはそのイベントログウィンドウがない上に統合デバッガはしっかり吐かれたメッセージ持って行くから統合デバッガ切らないと見れない。
切ればPSDKのDbgMon他の外部ビュアーで見れる。
436デフォルトの名無しさん:2006/02/22(水) 18:49:57
>>435
統合デバッガを切るなんてできるんだっけ?
単にIDEから起動しないってこと?
437デフォルトの名無しさん:2006/02/22(水) 19:25:04
このクソったれにActionManagerの使い方を教えてください。
メインメニューを
TEST (これメインメニュー)
|
+--TESTES (メニューのアイテム)

と、したいんです。

var
Ac: TAction;
begin
// アクション作成
Ac := TAction.Create(Self);
Ac.Category := 'TEST';
Ac.Caption := 'TESTES';
Ac.ActionList := ActMng;
Ac.OnExecute := OnFunc;

// TESTというカテゴリを追加
ActMng.AddCategory('TEST', MainMenu.ActionClient.Items[0]);
// TESTというカテゴリ内にアクション追加
ActMng.AddAction(Ac, MainMenu.ActionClient.Items[2]);
end;

procedure TForm1.OnFunc;
begin
;
end;

これだとTESTの右側とTESTの中、計2カ所にTESTESが出ちゃいます。
TESTの中だけにしたいんですが、どうするのでしょう?
438デフォルトの名無しさん:2006/02/22(水) 19:28:02
TImageをフォーム上に生成すると先に生成されたものほど下に表示されるんですが、
この順番をTimageを破棄せずに変えたいです。
プロパティなども見ましたが、表示順を扱う様なものはなかったので、どうすればいいかなやんでます
ご教示願います
439デフォルトの名無しさん:2006/02/22(水) 19:44:14
>>438
BringToFront
SendToBack
440デフォルトの名無しさん:2006/02/22(水) 19:54:08
441デフォルトの名無しさん:2006/02/22(水) 19:55:58
>>440
いやそれ俺だし!
あっち、レスポンス遅いからついこっちで・・・
442デフォルトの名無しさん:2006/02/22(水) 19:58:36
>>437
こう?

procedure TForm1.Button1Click(Sender: TObject);
var
Ac: TAction;
Acc,Acc2: TActionClient;
begin
// アクション作成
Ac := TAction.Create(Self);
Ac.Category := 'TEST';
Ac.Caption := 'TESTES';
Ac.ActionList := ActMng;
Ac.OnExecute := OnFunc;

Acc := MainMenu.ActionClient.Items.Add;
Acc2 := Acc.Items.Add;

// TESTというカテゴリを追加
ActMng.AddCategory('TEST', acc);

// TESTというカテゴリ内にアクション追加
ActMng.AddAction(Ac, Acc2);
end;
443デフォルトの名無しさん:2006/02/22(水) 20:09:00
>>422
うおーーー!かんどーした!これこれ!スゴス!
感謝です!ありがとうごじゃりやした!
あとは自分でなんとかします!
444デフォルトの名無しさん:2006/02/22(水) 20:09:52
↑あれ?422って誰すか?
442でお願いします!
445デフォルトの名無しさん:2006/02/22(水) 20:40:33
>>439
ありがとうございます
はじめからZオーダーで調べて置けばよかったんですね・・・
お手数おかけしました
446デフォルトの名無しさん:2006/02/22(水) 20:46:48
>>441
お前は返事を数時間も待てないのか
それと解決したんなら向こうの掲示板自己レスしろよ
このクソったれが
447441:2006/02/22(水) 21:00:01
>>446
まぁ待てって。もちつけ。
448デフォルトの名無しさん:2006/02/22(水) 21:01:43
マルチ視ね
449デフォルトの名無しさん:2006/02/22(水) 21:04:18
一体マルチのどこが悪いのかわからない。
複数のスレに質問することでレイテンシが最小に抑えられるし
複数のレスが得られれば情報の確度も飛躍的に向上する。
忌むべきはレスをもらった後に放置することでありマルチ自体ではないはずだ
450441:2006/02/22(水) 21:14:53
>>449
ご教授頂いたやつは問題なしです。
で、便利なように関数を作っていたら、メインメニューをクリックすると例外が出るようになりました。
で、今はこれを調査してます。解決したことはしたんだけど、もうちょっと待ってやってください。
そしたら向こうのスレ、自己レスします。
446のクソったれさん、そういう事でおながいします。
451デフォルトの名無しさん:2006/02/22(水) 21:15:44
>>449
お前質問に答えた事ある?

せっかく苦労して答えてあげたのに
「別の掲示板で解決したからもういいよ」とか言われたり、
同じような回答が複数の場所で同時にされるのがどれだけ無駄かわかってるのか?
サーバーの容量も無限じゃないし、マルチは無意味な情報が増えるだけだろ
今回も向こうの掲示板放置したままだし、今、向こうの掲示板で回答を考えてる人のことどう思う?
452デフォルトの名無しさん:2006/02/22(水) 21:22:27
一般的に言って質問する側は緊急度が高く
答える側はたいてい暇なことが多い。
また答えが重複したところでコミュニティの大きさが十分大きければ
その無駄も相対的に0に等しい。
よってマルチの価値は高く、反面実害はほぼ0であることが証明された。
453デフォルトの名無しさん:2006/02/22(水) 21:22:59
あれだな
教えて君と答えたがりサンの問題と似てるところがあるな

まぁ、これ以上はスレ違いだからやめようぜ
454デフォルトの名無しさん:2006/02/22(水) 21:29:47
これに懲りたら今後難癖つけるのはやめような。
455デフォルトの名無しさん:2006/02/22(水) 21:33:03
>>452
>一般的に言って質問する側は緊急度が高く
>答える側はたいてい暇なことが多い。
それはそうかも知れんけど、今回の話とは関係なくない?

>また答えが重複したところでコミュニティの大きさが十分大きければ
>その無駄も相対的に0に等しい。
すまん、意味がよくわからん。
同じような回答が何件も寄せられたら、重複した物は無駄な情報だと思うが。

>よってマルチの価値は高く、反面実害はほぼ0であることが証明された。
マルチの価値の高さが伝わらない。
実害も0じゃなくて少しはあるんだろ?トータルでマイナスなんじゃないの?
456デフォルトの名無しさん:2006/02/22(水) 21:44:03
ま、マルチだと知ったら放置することにしてるし。

答える側には答えるかどうか決める権利があるんだよ。
マルチすると質問者にとって不利になるようにしむけることが大事
457デフォルトの名無しさん:2006/02/22(水) 21:45:26
>>441
解決したんなら向こうの掲示板にレスしろよ、このクソったれが

例外と今回の事は関係ないだろうが、このクソったれが

覚えたての2ch語連発して毎回ageるなよ、このクソったれが
458デフォルトの名無しさん:2006/02/22(水) 21:53:09
>>452
中二病全開なオレ様理屈乙
飯喰って糞して寝てろ
459デフォルトの名無しさん:2006/02/22(水) 23:11:44
ttp://www.wwlnk.com/boheme/delphi/tips/tec1020.htm
↑こんな感じでドッキング設定にしたウィンドウをフローティング状態にした時、
勝手にタイトルバーが付きますが、そこを掴んで移動させると
タイトルバーの高さの分が無視されてる感じで、
マウスの座標と少しずれてるようなのは仕様なのでしょうか。

これって自分でフローティング時の処理オーバーライドとかして書き換えると治るの?
460デフォルトの名無しさん:2006/02/23(木) 00:23:47
自身を再起動するにはどうすれば良いの?
461デフォルトの名無しさん:2006/02/23(木) 00:28:52
バッチファイルでも吐いとけ
462デフォルトの名無しさん:2006/02/23(木) 00:28:57
command.com に何かパラメータを渡すんじゃなかった?
463デフォルトの名無しさん:2006/02/23(木) 00:32:11
>>436
ツール>デバッガオプション>一般>統合開発環境を使うのチェックを外す
464デフォルトの名無しさん:2006/02/23(木) 00:52:51
>>463
こんなオプションあったのか。ホントに単に実行するだけになるんだね。
使い道はなさそうだけど、サンクス。
465デフォルトの名無しさん:2006/02/23(木) 01:52:33
>>460
 ShellExecute(0, "open", PChar(ParamStr(0)), ...
end.
必要ならmutexで終了待ち
466デフォルトの名無しさん:2006/02/23(木) 10:14:39
タスクマネージャのタスクに登録されないようにするにはどうすればいいですか?
467デフォルトの名無しさん:2006/02/23(木) 10:40:11
>>466
回線切って首吊って氏んでおけ(#^ω^)
468デフォルトの名無しさん:2006/02/23(木) 10:44:14
>>467
意味不明
469デフォルトの名無しさん:2006/02/23(木) 11:21:04
>>466
犯罪志向よくないヽ(`Д´)ノ
470デフォルトの名無しさん:2006/02/23(木) 12:03:15
>>466
プロセス列挙系のAPIを片っ端から横取りして書き換えればいい
そのやり方は自分で調べて下さい
471デフォルトの名無しさん:2006/02/23(木) 12:51:18
>>466
つ rootkit
お問い合わせはSONY BMGへ
472デフォルトの名無しさん:2006/02/23(木) 12:55:11
>>470
プロセス一覧でなくて、タスクに表示させたくないだけであれば、Application.handleをHideするぐらいでできなかったっけ?
473デフォルトの名無しさん:2006/02/23(木) 13:02:51
いずれにしてもスレ違いだ。ネタじゃないならWin32APIスレ池
474466:2006/02/23(木) 13:38:22
>>472
それをヒントに出来ました。ありがとうございました。
475460:2006/02/23(木) 14:23:31
散々悩んだあげく、とりあえずMutexとCommandLine引数とWaitForSingleObject使うことにした
答えてくれた人ありがと
476デフォルトの名無しさん:2006/02/23(木) 14:47:30
>>475
簡単なのは、
WinExec(自分を起動するアプリ, SW_HIDE);
Close;
477デフォルトの名無しさん:2006/02/23(木) 16:50:52
SMART情報取得するのって難しい?というか出来る?
CPU、HDDの温度とか取得したい・・・
478デフォルトの名無しさん:2006/02/23(木) 17:37:35
479デフォルトの名無しさん:2006/02/24(金) 12:53:57
Delphi7で、FormにTCoolBar、その中に
TToolBar+TToolButtonを配置してます。

設計画面ではW2kのスタイルで無問題なのですが、
実行時のXPスタイルでは、ボタンなど、どうも
垂直方向の位置がズレているような気がします。

これはDelphiのバージョンに起因する問題?

なんか既知の問題のような気がしますが、
解決策があったら、よろしくお願いします。
480デフォルトの名無しさん:2006/02/24(金) 14:56:56
TToolBar のボタンのXPスタイルがどうの、って3ヶ月おきに質問があるような・・・
481デフォルトの名無しさん:2006/02/24(金) 18:16:57
作成したプログラムのメモリリークのチェックってどうすればできますか?
482デフォルトの名無しさん:2006/02/24(金) 18:18:49
フリーでMemCheckっていうライブラリがあるよ
483デフォルトの名無しさん:2006/02/24(金) 18:18:58
>>481
MemCheck2.0
484デフォルトの名無しさん:2006/02/24(金) 18:21:35
>>483
ありがとうございます。
ダウンロードしてきます。
485デフォルトの名無しさん:2006/02/24(金) 19:59:39
DelphiのTWebBrowserにて、指定のURLに移動し、フォームに情報を入力し
送信ボタンを押す、というプログラムを作っています。
ですが、type=fileのフォームにはValueを変更しても反映されません。
セキュリティの問題だと思うのですが、なんとか入力する方法はありませんでしょうか。
486デフォルトの名無しさん:2006/02/24(金) 22:13:49
TPanelってフォーカス捕まえられないの(´・ω・`)?
487デフォルトの名無しさん:2006/02/24(金) 22:20:14
>>485
表示してから入力せずに、HTMLを取得してタグの初期値を書き換えてから表示させれば?
488デフォルトの名無しさん:2006/02/24(金) 22:41:32
>>486
ウィンドウハンドルは有るので、捕まえられる。
継承して、関連イベントの可視性広げて、MouseDown で SetFocus すればおk。
489デフォルトの名無しさん:2006/02/24(金) 22:49:36
>>488
OnEnter OnExitじゃダメなんですかね、、
WndProcの中でもWM_SETFOCUSもWM_KILLFOCUSも拾えないみたいで、、 @D6
490デフォルトの名無しさん:2006/02/24(金) 22:53:14
試してないんでわからんが、
DefaultHandlerをoverrideするかmessage指令使えば捉まるんじゃないの?
491デフォルトの名無しさん:2006/02/24(金) 23:07:52
>>489
OnEnter OnExit はアプリケーション内でのフォーカスの移動に応答するイベント。
WM_SETFOCUSもWM_KILLFOCUS はフォーカスの移動が完了したときに受け取るメッセージ。

フォーカスは自動的に与えられるものではない。欲しいときに奪い取るものだ。
よって MouseDown などで SetFocus する必要がある。
492デフォルトの名無しさん:2006/02/25(土) 00:03:07
WM_ACTIVATEなんかも拾わないしもうだめぽ
493デフォルトの名無しさん:2006/02/25(土) 00:27:25
>>492
>>486
494デフォルトの名無しさん:2006/02/25(土) 03:23:02
>>486
(1) フォームにチェックボックスを一つ置く
(2) その下にTPanelを置く
(3) 実行する
(4) チェックボックスにフォーカスがある状態で、↓キーを押すとあら不思議
495デフォルトの名無しさん:2006/02/25(土) 03:39:01
下と言うのはY座標上の下って事ね。
フォーカス移っちゃうね。
496デフォルトの名無しさん:2006/02/25(土) 09:14:02
コンパイル中に

スタックオーバーフロー、Delphiを再起動して下さい。

とでてコンパイルできません。再起動しても同じエラーが出ます。
どのような問題があると思われますか?
497デフォルトの名無しさん:2006/02/25(土) 09:57:32
IDE,コンパイラのバグ
パッチあてたか?
498デフォルトの名無しさん:2006/02/25(土) 16:28:09
>スタックオーバーフロー

プロジェクトグループにパッケージが含まれているなら、
構築順序の見直し。非依存のものを先にに構築。

.dcu ファイルの出力ディレクトリの確認。

パッケージのオプション {$IMPLICITBUILD OFF} にする。

それでも無理か?
499496:2006/02/25(土) 22:07:51
>>497
最新のパッチを当てても解決しませんでした。最新verの評価版でコンパイル
しても同様のエラーが出ます。

>>498
複数のパッケージを利用してコンパイルしてますが、それらの構築は問題ない
です。構築順序も特に異常なし。

.dcuの出力ディレクトリはデフォルトのままです。使用するパッケージの
オプションは全て{$IMPLICITBUILD OFF}になってます 。

ソースコードをエラーの出る前まで復元し原因を分析した所、新規に作成
したユニットを別のユニットで参照すると発生しました。コンパイル対象
のプログラムは特異なユニット間の参照を行ってるのでそれが原因かも
しれません。レスで指摘された点を考慮しても解決しませんし、コードの
量もかなり多いので原因を完全にはっきりさせるのは難しいです。とりあ
えず問題の参照を無くせばエラーは発生しないので、適当に回避してこの
問題に対処する事にします。レス有難うございました。
500デフォルトの名無しさん:2006/02/25(土) 22:27:40
delphi7です
プロジェクトに別のプロジェクトのunitを引っ張ってくるのってどうやるんですか?
「ファイル」「開く」で別タグで取り込めるけどコンパイル対象にならないしプロジェクトマネージャーにもぶら下がらない。
それからプロジェクトファイルのないpasだけ開いた後にプロジェクトファイルを登録も出来ないからコンパイルも出来ない。
いろいろやって結局空unitに全部コピーして貼り付け直ししてる・・・いらいらする。
501デフォルトの名無しさん:2006/02/25(土) 22:36:54
プロジェクトに追加、とか無いか?
ライブラリパス通してusesに追加、でもいいけど。
502デフォルトの名無しさん:2006/02/25(土) 22:42:50
>>500
そのプロジェクトのあるディレクトリに、使うファイルをコピーするのはどう?一番簡単な方法。

ファイルがあっちこっちに分散するのが嫌なら、パスを通しておくとか。
パスは
 「ツール(T)」→「環境オプション(O)...」→「ライブラリ」タブ→「ライブラリパス(B)」
で指定できる。(Delphi6の場合)
503500:2006/02/25(土) 23:05:38
「プロジェクトに追加」で出来ました・・・何やってんだ俺。
504デフォルトの名無しさん:2006/02/26(日) 05:04:34
for i:=1 to 10 でi=1ならframe1 i=2ならframe2 を参照するような
処理で今は
if i = 1 then showMessage(frame1.edit1.text);
if i = 2 then showMessage(frame2.edit1.text);
:
:
:
if i = 10 then showMessage(frame10.edit1.text);
とif文を列挙しています。
もっとスマートに書く方法はないでしょうか?
505デフォルトの名無しさん:2006/02/26(日) 05:07:15
findcomponent
506デフォルトの名無しさん:2006/02/26(日) 05:16:56
配列に入れるとかな
TListとか派生クラスに入れるとかな
507デフォルトの名無しさん:2006/02/26(日) 05:25:01
試してないけどこんなので上手くいくかな

for i := 1 to 10 do
begin
 ShowMessage( (FindComponent('frame' + IntToStr(i) ) as TFrame).
           (FindComponent('edit' + IntToStr(i) ) as TEdit).Text)
end;
508デフォルトの名無しさん:2006/02/26(日) 12:02:03
nilチェックぐらいしようぜ
509デフォルトの名無しさん:2006/02/27(月) 00:24:13
レジストリへの書き込みについての質問です。

TRegistryIniFileクラスを使用してHKLMに書き込むにはどうしたらよいのでしょうか?
RegIniFileプロパティからRootKeyを指定することはできるのですが、
TRegIniFileクラスのコンストラクタで、HKCUにキーを生成されてしまいます。
何かうまい方法はないでしょうか?
510デフォルトの名無しさん:2006/02/27(月) 00:51:07
hoge := TRegistryIniFile.Create('');
511504:2006/02/27(月) 02:20:22
507の方法で試したみたけど
TFrame). から後ろのEDITが未知の識別しってエラーにまりました。

とりあえずframeを辞めて直でeditを貼り付けて
やってみようと思います。

レスありがとうございました。
512504:2006/02/27(月) 02:38:30
507の方法で試したみたけど
TFrame). から後ろのEDITが未知の識別しってエラーにまりました。

とりあえずframeを辞めて直でeditを貼り付けて
やってみようと思います。

レスありがとうございました。
513デフォルトの名無しさん:2006/02/27(月) 04:06:59
このプログラムがうまく動きません
ttp://forum.nifty.com/fdelphi/samples/01470.html

-----------------------------------------------
try
// URLは適当につくった文字列
IdHTTP1.Head('http://www.addr.com/testfile.txt');
ProgressBar1.Max := IdHTTP1.Response.ContentLength;
IdHTTP1.Get('http://www.addr.com/testfile.txt',Strm);//←---------ここで止まる
finally
Strm.Free;
end;
------------------------------------------------

どうすればいいか教えてください。
514509:2006/02/27(月) 07:54:20
>>510
FileNameはインスタンス生成後に変更することができないので、
それだと結局使えません。。。
515デフォルトの名無しさん:2006/02/27(月) 08:34:15
質問させてください
HINT表示を複数行表示にするにはどうすればいいですか
よろしくおねがいします
516デフォルトの名無しさん:2006/02/27(月) 08:42:06
>>515
改行入れてみれば?
517515:2006/02/27(月) 09:00:12
\n入れてみましたけど無理でした
518デフォルトの名無しさん:2006/02/27(月) 09:11:50
オブジェクトインスペクタでは設定できないよ

フォームのOnCreateイベントで
Edit1.Hint := 'hoge' + #13#10 + 'hoge'などと書くか
あるいはdfmファイルに直接書いちゃうか
519515:2006/02/27(月) 09:25:41
>>518
出来ました
ありがとうございます
本当に助かったですw
520デフォルトの名無しさん:2006/02/27(月) 14:24:39
>>513
Strm := TFileStream.Create('D:\test\testfile.txt', fmOpenRead or fmShareDenyWrite);
が抜けてるよ?
IdHTTP.Getってアドレス先の内容をStreamに保存するんじゃないのかな。
521デフォルトの名無しさん:2006/02/27(月) 14:58:38
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
if Form2.Visible then SetForegroundWindow(Form2.Handle);
end;

Form1で作業中もForm2が手前に表示されて、でもForm1で作業続ける見たいな、
メモ帳の検索ウィンドウ見たにしたくて考えてやってるんだけど、
どうにかなりませんかね?
522デフォルトの名無しさん:2006/02/27(月) 15:02:26
Form2のFormStyle弄れ
523デフォルトの名無しさん:2006/02/27(月) 15:14:58
オブジェクトインスペクタでForm2のFormStyleをfsStayOnTopに
524デフォルトの名無しさん:2006/02/27(月) 15:16:27
TIdHTTPServerですが、OnCommandGetイベントの引数、
TIdContextは、何をUsesすればいいのでしょうか。

D2005です。
525デフォルトの名無しさん:2006/02/27(月) 15:24:43
>>520
レスありがとうございます
レスするときに省いただけでソースには入ってました
改めて、ひととおり貼り付けておきます
------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
Strm := TFileStream.Create('C:\test\testfile.txt',fmOpenRead or fmShareDenyWrite); //ここのパスを変えた
try
IdHTTP1.Head('http://pc8.2ch.net/tech/subject.txt'); //ここのURLを変えた
ProgressBar1.Max := IdHTTP1.Response.ContentLength;
IdHTTP1.Get('http://pc8.2ch.net/tech/subject.txt',Strm); //ここのURLを変えた ここでとまる
finally
Strm.Free;
end;
end;
--------------------------------------------------------------

ちなみにこんな感じで、subject.txtをとってきてhogeに入れることは出来るんです
--------------------------------------------------------------
var hoge : AnsiString ;

hoge := IdHTTP1.Get('http://pc8.2ch.net/tech/subject.txt');
ShowMessage(hoge);
--------------------------------------------------------------

メモリ上?の変数には書き込めるのに、Strmには書き込めない?
526デフォルトの名無しさん:2006/02/27(月) 15:33:55
まさかfmOpenCreateにしたらおk何ちゅうギャグは勿論ないよな?
527デフォルトの名無しさん:2006/02/27(月) 15:35:09
イカン、間違えた
TFileStreamの引数のfmCreateな
528デフォルトの名無しさん:2006/02/27(月) 15:46:04
>>527
レスありがとうございます
これで出来ました

Strm := TFileStream.Create('C:\test\testfile.txt',fmCreate);

できたはいいけど、fmCreateとかfmOpenReadとか
よくわかってないんで勉強してきます

ありがとうございました
529デフォルトの名無しさん:2006/02/27(月) 17:16:01
パネルのキャプションやステータスバーのパネルにファイル名をフルパスで表示する際、
ファイル名が長い時に、ファイル名を表示領域に合わせて途中を省略する方法があったと思って
探してるのですが見つかりません。ご存知の方教えてくだされ。
530デフォルトの名無しさん:2006/02/27(月) 17:23:33
>>529
ttp://homepage1.nifty.com/cosmic/ のTShadowLabelはどうか
531デフォルトの名無しさん:2006/02/27(月) 17:53:12
>>529
MinimizeName
PathCompactPath
532529:2006/02/27(月) 18:01:05
>>531
超サンクス!
PathCompactPathまでは見つけたのですが、MinimizeNameが見つけられませんでした。
533デフォルトの名無しさん:2006/02/27(月) 22:08:26
ListViewでonClickなんかに処理書いてて
クリックされた行にデータがない場合に落ちてしまうのを回避するうまい手段を教えて下さい
534デフォルトの名無しさん:2006/02/27(月) 22:13:09
何がしたいのか分からんがとりあえず例外捕まえとけ
535デフォルトの名無しさん:2006/02/27(月) 22:15:24
onClickの中に下の1文書いとけ
意味はヘルプで調べておくんだぞ

if Listview1.ItemIndex = -1 then
 exit;
536533:2006/02/27(月) 22:21:39
>>534,535
ありがとうございました。
537デフォルトの名無しさん:2006/02/28(火) 00:40:50
集合型の変数が要素をいくつ含んでいるか数えるには
ループつかって一個一個 in で数えていくしかないですか?
538デフォルトの名無しさん:2006/02/28(火) 00:43:01
ないです。
539537:2006/02/28(火) 00:44:21
ありがとう。でも残念(´・ω・`)ショボーン
540デフォルトの名無しさん:2006/02/28(火) 01:03:39
>>537
集合型変数の内部構造が知りたい/数値として処理したい。
ttp://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=41#0277.txt
541537:2006/02/28(火) 01:30:32
>>540
ありがとう。
K&Rの高速なbitcountとか初めて利用できそうな感じで嬉しげです。
542デフォルトの名無しさん:2006/02/28(火) 16:20:06
質問いいですか
フォームの1番左上にあるXボタン(押すと閉じるやつ)を
表示させない、又は反応しなくする事は出来ますか
解かる方お願いします
543デフォルトの名無しさん:2006/02/28(火) 16:22:32
>>542
h_Menu : HMenu;

h_Menu := GetSystemMenu(Handle, False);
DeleteMenu(h_Menu, 6, MF_BYPOSITION);
DrawMenuBar(Handle);
544デフォルトの名無しさん:2006/02/28(火) 16:33:06
InsertMenuItemとかってDelphiのTMenuItemのハンドル登録してもちゃんと動く?
545デフォルトの名無しさん:2006/02/28(火) 16:37:17
>>543
出来ました
ありがとうございます
凄く嬉しいです、感謝してますw
546デフォルトの名無しさん:2006/02/28(火) 16:38:20
>>545
お前>>515だろ
547デフォルトの名無しさん:2006/02/28(火) 16:45:16
お礼にwをつけるのはナウなヤングの間で流行ってんだぞ!
548545:2006/02/28(火) 16:47:46
>>546
ばれちゃった
どうして解かったのw
549デフォルトの名無しさん:2006/02/28(火) 17:12:22
バイナリファイルを二つ読み込んで、それぞれ内容を書き換えた後に
一つに繋げてファイルに保存したいです
どんな関数(クラス)を使えばいいですか?
まだファイル操作はTMemoのSaveToFileぐらいしかわかりませんorz
550デフォルトの名無しさん:2006/02/28(火) 17:16:18
TFileStream
551デフォルトの名無しさん:2006/02/28(火) 17:18:02
Streamで出来そうだが、TMemoのSaveToFileしか理解していないのでは苦しいだろうな
552デフォルトの名無しさん:2006/02/28(火) 17:25:15
ストリームってアレですか?
ネビュラストr
553デフォルトの名無しさん:2006/02/28(火) 17:32:04
>>550
似たような機能が多くてどのメソッドを使うべきなのか迷いますが
まさに探していたクラスです。ありがとうございます。

>>551
今から猛勉強です。Streamと名前の付くクラスがたくさんあったので
便乗して覚えておきます。

>>552
私も好きなキャラはアンドロメダ瞬でした

本当にありがとうございました。
554デフォルトの名無しさん:2006/02/28(火) 17:44:42
DelWikiに逆引きが欲しい
555デフォルトの名無しさん:2006/02/28(火) 19:01:13
>>554
よろしく。
556デフォルトの名無しさん:2006/02/28(火) 22:55:45
7のIDEで、プロシージャの一覧って無かったでしたっけ?
プロシージャの並べ替えとか区切りとかの表示も出来ないんですか?
557デフォルトの名無しさん:2006/03/01(水) 01:52:36
・・質問です

var
F : TFileStream;
S : string;
begin
F := TFileStream.Create('text.txt',fmOpenRead);

・・このような
TFileStreamであるFの中身を、
string型の変数Sに、代入するには、
どうすればいいのですか?
すみません・・教えてくださいm(_ _)m
558デフォルトの名無しさん:2006/03/01(水) 01:57:00
TStringStream
559デフォルトの名無しさん:2006/03/01(水) 01:58:22
>>556
コードエクスプローラーはCtrl+Shift+Eだったっけ?
それ以上はGExpert
560デフォルトの名無しさん:2006/03/01(水) 02:13:22
>>557
変数に
Size: Integer;
を追加して、
Size := F.Size - F.Position;
SetString(S, nil, Size);
F.Read(Pointer(S)^, Size);

561デフォルトの名無しさん:2006/03/01(水) 02:18:34
>>558
>>560
全然試していたことと違いました;
凄く感謝しますm(_ _)m
562デフォルトの名無しさん:2006/03/01(水) 04:53:46
質問いいですか

var
BT: TBitmap;
ListItem: TListItem;
FT: Textfile;

BT := TBitmap.Create;
BT.LoadFromFile('111.bmp');
ImageList1.add(BT,nil);
BT.Free;
ListItem := ListView1.Items.Add;

ListViewとImageListに画像を読み込む前は

AssignFile(FT,'222.INI');
rewrite(FT);
writeln(FT,Form1.Top);
closefile(FT);

でちゃんと書き込めるんですけど、画像をび込むと書き込めなくなるんです
と言うか 222.INI 自体作ってくれなくなります
解かる方お願いします
563562:2006/03/01(水) 06:09:10
すいません、自分の間違いでした
開いたファイルのフォルダにちゃんと有りました
564509:2006/03/01(水) 08:58:11
どうも無理そうなので、TCustumIniFileを継承してTRegIniFileに委譲するクラスを作って回避しました。抽象メソッドしか実装しなかったので結構楽でした。

しかし、TRegistryIniFileの実装は不可解ですね。TRegIniFileで実装している処理を再実装してたりするし。
565556:2006/03/01(水) 12:34:21
>>559
HELPにバージョンにより云々と書いてある・・・orz
566デフォルトの名無しさん:2006/03/01(水) 14:46:12
Timageコンポーネントに表示した画像をクリアーする方法って
Form1.Image1.Free;
で良いんですか、試したら次に表示する事が出来ないんです
Form7.Image1.Canvas.Free;
これだとエラーが出ます、教えてください
567デフォルトの名無しさん:2006/03/01(水) 14:52:08
>>566
Image1.Picture.Assign(nil);
568デフォルトの名無しさん:2006/03/01(水) 14:54:37
Form1.Image1.Picture := nil;

むやみにFreeすると天罰が下ります
569566:2006/03/01(水) 15:00:04
>>567
>>568
出来ましたありがとうございます
どちらかと言うと Form1.Image1.Picture := nil; の方が良いんですね
感謝していますw
570デフォルトの名無しさん:2006/03/01(水) 15:09:39
またお前か
571デフォルトの名無しさん:2006/03/01(水) 15:31:01
>>569
消えろ
572デフォルトの名無しさん:2006/03/01(水) 21:21:36
意味もなく準コテハン叩くな
573デフォルトの名無しさん:2006/03/01(水) 22:45:32
TListViewのカラムはCustomDrawできないの?

Explorerのカラムみたいに、ソート順を表す
淡い三角形を描きたいんだけど...

574デフォルトの名無しさん:2006/03/01(水) 23:23:52
575デフォルトの名無しさん:2006/03/02(木) 00:31:25
自前で書かなくてもできる方法があったと思うんだけど、どこで解説してたか忘れたorz
外国のサイトだったと思うんだけど、どなたかご存知ありません?
576デフォルトの名無しさん:2006/03/02(木) 00:35:41
コピペも面倒なんか?
577573:2006/03/02(木) 00:39:52
>>574
素早い回答、ホントにありがと。
578デフォルトの名無しさん:2006/03/02(木) 00:40:37
せっかく探してきてくれた人に礼も言わずに無視かよ
579デフォルトの名無しさん:2006/03/02(木) 00:41:17
おっと、はずれだった
580デフォルトの名無しさん:2006/03/02(木) 00:41:46
>>575
HDF_SORTUP/HDF_SORTDOWNかな?
581デフォルトの名無しさん:2006/03/02(木) 00:48:19
>>580
あー、それですそれ。どうもです。
確かコモンコントロールのバージョンの関係上XP以降のみでしたっけ。
ちなみに573≠575ですんで。
582デフォルトの名無しさん:2006/03/02(木) 14:08:00
コードの中からListViewの行を選択したいのですが良い方法ないでしょうか
自分で色変えてみたりしたのですがスクロールバーが動かせないorz
クリックした時と同じように色が反転してListView1.selectedから拾えると嬉しいのですが・・・。
583デフォルトの名無しさん:2006/03/02(木) 14:10:57
ListView1.ItemIndex := 任意の行数
ListView1.SetForcus;
584デフォルトの名無しさん:2006/03/02(木) 14:20:09
ListView1.Items[Pred(gyou)].Selected:= True;
585デフォルトの名無しさん:2006/03/02(木) 14:48:49
>>582
ListView1.ClearSelection;
ListView1.Items[XX].Selected:=True;
ListView1.Items[XX].Focused:=True;
ListView.MakeVisible(XX,False);
586585:2006/03/02(木) 15:03:10
>>582
間違えた・・・
ListView1.ClearSelection;
ListView1.Items[XX].Selected:=True;
ListView1.Items[XX].Focused:=True;
ListView.Items[XX].MakeVisible(False);
587582:2006/03/02(木) 15:18:20
>>583-586
思い通りに動くようになりました。
助かりました、ありがとうございました。
588デフォルトの名無しさん:2006/03/02(木) 16:40:46
TTimerイベント内でループを回して重い処理をしてるのですが
タイマーイベントを抜けるまでCPU使用率が100%近くになってしまいます。
どうすればよいのでしょうか?

procedure TForm1.Timer1Timer(Sender: TObject);
var
 i: Integer;
begin
 Timer1.Enabled := False;

 for i := 0 to 100 do
 begin
  //重い処理
  //Application.ProcessMessageやSleep入れてもダメでした
 end;

 Timer1.Enabled := True;
end;
589デフォルトの名無しさん:2006/03/02(木) 16:43:18
つ TApplication.ProcessMessages
590デフォルトの名無しさん:2006/03/02(木) 16:44:43
ProcessMessages がダメなら、

TApplication.OnIdle イベントでどうだ?
591デフォルトの名無しさん:2006/03/02(木) 16:46:45
>>588
ProcessMessagesやSleepは別に重たい処理を軽くしてくれるわけではない。
重たい処理は重たい処理のまま。
592デフォルトの名無しさん:2006/03/02(木) 16:53:42
重たい処理で時間がかかるのはいいとしても
Application.ProcessMessagesを入れてループ中も
他のイベントに応答出来る様にしたり
Sleepを入れてスレッドの処理を止めて他に制御を渡してるのに
使用率が100%のままになってしまうのがわかりません
593デフォルトの名無しさん:2006/03/02(木) 16:57:47
Sleep(0)とかやってるならどこでも寝ないから100%使うし
Application.ProcessMessagesもメッセージを処理しまくるからやはり100%使う。
寝たいならSleep(1)にしとけ
594デフォルトの名無しさん:2006/03/02(木) 16:58:24
>>592
そりゃ、ProcessMessagesでWinに制御を返しても、
Winのタスクリスト(登録されてるコールバック関数)で他処理が終ったら、
アプリに制御戻ってくるんだから100%だお。
595デフォルトの名無しさん:2006/03/02(木) 16:59:05
>>935
Sleepすると自アプリは寝ると思うお。
596デフォルトの名無しさん:2006/03/02(木) 17:09:36
つか100%になったら困るのか?
困るなら別スレッドに汁。
597デフォルトの名無しさん:2006/03/02(木) 17:20:29
スレッド関係ないだろ
598デフォルトの名無しさん:2006/03/02(木) 17:32:55
OnTimer で Application.ProcessMessages よんだら再入しまくりだろうなぁ
599デフォルトの名無しさん:2006/03/02(木) 17:33:52
いや Timer1.Enabled := False; でだいじょうぶ
600588:2006/03/02(木) 17:45:27
原因はリンクしている別のDLLでした
そのDLLを外したらCPU使用率が下がりました

CPU使用率が100%でも別に問題はないのですが
最近のPCはCPU使用率が上がると
CPUファンがウィーンと鳴り出すのでそれが気に食わなかったのです
あと、スレッドはローカルデータベース処理なのでメリットがないこと
そもそもDAO経由なので使えないです・・・

とりあえずそのDLLを作ったボンクラを叩きのめしておきました
回答してくださった皆様、申し訳ありません
601デフォルトの名無しさん:2006/03/02(木) 17:48:11
ボンクラカワイソス
602デフォルトの名無しさん:2006/03/02(木) 18:31:31
リンクしただけで100%行くDLLってどんなん
603デフォルトの名無しさん:2006/03/02(木) 18:33:20
ビジーループなスレッドでも建ててたんじゃね?
604デフォルトの名無しさん:2006/03/02(木) 22:12:22
教えてください。

TTreeViewで、ノード作成時に、子ノードの有無に関係なく
HasChildrenをtrueにしてノードの左に[+]を表示させています。

で、[+]をクリックした段階で、(もしあれば)子ノードを追加
しようと思っているのですが、この[+]のクリックに対応した
イベントが分かりません。

どのイベントを使うといいのでしょうか?
605デフォルトの名無しさん:2006/03/02(木) 22:30:06
>>604
OnExpanding
606デフォルトの名無しさん:2006/03/02(木) 22:40:28
152 :  :2006/03/01(水) 06:16:00 HOST:ed251.opt2.point.ne.jp
削除対象アドレス:
 http://pc8.2ch.net/test/read.cgi/tech/1138370150/
 http://pc8.2ch.net/test/read.cgi/tech/1132756268/
 http://pc8.2ch.net/test/read.cgi/tech/1132013685/
削除理由・詳細・その他:
 6. 連続投稿・重複
607デフォルトの名無しさん:2006/03/02(木) 23:13:39
設定ファイルを読み込むにはどうしたら良いでしょうか。

例えばhoge.txtというファイルに

age = "17"
name = "hoge"

とあるとしたらEditAgeに17、EditNameにhogeを読み込みたいです。
608デフォルトの名無しさん:2006/03/02(木) 23:25:13
INIファイル、TInifileクラスを使え。
というのは置いといて

function removedq(s: string): string;
begin
result := copy(s, 2, length(s)-2);
end;

var sl: TStringList;
begin
sl := TStringList.Create;
sl.LoadFromFile('hoge.txt');
ShowMessage(removedq(sl.Values['age'])+':'+removedq(sl.Values['name']));
""は
609デフォルトの名無しさん:2006/03/02(木) 23:25:21
Iniファイル形式にしてTIniFileクラス
AssignFileしてベタにReadlnで取得する
何でも出来るTFileStreamクラス
610デフォルトの名無しさん:2006/03/02(木) 23:27:16
かぶった

TStringListが一番楽でよさげだね
注意すべき点としてはデカいファイルだと
メモリ食いつぶす可能性があることぐらいか
611607:2006/03/02(木) 23:39:33
>>608-609
助かりました。ありがとうございました。
612604:2006/03/03(金) 01:12:54
>>605
ありがとうございます。
早速やってみます。
613デフォルトの名無しさん:2006/03/03(金) 02:56:38
ボーランドに見捨てたらた言語はあきらめて、未来永劫安泰なVBに
移行したお
614デフォルトの名無しさん:2006/03/03(金) 03:02:05
おいおい、ド素人どもが

Iniを扱うのは普通APIだろうが

GetPrivateProfileString、WritePrivateProfileStringだよ
615デフォルトの名無しさん:2006/03/03(金) 04:28:14
TIniFileは多分そのAPIのラッパーだろ
616デフォルトの名無しさん:2006/03/03(金) 08:07:00
WritePrivateProfileString等はNT系だとやたら遅いから、
そのラッパーであるTIniFileも使わない方がいいよ。
代わりにTMemIniFileを使用する。
617デフォルトの名無しさん:2006/03/03(金) 08:18:22
でも微妙に挙動が違う罠があるから注意だ!
618デフォルトの名無しさん:2006/03/03(金) 09:02:58
TMemIniFileがあるのにTIniFileを使う意味が分からない。
TMemIniFileなら64KB制限もないからいいよ!
619デフォルトの名無しさん:2006/03/03(金) 09:47:09
方法は1個に統一してくんねーかな
620デフォルトの名無しさん:2006/03/03(金) 10:44:29
INIファイルに64kb以上書き込むような超上級者の超高度な議論は他所でやってくれ
621デフォルトの名無しさん:2006/03/03(金) 12:02:36
64KB制限関係なしにTMemIniFile推奨だな
622デフォルトの名無しさん:2006/03/03(金) 14:37:26
TMemIniFileは適当に整形もしてくれるんだよね
だからオレも64kb関係なしでTMemIniFileを推すな
ただTIniFileと違ってUpdateFileが必要な点が要注意だ
623デフォルトの名無しさん:2006/03/03(金) 14:52:16
EXEファイルやDLLファイルのバージョンを調べる関数みたいなものはありませんでしょうか?
宜しくお願いします。
624デフォルトの名無しさん:2006/03/03(金) 15:01:12
VerQueryValueでググレ
625デフォルトの名無しさん:2006/03/03(金) 15:57:51
626デフォルトの名無しさん:2006/03/03(金) 16:00:48
↑これで愛着のあったDelphiに見切りをつけてVB.NETに完全移行する決心が付いたよ。
せいせいした。
627デフォルトの名無しさん:2006/03/03(金) 16:05:19
買い手が無かったことに安心するほどの馬鹿がいるスレですか、ここ?
628デフォルトの名無しさん:2006/03/03(金) 16:24:32
626=627=もう必死杉。
   ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄   ハライテ-       ゲラゲラ
   ( ´∀`) < わははは         ∧_∧       〃´⌒ヽ       モウ カンベン
.  ( つ ⊂ )  \_______   (´∀` ,,)、      ( _ ;)        シテクダサイ
   .)  ) )   ○   ∧_∧      ,, へ,, へ⊂),     _(∨ ∨ )_     ∧_∧ ○,
  (__)_)  ⊂ ´⌒つ´∀`)つ    (_(__)_丿      し ̄ ̄し     ⊂(´∀`⊂ ⌒ヽつ
          タッテ ラレネーヨ
629デフォルトの名無しさん:2006/03/03(金) 17:31:17
>>625
JBuilderは,よりシンプルにJavaプログラミングができるツールとして
クライアントサイド,サーバーサイドともにサポートを続けていく。
「Peloton」というコード名で開発している次期版はJBuilderの使い勝手を
Eclipse上に実現したものになる。

これって何気にスゴス
630デフォルトの名無しさん:2006/03/03(金) 17:49:01
JBuilderってとにかく重いっていうイメージしかないんだが、今は違うの?
631デフォルトの名無しさん:2006/03/03(金) 17:53:32
ジャバコさん談義はすれ違い
632デフォルトの名無しさん:2006/03/03(金) 18:41:03
すみません教えてください。
TMotorMoveEx2=record
MortorNo:Integer;
ABSorINC:Boolean;
Kakudo:Single;
MotorSpeedSelect:Integer;
MotorSpeed:Integer;
WaitMotorStop:Integer;
Direction:Integer;
end;

この型をdelphi5でsozeof(TMotorMoveEx2)とやると28
になりますが、BDS2006で同じようにやると25になります。

Integer 4byte
Single 4byte
Boolean 1byte

というのは 5でも2006でも同じなんですが
rcordにBoolean型が入るとどうも不思議な3バイトが
Ver.5では追加されるようなんですけど
ご存知の方いらっしゃいますか?
633デフォルトの名無しさん:2006/03/03(金) 18:48:30
ウルトラ初心者なんですが、

あるプログラムを読み込んだときに全て文字化けしてるのですが、これは一体どういうわけでしょうか?
634デフォルトの名無しさん:2006/03/03(金) 19:18:54
>>632
ヒント:packed
635デフォルトの名無しさん:2006/03/03(金) 19:19:54
「買い手がつかなかった」事実をいろいろ言い換えたり、言い訳したり、もうたいへん・・・


   ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄   ハライテ-       ゲラゲラ
   ( ´∀`) < わははは         ∧_∧       〃´⌒ヽ       モウ カンベン
.  ( つ ⊂ )  \_______   (´∀` ,,)、      ( _ ;)        シテクダサイ
   .)  ) )   ○   ∧_∧      ,, へ,, へ⊂),     _(∨ ∨ )_     ∧_∧ ○,
  (__)_)  ⊂ ´⌒つ´∀`)つ    (_(__)_丿      し ̄ ̄し     ⊂(´∀`⊂ ⌒ヽつ
          タッテ ラレネーヨ
636デフォルトの名無しさん:2006/03/03(金) 19:23:49
632です。
>>634
ありがとうございます。

自力でコンパイラ指令の項を探していて見つたところでした。
書き込む前に自力でまず探せと。
del5がデフォルトで{$A4}で2006が{$A1}なわけですね。
637デフォルトの名無しさん:2006/03/03(金) 19:24:40
>>632
2006でもデフォルトでは28になるはずだけど、
{$A-}使ってる?
638デフォルトの名無しさん:2006/03/03(金) 19:42:30
>>637
コードに{$A-}と書いておくしかアライメントを制御する方法があるんですか?
コードに{$A-}とは書いていないので2006のデフォルトかと思いました。
今まで、Delphi5でコンパイルしていたものを2006でコンパイルしたら
おかしかったのでコードはいじってないので2006のデフォルトかと・・・。

たしかに2006で新規プロジェクトでこのrecord型のサイズを調べると28になってました。

639デフォルトの名無しさん:2006/03/03(金) 19:49:45
>>638
プロジェクトオプションのコンパイルページにある構造体データの配置はどうなってる?
640デフォルトの名無しさん:2006/03/03(金) 20:00:36
>>633
ようわからん。
もっと詳しく。
641デフォルトの名無しさん:2006/03/03(金) 23:20:47
>>633
バイナリだから。
642デフォルトの名無しさん:2006/03/03(金) 23:34:26
すみません質問させてください

1)ボタンを押す→重たい処理をする(5〜10秒かかる)→結果表示
この流れの中で重たい処理をしてる最中にボタンをもう一回押すとエラーが出てしまいます。
そこで、処理に入ったら入力を受け付けなくしたいんですが、どうやればいいのかわかりません。
簡単に言うと、ボタンの連打を禁止したいんです。

2)WINAMP等のように画面の隅にドッキングさせるのはどうすればいいのでしょうか?
調べるためのヒントかキーワードでも教えていただきたいです。

よろしくお願いします。

643デフォルトの名無しさん:2006/03/03(金) 23:38:13
Button1.Enabled := false;

じゃダメなん?
644デフォルトの名無しさん:2006/03/03(金) 23:42:06
よく聞けクソ虫。
1)ボタンが押された瞬間にボタンのEnabledをFalseにしろ

2)ドッキングなんて機能は実装されていない。見せ掛けでそのように見せているだけ。
 ウインドウの大きさや位置を監視して、
 端に近づいたら端にくっついたように見えるようLeft,Topを調節。
645デフォルトの名無しさん:2006/03/03(金) 23:51:44
>>643
>>644
レスどうもです

1)は解決しました
2)は>>644のレスを参考にやってみます

ありがとうございました
646デフォルトの名無しさん:2006/03/04(土) 00:01:03
スクリーンの隅に吸い付くようにするのは、FormのScreenSnapプロパティでできるよ。
647デフォルトの名無しさん:2006/03/04(土) 00:17:15
Del6にはないなそのプロパティは
648デフォルトの名無しさん:2006/03/04(土) 00:22:34
>>646
レスどうもです

delphi6では、そのプロパティは確認できませんでした
まあ、いろいろ試してみようと思います

改めてありがとうございました
649デフォルトの名無しさん:2006/03/04(土) 08:29:21
>>639
構造体の境界配置という項目がコンパイラの設定の箇所に在ったことに
気が付きませんでした。ありがとうございます。
delphi5のでは構造体を境界配置にチェックが入っているプロジェクトを
2006で読み込むと構造体データの配置が1({$A-})になるんですね。
勉強になりました。
650デフォルトの名無しさん:2006/03/04(土) 10:39:16
popupmenuでmenuItemを7つ以上作ると実行時エラーでるんですが
仕様ですか?

del7で製作してます。
651デフォルトの名無しさん:2006/03/04(土) 10:47:51
完全な新規プロジェクトでやっても出るか?
652650:2006/03/04(土) 10:52:12
>>651
新規だと問題ないです。

七つ目を消すと無事動作します。
別にpopupmenuを作ってmenuitemを作ってもエラーがでます。
653デフォルトの名無しさん:2006/03/04(土) 11:04:48
新規で無問題ならおまいのプロジェクトに問題があると思うんだが
654デフォルトの名無しさん:2006/03/04(土) 12:20:13
そんな深い階層のメニュー自体に問題が有るような気が。
リソースの使いすぎかもしれん。
655654:2006/03/04(土) 12:25:35
勘違いorz
656デフォルトの名無しさん:2006/03/04(土) 13:13:52
>>646
Del7にはあった。いいこと聞いた。
657652:2006/03/04(土) 16:03:08
なるほどプロジェクトが問題なのですか
ん〜〜ん、

どうやって解決すればいいですか?
658デフォルトの名無しさん:2006/03/04(土) 16:51:59
>>657
一から作り直す
659デフォルトの名無しさん:2006/03/04(土) 17:03:13
エラーの内容くらい欠け
660デフォルトの名無しさん:2006/03/04(土) 17:05:04
どうせアクセス違反だろ
661657:2006/03/04(土) 18:05:23
エラー内容です。
ttp://bbs1.whocares.jp/bb/limg.jsp?bbn=piece&ccid=255&tp=jpg
 
作りなおしはキッツイなぁw
662デフォルトの名無しさん:2006/03/04(土) 18:08:57
関係ありそうなところ少しずつ削っていって原因を特定しろ
663デフォルトの名無しさん:2006/03/04(土) 18:35:23
>>661
[検索(S)] → [エラーの検索(E...)] で出てくるコンボボックスみたいなやつに
そのエラーのアドレス($00449669)を入れてみるとか。
664デフォルトの名無しさん:2006/03/04(土) 19:22:42
何をしたときにエラーになるのかくらい賭け
665デフォルトの名無しさん:2006/03/04(土) 19:24:50
解決する気があるとは思えない
666デフォルトの名無しさん:2006/03/04(土) 19:25:56
666
667デフォルトの名無しさん:2006/03/04(土) 19:49:46
関係ないがわざわざキャプチャしなくても、普通のダイアログならCtrl+Cでテキストをコピーできる。
668デフォルトの名無しさん:2006/03/04(土) 22:59:07
>>661
お前はまずもうちょっと基礎知識増やして来い
669デフォルトの名無しさん:2006/03/04(土) 23:24:06
素人に毛の生えたやつほど、先輩面したがる。
670デフォルトの名無しさん:2006/03/04(土) 23:30:48
デバッガでどこまで追ってみたとか書いてもらわないと
671デフォルトの名無しさん:2006/03/04(土) 23:35:35
>>669
お前とかな
672デフォルトの名無しさん:2006/03/04(土) 23:37:45
vipperは巣に戻れ。その為に隔離スレをわざわざム板に立てたんだろ。
673661:2006/03/05(日) 04:33:33
なんか皆さん荒れ気味ですねw

ところでpopupmenuとは、まったく関係ない処理
ある構造体の変数に値を入れている処理をコメント化したら
なぜか直りました。(エラーが出なくなりました。)
一応報告までに

674デフォルトの名無しさん:2006/03/05(日) 04:36:21
675デフォルトの名無しさん:2006/03/05(日) 06:06:29
676デフォルトの名無しさん:2006/03/05(日) 12:23:32
>>673 報告になってない
677デフォルトの名無しさん:2006/03/05(日) 14:01:54
>作りなおしはキッツイなぁw
>なんか皆さん荒れ気味ですねw

どっちも笑うところじゃない
678デフォルトの名無しさん:2006/03/05(日) 14:49:24
Edit1で何も入力されなかった時にbuttonを押されるとエラーを出す処理を書きたいのですが、
良い講座が見つかりません。
ヒントを教えてもらえますか?
679デフォルトの名無しさん:2006/03/05(日) 14:52:54
sage忘れ申し訳ないです
680デフォルトの名無しさん:2006/03/05(日) 14:53:27
エラーって何だ?
ダイアログとかで「何か書けよ」とか表示したいのか?
それとも例外吐いて落ちて欲しいのか?
もっと具体的に書け
681デフォルトの名無しさん:2006/03/05(日) 15:06:01
>678

procedure TForm1.Button1Click(Sender:TObject)
begin

  if Edit1.Text="" then
  begin
    //エラーを出す処理
    break;
  end;

  //残りの処理

end;
682デフォルトの名無しさん:2006/03/05(日) 15:10:34
>>680
Edit1とEdit2が配置してあり、
Edit1もしくはEdit2のテキストに何も入力がなされていなかった場合にbutton1を押されると、
エラーダイアログを出す、という感じです。
何か入力がされていればそのまま、、、といった感じです。
683デフォルトの名無しさん:2006/03/05(日) 15:23:52
>>682
結局エラーダイアログなるものが意味不明だが、
要はShowMessageでおkということなのか?

procedure TForm1.button1Click(Sender: TObject)
begin
 if Length(Edit1.Text) = 0 then
  ShowMessage('何か書け');
end;

あと681の例だとbreakのとこをExitに変えないとコンパイル出来ないはずだな
684681:2006/03/05(日) 15:34:27
スイマセン他の言語と勘違いorz
685デフォルトの名無しさん:2006/03/05(日) 15:36:48
>>683
具体例を有難うございます!
Edit1.TextとEdit2.Text両方が書かれていない場合にShowMessageの場合だとどうなりますかね?
これは答えたくないのでしたら答えなくてもいいです。本当に有難うございます
686デフォルトの名無しさん:2006/03/05(日) 16:16:19
andで結合すればいい

if (Length(Edit1.Text) = 0) and (Length(Edit2.Text) = 0) then
 ShowMessage('えらー');

括弧が無いと駄目だぞ
687デフォルトの名無しさん:2006/03/05(日) 16:27:22
もしくは

if (Edit1.Text = '') or (Edit2.Text = '') then
 ShowMessage('えらー');

orで囲めば、Edit1が未記入の時点でエラー。Edit1が記入されていてEdit2が未記入でもエラー。両方記入済みでShowMessageは飛ばされる。
ついでにエラーダイアログとはWindowsのアプリでポピュラーなばってんマークの奴かな?
もしそれならAPIのMessageBox関数を調べてみると良い。例外はいて手続きから抜けたい場合はExceptionを調べて見て。

#分かりづらい説明でごめんね。
688デフォルトの名無しさん:2006/03/05(日) 16:42:51
>>677
俺がどこで笑うかは俺が決める。
689デフォルトの名無しさん:2006/03/05(日) 16:57:01
どこでも笑えるしね、あれじゃ
690デフォルトの名無しさん:2006/03/05(日) 18:33:32
ExplorerとのDag&Dropについて教えてください。

Explorerからファイル(名)をDag&Dropする方法や
コンポーネントはいろいろあったんですが、
Explorer方向にDag&Dropする方法ってあるんでしょうか?

基本的には、DropしたExplorer側のフォルダ名が
分かるだけでOKなんですが・・・

よろしくお願いします。
691デフォルトの名無しさん:2006/03/05(日) 18:34:25
おっと・・・DragがDagになってた・・・
692デフォルトの名無しさん:2006/03/05(日) 22:29:30
失礼します。今Delphi6で電卓作ってるんですけど
ユーザーにEditコンポーネントに値を入力させて計算させるスタイルなのですが
入力する段階で¥+カンマ区切り表示させる事は可能ですか?
例えば
10000が
\1,0000
みたいな感じなってくれると良いんですがどうも煮詰まってます。
どなたか分かる方教えてください。
693デフォルトの名無しさん:2006/03/05(日) 22:35:22
MaskEditというものを調べてみれ
694デフォルトの名無しさん:2006/03/05(日) 23:00:39
VCLってデータと表示が直結しすぎていてたまに困る。
TEdit.Textの表示方法をイベントハンドラとかで簡単にカスタマイズできれば
MaskEditなんていらないのに。
695デフォルトの名無しさん:2006/03/05(日) 23:02:05
文句があるなら自分で作れ。
696デフォルトの名無しさん:2006/03/05(日) 23:55:06
>>694
基本の面倒な部分は全部作ったから、
残りの簡単な部分は自分で作れってスタイルがVCL(というかDelphi)だと思うが
697デフォルトの名無しさん:2006/03/06(月) 00:08:48
GUI だけだろ。正規表現もないのに。GUI 以外はサードパーティーだのみ。
698ミ,,゚Д゚彡 ◆A6VzDeLphI :2006/03/06(月) 00:34:40
>>690さん
そっち方向は難しいんですよ。

まつたく、VCLの不出来さをこういう所で嘆くんだよな〜〜。
新生Delphiは、こういうマトモな機能実装に励んでもらいたいよ。
オプソソースのIDE取り込みとかも、励んでやってくれないかしら。

DropSourceってので
検索したらどっかでみつかるかもしれない。

昔、有名なのが
http://www.melander.dk/delphi/dragdrop/
にあったんですが
どこにいったやら,,,DropSource.pas,,,

どうしても欲しかったらメアドさらしてくれたら送ります。
699デフォルトの名無しさん:2006/03/06(月) 00:46:58
700デフォルトの名無しさん:2006/03/06(月) 00:47:14
>>698
ヒント、ありがとうございます。
DropSource.pasで検索かけたら、こんなのが出てきました。

ttp://www.koders.com/delphi/fid970A22F9AF52593DE7976E6A552B30D7B01FC7D9.aspx

たぶん、これですよね。ソースを眺めてみます。自分にできるかどうか・・・
701デフォルトの名無しさん:2006/03/06(月) 00:52:59
>>699
OLE Drag&Dropの勉強になりそうなサイトですね。
COMはむかし一度だけやったことがあるんですが・・・
702692:2006/03/06(月) 03:39:02
マスクエディット使ってみたんですけど
入力された時に右から左に値を入力させる過程で,を出したいんすよね・・。
時系列で表すと
   ←  ←  ←  ←  
10,000 1,000 100 10 1
見たいな感じなんですけどMaskEditでカンマを表現するとなるとやっぱ最初からカンマは見えてなきゃ駄目なんでしょうか?
703デフォルトの名無しさん:2006/03/06(月) 05:46:15
procedure SetMaskInEdit(TargetEdit: TEdit; Value: Integer);
begin
TargetEdit.Text := FormatFloat('\,0', Value);
end;

これじゃーだめ?
704デフォルトの名無しさん:2006/03/06(月) 09:22:29
>>697
すべて1社が用意しろというあなたのそういうとこがビルさんぽくって好きよ
705デフォルトの名無しさん:2006/03/06(月) 09:47:19
そうそう、Delphi はもともとデータベースのフォントエンドだから GUI ビルダー
にすぎないんだ。それを万能のツールにあがめ立てているのがDel厨だね。

GUI部分で楽したいために、ほかの部分で苦労してるんだよな。
706デフォルトの名無しさん:2006/03/06(月) 09:47:50
× フォントエンド
○ フロントエンド
707デフォルトの名無しさん:2006/03/06(月) 09:48:36
せめてスレタイくらい読んで適切なスレに移動するくらいの配慮はないのかね
708692:2006/03/06(月) 10:25:14
>>703
レスサンクスです!そのコードで表現したかった表示は出来たのですが
整数ではありません。で処理が止まっちゃいます。゚(゚´Д`゚)゚。
MaskEditに入力された値をカンマ区切りでMaskEditに返してるから整数扱いされないって事ですよね?
709デフォルトの名無しさん:2006/03/06(月) 11:17:42
>>707 694 からつながってるだろ。くだらない質問にあれこれ言ってなんで移動しなきゃならん?
710デフォルトの名無しさん:2006/03/06(月) 12:36:28
指定したウインドウが別のアプリケーションのウインドウに
覆われている時に、そのウインドウを前面にしたいのですが、
以下のようにしても、タスクバーの領域がオレンジ色に点滅す
るだけでウインドウが前面に移動しないのですが、どうすれば
よいのでしょうか?

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 SetForegroundWindow(Handle);
end;

Windows XPを使っています。
711デフォルトの名無しさん:2006/03/06(月) 12:53:40
インチキ技でよければ
FormStyle = fsStayOnTop;
FormStyle = fsNormal;
712デフォルトの名無しさん:2006/03/06(月) 12:58:23
つか、OLEドラッグ&ドロップ程度で難しいとか不出来とか言われてもな。
713デフォルトの名無しさん:2006/03/06(月) 15:43:39
くだすれレベルなんだからスレの主旨から言えばお前が間違ってる
714デフォルトの名無しさん:2006/03/06(月) 16:48:07
715デフォルトの名無しさん:2006/03/06(月) 18:21:15
Visual Studioで使えるDockstudioXPというかっちょいいツールを見つけたのですが、
http://www.innovasys.net/products/dockstudioxp.asp
こういう感じのコンポーネントってDelphi向けにないですかね?
716デフォルトの名無しさん:2006/03/06(月) 18:28:18
マクロやインライン関数の書き方を教え給え
717デフォルトの名無しさん:2006/03/06(月) 18:42:30
>>698
DropSource.pasつーか、Drag and Drop Component Suiteは
以下の場所でダウンロードできるみたいですよ。

ttp://codecentral.borland.com/Item.aspx?id=14069
718デフォルトの名無しさん:2006/03/06(月) 19:13:23
>>715
リンク先あんまりよくみてないけど、ToolBar2000+TBXみたいなもの?
719デフォルトの名無しさん:2006/03/06(月) 20:26:27
>>715
よく分かんないけど2006ならデフォルトでできる気がする
720デフォルトの名無しさん:2006/03/07(火) 12:23:08
Delphi6使ってるんですけどファイル 編集などのタブを開いた時に文字化けがひどくて読めません。
作ってるソフトが文字化けするのではなくてDelphi自体が文字化けします。
どなたか対処法分かる方いらっしゃいますか?
721デフォルトの名無しさん:2006/03/07(火) 12:28:06
>>720
日本語でおk
722デフォルトの名無しさん:2006/03/07(火) 12:30:55
コンポーネントの使い方とかを説明してるサイトってありますか?
ituneの右側リストウィンドウのようなものを作りたくて、コンポーネント色々試してるんですが、
いまいちどれ使えばいいのかわかりません・・
723720:2006/03/07(火) 12:33:45
>>721
日本語でというとタブ開くとエンコードかなんかの機能があるんですか?
何分文字化けしてて全く読めないのでどこのタブの上から何番目にあるとか教えていただきたい  orz
724デフォルトの名無しさん:2006/03/07(火) 12:35:26
>>723
インスコしなおした方がいいんでは
725デフォルトの名無しさん:2006/03/07(火) 12:38:32
>>723
721の日本語でおkってのは
お前の言ってることが理解出来ないって意味では?
実際俺にも意味がわからない
726デフォルトの名無しさん:2006/03/07(火) 12:50:07
>>722
どんな用途にどんなコンポーネントが適してるかは経験しかない
Demoフォルダ内を片っ端から見て勉強あるのみ
727720:2006/03/07(火) 13:24:21
>>725
わかりにくい表現ですいません。
スクリーンショットだとこんな感じです
ttp://www.imgup.org/iup172995.gif.html
受信パス 123

再インスコしても無理でした。
728デフォルトの名無しさん:2006/03/07(火) 13:37:24
化けるのはDelphiだけか?
てか、そもそもメニューのフォントは日本語を表示出来るのか?
変なスキン適用してるみたいだが、それが勝手にメニューのフォント変えたんじゃないの?
そうでないなら俺にはわからん
729720:2006/03/07(火) 13:41:34
俺もスキンのせいかなと思ったんですがDelphi以外のアプリケーションは
全て正常なんですよね。Delphiで作ったソフトも文字化けしません。
全くの原因不明です・・・。ここ最近変わった出来事と言えば容量不足くらいのものです
解決不可能っぽいならこのまま使おうと思います(´ヘ`;)
スレ汚し失礼しました。
730デフォルトの名無しさん:2006/03/07(火) 13:54:59
・別ユーザー作って試してみる
・パッチあてる。
・再インストール
とりあえずこれくらいか。
731デフォルトの名無しさん:2006/03/07(火) 18:07:57
スキンが原因だろうな おれもむかしなったことある
732デフォルトの名無しさん:2006/03/07(火) 18:11:00
>>729
> 俺もスキンのせいかなと思ったんですがDelphi以外のアプリケーションは
> 全て正常なんですよね。Delphiで作ったソフトも文字化けしません。
Delphiそのものは、TMainMenu(メニューリソース)を直接使っていなくて、
TToolBarか何かを使って、TMainMenuをエミュレーションしていたような希ガス。

[Delphi-ML:35223] Re: IDE と同じ動作のメインメニューの作り方
ttp://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/035/035223.html

それで、Delphi以外のアプリケーションも
 (メニューリソースか、Windows APIのCreateMenu関数を使っている)
Delphiで作ったソフトも
 (TMainMenuを直接使っている)
文字化けしないんじゃないかと。
733デフォルトの名無しさん:2006/03/07(火) 18:14:27
勘違い乙
734ミ,,゚Д゚彡 ◆A6VzDeLphI :2006/03/08(水) 00:27:01
>>715さん

Toolbar2000 - PukiWiki
http://72.14.207.104/search?q=cache:Gz7MPaXMaKsJ:onigiri.s3.xrea.com:8080/delphi/index.php%3FToolbar2000+ToolBar2000+TBX&hl=ja&ct=clnk&cd=3&lr=lang_ja

> rmklever.comというサイトでいくつかの追加テーマや、
> TBX用追加コンポーネントが公開されています。
> Toolbar2000やTBXの実力を確認したい人は、このペー
> ジ左下にある「exe demo」がおすすめ。

TBX themes page
http://www.rmklever.com/delphitbx.html

とのことでーす。

動かしてみたけど、こりゃすごいね。
こういうのをインストール済みとして標準VCLに組み込むのが
なぜできんかったのか,,,


>>719さん
出来るわけないでしょう。
BDS2006で実装はしてるけどユーザーが
開発利用可能なレベルのライブラリは提供されてない。


>>717さん
ありがとう!
735デフォルトの名無しさん:2006/03/08(水) 02:09:29
Toolbar2000/TBXの拡張でこちらもすばらしい・・・
http://club.telepolis.com/silverpointdev/sptbxlib/index.htm
736デフォルトの名無しさん:2006/03/08(水) 07:18:31
>>734
そこまで凄く無いけどTActionMainMenuBarってデフォで入ってんだが…できないと言い切るのはどうしたもんか
737デフォルトの名無しさん:2006/03/08(水) 08:14:33
タブドッキングとかも標準のTDockTabSetでできるね。
738ミ,,゚Д゚彡 ◆A6VzDeLphI :2006/03/08(水) 08:40:09
>>736-737
ああ、そういえば。。。

Delphi 2005 メモなど
http://www.ipentec.com/delphi/delphi2006/docktabset/index.html

Delphi 2005 メモなど
http://www.ipentec.com/delphi/delphi2005/docktabset/index.html

このあたりみて、
『相変わらず使えなさそー』
って思いこんでたかも。

TAction系のツールバードッキングや
ツールバーカスタマイズ....
ちゃんとバグ直ってる?

標準VCLの品質をまるで信じられないってのは、、、
ちょっと心の健康によろしくないよなー
739デフォルトの名無しさん:2006/03/08(水) 08:47:43
>>738
カスタマイズダイアログは日本語化されてない時点でどうかと。。。
740デフォルトの名無しさん:2006/03/08(水) 10:30:30
>Sampleカテゴリからは ShellListView ShellTreeView などがなくなっているようです。
これ便利なのになんで削るんだ
741デフォルトの名無しさん:2006/03/08(水) 12:32:09
>>740
削られたというか、デフォルトではパッケージがインストールされていないだけだよね。
パッケージ入れれば、DelphiはもちろんBCBからも使える。
742デフォルトの名無しさん:2006/03/08(水) 15:47:58
>>738
持ってない人間が勝手に仕入れた知識で断定するのはやめてくれ
743720:2006/03/08(水) 17:41:54
久しぶりです!あれからDelphi6の文字化けに関して試行錯誤した結果を書いておきます。

結論から言えばスキンが原因でした。

再インスコしたり、パッチ当てたり色々しましたが全く効果が無かったので
思い切ってスキンを削除したら解決しました。これに懲りて安易に
スキンとか変更しないように心がけようと思いました。
レスくれた皆さん色々ありがとう。そして同じような問題抱えてる香具師はスキン削除汁
744デフォルトの名無しさん:2006/03/08(水) 17:59:26
思い切ってって…。普通は一番最初に試すよね。。。
745デフォルトの名無しさん:2006/03/08(水) 18:09:30
今までデルフィーと呼んでました
>>1のおかげで読み方を初めて知りました。
本当にありがとうございました
746デフォルトの名無しさん:2006/03/08(水) 18:11:34
Windows Media Playerで再生してる曲の曲名を取得する方法を誰か知りませんか?
747デフォルトの名無しさん:2006/03/08(水) 18:43:26
>>746
スクリーンキャプチャしてOCR
748デフォルトの名無しさん:2006/03/08(水) 18:48:05
ヒント:ウィンドウハンドル
749デフォルトの名無しさん:2006/03/08(水) 19:44:36
>>748
ハンドル検索できればできるの?
750デフォルトの名無しさん:2006/03/08(水) 19:49:30
ここはアホしかいないからWin32APIスレ行って聞いた方がいいよ
751デフォルトの名無しさん:2006/03/08(水) 19:58:00
ボタン1を押すとラベル1にhelloと表示し、ボタン2を押すとラベル2にbyeと表示
するようなソフトを作るとすると、ボタン1を押した時に表示されたラベル1の初期化はどうすればできますか?
ボタン1を押してラベル1に表示されたhelloがボタン2を押した時に消えて
ラベル2のbyeだけ表示させるようにしたいのですが。
752デフォルトの名無しさん:2006/03/08(水) 20:02:18
表示したい時
label1.visible := true;
消したい時
label1.visible := false;
753デフォルトの名無しさん:2006/03/08(水) 20:31:10
Delphiは配列に配列を格納できますか?
754デフォルトの名無しさん:2006/03/08(水) 20:33:40
うん
755デフォルトの名無しさん:2006/03/08(水) 20:34:02
array[0..10, 0..20] of integer
とか
array of array of integer
とできる
756デフォルトの名無しさん:2006/03/08(水) 20:39:02
さんくすこ
757751:2006/03/08(水) 20:56:09
>>752
レスサンクスです!
visibleの存在忘れてました。
このvisibleってif文の中でも使えますか?
例えば
if 条件 then
エラー1を表示
else if
エラー2を表示
else
処理実行

みたいな感じにしたとき最初にエラーを表示させちゃうと処理実行に移行しても
エラーを表示させたラベル1にはずっとメッセージ残っちゃいますよね?
これもvisibleを記述することによって初期化できますか?


758デフォルトの名無しさん:2006/03/08(水) 21:17:01
やってみれ!
759デフォルトの名無しさん:2006/03/08(水) 22:44:37
確かに。
「やり方がわからないから聞く」というのはわかるけど、
やり方を思いついたのならとりあえずやってみりゃいいのに。
760デフォルトの名無しさん:2006/03/08(水) 23:26:54
うっせーばーか
761デフォルトの名無しさん:2006/03/09(木) 02:14:24
>>746
プラグイン食わせるのが確実
MSNメッセンジャーに現在再生中の曲表示する機能があるけど、あれもプラグイン食わせてる
762デフォルトの名無しさん:2006/03/09(木) 08:31:59
俺も死ぬまでに一度はプラグインなるものを食ってみたい
763デフォルトの名無しさん:2006/03/09(木) 12:30:07
>>761
結局SamurizeのWMP用スクリプトに含まれてたプラグインを流用することにしてみた.
764デフォルトの名無しさん:2006/03/09(木) 13:21:34
CPUが故障しているかどうかを調べる方法をお教え下さい。
765デフォルトの名無しさん:2006/03/09(木) 13:29:13
CPUがぶっ壊れていたらそもそもマシンはまともに動きません
766デフォルトの名無しさん:2006/03/09(木) 13:34:09
>>764
PCそのものが全く起動しないかPOSTエラー出て止まると思われ
767デフォルトの名無しさん:2006/03/09(木) 13:34:22
例えば、Superπ を実行すると、へぼいCPUならエラーが出ます。
http://www1.coralnet.or.jp/kusuto/PI/super_pi.html
浮動小数点のエラーらしいのですが、このSuperπがやっていることを
まねると、へぼなCPUを検出できそうなのですが、何をやっているか
資料の公開がありません・・・
どなたか知りませんか〜
768デフォルトの名無しさん:2006/03/09(木) 14:30:14
>>767
どっちかつーたらメモリのデータ化けだろ
769デフォルトの名無しさん:2006/03/09(木) 14:49:24
770デフォルトの名無しさん:2006/03/09(木) 15:09:39
>>767
ただの構造化例外じゃないのか?
771デフォルトの名無しさん:2006/03/09(木) 15:39:13
>>770
それは、何でしょう?
772デフォルトの名無しさん:2006/03/09(木) 15:52:09
以下放置して次の質問へ
773デフォルトの名無しさん:2006/03/09(木) 16:18:30
TStringGridの使用方法でお聞きしたいことがあります。
画面上では表示も操作もできない列を作成する方法がありましたら
教えて下さい。
使用目的は行毎にフラグとなる数字などを保持し、
そのフラグをソース上から参照しようと考えております。
よろしくお願い致します。
774デフォルトの名無しさん:2006/03/09(木) 16:31:06
Editで書き込まれた数値を13桁まで読み取って計算に使おうと思い
コンポーネントのマックスレンジを13、格納する型もint64にしました。
ところが「1000000000000は整数ではありません」と表示されてしまいます。
このエラーはどうすれば対処できますか?
あとボタンを押した時RadioBoxで選択された値を使って計算させたいと思い
RadioBoxにそれぞれ変数を与えボタンの処理のとこで呼んでみたんですが
計算できません。この辺についても教えていただけるとありがたいです。
775デフォルトの名無しさん:2006/03/09(木) 16:32:39
>>773
TStringGrid使うならOnDrawCellくらい理解しとけよ。
776デフォルトの名無しさん:2006/03/09(木) 16:37:03
>>774
StrToInt64

> あとボタンを押した時RadioBoxで選択された値を使って計算させたいと思い
> RadioBoxにそれぞれ変数を与えボタンの処理のとこで呼んでみたんですが
> 計算できません。この辺についても教えていただけるとありがたいです。

意味不明。
777デフォルトの名無しさん:2006/03/09(木) 16:37:30
>>773
ColWidth[i]:=0;
778775:2006/03/09(木) 16:40:50
>>777
そういうことか、質問の意味を理解できなかった・・・
んだらObjectsプロパティでも使えばいいだな。
779デフォルトの名無しさん:2006/03/09(木) 16:49:09
>>777
ColWidth[i]:=0; も考えたのですがマウスで操作出来てしまいます。

>>778
ヘルプだけではちょっと分かりませんでした。
Objectsプロパティの使用方法を教えて頂けないでしょうか?
よろしくお願い致します。
780774:2006/03/09(木) 16:58:35
>>776
13桁で計算できました!ありがとう

とりあえず今やりたいのは、入力してもらった13桁までの値に対して
RadioBox(●1倍 ●3倍 ●5倍 みたいな感じ)から倍率を選んでもらい
[入力された値*RadioBoxで選ばれた倍率→ラベルに出力]
みたいな感じの事をやりたいんですがやり方がわかりません。
最初チェックボックス使ってたんですけどチェックボックスだと倍率を複数選択
できちゃうんで断念しました。
781デフォルトの名無しさん:2006/03/09(木) 16:59:33
・特定のセルにデータを関連付けたいとき

 //ObjectsプロパティはTObject型なのでキャストが必要
 StringGrid1.Objects[2,2] := TObject(2)

・取り出すとき

 //セットしたデータ型に応じてキャスト後取り出す
 ShowMessage(IntToStr(Integer(StringGrid1.Objects[2,2])));

・解放の仕方
 //解放は自動的に行われないので忘れると楽しいメモリリークが発生する
 StringGrid1.Objects[2,2].Free;
782775:2006/03/09(木) 17:02:35
>>779
各行にランダムな整数を保持する場合の例。
for N:=0 to StringGrid1.RowCount-1 do
 StringGrid1.Objects[0,N]:=TObject(Random(65000));

3行目の数値を変数Xに代入する例。
X:=Integer(StringGrid1.Objects[0,2]);

こんな感じ・・・
783デフォルトの名無しさん:2006/03/09(木) 17:03:03
Label1.Caption := IntToStr(StrToInt(Edit1.Text) *
           StrToInt(RadioGroup1.Items[RadioGroup1.ItemIndex]));
784デフォルトの名無しさん:2006/03/09(木) 17:03:43
>>781
IntegerをTObjectにキャストして突っ込んでるのにTObjectのFreeを呼び出し?
そもそも、PIntegerをNewしてTObjectにキャストしてセット、
解放時にはPIntegerでキャストしてDisposeする方が良いのでは?
785775:2006/03/09(木) 17:03:43
>>781
その場合、開放はいらないだろ。
786774:2006/03/09(木) 17:05:25
>>783
神様ありがとう!
787774:2006/03/09(木) 17:15:42
やっぱだめでした。delphi6なのでRadioGroupのコンポーネントないんで無理でした。
今RadioBox別個に設置して使ってるんでこういう場合どうすればいいんですか?
788デフォルトの名無しさん:2006/03/09(木) 17:20:02
>>781-782
>>784-785
レスありがとうございます。
>>781-782 の方法で実現することができました。
また、>>782 >>785 さんのご指摘通りFreeはいらないようです。

皆様、ありがとうございました。
789デフォルトの名無しさん:2006/03/09(木) 17:21:24
>やっぱだめでした。delphi6なのでRadioGroupのコンポーネントないんで無理でした。

意味不明

>今RadioBox別個に設置して使ってるんでこういう場合どうすればいいんですか?

RadioBox?オレ様用語か?
790774:2006/03/09(木) 17:46:24
すんません勘違いしてました。RadioGroupありました。
あと正しくはRadioButtonですね。失礼しました。
RadioButtonしか使ったこと無いのでRadioGroupの使い方がよくわかりません。
791デフォルトの名無しさん:2006/03/09(木) 17:46:52
Del6Per でも RadioGroup あるけどな。
792デフォルトの名無しさん:2006/03/09(木) 17:49:16
RadioGroupってD2かD3にはすでにあった希ガス
793774:2006/03/09(木) 18:00:36
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:= 1;
1:= 5;
2:= 10;
3:= 50;
4:= 100;
5:= 500;
5:= 1000;
end;
とりあえずこんな感じで書いてみましたがこれであってますか?
そんでButtonのところに
procedure TForm1.Button1Click(Sender: TObject);
begin
答え:=入力された数値*StrToInt(RadioGroup1.Items[RadioGroup1.ItemIndex]));
end;
みたいな感じで書いてみたのですがうまくいきません。
794デフォルトの名無しさん:2006/03/09(木) 18:01:39
>>793
それでコンパイル通ったか?
795774:2006/03/09(木) 18:02:14
>>793さん
通りませんでした
796デフォルトの名無しさん:2006/03/09(木) 18:05:39
TDropFileTargetコンポーネントをダウンロードできるところありませんか?
797デフォルトの名無しさん:2006/03/09(木) 18:05:39
case文の書き方からして違う

case Index of
 0:
 begin
  ShowMessage('0');
 end;
 1:
 begin
  ShowMessage('1');
 end;
end;
798デフォルトの名無しさん:2006/03/09(木) 18:09:39
いちいち効率の悪い奴だな。
同じ労力でなるべくレス数増やすのが目的なのか?
799774:2006/03/09(木) 18:52:18
やっとできました。
procedure TForm1.RadioGroup1Click(Sender: TObject);
に書くんじゃなくて
procedure TForm1.Button1Click(Sender: TObject);
にRadioGroupから得る値を書いたら計算できました。
お騒がせしました。
800デフォルトの名無しさん:2006/03/09(木) 18:52:32
お前はすっこんでろ
801デフォルトの名無しさん:2006/03/10(金) 01:35:57
失礼します。ちょっと聞きたいんすけどボタンのプロパティーにあるDefaultをtrueにすると
Enter押し下するだけでボタンの処理に行けると思うんですけど、ボタンが二つある時とか
どっちのボタンも押し下させたいって時はどうやれば可能ですか?
希望としては
Edit1に入力終わり→Enter押し下→Button1処理→Edit2に入力→Enter押し下→Button2処理
なんでつが ヒントだけでも良いから教えて下さい(´・ω・`)
802デフォルトの名無しさん:2006/03/10(金) 01:39:21
Button1Click は、イベントハンドラだけど、たんなるメソッドでもある。
別にほんとに Button1 を押さなくても、コードで呼び出せるよ。
803デフォルトの名無しさん:2006/03/10(金) 02:05:27
Button1Click(Sender)で呼べるよ
でもなるべくならイベントハンドラ内にごりごり処理を書かずに
イベントハンドラは関数なりメソッドなりのコールに留めたほうがいいと思う
804デフォルトの名無しさん:2006/03/10(金) 02:18:54
delphi6 personal で、 Mysqlは使えますか? 
805デフォルトの名無しさん:2006/03/10(金) 02:29:09
>>801
「押し下」って何?
806801:2006/03/10(金) 03:05:31
>>805
ボタンが押されっぱなし?みたいな状態かな

とりあえず
procedure TForm1.TKeyEvent1(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then begin
Button1Click(Sender);
end;
end;
みたいな感じで書いてみたんですがうまくいきません。
どこがいけないかご教示願えますか(´・ω・`)?
807デフォルトの名無しさん:2006/03/10(金) 03:06:22
>>804
手段は用意されていない。
808デフォルトの名無しさん:2006/03/10(金) 03:08:50
809801:2006/03/10(金) 03:12:19
ほう。知らんかった。「おしさげ」または「おしげ」と読んでたよ(´・ω・`)
サンクス(`・ω・´)
810デフォルトの名無しさん:2006/03/10(金) 03:16:12
811デフォルトの名無しさん:2006/03/10(金) 03:16:26
>>801
フォーカスがあるEditコンポーネントによって処理を変えたいってことなら
EditのOnEnterイベントを使う
812デフォルトの名無しさん:2006/03/10(金) 03:17:57
>>810
全部は試してないがプロ版以上を求めるものばかり
813デフォルトの名無しさん:2006/03/10(金) 03:53:14
delphiいじりはじめたものです。

新規作成→MDIアプリから、ウィザードのようなものでMDIの雛型のようなものを作ってみました。
で、そのまま保存、コンパイルするとMDI式のメモアプリのようなものが出来上がったのが確認されました。
子ウィンドウの整列ボタンを押すと、カスケード式、タイル式(縦、横)に子ウィンドウ達が整列されます。

ここで、コーディング画面に戻ったのですが、整列ボタン(カスケード式、タイル式)のハンドラの中が空っぽなのです。ちゃんと動くのに。
それどころか、当該ボタンのOnClickイベントの宣言部分すら無い状態です。

これ、どういう仕組みで動いてるんでしょうか?ActionIvent(?)というのが関係してるようにも思われるんですが、なぞに包まれてしまいました。
自作のポップアップメニューに整列のイベントを割り当てたいと思っているのですが、どうすべきなんでしょうか?
814813:2006/03/10(金) 03:54:16
Iventじゃないですね。Eventです。
815デフォルトの名無しさん:2006/03/10(金) 04:10:36
>>813
ActionプロパティやTActionListでも調べなさい
816デフォルトの名無しさん:2006/03/10(金) 04:33:57
Delphi personal + Mysql は無理そうですね。
ありがとうございました。
817デフォルトの名無しさん:2006/03/10(金) 06:25:17
>>816
MySQL C APIを直接使えば出来るでしょ。
http://dev.mysql.com/doc/refman/4.1/ja/c.html
818813:2006/03/10(金) 06:27:01
Actionプロパティに入れたら動きました。
簡単でした…
819デフォルトの名無しさん:2006/03/10(金) 14:12:35
一回コンパイルして出来上がったプログラムをPageControlでTab形式に改良したい
んですけど、一回配置したコンポーネントって後からPageControlに乗っけるのって
無理なの?新しくコンポーネント一覧からコンポーネント盛ってくればPageControlに配置
出来るけど、一回配置したコンポーネントをドラッグしてPageControlで出来たTabPageに
乗せてもPageControlの下に行っちゃってうまくいきません。これどうにかなりますか?
820デフォルトの名無しさん:2006/03/10(金) 14:13:46
コンポ選択してShift+Delでカットして
ページ選んでShift+Insでペースト
821デフォルトの名無しさん:2006/03/10(金) 14:14:54
か、オブジェクトツリー上でD&D
822デフォルトの名無しさん:2006/03/10(金) 14:33:16
普通にCtrl+Cでコピーして、Ctrl+Vで貼り付けだろ。
823デフォルトの名無しさん:2006/03/10(金) 14:54:00
コピーて
824デフォルトの名無しさん:2006/03/10(金) 14:56:33
>>823
すまそ。桐鳥ですた。
825デフォルトの名無しさん:2006/03/10(金) 14:58:58
普通キーバインドはDOS IDEだろ。
826デフォルトの名無しさん:2006/03/10(金) 15:03:06
化石乙
827デフォルトの名無しさん:2006/03/10(金) 16:21:34
そんな化石なのにまだくだすれレベルなのかw
828819:2006/03/10(金) 16:58:03
切り取ればいけるんですね!勉強になりました。さんきゅ
829デフォルトの名無しさん:2006/03/10(金) 17:00:17
ウォシュレットはいいものだ
830デフォルトの名無しさん:2006/03/11(土) 01:37:38
TMemo上で、Ctrl+Enterである処理をさせたいのですが、

procedure TForm1.MemoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_RETURN) and (ssCtrl in Shift) then begin
    処理
    Key := 0;


とやると、Memo上に改行が入力されてしまいます。
改行を入力させずに処理を行う方法はないでしょうか?
831デフォルトの名無しさん:2006/03/11(土) 01:57:52
IEなんかのブラウザのツールバーにDelphiで作ったアプリケーションを表示させたいんですが
可能ですか?
832デフォルトの名無しさん:2006/03/11(土) 02:07:42
833デフォルトの名無しさん:2006/03/11(土) 02:08:13
834デフォルトの名無しさん:2006/03/11(土) 10:51:08
>>830 TAction の ShortCut に Ctrl+Enter を登録しておく。ってのは?
835831:2006/03/11(土) 13:22:20
>>832-833
ありがd。やってみます!
836デフォルトの名無しさん:2006/03/11(土) 16:27:10
StringGrid上でクリックされた時にそのCellの一番左( Cell[0,**] )
の中身をMemoに追加したいのですが、どのようにすればよいでしょうか?

procedure TForm1.StringGrid1Click(Sender: TObject);
begin
Memo1.Lines.Add(StringGrid1.Cells[0,    ]);
end;
837デフォルトの名無しさん:2006/03/11(土) 17:28:28
StringGrid1.Row
838デフォルトの名無しさん:2006/03/11(土) 18:53:34
>>837
おお、できました。ありがとうございます。
839デフォルトの名無しさん:2006/03/11(土) 23:08:19
>>834
いけました。
たったそれだけのことだったのかあ orz
840デフォルトの名無しさん:2006/03/12(日) 14:27:52
リソースにManifestを埋め込んでTListViewを使っていると、フォームが開かれた時点でエラーが発生します・・
どうすればよいのでしょうか?
841デフォルトの名無しさん:2006/03/12(日) 15:31:42
Manifestはずせばええんでね?

うちじゃそんなエラーはでないけど
842デフォルトの名無しさん:2006/03/12(日) 16:24:35
Delphiのバージョンが古いとそうなるって話はあったと思う。
カラムヘッダーを表示しないか、カラムヘッダーにイメージを設定すると回避できるとかなんとか。

まぁ古いDelphiでManifestを使うんなら、Windows XP Theme Managerを使った方がいいと思うよ。
http://www.soft-gems.net/ThemeManager.php
843デフォルトの名無しさん:2006/03/12(日) 21:00:40
>動的メソッドと動的メソッドは構文解釈という
>意味ではまったく同じです。 どちらも実行時に
>メソッドを決定しますが、どのような方法で呼び出す
>メソッドを決定するかが異なります。

http://www.borland.co.jp/tips/delphi/dh014/index.html

Delphiムズすぎです。
844デフォルトの名無しさん:2006/03/12(日) 21:06:00
dynamicはvirtualは機能的に全く同じだからわからなくていいよ。
virtualだけつかっておけばいい。

大き目のクラスライブラリとかを設計するようになってから
違いを理解すればいい。
845デフォルトの名無しさん:2006/03/12(日) 21:08:30
動的メソッドと動的メソッド
846デフォルトの名無しさん:2006/03/12(日) 21:09:50
雑談がしたいだけなら別スレで
847デフォルトの名無しさん:2006/03/12(日) 22:30:38
TSample = class(TObject)
private
FPoint: TPoint;
public
property Point: TPoint read FPoint write FPoint;
end;

TSampleクラスのオブジェクトoに対して、
o.Point.X := 100;
とすると左辺値には代入できないとぬかしやがる。何とかしろ!
848デフォルトの名無しさん:2006/03/12(日) 22:52:16
o.Point := Point(100, o.Point.Y);
849デフォルトの名無しさん:2006/03/12(日) 23:33:06
MDIで現在表示されている子フォームの数を取得するにはどうすればいいですか?
850デフォルトの名無しさん:2006/03/12(日) 23:35:28
MDIChildCount
MDIChildren
851849:2006/03/12(日) 23:36:25
>>850
親フォームのプロパティですか?
852849:2006/03/12(日) 23:43:34
見つかりました。
ありがとうございます!
853すみません:2006/03/13(月) 04:09:05
・・シンプルなので充分ですから・・
HTTPでの同時ダウンロードのソースを誰か下さいませ・・
ってやはり虫が良すぎですか・・?
1スレッドのダウンロードでプログレスバーまではつけれたんですが
Irvineのソースとかいろんなソース見ても
マルチスレッドでのダウンロードが・・難しいです・・
あぁ欲しいです・・
854デフォルトの名無しさん:2006/03/13(月) 04:15:12
はい、次↓
855853:2006/03/13(月) 05:05:52
マルチスレッドのダウンロード
何とか、自力で解決しそうです
スレを汚して済みませんでした

856デフォルトの名無しさん:2006/03/13(月) 06:13:04
自力じゃねえだろw
Indyスレで教えてもらったんだろww
857デフォルトの名無しさん:2006/03/13(月) 11:24:31
>>813さん
MDIをいじっている方とお見受けして質問します。
作成された子windowはMDIChildren[]で取得できますが、閉じて消滅した子windowの情報の取り方はわかりますか?
858デフォルトの名無しさん:2006/03/13(月) 11:37:40
消滅したのなら情報なんて存在しません
859デフォルトの名無しさん:2006/03/13(月) 12:25:47
説明がマズかったです。
「どの子windowが閉じたのか、という情報の取り方」です。

すみません
860デフォルトの名無しさん:2006/03/13(月) 12:53:10
子Window の Closeイベントを使ったらどうでしょ
861デフォルトの名無しさん:2006/03/13(月) 14:10:00
子WindowのCloseですか。子windowが閉じるときに親フォームにCaptionでも発信するようにするってことですか?
これって、子フォームのusesに親フォームを追加しとかないといけないですね。
862デフォルトの名無しさん:2006/03/13(月) 14:15:45
誰かこの馬鹿つまみ出せ
863デフォルトの名無しさん:2006/03/13(月) 14:23:53
ここはくだすれだぜ
864デフォルトの名無しさん:2006/03/13(月) 14:29:33
荒れてきたな。
865デフォルトの名無しさん:2006/03/13(月) 15:56:02
質問があります。

リストビューのカラムのRectを取得するにはどうすればよいでしょうか?
866デフォルトの名無しさん:2006/03/13(月) 15:58:40
最悪owner drawのイベントハンドラで取れるがいまいちだな
867デフォルトの名無しさん:2006/03/13(月) 16:00:51
>>865
Headerコントロールなんだからウィンドウハンドルを取得してあとはお好きなように。
868デフォルトの名無しさん:2006/03/13(月) 16:07:38
▲▼描画するサンプルのURLあっただろ
869デフォルトの名無しさん:2006/03/13(月) 16:28:09
Yahooメッセンジャー等のように、webカメラなどのWDMデバイスから
映像を取得するにはどうすると良いですか?
870デフォルトの名無しさん:2006/03/13(月) 19:55:09
TCanvas で文字列の幅は TextWidth で求めることができますが、逆に
文字列と描画する幅から文字数を求める方法というのはあるのでしょうか?
871デフォルトの名無しさん:2006/03/13(月) 20:01:07
WWWWWとiiiiiで全く違うから無理だろ
TextWidth('WI')/2で平均求めればなんとなくの数字は出そうだが。
872デフォルトの名無しさん:2006/03/13(月) 20:07:43
>>869
DirectShowを使うんじゃない?
873デフォルトの名無しさん:2006/03/13(月) 20:41:22
>>870
ループ回して、1文字(or 予定描画幅/最大の文字の幅)からだんだん文字数を増やしてって、
TextWidth()で返ってきた幅>予定描画幅になった時点での文字数から1引けばOKだろ

どうせもっとエレガントな方法があるんだろうが知らね
874デフォルトの名無しさん:2006/03/13(月) 20:44:22
固定ピッチフォントしかサポートしないって言うのが、一番真っ当な気がする。
875870:2006/03/13(月) 20:47:17
>>873 おおっ!そういう方法もありますね!ありがとうございます。
でもおっしゃる通りかなり力技っぽくて性能が少し心配ですね(^_^;
エレガントな方法があれば良いのですが、無ければこの方法を試してみます。
876デフォルトの名無しさん:2006/03/13(月) 20:49:36
>>870
その方法を模索するより、それを使って何したいか聞いた方が答えられるかも心内
877870:2006/03/13(月) 20:50:57
>>874 固定ピッチフォントって言うのは全く同一幅なんですかね。
だとすれば計算が楽ですね。ちょっと仕様にするのに勇気がいる感じですが。
(色々と案があるものですね)
878デフォルトの名無しさん:2006/03/13(月) 20:54:22
固定ピッチフォントしか許さないエディタって結構あるよ
879870:2006/03/13(月) 20:55:03
>>876 ああ、そうですね。すみません。Form に文字列を縦書きで描画
させたいのです。で、折り返す文字幅を計算したかったのです。
いい案がありましたらよろしくお願いします。
880デフォルトの名無しさん:2006/03/13(月) 20:58:11
Delphi開発は子会社に移管されるみただけど、
もう駄目なんかね。
初心者Delphi使いとしては寂しい
881デフォルトの名無しさん:2006/03/13(月) 21:05:12
デマを広めたいのか、本当にそう思ってるのかどっち?
882デフォルトの名無しさん:2006/03/13(月) 21:08:27
違うのか?
883デフォルトの名無しさん:2006/03/13(月) 21:32:52
質問です。
Delphi6などにあった「エラーの検索」はBDS2006にもありますか?
884デフォルトの名無しさん:2006/03/13(月) 21:41:02
>>883
ある。

IDEの機能で無くなってそうなのは、プロジェクトで最終的にリンクしたユニットの一覧が見えるブラウザぐらいかな。
885デフォルトの名無しさん:2006/03/13(月) 22:05:55
>>884
お、「指定アドレスに移動」ですね。見つかりました、ありがとうございます。

> IDEの機能で無くなってそうなのは、プロジェクトで最終的にリンクしたユニットの一覧が見えるブラウザぐらいかな。

こんな機能あったんですね。リンクしているユニット一覧を見るだけなら
JCLについてくるAnalyze Projectエキスパートでできそうですね。
886デフォルトの名無しさん:2006/03/13(月) 22:08:40
>>870
前に似たようなことやった覚えがあるんで引っ張り出してきてみた。
var char_count: Integer; text_size: TSize;
GetTextExtentExPoint(Canvas.Handle, PChar(str), Length(str),
text_width, @char_count, nil, text_size);
strに文字列、text_widthに予定描画幅を渡す。
char_countに収まる文字数、text_sizeに実際の描画幅が返ってくる。
たしか第6引数で文字ごとの描画位置を受け取ることもできるはず。
887デフォルトの名無しさん:2006/03/14(火) 00:41:22
Delphi6Personalを使っています。解説サイト及びヘルプで見たBitmap、Graphicというコンポーネントを使いたいのですが、パレット上に見当たりません。どこかにあるのでしょうか。
Imageはあるんですが…。
それともアップデートファイルに含まれているのですか?(今事情によりアップデートできず探せません)
使う方法を教えて下さい。
888デフォルトの名無しさん:2006/03/14(火) 00:44:14
コンポーネントじゃなくてクラスなんだよ。
889デフォルトの名無しさん:2006/03/14(火) 01:04:19
>>887
まずは解説サイトに書いてある通りに実行してみなさい
890デフォルトの名無しさん:2006/03/14(火) 03:01:11
IEのアドレス等のComboBoxの▼って水色だよね。
でも、Delphi6のTComboBoxのは灰色なんだよな。ちょっと古臭いよね。
同じDelphi6でもTScrollBoxの▼は水色なのに。
TComboBoxでも水色のにできたら嬉しいけど、どうすればいいのかな?
891デフォルトの名無しさん:2006/03/14(火) 03:08:20
>>890 ThemeManager使え。
892デフォルトの名無しさん:2006/03/14(火) 04:26:15
プログラミングの勉強にと、目下テキストエディタを作成中です。

FontStylesについてうかがいたいんですが・・
たとえば、memoコンポのFontStyleを「太字、イタリック」に変えたいときは、

var
FontStyles: TFontStyles;
begin
FontStyles := [fsBold, fsItalic];
memo1.Font.Style := FontStyles;

とでもすると変えられるのは確認できたのですが、逆に、そのmemoがどれとどれのFontStyleを持っているのか抜き出す方法が思いつきません。
なんのために抜き出したいかというと、レジューム機能をつけるためです。

どうかお願いします。
893デフォルトの名無しさん:2006/03/14(火) 04:50:19
if fsBold in FontStyles then
894デフォルトの名無しさん:2006/03/14(火) 05:06:39
>>893さん、ありがとうございます。
いま丁度、in やExclude、InCludeなどの説明が書いてあるサイトをみつけ、実験していたところです。
なんとかなりそうです。

Fontをまるごとファイルに保存するという荒業はまだできそうにないですが。
895デフォルトの名無しさん:2006/03/14(火) 05:45:14
Delphi TFont 保存
でぐぐれ
896デフォルトの名無しさん:2006/03/14(火) 08:29:18
Delphi6 Personalでネットワークの通信速度(上下)
をリアルタイムで取得するにはどうすればいいですか?
897デフォルトの名無しさん:2006/03/14(火) 08:37:49
ネットワークの通信速度って何?
netstat -s みたいな話?
898デフォルトの名無しさん:2006/03/14(火) 08:55:33
すいません

Sent : ***kb/s
Receive : ***kb/s

ってな感じの回線速度です
899デフォルトの名無しさん:2006/03/14(火) 09:38:39
テキストファイルを1行ずつ読み込む処理に
TFileStream→TStringListという手法を使用しています

TFileStreamはファイルの内容をメモリに保持するので
扱うファイルが大きい場合には適さない(AssignFileを使用した方がよい)
らしいのですがこれは事実なのでしょうか?
900デフォルトの名無しさん:2006/03/14(火) 09:41:08
安直に考え付いたのは
netstat -s>result.txt を実行して
result.txtの中からPackets Receivedを探すかな。

あとはIndyのSNMPコンポーネントを使ってMIBクエリを発行して・・・かな。
901デフォルトの名無しさん:2006/03/14(火) 09:42:07
>>900
>>898です。
902デフォルトの名無しさん:2006/03/14(火) 09:59:34
IP Helper APIのGetIfEntryかGetIfTableを呼んで、
MibIfRow.dwInOctetsとdwOutOctetsを見れば良いのかな?
IP Helperのヘッダ&サンプルは
ttp://www.magsys.co.uk/delphi/magiphlp.asp
にある
903デフォルトの名無しさん:2006/03/14(火) 10:05:11
>>899
・TFileStreamはファイルの内容をすべてメモリに保持したりしない。
・TFileStreamでテキストファイルを一行ずつ読むことはできない。
・つーかTStringList.LoadFromFileだけでいいだろ。
904デフォルトの名無しさん:2006/03/14(火) 10:06:19
めもすけ
http://homepage2.nifty.com/ueumi/heliotrope/

と同じような透明なエディタを作りたいです。
905899:2006/03/14(火) 10:06:55
・TFileStreamはファイルの内容をすべてメモリに保持したりしない。
そうですか、一安心

・TFileStreamでテキストファイルを一行ずつ読むことはできない。
そうですね

・つーかTStringList.LoadFromFileだけでいいだろ。
それは出来ないのです
906870:2006/03/14(火) 10:27:13
>>886 GetTextExtentExPoint なる API があったとは。検索したのですが、
見つかりませんでした。サンプルコードもご提示していただいて参考になります。
ありがとうございました。
907デフォルトの名無しさん:2006/03/14(火) 10:31:45
>>902
ありがとうございました
908デフォルトの名無しさん:2006/03/14(火) 13:20:06
VS.NETのIDEの至る所に使われているウィンドウで、
マウスカーソルを近づけるとビョーンって現れたり、
またマウスカーソルを離すと隠れるウィンドウがあり
ますけれど、あれってDelphiから使えるようにならな
いのでしょうか?
909デフォルトの名無しさん:2006/03/14(火) 13:34:55
>>908
VS.NETのがどんなのかわからんが、
MOUSEENTERやMOUSELEAVEメッセージでできるんじゃないのか。
910デフォルトの名無しさん:2006/03/14(火) 13:50:53
そんなんじゃないよ。一度使ってごらん。コード補完やら、語句補正やら、
自動文法校正やら VC# のIDEのコードエディタ部分ってすごいよ。
911908:2006/03/14(火) 14:06:24
>>909
自分でプログラミングをしなくてもカーソルを近づけたり
すると勝手に現れたり隠れたりする便利なウィンドウが
あるんですね。
名前は知りませんけど。
912デフォルトの名無しさん:2006/03/14(火) 16:11:39
PaintBoxがマウスをキャプチャ出来る範囲を制御したいのですが何かいい方法はないでしょうか?
913デフォルトの名無しさん:2006/03/14(火) 18:08:55
ライセンスキーっての?
あれ登録してなかなか来なかった香具師居る?
なんか1週間たっても来ないから不安になってきたw
914デフォルトの名無しさん:2006/03/14(火) 18:12:49
数秒で来た
915デフォルトの名無しさん:2006/03/14(火) 18:45:09
>>914
さっきもログインしてsubmit押してきたけどやっぱり来てないな
アドレス間違ったりしてないのになw
916デフォルトの名無しさん:2006/03/14(火) 18:53:13
>>908
JVCLを使えば簡単に実装できるよ。
917デフォルトの名無しさん:2006/03/14(火) 21:24:37
さーてVBに移るか。
918デフォルトの名無しさん:2006/03/14(火) 23:21:17
未来のないVBよりせめて.NETに移れよw
919デフォルトの名無しさん:2006/03/15(水) 00:45:28
>888-889
サンクス、理解できました。
920デフォルトの名無しさん:2006/03/15(水) 00:47:05
JVCLについてまとめてよだれかー。
Delwikiいっちゃたしさあ
921デフォルトの名無しさん:2006/03/15(水) 00:56:42
MegaDemoをみれば大体分かるよ。
922デフォルトの名無しさん:2006/03/15(水) 02:42:24
>>912
APIがあったはず。 名前忘れた。
923デフォルトの名無しさん:2006/03/15(水) 08:39:54
避難所は画像張れないから、まとめようにも難しいよなぁ。
924デフォルトの名無しさん:2006/03/15(水) 09:07:58
>>915
俺、3日前に同じことで悩んでた。
submitのあと、メール送信のリンクをクリックしてないんじゃない?
925デフォルトの名無しさん:2006/03/15(水) 09:09:24
>>924
あるあるw
926デフォルトの名無しさん:2006/03/15(水) 09:10:05
>>923
BDNが日本語化するまではブログに書くしかないね。
927デフォルトの名無しさん:2006/03/15(水) 11:39:04
>>904
2K Xp だけででいいのなら・・・AlphaBlendってのでフォームの透かしはできるけど
こんな程度を要求してU訳じゃぁないんだろうなぁ(w
928904:2006/03/15(水) 11:44:55
>>927
ではないです・・・
「めもすけ」を使っていただいたら分かると思うのですが、
文字以外の部分は、完全に透けて、下のウィンドウが見えてますし、
アクセスできます。不思議です・・・

最初は文字の形のリージョンかとも思ったのですが、Ctrl+Aを
入力などして、文字を選択した状態にすると、選択していない
背景だけが透けるようになり、処理も重かったり、ちらついたり
しないので、違うかなぁと。
929デフォルトの名無しさん:2006/03/15(水) 12:21:42
最近Delphiを触り始めて今
Delphi6 personal(無料版)をいじっているのですが、
このバージョンでは作成したアプリケーションを
商用利用として配布できないようなのですが、
商用利用として配布するためには
Delphi7のPersonalかProfessionalを購入すればよいのでしょうか?
930デフォルトの名無しさん:2006/03/15(水) 12:23:36
>>929
Professional 以上が必要です。
Delphi 7かDelphi 2006がお勧めです。
931デフォルトの名無しさん:2006/03/15(水) 12:26:20
仮に商用利用したとしてもBorlandから訴えられなければ全く問題ありません。
各自の判断で行動しましょう。
932デフォルトの名無しさん:2006/03/15(水) 12:38:15
>>931
通報しま(ry

おとなしくProfessional版買うか、VSに移れ
933デフォルトの名無しさん:2006/03/15(水) 12:39:55
>>928
TransparmentColorでできるでしょ。。。
934904:2006/03/15(水) 12:47:42
>>933
ではなくて、例えばデスクトップの上に「めもすけ」を置いていると、
デスクトップにマウスでアクセスできるのです。
935デフォルトの名無しさん:2006/03/15(水) 12:57:51
>>934
他人には試してくれっていっておきながら、自分では試す気ないのね。
936904:2006/03/15(水) 13:02:23
>>935
意味不明
937デフォルトの名無しさん:2006/03/15(水) 13:05:12
知らんけど透明度100%の所はマウスクリックとかも含めて抜きになるって話じゃないの
938デフォルトの名無しさん:2006/03/15(水) 13:07:06
>>937
透明度というかTransparmentColorで透過したところは、マウス入力も突き抜けるね。
939デフォルトの名無しさん:2006/03/15(水) 13:14:14
>904は死んでいいぞ。
940デフォルトの名無しさん:2006/03/15(水) 13:27:19
941デフォルトの名無しさん:2006/03/15(水) 13:56:06
>>924
はーっ!!そうだったのか!
英語ややこしいなw
942デフォルトの名無しさん:2006/03/15(水) 15:17:21
>>940
すげー がんがって。
943デフォルトの名無しさん:2006/03/15(水) 15:20:06
>>942
頑張っている人も居るし。
http://ddev.blog46.fc2.com/
944デフォルトの名無しさん:2006/03/15(水) 15:30:52
君のブログは新し杉じゃまいか?
945941:2006/03/15(水) 22:19:08
やっとインスコし終って始めたんだがコーディングワカンネw
先ず練習がてら遣ってみたいんだけどお勧めサイトありますか?
946デフォルトの名無しさん:2006/03/15(水) 22:31:30
947デフォルトの名無しさん:2006/03/15(水) 22:41:21
Del6Personal

TPanelのEnabledをFalseにすると、その子コントローラの
EnabledもFalseになるけど、外見はそのままで灰色になりません。
灰色にするには子コントローラのEnabledを一つずつFalseにする以外の
手段はないの?
948デフォルトの名無しさん:2006/03/15(水) 22:44:25
ない
949デフォルトの名無しさん:2006/03/15(水) 23:03:42
まあ、こんな関数を作っておけば一括で設定はできるよ。

procedure SetEnabledChildren(AControl: TWinControl;Value: Boolean);
var
i: Integer;
begin
AControl.Enabled := Value;

for i := 0 to AControl.ControlCount - 1 do
begin
if AControl.Controls[i] is TWinControl then
begin
SetEnabledChildren(TWinControl(AControl.Controls[i]), Value);
end else
begin
AControl.Controls[i].Enabled := Value;
end;
end;

end;

ただし、もともとEnabledがtrueのものとfalseのものが入り交じってるのであれば、
戻すときのためにtagプロパティに状態を保存しとく等の対処が必要になるけど。
950デフォルトの名無しさん:2006/03/15(水) 23:29:08
TPanel継承してEnabled切り替えのとき子コントロールもいじる機能つけちゃえばいい
951デフォルトの名無しさん:2006/03/15(水) 23:35:49
>>943
うほ!いいblog
952デフォルトの名無しさん:2006/03/16(木) 04:16:19
DDDDって.netに対応してないですよね?
.net以降、Delphiに対応してるDirectXコンポは国産ではなかったような…

確実に熱が冷めてる証拠なんだろうけど。
953129:2006/03/16(木) 04:27:16
おい!!!!
>>943のブログの作者!!!!
あんたブログにすげーエレガントな解決方法書いてるじゃないですかぁ!
おかげで完璧に解決しましたよ!
あんたマジ神だな
954デフォルトの名無しさん:2006/03/16(木) 04:46:06
>>952
>.net以降、Delphiに対応してるDirectXコンポ
リンクきぼん!ネイティブならD2005対応たまに見るけど.NETは見たこと無い
955デフォルトの名無しさん:2006/03/16(木) 04:46:37
ずっとハマってたのかw
まぁなんにせよよかったな
956デフォルトの名無しさん:2006/03/16(木) 05:15:13
Managed DirectXって奴を使えばいいんじゃないの?
Delphiからでも使えると思うけど。そういう話じゃないのか?
957デフォルトの名無しさん:2006/03/16(木) 06:35:57
DelphiXやらみたく簡便じゃねーべさ
くだすれ見にくるようなヤシらにManagedつっても混乱するだけ
958デフォルトの名無しさん:2006/03/16(木) 07:06:15
あえて.NETでDirectXをやるという需要が読み切れない
959デフォルトの名無しさん:2006/03/16(木) 07:18:06
>>958
確かに・・・

でももし.NET用のDirectX対応ライブラリがあれば、使えそうなもんだけど。あるのか?
960デフォルトの名無しさん:2006/03/16(木) 07:25:01
こんなの見つけてきた
http://library.cyberdelia.net/
961デフォルトの名無しさん:2006/03/16(木) 08:30:33
>>946
遅くなりましたがトンです
962デフォルトの名無しさん:2006/03/16(木) 09:02:18
DirectX7以前はやたら面度くさかったよね。
Managedもそうだけど、Directx8以降はコンポーネント化するメリットが大分薄れてきてるんじゃない?

ロストしたときに再生成してくれるのは便利かな。
963デフォルトの名無しさん:2006/03/16(木) 09:42:37
黒田○○さんや堀○○さんはいまごろどうしてるんだろう?

もうDelphiはいじってないだろうな。
964デフォルトの名無しさん:2006/03/16(木) 10:59:11
すみませんが…Delphiでスキンを変えたりする
カレンダーは作れますか?
965デフォルトの名無しさん:2006/03/16(木) 11:09:08
余裕で作れますが
966デフォルトの名無しさん:2006/03/16(木) 11:30:26
やる気と根性があれば作れます
967デフォルトの名無しさん:2006/03/16(木) 15:28:15
Delphi7でListViewをOwnerDrawで使ってますが、
XPManifestを載せるとOnCustomDrawItemでDefaultDrawをFalseに
しても勝手にキャプションを描きやがります。
誰か解決できる兵はいらっしゃいませんか?
968デフォルトの名無しさん:2006/03/16(木) 15:31:02
XPManifestを載せない
969967:2006/03/16(木) 16:12:15
>>968
予想通り。
970デフォルトの名無しさん:2006/03/16(木) 16:35:43
まったく試してないけど、さらに上描きしてやれ!
971967:2006/03/16(木) 18:58:28
>>970
試してから言って下さい。
972デフォルトの名無しさん:2006/03/16(木) 22:22:59
>>542
右だよ
973デフォルトの名無しさん:2006/03/17(金) 00:40:55
TList型オブジェクトlistはA型のオブジェクトのポインタを要素に持っています。
また、A型のポインタpはlistの要素のどれかで初期化されています。

今、listから任意の要素を削除しかつその参照先メモリを解放した時、
それがpの参照先だった場合、pはnilではないけど無効なポインタになります。

それではまずいので、そういう時はpに定数オブジェクトのアドレスを入れて
おきたいのですが、どうやってpが無効なオブジェクトなのか判断すればいい
のでしょう?listの要素にpがあるかfor文で全要素比較する以外のやり方が
あれば教えて下さい。
974訂正:2006/03/17(金) 00:43:39
>pが無効なオブジェクトなのか

pが無効なポインタなのか
975973:2006/03/17(金) 00:54:48
書き忘れましたが、削除された要素のポインタが分からない場合です。
976デフォルトの名無しさん:2006/03/17(金) 00:56:08
>973
無効ポインタが存在する状況を避けた方簡単。

Listから要素を削除するときpと要素をを比較して、
一致するときにはpにNULLを代入しておく。

あとはpを使うときにNULLか確認すれば良い。。
977デフォルトの名無しさん:2006/03/17(金) 01:13:36
>>973
TListの変わりにTObjectListを使う
978デフォルトの名無しさん:2006/03/17(金) 01:13:45
>976

どうも。参考にします。
979デフォルトの名無しさん:2006/03/17(金) 02:07:04
>>977
そうじゃなくて、あるオブジェクトが破棄された時、
それを参照しているポインタ変数をnilで初期化したいって事だと思いますよ。
980デフォルトの名無しさん:2006/03/17(金) 02:09:18
無理だな。
オブジェクト自身に参照カウンタ持たせて自爆させるか
interface使っとけ。
981デフォルトの名無しさん:2006/03/17(金) 02:13:34
答え方がおかしいか。
オブジェクト自身にDisabledフラグでも持たせて
そのオブジェクトがもう死んでいるかどうかを判定できるようにするか
あるいはオブジェクトに参照型変数のポインタもたせてnil突っ込ませるとか。
982デフォルトの名無しさん:2006/03/17(金) 02:23:14
間接的に参照するとデザパタっぽい
983デフォルトの名無しさん:2006/03/17(金) 09:14:22
TListViewでアイテム挿入中の描画を止めたいんですけど
それらしいプロパティが見つかりません。
もし、ありましたら教えていただけないでしょうか?
984デフォルトの名無しさん:2006/03/17(金) 09:20:28
TListItems.BeginUpdate
985デフォルトの名無しさん:2006/03/17(金) 09:40:53
>>984
できました。ありがとうございました。
986デフォルトの名無しさん:2006/03/17(金) 10:11:28
RichEditでTabキーを押したとき、6桁くらい移動するんですが、これを
2桁とか4桁とかに変更する方法というのはあるのでしょうか。
987デフォルトの名無しさん:2006/03/17(金) 10:47:55
出来ないことはないけどかなり面倒だったと思う
Tabキー押されたら半角スペース2個なり4個なり入れるのが簡単でいいと思う
988デフォルトの名無しさん:2006/03/17(金) 11:08:12
これでどうだ
LPARAMはIntegerのアドレスを渡す必要がある

procedure TForm1.Button1Click(Sender: TObject);
var
TabStop: Integer;
begin
TabStop:= 4 * 2;
SendMessage(RichEdit1.Handle, EM_SETTABSTOPS, 1, LPARAM(@TabStop));
RichEdit1.Invalidate;
end;

それにしても、勝手に半角スペースに変換とは…すんげえ糞仕様を勧めるものだな
989デフォルトの名無しさん:2006/03/17(金) 11:23:47
最後の1行がなければカッコ良かったのに
990デフォルトの名無しさん:2006/03/17(金) 11:57:51
誰でも言いたくなる気がする
991デフォルトの名無しさん:2006/03/17(金) 12:00:43
わからないならレスすんなってことだろ。
992986:2006/03/17(金) 12:20:03
>>988 出来ました!ありがとです。できなければ(面倒だったら) 987 さんの
やり方でやろうかと思っていたのです…
993デフォルトの名無しさん:2006/03/17(金) 18:18:00
>>973
Handleという概念を使う
ゲームなんかだとよく使うよ

var a: THoge;
begin
a = THoge(Handle.ToObject)
if Assigned(a) then
a.Hoge;
994デフォルトの名無しさん:2006/03/17(金) 19:14:15
>>993
その回答は外してると思われ
995デフォルトの名無しさん:2006/03/17(金) 20:02:15
VB.NETなら簡単なのにね。
996デフォルトの名無しさん:2006/03/17(金) 20:18:29
次スレ
くだすれDelphi(超初心者)その31
http://pc8.2ch.net/test/read.cgi/tech/1142594051/
997デフォルトの名無しさん:2006/03/17(金) 20:19:42
>>995
VB.NETだとどうやるの?
998デフォルトの名無しさん:2006/03/17(金) 23:43:32
998
999デフォルトの名無しさん:2006/03/17(金) 23:44:10
999
1000デフォルトの名無しさん:2006/03/17(金) 23:44:47
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。