[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 07/05 09:41 / Filesize : 151 KB / Number-of Response : 533
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 00:50:40 ]
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

<前スレ>
くだすれDelphi(超初心者用)その47
pc11.2ch.net/test/read.cgi/tech/1214292265/

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
delwiki.info/?%E3%83%AA%E3%83%B3%E3%82%AF%2F%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%2FDelphi%20%E9%96%A2%E9%80%A3%E3%81%AE%E9%81%8E%E5%8E%BB%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89

357 名前:デフォルトの名無しさん [2008/12/05(金) 02:03:30 ]
onKeyDown や onKeyPress などを使って、
『キーの同時押し』を検知する方法ってありますか?

たとえばAlt + Tab を検知するなど。

358 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 02:36:22 ]
Downならif Shift = [ssAlt] thenで

359 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 18:41:49 ]
GetAsyncKeyStateはだめ?


360 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 00:02:20 ]
同時押しの検出ならGetKeyStateかShiftパラメータでは?

361 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 09:00:10 ]
Del7+Win2000
フォームを半透過指定してフォーム上のコンポーネントは非透過ってのは可能?
Transparentみたいな色指定透過っぽい感じ

362 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 10:45:21 ]
Pascal を C++ っぽくしろって、
日本語は英語と同じ文法にしろっていうような門やん

363 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:16:53 ]
>>362
Begin...Endの事?
そうは思わないな…
日本語だって英語の良いところはカタカナという形で吸収するんだから
コメントと文法くくりはBegin、{両方サポートしてくれたら私もうれしいな。
でもそうなると過去のソースが動かなくなるわけで、そこまでして言語仕様を拡張することには反対
結果として{は無理だと思うけど。
コンパイラ指令で切り分けできたら面白いすね、デフォルトはOFFで。

364 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:45:26 ]
TEditの枠線の色を赤色に変えるにはどうしたらいいでしょうか?
よろしくお願いします。

365 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:51:45 ]
OSの管轄なので無理
あるいはオナニードロドロ



366 名前:364 mailto:sage [2008/12/06(土) 15:58:30 ]
早速回答ありがとうございます。
ちょっと変えてくれと言われたんだけど厳しそうだし、
見た目の問題だけなのでそのまま放置しますw

367 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 16:00:53 ]
>>364
一回り大きいPanelに乗せてPanelの色を変える

368 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 16:12:37 ]
>>366
ならそいつにVSでも変えてろハゲとでも言ってればいい希ガス

369 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 19:18:45 ]
Delphi2006でヘルプを使いDelphi終了すると、タスクにdexplore.exeが残り、
再びDelphi2006起動してヘルプを使いDelphi終了すると、タスクにdexplore.exeが2つ残り、
とドンドンdexplore.exeがタスクに増えて行きます。(OSはXPです)
これって、メモリーけっこう食ってますが、Delphiのバグでしょうか?


370 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 21:16:21 ]
dexplorerのバグでしょう、きっと。

371 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 09:41:05 ]
VS だとそんなことないから Delphi のIDEのバグじゃないの?

372 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 11:49:41 ]
食わせてるデータがまずいからだとは思うんだけど、それで逝っちゃうようなのはやっぱりバグだと思うんだ。
DelphiのIDEはDExplorerをキックしてるだけだしね。ちなみにXPで発現することが多いみたい。

373 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 16:17:50 ]
Borland Developer Studio 2006 (Professional)をデフォ状態でDelphi使うと
ヘルプにC++の内容まで検索されてウザイ。
C++の内容が検索されなくなる設定ができるかどうか調べても未だに分からない。
どなたかHELP!


374 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 19:34:12 ]
それが円馬鹿クオリテー

375 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 02:15:33 ]
フィルタ条件ではあかんのか



376 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 09:20:16 ]
6とかだとヘルプファイルの検索対象の範囲とか設定できるんだけどねぇ‥‥
CLXのヘルプ外したりとか。

377 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 11:59:47 ]
ヘルプはひどいな
リンクも不十分だし、欲しい情報になかなかとべん

378 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [2008/12/08(月) 17:35:10 ]
旧ボーランド時代からヘルプは良くなかったですねぇ。
初代Delphiの頃はまだ良かったのですが…

>>367
さらにEditを枠無しにしたら完璧ですね。


379 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 16:44:35 ]
>>378
やってみたけど枠を消すと文字がずれて、枠有りの状態のようにはいかなかった。

380 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [2008/12/09(火) 17:47:19 ]
確かにうまくいきませんでした。

赤パネル
 Editと同じ色のパネル
  Edit

の三段重ねでEditの位置を調整してなんとかそれらしく?なりましたがなかなか骨の折れる作業です。
複数貼り付けるならアンカーを使ったり赤パネルの代わりに赤フレームにすると作業効率は多少ましになるかもしれませんが
AutoSizeが利かなくなるのかフォントサイズを変えてもウィンドウサイズが変わらないのはつらいですね。


381 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 18:32:27 ]
そんなことするよりTCustomEdit継承して新しく作った方が楽じゃない?

382 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 20:53:08 ]
初心者質問お願いします。
DateTimePickerにMaxDateを設定している時、
プログラムでDateTimePickerのDate プロパティにMaxDateと同じ日付を代入することはできないのでしょうか?
手動ではMaxDateの日付を設定できます。
当方Delphi4です。

〜例〜
(MaxDate は2008/12/31と設定している)
DateTimePicker1.Date := StrToDate('2008/12/30'); ・・・日付が反映される
DateTimePicker1.Date := StrToDate('2008/12/31'); ・・・日付が反映されない
DateTimePicker1.Date := StrToDate('2009/1/1'); ・・・日付が範囲を超えているとエラーが出る
(手動で2008/12/31を設定することはできる)

383 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 21:23:34 ]
TEdit も TDateTimePicker もウィンドウズのコントロールだから、その機能は
本質的には Delphi と関係ない。MSDN 読むほうがいい。 >>381 は馬鹿回答。

384 名前:382 [2008/12/09(火) 21:49:28 ]
>>383
そうでしたかぁ。
ありがとうございました。


385 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 00:48:07 ]
>382
Timeプロパティに何が入ってるか確認したほうがよいかも。



386 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 08:21:07 ]
>>373
俺も2006でDelphiだけが表示される正式なヤリ方がしりたい。

前にどこかを見てやったときは、ヘルプのアプリ?がバグバグで
設定したのに設定したことにならなかったり嫌になった覚えがあるな。
しかし、どうやって設定したか憶えてなくて困る。
Delphiヘルプのみってのが確かできたはずなんだが。

6の時はテキスト弄るだけで簡単だったけどな。

387 名前:382 mailto:sage [2008/12/10(水) 13:20:42 ]
>>385
Timeプロパティを00:00:00にしたら正しく動きました!
ありがとうございました!

388 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 00:17:14 ]
TEditの枠のありなしでサイズが変わるのはVCL内で実装されているから、
継承してサイズが変わらないようにすればおk
それ以前にコントロールは自分でも描画できるから、簡単に枠を描画することが可能
↓にサンプルがある
www.delphipages.com/threads/thread.cfm?ID=171344&G=171334
VCLはただWindowsコントロールをラップしてるだけでなく独自のコードも追加してるし、
>>383はかなり見当違いの回答なので初心者は参考にしないようにね

389 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 00:22:03 ]
2006ではDelphi以外のHELPも(親切に)表示するのが仕様ということでハイ {{{{(+_+)}}}}。
(アーーーーめんどくさい)
しかし、こんな簡単なことがデフォでできてないなんて、何なのこの会社?

390 名前:デフォルトの名無しさん [2008/12/11(木) 00:24:47 ]
教えてください。MediaPlayerを使って1から9までの動画をランダムにつなげて流すというプログラムを作っています(例えば2→5→8→1→3→9→4→7→6の順番で動画を流してくれるようなプログラムです)
とりあえず作ってみたのですがボタンを押してもうんともすんとも動きません。ここが間違ってる、こうしたら良いなどのアドバイスをいただけたらと思います。よろしくお願いします

var
cou,new,test,i:Integer;
video:Array[1..9]of integer;
procedure TForm1.Button2Click(Sender: TObject);
begin
cou:=cou+1;
if cou>9 then exit;
Randomize;
new:=Random(10);
repeat
test:=0;
For i:=1 to cou do
if new=video[i] then test:=1;
If test=1 then new:=random(10);
until test=0;
video[cou]:=new;
MediaPlayer2.FileName:=ExtractFilePath(application.ExeName)+'tabidachi'+IntToStr(new)+'.wmv';
MediaPlayer2.Open; MediaPlayer2.Notify:=True; MediaPlayer2.Play;

procedure TForm1.MediaPlayer2Notify(Sender: TObject);
if (MediaPlayer2.DeviceID <> 0) and (new < 10) then
begin
MediaPlayer2.FileName := ExtractFilePath(application.ExeName)+'tabidachi'+IntToStr(new)+'.wmv';
MediaPlayer2.Open; MediaPlayer2.Play; Inc(new);
end;

391 名前:デフォルトの名無しさん [2008/12/11(木) 00:44:39 ]
宿題でダイヤモンドパターンのプログラムがあるのですが教えてください!!!!

392 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 00:45:27 ]
couの初期値って何なの?

393 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 03:01:18 ]
>>388 そうなんですか。それで変な動作をするんですね・・ TEdit くらい単純なラッパーの方がいいのに。

394 名前:386 mailto:sage [2008/12/11(木) 10:02:34 ]
ヘルプの編集思い出した。
編集というか、デフォルトのフィルタを変更するだけだけど

「ヘルプ」→「フィルタの編集」
(フィルタなし) を選択して、例えば以下を突っ込んで Save

("DevLang"="Delphi") OR ("DocSet"="bds_Win32") OR ("DocSet"="PSDK") OR ("DocSet"="indy")

これで、デフォルトでDelphiとBDS Win32とPlatformSDK、Indy 10からしか検索されない。

根本的にいらないヘルプをはずすわけではなく、
実質、起動時にフィルタを選択しているのでヘルプ起動時少し重いが難

395 名前:386 mailto:sage [2008/12/11(木) 10:06:04 ]
根本的に削除する方法みつけた。これでいけるんじゃね?

ヘルプを登録しなおすには:某所:So-net blog
bousyo.blog.so-net.ne.jp/2006-01-09

某所 - C++Builder のヘルプを削除するには
bousyo.blog45.fc2.com/blog-entry-91.html




396 名前:386 mailto:sage [2008/12/11(木) 10:08:25 ]
ああ、やべえ、 >>394 はやらん方がいいわw
(フィルタなし) に Saveすると、以下の様にでて元に戻せなくなるわw

---------------------------
Windows Internet Explorer
---------------------------
Filter cannot be saved without a definition
---------------------------
OK
---------------------------

欠陥ヘルプww

397 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 10:22:02 ]
>>396 の問題は、deleteで(フィルタなし)を削除しようとしたら大丈夫だった

>>395のヘルプの編集はうまくいった。
以下C++と.NETの削除の方法 for Vista。

まずは、適当なフォルダに %PROGRAMFILES%\Borland\BDS\4.0\Help\Common\mergeWin32.xml をコピー。
以下のパッチを当てる。(といっても該当行を削除するだけ)

--- mergeWin32.org.xml  2005-11-14 10:00:00.000000000 +0900
+++ mergeWin32.xml      2008-12-11 10:12:02.910931700 +0900
@@ -10,16 +10,13 @@
 <CompiledIndex>Help\Win32\bds4Win32devguide.HxI</CompiledIndex>
 <CompiledIndex>Help\Win32\bds4Win32tasks.HxI</CompiledIndex>
 <CompiledIndex>Help\Win32\bds4Win32api_win32.HxI</CompiledIndex>
-<CompiledIndex>Help\Win32\bds4Win32api_cpp.HxI</CompiledIndex>
 <HelpTopic>Help\Win32\bds4Win32guide.HxS</HelpTopic>
 <HelpTopic>Help\Win32\bds4Win32devguide.HxS</HelpTopic>
 <HelpTopic>Help\Win32\bds4Win32tasks.HxS</HelpTopic>
 <HelpTopic>Help\Win32\bds4Win32api_win32.HxS</HelpTopic>
-<HelpTopic>Help\Win32\bds4Win32api_cpp.HxS</HelpTopic>
 </FileList>
 <Filters>
 <Filter Name="Developer Studio 2006 for Win32">"DocSet"="bds_Win32"</Filter>
-<Filter Name="Language: C++">"DevLang"="C++"</Filter>
 </Filters>
 </Merge>
 </helpConfig>

(つづく)

398 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 10:24:29 ]
同じフォルダに以下のregHelp.batファイルを作り、管理者権限で実行

copy mergeWin32.xml "%PROGRAMFILES%\Borland\BDS\4.0\Help\Common"
"%PROGRAMFILES%\Borland\BDS\4.0\Help\Common\regHelp.exe" -7
"%PROGRAMFILES%\Borland\BDS\4.0\Help\Common\regHelp.exe" 5

おもむろにヘルプを起動すると、しばらく後適用された状態で検索ができる

                   / ̄\
                  |     |
                   \_/
                 __|___
                 /        \
                  /         \
                    l            | 
              (             |
                   \       〃_/
                 >'⌒ ̄ ̄、,\
                /         \
               /  ィ     ,ノ'ヾ ヽ
                (   /  ),      l
                  ) ノ _,/    、,,  |
                /⌒ ̄ ̄ ̄          |
            l  、_          ,ノ ,/
          | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
.            └┬:‐┬───┬‐────┘
            ノ ,‐‐,)      丿,‐‐,)          ┼ヽ  -|r‐、. レ |
           (,∠/       (,∠/           d⌒) ./| _ノ  __ノ

399 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 10:39:17 ]
>>397
念のため編集前に mergeWin32.xml はバックアップを取っておいた方がよいです

400 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 12:52:35 ]
>>394-399
サンキューベリーマッチ!  m(_ _)m

401 名前:390 [2008/12/11(木) 13:28:48 ]
>>392さん
初期値は設定していません。設定しないとうまくいかないんでしょうか?

引き続きご回答いただければ幸いです。よろしくお願いします

402 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 13:33:07 ]
cou:=cou+1;
の行にBreakPointを置いて、実行。

止まったときのcouの値は?

cou:=0;
で初期化しないとだめじゃないの?
自動で0にしてくれたっけ?


403 名前:390 [2008/12/11(木) 13:57:43 ]
>>402さん
cou:=0;で設定し、ブレークポイント置いて実行してみました
couは1で止まってしまっているみたいです…

404 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 14:22:02 ]
ランダムに再生の前に、普通に再生は出来るの?
video: array[1..9]of Integer に適当に数値を入れて、再生させると再生できるの?
それとも、それでも再生できないの?

ランダムの部分がいけないのか、再生部分がいけないのかの切り分けはしましたか?


405 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [2008/12/11(木) 14:41:32 ]
>>402
ローカル変数は初期化されません(0にしてくれません)。
だから自分で初期値として0を代入しなければなりません。
ちなみにグローバル変数は初期化されます(0にしてくれます)。

たまたま0になっているときもありますがこれを当て込んではいけません。




406 名前:390 [2008/12/11(木) 14:42:17 ]
>>404さん
ボタンを押しても何も起きません。読み込みもしてくれなくてうんともすんともです
再生部は問題ないようです。前半部のランダムの部分が良くないようです
説明不足な点が多くすみません

407 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 14:50:19 ]
この板の上の方にBINGOの問題があって、
そこで同じようにランダムに数値を並べる例が出てるから、みて見れば?

その例にそってvideo[1..9]にちゃんとランダムに数値を入れるところまで、
頑張ってみようよ。


408 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 16:18:31 ]
Del7でバックグラウンド、最小化状態のウィンドウを
フォアくグラウンドに持ってきたくて
www.swissdelphicenter.ch/torry/showcode.php?id=261
のコードを組み込んでみたところ
バックグラウンドからは成功したものの
最小化状態からはフォアグラウンド化できません。
どうやればいいんでしょうか。

409 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 22:52:35 ]
マウスのホイールをフックしたいのですがホイールの上下を感知することってできるのでしょうか?

410 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 23:00:56 ]
すみません
wParamを見ればいいことがわかりました
お騒がせしました

411 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 03:08:36 ]
var a: array[0..10] of Byte;
みたいな感じで定義した配列に、@a[0]を対象にMoveMemoryとかをやっても大丈夫なんですか?
配列はメモリ上で常に連続しているものなんですか?
Cardinal型とByte型の配列を相互に入れ替えるとき、Moveは面倒くさくて

412 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 03:40:11 ]
連続して無いとFileName: array[0..MAX_PATH] of Char;とか使えなくなる
ので連続してるだろう

413 名前:デフォルトの名無しさん [2008/12/13(土) 18:39:04 ]
すみません!!!
0から1の乱数randomを200回発生させ、第1項から200項目までの和、その平均、二乗和を求めるプログラムを穴埋めで回答するように。
という課題がわかりません↓↓
教えてください!!
なお、和はedit1、平均はedit2、二乗和はedit3に出力するものとし、
s: 和
ss: 二乗和
 r: 0 から1の乱数をいれる変数
av:  平均値       とする。
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
s,ss,r,av:real;
begin
s:=[(1)];
ss:=[(2)];

[(3)] i:=1 to [(4)]
[(5)]

r:=random;

s := s+ [(6)];
ss:= ss + [(7)];
end;
av:=s/[(8)];
edit1.text:=[(9)];
edit2.text:=FloatToStr(av);
edit3.text:=[(10)];
end;

}

414 名前:413の続き [2008/12/13(土) 18:42:22 ]
和の値(小数点以下3桁目を四捨五入する)
平均の値(小数点以下3桁目を四捨五入する)
二乗和の値(小数点以下3桁目を四捨五入する)
も是非是非お願いします!!!!

415 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 18:44:36 ]
これぐらい分からないとしょうがないぞ
0
0
for
do
begin
i
i*i
200
s
ss



416 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 18:46:11 ]
おれも出来てなかった

417 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 18:47:08 ]
自力で解く気ゼロだな

418 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 18:54:21 ]
5にrandomize入れてしまったw
4はdo beginで

419 名前:390 [2008/12/13(土) 22:00:35 ]
>>407さん
いろいろとアドバイスいただきありがとうございました。お礼が遅くなり申し訳ありません

420 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 22:34:48 ]
>>413
宿題スレはこちら
Pascalの宿題は俺にやらせろ!!Part2
pc11.2ch.net/test/read.cgi/tech/1136994325/

421 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 23:40:05 ]
宿題を丸投げする413が教授に怒られますように
ニヤニヤ

422 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 23:44:44 ]
大学でDelphi習うところあるんだね

423 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 00:05:58 ]
どっちかというとDelphiというよりはPascalだろーけどな

424 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 00:09:20 ]
Delphi2006でファイルメニューの「開き直す」を選んだとき、過去のプロジェクトがたった4件しか表示されません。
これだと、ちょっと別のプロジェクトをいじっていると肝心のプロジェクトが表示されなくなったりして面倒です。
そこで「開き直す」プロジェクト数を増やそうと思ってオプションを見ましたが、該当するパラメータが見つかりませんでした。
このようなプロジェクト数を増やす設定は可能でしょうか。


425 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 01:53:01 ]
>>424
それは俺も不便に思ってる。

スタートページも確かパス表示なしな上に、
プロジェクトの履歴少ないよな



426 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 04:33:00 ]
>>424
プロジェクトのショートカットをデスクトップにでも作っておけ

427 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 06:18:44 ]
ショートカットだと、もう一個IDEが起動する(´・ω・`)ショボーン

428 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 11:26:28 ]
Delphi2006なら
HKEY_CURRENT_USER\Software\Borland\BDS\4.0\Closed Projects
を書き換えるだけのソフトを作っておけばいい
コマンドラインにプロジェクトファイルをくっつけて

429 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 11:42:52 ]
それって簡単?

430 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 11:45:35 ]
簡単かどうか試せばいいんじゃね?

431 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 12:04:00 ]
ActiveProjectsとかいうフォルダにショートカット作っておいて
タスクバー右クリツールバーの登録で指定して
>>から起動したいファイルをIDEにドラッグドロップすれば開けるんじゃね。

432 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 12:41:52 ]
>>430
やってみたけどIDE起動してると効かないみたい。そしてIDE終了さ
せるときエラーになる。
IDE起動してない状態で書き換え、IDE起動させれば確かに効くけど、
IDEの再起動が面倒かな。


433 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 13:18:43 ]
>>431
やってみた。

ショートカットだと .lnk ファイルが開かれるだけ。

実プロジェクトファイルだと、現行プロジェクトを非アクティブにしてプロジェクトグループに追加される。
しかし、元々関係ないプロジェクト同士でプロジェクトグループにすると、どのユニットが何がなんだか分か
らなくなる。


434 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 08:39:54 ]
いくつものスレッドでメインスレッドにある一つの配列をいじくる場合って衝突する危険性があると思います
どうやって衝突を回避するんですか?

435 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 08:50:37 ]
>>434
補足です
その共通に使う配列は構造体の配列でaddしたりDeleteしたりする関数を呼ぶ事で操作しています
スレッドから操作関数をよぶときにどこかが呼んでいる時は待つ、みたいなことができればいいと考えています
どうすればそういうことができるのでしょうか?



436 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 09:40:13 ]
mutexやCriticalSectionで衝突する可能性のあるコードを保護する。
TCriticalSectionでも使っとけ。

437 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 12:17:00 ]
下記スレッドの説明から


異なるスレッドが所有する VCL または CLX のメソッド/関数/
プロパティを別のスレッドの中から扱う場合、排他処理の問題が
発生します。

メインスレッドの所有するオブジェクトに対しては Synchronize
メソッドを使う事ができます。他のオブジェクトを参照するため
のメソッドをスレッドクラスに追加し、Synchronize メソッドの
引数として渡します。

438 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 13:43:44 ]
>>434 >>437
玄人ではありませんし、add,deleteの頻度にもよりますが、add,deleteが1秒内に何十回も発生するなら
そのたびにSynchronizeを多用するとスレッド化のメリットが失われますのでいかがなものかと思います。
その場合、私なら全配列を丸々コピーしてスレッド内処理後、Synchronizeもしくはterminate後に元にコピーします。
当然、メモリー効率は犠牲にします。
低頻度ならそのたびにSynchronizeで良いのでは?


439 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 14:04:42 ]
>>438
>434
>いくつものスレッドでメインスレッドにある一つの配列をいじくる場合
ということなので、各スレッドがコピーして保持し処理後にリストアするならばスレッドにする必要が無いと思う

>Synchronizeを多用するとスレッド化のメリットが失われます
メリットはまさに衝突回避なのだと思うけど、ここで頻度については議論の外でいいのでは?

まー後は434さんが実装して確認するのがはやいわな

440 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [2008/12/16(火) 01:20:02 ]
>>411
亀ですが、言語仕様では

 「静的配列はその配列の要素型の連続した変数の並びとして格納されます」

とあります。

わかりにくいのですが「連続した変数の並び」ということなので
連続して並んでいることを保証していると考えて良いと思います。


441 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 04:00:12 ]
動的配列は連続してないかも、ってそんなことあるかいな・・

442 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 09:53:45 ]
動的配列はポインタ1個だから、1つのメモリブロックしか扱えない。
だから連続してないってことはありえない。

443 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 10:44:42 ]
初期化にFillCharルーチンなんぞを使ってるけど、動的配列や静的配列が
どんなに大きくてもここ数年まったく問題なく動いていますんで、間違い
なく連続してると思いますヨ。

444 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 18:16:34 ]
case文のelseはbegin,endでくくらなくてもOK?
case i of
1: aa;
2: bb;
else
cc1;
cc2;
end;

445 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 18:21:38 ]
ok



446 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [2008/12/16(火) 19:42:58 ]
し、知りませんでした… orz

Delphi 4とDelphi 5の言語ガイド「case文」の項を見るとひとつの文しか記述出来ないような文面なのですが
Turbo Delphi Explorerのヘルプ「宣言と文」の項を見ると複数の文を記述できるという内容が書いてありました。
しかし試してみたところDelphi 5とTurbo Delphi Explorerの両方でコンパイルが通ってかつすべての文が実行されるのを確認しました。

case 文の else 以降にbegin〜endを付けなくて良いとなるとコードもかなりすっきりしそうですね。


447 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:28:16 ]
VCLのソース読むとかなり参考になるよ
例えばwith分で,で区切って複数の変数を使える
var


Edit: TEdit;
Button: TButton;
begin
中略
with Edit, Button do

Caption := Text;// ButtonのCaptionをEditのTextに設定
end;
これを知らないと
with Edit do with Button do〜とか書くことになる

448 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:30:33 ]
俺も知らなかった
でもcase文ってそんなに使わないよねってか使えないよねcase文って

449 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:38:12 ]
縁の下の力持ちってとこだろう

450 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [2008/12/16(火) 20:58:11 ]
>>447
私がVCLのソースを参考にしたものはこんな感じです:

・TStringsとその派生クラス
・TCollection/TCollectionItemとそ(ry
・Resultをループ変数に使う


>>448
          ( ))))))))))))
        //(;;;`∀´;;;)  使うんだな、それが!
         /     \
      __| |     | |___
     ||\   ̄ ̄ ̄ ̄     
     || \   -●-●


451 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:28:59 ]
case文使わなかったら、if then地獄になるじゃん

452 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:42:49 ]
相変わらずドキュメントがだめだなぁ

453 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:51:30 ]
ならWikiか何かで強力なドキュメント作っておくれよ

454 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:46:44 ]
何かでcase文よりIF文の方が早いって見てから、ずっとifelse羅列してる俺がいる。

455 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:56:55 ]
どう考えても逆w

5万で組んだマシンがあまりにも速すぎてゲーム以外では持て余し気味で
もうプロファイルも取らずに局所的な高速化を試みることもなくなったな。



456 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:57:32 ]
そんな超微量な時間のために可読性を捨てるのもちょっとな

457 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:44:29 ]
多態を使えばcaseの出番は減る。

多重なwithはスコープを不明確にするので控えめがお勧め。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<151KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef