2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

モナーの *やさしい* Delphi質問スレ Ver.11

1 :Delモナー:03/01/13 10:33
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
 (    ) .| Delモナーは時に私であり、時には別の人。
 | | |  | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 (__)_)  \_________________________

前スレ モナーの *やさしい* Delphi質問スレ Ver.10
http://pc3.2ch.net/tech/kako/1038/10388/1038880567.html

2 :デフォルトの名無しさん:03/01/13 10:33
■過去スレ

モナーの *やさしい* Delphi質問スレ Ver.9
http://pc3.2ch.net/tech/kako/1033/10336/1033668645.html

モナーの *やさしい* Delphi質問スレ Ver.8
http://pc3.2ch.net/tech/kako/1027/10278/1027873869.html

モナーの *やさしい* Delphi質問スレ Ver.7
http://pc.2ch.net/tech/kako/1021/10212/1021262086.html

モナーの *やさしい* Delphi質問スレ Ver.6
http://pc.2ch.net/tech/kako/1019/10191/1019134412.html

モナーの *やさしい* Delphi質問スレ Ver.5
http://pc.2ch.net/tech/kako/1017/10178/1017803412.html

モナーの *やさしい* Delphi質問スレ Ver4
http://pc.2ch.net/tech/kako/1016/10164/1016467137.html

モナーの *やさしい* Delphi質問スレ Ver3
http://pc.2ch.net/tech/kako/1014/10144/1014474727.html

モナーの *やさしい* Delphi質問スレ Ver2
http://pc.2ch.net/tech/kako/1011/10116/1011649179.html

モナーの *やさしい* Delphi質問スレ
http://pc.2ch.net/tech/kako/1003/10031/1003113413.html

3 :デフォルトの名無しさん:03/01/13 10:34
このスレは冗談で作られた偽スレです。

すでに削除依頼済ですので、今後は書き込まないようにお願いします。

本物のスレは↓こちら。

http://pc3.2ch.net/test/read.cgi/tech/1037146781/l50
Delphi相談室その8

4 :1001:03/01/13 10:36
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

5 :デフォルトの名無しさん:03/01/13 10:41
>1
( ´∀`)乙!


6 :デフォルトの名無しさん:03/01/13 11:26
スレ立て乙

もう前スレがhtml化されてるのには驚いた。

7 :デフォルトの名無しさん:03/01/13 12:56
つーか>>1のモナーの語り口はダメ過ぎ
モナー使うなら全部語尾は「もな」でお願いします

8 :デフォルトの名無しさん:03/01/13 13:05
>>7
このスレの伝統だから、大目に見てあげて。

9 :デフォルトの名無しさん:03/01/13 22:10
大型連休に固定が消えるのはいつものこと(ひろゆき含む)

10 :デフォルトの名無しさん:03/01/14 06:44
質問させて下さい。

Delphi6 Enterpriseを使っているのですが、
ShellListViewから、ショートカットファイルをクリックし、そのURLとタイトルを
取得するにはどうしたらいいのでしょうか?


11 :TECH:03/01/14 08:30
>>10
//ショートカットファイル かどうかは
  with ShellListView1.SelectedFolder do
   if fpIsLink in Properties then begin

//タイトルは
   Memo1.Lines.Add( DisplayName );
//ショートカットファイルのファイル名は
   Memo1.Lines.Add( PathName );
  end;
さらに URLが必要な IShellLinkを PathNameからか ShellFolder からか収得する
http://www.google.co.jp/search?q=IShellLink+Delphi&lr=lang_ja

12 :10:03/01/14 19:16
>>11
レスありがとうございます。
やってみます。

13 : :03/01/14 23:48
>>10
たった今、ほとんど同じ質問を他の場所で読んだ気がするのは
気のせいか?

14 : :03/01/15 00:34
粘着ですまないが、>>10からレスが無いな…。
マルチだね?
2003/01/14(火) 06:57:03 と 
TECH :03/01/14 08:30 か…

マルチはやめとけよ。そんだけ。

15 :13,14:03/01/15 01:26
訂正。
TECH氏に悪いので…。スマソ。

2003/01/14(火) 06:57:03 と 
デフォルトの名無しさん :03/01/14 06:44。
こっちの方が先に書いたのか。

16 :デフォルトの名無しさん:03/01/15 12:03
Database DesktopまたはDatabase ExplorerでSQLを実行する際に
WHERE句にパラメーターを使いたいのですがやりかたが判りません。
どなたか教えてください。


17 :デフォルトの名無しさん:03/01/15 12:13
TQuertの Params プロパティのようにって事ですか? それは無理というか・・・

18 :16:03/01/15 13:13
やっぱり無理ですか。
Database DesktopでテストしてOKならそのままTQueryにコピペできれば
楽なんですけど。
パラメーターが使えるツールはないですかねぇ。

19 :TECH:03/01/15 13:28
>>18
新規プロジェクトを作って、フォームにメモとDBGridとボタンを貼り付けて
作ってるアプリの DataModuleユニットを入れて
ボタンイベントで TMemoの内容でDataModuleのTQuertを更新したら?

 


20 :16:03/01/15 13:44
>>19
とりあえずそれでやってみます。ありがとうございました。

21 :デフォルトの名無しさん:03/01/15 14:46
スンマセンが教えてください。

例えばフォームにボタンを3個貼って、それを実行してTABキーを押すと
ボタンを貼り付けた順番でフォーカスが移動しますよね。
それを任意の順番で移動させたい場合はどうするのですか?(OnKeyDownイベントとか書かずに)

22 :デフォルトの名無しさん:03/01/15 15:07
>>21
フォームを右クリックしてタブ順序を変更する。

23 :21:03/01/15 15:23
>22
ありがとうございますた。簡単ですた。

24 :山崎渉:03/01/15 17:45
(^^)

25 :デフォルトの名無しさん:03/01/15 21:54
教えて頂きたいのですが、

26Mバイト、90万行のテキストファイルから文字列を抜き出そうと思ってます。
AssignFile、readlnを使用して一行ずつチェックしていくプログラムを作成したのですが
どうも全てチェックできないようです。

While not Eoln(F) do begin
readln(F, Str1);
〜〜
end;

上の様に一行ずつチェックしていきます。
この方法ではこのサイズのテキストデータを扱うのは無理なのでしょうか。

26 :デフォルトの名無しさん:03/01/15 21:55
んなこたない
変な文字コードでも混じってるんじゃないの

27 :デフォルトの名無しさん:03/01/15 22:03
>>26
ありがとうございました。
原因がわかりました。よく考えてみたら、Eoln は行の最後かどうかチェックする
関数でした。 正しくはSeekEofにしないと駄目ですね。

どうも有り難うございました。

28 :デフォルトの名無しさん:03/01/15 22:43
Delphiやりたいんだけど、やっぱDelphi7をやった方がいいのかな?
Delphi6はフリーで落とせるみたいなんだが・・・

29 :デフォルトの名無しさん:03/01/15 22:48
PersonalとProfessionalの差は大きいけど
6と7の差なんて大してないからPro買わないんだったら6Perで十分。

30 :デフォルトの名無しさん:03/01/15 22:59
>>29
ありがとうございます。

31 :デフォルトの名無しさん:03/01/15 23:00
ども、任意のディレクトリ一覧を得たいのですがヒントをくださいお願いします(;´Д`)

32 :デフォルトの名無しさん:03/01/15 23:01
FindFirst/Next/Close

33 :デフォルトの名無しさん:03/01/15 23:04
>>32
ども、それっぽいところに行き着けました(;´Д`)

34 :デフォルトの名無しさん:03/01/15 23:55
頼むから1回くらい検索してからにしてくれ。
http://www.google.co.jp/search?q=%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA+%E4%B8%80%E8%A6%A7+delphi&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

これくらい思いつくと思うが…。

35 :デフォルトの名無しさん:03/01/16 22:55
訳あってApplication.MainFormじゃない普通のフォームをメインのフォームとして使ってます。
ShowModalで表示したフォームがそのフォームより後ろに隠れないようにするにはCreateParamsのoverrideで出来ると分かったんですが
ShowMessageやMessageDlgとかで出てくるフォームが後ろに隠れないようにする方法が分からないっす。
誰か教えてください。

36 :デフォルトの名無しさん:03/01/16 23:35
iniファイルでやることにしたか…。
こっちにも報告しろよ。
ってもう見てないか?

37 :デフォルトの名無しさん:03/01/17 00:18
プログラムは一切やった事無いんですけどpersonal版がフリーなので落としてみました。
挑戦しようと思うんですけど、プログラミング事態に面識が無いので
勉強すれば良いんですけど何をすれば良いかすら解りません。
アマゾンとかで検索かけるもどんな内容かも読まないから解らないし
かと言って本屋に行ってもVBユーザーのdelphiとかしか無くて
VBすら触った事の無い俺はどないせー言うんじゃぁぁ!
・・・という、どうしようも無い屁タレっぷりを発揮してしまったのですが
とにかく、プログラミングをした事ない人間に良い書籍及び勉強法をご存知でしたら
どうか教えて下さいませ、お願いします。

38 :デフォルトの名無しさん:03/01/17 00:26
>>37
最初は「初心者向けデルファイ」として講座を開いてくれてるページを
参考にした方がいいと思う。タダだし。
いきなり本買ってもいいけど。
「プログラミング 初心者」とかで検索してみては?
つーか、全くもって何が何だかサパーリだと、そーゆーのを見るだけでストレスかも
しれないから、もっと簡易(深い意味は無い)な言語とかスクリプトから始めると
ラッキーかも。ラッキープレイスは東京タワー。ラッキーカラーはclwhite。
とっておきの帽子を被って出かけるといいことありそう!

39 :デフォルトの名無しさん:03/01/17 00:33
>>37
とりあえず、なんか作ってみるとか。
メモ帳とか、ラーメンタイマーとかなら、コードは少しだけでいいし。


40 :デフォルトの名無しさん:03/01/17 00:34
初心者向けのサイトは結構頓珍漢なことが書いてあるのでお勧めしない。
FAQ&Tipsの検索とわからない事を質問するにとどめた方がいい。
まとまった情報は書籍にすべし。

41 :デフォルトの名無しさん:03/01/17 00:34
>>37
http://onigiri.s3.xrea.com:8080/delphi/
とりあえず、ここのリンクの初心者向けのサイトを見てみたら?
最初は解説通りに何かを作ってみるだけでも意味が有ると思うから。

42 : :03/01/17 02:09
MDIアプリケーションでmainformのkeypreviewをtrueにして
onkeypressイベントの所に

begin
showmessage('キー押したよ');
end;

と書いて実行したんですが、キーを押してもメッセージダイアログが出てきません。
なぜキーを押したのにダイアログが出ないのか分からないのですが、
教えていただけないでしょうか
バージョンはpersonal ver6です。
よろしくお願いします。

43 :TECH:03/01/17 07:58
>>42
なぜ、出ないのかは説明が難しいですが、MDIChildのフォームも作成時の
親は Application だという事で、
 全部のキーイベントをフックしたい場合は、メインフォームではなく
 Applicationの持つ窓ハンドルに対してフックすると多少は横取り
 可能な範囲が広がります。

procedure TMainForm.FormCreate(Sender: TObject);
begin
Application.OnMessage:=MessageEvent;
end;

procedure TMainForm.MessageEvent(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message=WM_CHAR then begin
   showmessage('キー押したよ');
end;
end;


ただ、メニュー操作時やダイアログ操作時はたぶんダメでしょう

44 :デフォルトの名無しさん:03/01/17 12:52
>>43
教えてくださってありがとうございます!
ちょっと理解できない所もあるのですがそこは自分で勉強して
何とかやってみます。
ありがとうございました。

45 :37:03/01/17 17:25
>>38-41
レス有難うございます
>>41さんの挙げたページから辿って行けばなんとなく解るような(?)ページがありました。
>>40さんのおっしゃる通り、今まで色々なdelphi関連の初心者ページを見て回ってましたが
全体的に最低限の知識を所有する人間相手のページばかりでしたので大変助かります。

未だ先の話なのですが、皆さんはdelphi初心者の頃はどんな書籍を見ましたか?
amazonで調べると何やらやたらと評判のわるいのとかよく見かけるんで
人によって向き不向きはあるでしょうが、参考までに教えてください
よろしくお願いします・・・。

46 :TECH:03/01/17 17:43
>>45
最終的には、技術書は並べてベッドに出来るくらい読まないといけないわけで、
どれが良いとか悪いとか考える前に、学校なり近所の図書館なりを利用して
まずは沢山読んでみる方がいいのでは?

それからプログラミングについては、やはり他人のコードを読むことが一番の勉強になります。
Web上の色んなソースを読んだり、
少しお金を貯めて Proを買ってVCLを読んだり

47 :TECH:03/01/17 17:50
後、やっぱり動かしながら勉強するのがモチベーションが保てて良い感じです。

最初に
ファイル->新規作成->その他->プロジェクト->SDIアプリケーション
して、これを元に色々追加してみると良いでしょう。

それが終ったら、
Demos ディレクトリの内容を順に見ていくとか


48 :デフォルトの名無しさん:03/01/17 23:31
やっぱり「自分が欲しいソフトを作りたい」が一番のモチベーションかなぁ?
とオレは思う。

49 :デフォルトの名無しさん:03/01/18 06:25
>>48 ドウーイ
明確な達成目標がある事で学ぶ事の取捨選択ができるからね。
学ぶ事が多少偏るだろうし、非効率でツギハギだらけの
プログラムが出来あがるかもしれないけど
作る過程で得られる内容は確実に次に活かせるし
作ったという達成感が生まれるのはとても良い。

50 :デフォルトの名無しさん:03/01/18 13:14
しつもんです。
ほんとに初歩的ですが…

'TStrings' と 'Array' には互換性がありません

TStringsとArrayってどう型変換すればいいんでしょうか???

51 :デフォルトの名無しさん:03/01/18 13:21
50です。
ある程度直したら今度もエラーが発生しました(泣)

'TArchiverOptions' と 'String' には互換性がありません

これはどうしたらよいのでしょうか?
探しても型変換を詳しく取り扱ってるところがない・・・


52 :デフォルトの名無しさん:03/01/18 13:23
50です。
なぜか書き込めませんでした(エラーは出ず)
で、ある程度解決したのですが、

'TArchiverOptions' と 'String' には互換性がありません

のエラーです。
いくら探しても型変換を取り扱っているところが・・ない
初歩的ですみません

53 :50:03/01/18 13:23
書き込めません(泣)

54 :50:03/01/18 13:25
かきこめてました。
すみません


55 :デフォルトの名無しさん:03/01/18 14:19
TArchiverOptions の変数を直接代入しようとしてるのでは?
欲しいのは UserOptions とか ResFileName とかじゃないの?



56 :デフォルトの名無しさん:03/01/18 23:00
新規の質問です。

XPに「ユーザーによる操作なしで Windows にプリンタを追加する方法」
と言うのがあるのですが、
http://support.microsoft.com/default.aspx?scid=kb;ja;JP189105

プログラム上で設定を値を変えながら
プリンタを追加して行こうとかと思っています。が

[ WinExec ][ ShellExecute ]などを使っても動いてくれません。
こんなの↓
ShellExecute(Handle, 'OPEN', 'rundll32.exe',
'printui.dll,PrintUIEntry /if /b "Test Printer" /f "%windir%
\inf\ntprint.inf" /r "lpt1:" /m "AGFA-AccuSet v52.3" ', '', SW_SHOW);

DOSプロンプト&ファイル名を指定して実行では正常に追加されます。
根本的な物が抜けていると思うので、どなたかお助けを〜( ToT)



57 :デフォルトの名無しさん:03/01/18 23:05
CreateProcessは?

58 :デフォルトの名無しさん:03/01/18 23:12
>>57
CreateProcess?
さっそく挑戦中

レスありがとうございます

59 :デフォルトの名無しさん:03/01/19 00:40
>>58
つーか、思いっきりマルチポストだねぇ…。
よく恥ずかしくないね。信じられない。
あっち消しとけよ。

60 :デフォルトの名無しさん:03/01/19 02:04
>>59
すみません。。。

61 :デフォルトの名無しさん:03/01/19 13:14
IPアドレスを使ってチャットをするプログラムを
組みたいのですがどうするべきなんでしょうか?

62 :デフォルトの名無しさん:03/01/19 13:35
どうするべき?

63 :デフォルトの名無しさん:03/01/19 14:01
サーバーとクライアント

64 :デフォルトの名無しさん:03/01/19 14:19
indyでCGIファイルの要求を出して、
返ってきたファイルが、htmなのかgifなのかって判断はどうすれば
いいのでしょうか?

お願いします。

65 :デフォルトの名無しさん:03/01/19 16:13
>>64
拡張子を調べる

66 :デフォルトの名無しさん:03/01/19 16:17
頭の3バイトをチェック

67 :64:03/01/19 16:22
どうもありがとうございます。
jpegが返ってきたりする事はないのでしょうか?

68 :デフォルトの名無しさん:03/01/19 16:35
そりゃあるだろ。というかあっても破綻しないように作っとけ

69 :デフォルトの名無しさん:03/01/19 16:38
61ですが、教えてよん(はぁと)

70 :デフォルトの名無しさん:03/01/19 16:45
一般的なチャットの構造とDelphiでの実装のどっちがわからないんだ?
前者ならスレ違い。とりあえずIndyでもWinsockでも何でもいいからTCP覚えろ。

71 :デフォルトの名無しさん:03/01/19 16:56
Delphiでの実装です!

72 :デフォルトの名無しさん:03/01/19 17:00
>>64
Content-Type調べれば分かると思います。


73 :64:03/01/19 18:05
>>68
>>72
どうもありがとうございます。ヽ(´∀` )ノ

74 :デフォルトの名無しさん:03/01/19 18:21
>>71
その構造をIndyで作ればよいでしょう。

75 :デフォルトの名無しさん:03/01/19 18:23
>>74 どうやって作ったらよいのかわかりません・・・。

76 :デフォルトの名無しさん:03/01/19 18:32
>>75 何がわからないのかわかりません・・・。
とりあえずTCP/IP使った一般的なチャットクライアントの構造を説明してみなよ。

77 :デフォルトの名無しさん:03/01/19 18:42
>>77 はっきりとは分からないですが・・・。
俺はP2P方式のチャットソフトを作ろうとしています。
P2Pとは通信し合う機器の間にプロバイタ以外の機器が入らずに
通信する方法です。peer to peerでしたかな?
そのP2Pを用いてチャットシステムを組みたいのです。

78 :デフォルトの名無しさん:03/01/19 19:03
まずは普通にクライアント-サーバ型のチャットシステムを作る(exeは二種類)
client->server<-client
それができたらサーバの機能をクライアントに突っ込む(exeは一種類)
client<-client
つまりクライアントが他のクライアントからの接続要求を受けたら
サーバの役割も果たすようにする。

79 :デフォルトの名無しさん:03/01/19 20:08
>>77
だからそのP2Pを理解してるんですか?
理解していればおのずと何をするべきか分かると思うのです。

80 :デフォルトの名無しさん:03/01/19 20:58
Delphiで実際どのように記述したらよいのか分からないので。
コンポーネントとかは何を使ったらよいのやら・・・。
IdTCPServerってコンポーネント使えばよいの?

81 :デフォルトの名無しさん:03/01/19 21:57
>>80
TCP/IPの基礎から勉強してください。煽りじゃなくて。

82 :デフォルトの名無しさん:03/01/19 22:26
「どうするべきなんでしょうか?」とか逝ってる時点でもうDelphi以前の問題


83 :デフォルトの名無しさん:03/01/19 23:37
新手だよネ。
「○○は出来ますか」とかの。
自分で決めろって。
子供じゃないんだから。
煽りじゃなくて。
マルチポストも最低だけど、「どうすれば」だの「出来ますか」だの…。

84 :デフォルトの名無しさん:03/01/20 00:07
>>61
QuadrupleDのヘルプ見てごらん(DirectX9対応の最新βじゃなくてVer2.12のほうね)
すぐ作れるよ

85 :デフォルトの名無しさん:03/01/20 02:29
横やりだが
ADSLとかLANの中に居ると使えないチャットとか有るわけだがそのへんどうなんだろかと

86 :デフォルトの名無しさん:03/01/20 17:14
Delphi 6 Personal を使っているのですが
GETメソッドで特定のCGIにスコアを送信したいのですがどのようにすればよいのでしょうか?
参考サイトなどありましたら教えてください。

87 :デフォルトの名無しさん:03/01/20 17:25
>>85
ルータを設定しなさい。

88 :デフォルトの名無しさん:03/01/20 20:20
質問です

プログラム(EXE)の終了時に、呼び出し元に値を返す方法はどのような方法がエレガントなのでしょうか?

VB からEXEを呼び出して、その帰り値をVB側で取得することが目的です。
できれば文字列が取得できればいいのですが....

ご存知の方、ご教授ください。

>>86 あまりいい方法ではありませんが、IEを呼び出す方法があります。
(ブラウザが立ち上がりますが、それでも問題ないケースもあると思いますので)

ShellExecute(0, 'open',sURL, nil, nil, SW_SHOW);
詳しくはドキュメントでお調べください。



89 :デフォルトの名無しさん:03/01/20 20:28
ExitCodeで数値を返せる。それ以外は無理。
プロセス間通信するしかない。
あるいはiniファイルかレジストリか。

90 :デフォルトの名無しさん:03/01/20 20:53
>>88
その用途で文字列を渡すなら DDE かメールスロットが簡単だと思うよ。
メールスロットなら

Delphi相談室その8
http://pc3.2ch.net/test/read.cgi/tech/1037146781/400-401

91 :デフォルトの名無しさん:03/01/20 21:10
未来を考えるならDDEはちょっとなあ
ttp://www.microsoft.com/japan/msdn/net/vbtransitionguide/chapter5/chapter5_7.asp

92 :デフォルトの名無しさん:03/01/20 23:16
>>89-91
レス 有難う。大変参考になりました。

実際、調べるとこの辺りの仕様はあまり拡張されていないようですね。
調べ方が足りないのかと、ここに書かせてもらいました。
従来の方法だと値、もしくはポインタ(使わないほうが良いと書かれている)
となっているようでつд`).....

そうであれば89さんがご指摘のレジストリというのが手っ取り早いですかね。
エラー処理も整っているし、VB側からの呼び出しも簡単。
なにしろ、(プロセス間通信などのタイミングやメッセージアイドリング、タイマー)
などが入ってくると、目的とはかけ離れて無駄にプログラムが煩雑になりそうです。

レジストリの中にはOS起動時に消してくれる便利な場所もあるので、そういう部分を使ってみます。
ご意見、有難うございました。


93 :86:03/01/21 07:18
>>88さんありがとうございます

ネットランキングをやりたいのですが、どうにかブラウザを立ち上げずに
データのみ送信できないでしょうか?
GETでもPOSTメソッドでもかまいませんので何か方法があればご教授下さい。


94 :デフォルトの名無しさん:03/01/21 09:18
>>93
SocketからHTTP実装するとかな。なんかHTTP用のコンポーネントもいくつかあるみたいだが融通聞かないので嫌い。

95 :デフォルトの名無しさん:03/01/21 09:24
Wininetで十分

96 :デフォルトの名無しさん:03/01/21 09:24
すでに開いているフォーム(TForm)のメソッドや内在コントロールの
プロパティを別のUnitから操作したいのですが、方法がわかりません。

具体的には、

(1) TFormHoge の [実行]ボタンをクリック。
(2) UnitHoge.MethodHoge が呼び出される。
(3) 上記処理の進捗状況(「実行中」、「1/N」など)を(1)の
  フォームに表示。
(4) 処理を終了。

といったことがしたいのです。
ユニットを分割せずに、すべての処理をTFormHogeに記述すれば
簡単なのですが、それは本意ではないのです。

ヘルプや、ttp://www.users.gr.jp/query.aspx のログ、数冊の
書籍を探してみたのですが、探し方が悪いためか、目的に合い
そうな説明を発見できませんでした。

ご存知の方いらっしゃいましたら、ご教示(または代案の提示)
ください。
簡単なサンプルコードを示して頂けると助かります。

97 :デフォルトの名無しさん:03/01/21 09:26
age忘れました。

98 :デフォルトの名無しさん:03/01/21 09:29
>>96
uses Unit1; //<-TForm1


...


procedure hoge();
begin
Form1.Edit1.Text.Lines.Add('こんな感じ?');
end;

99 :デフォルトの名無しさん:03/01/21 10:25
>>98

ありがとうございます。
実は、その方法と似たようなやり方は試してみたのですが、
Form1 が未定義の識別子でハネられます。
そこで、Uses節にForm1の参照を追加すると、当然のように
循環参照でハネられます。

何かうまい方法はないでしょうか・・・?

100 :デフォルトの名無しさん:03/01/21 11:21
>>99
WebBrowser
を使うのはどうですか?
非表示で使えば良いし、エレガントではないけど(簡単ではある)。


101 :デフォルトの名無しさん:03/01/21 11:24
ファイル->ユニットファイルヘッダーの追加


102 :デフォルトの名無しさん:03/01/21 11:43
>>99
implement節のusesに加えると循環参照にならないはず。

103 :デフォルトの名無しさん:03/01/21 12:31
>>100
ありがとうございます。
(できればもう少し具体的なところを教えて頂けると助かるのですが・・・)

>>102
ありがとうございます。確認してみます。


104 :デフォルトの名無しさん:03/01/21 16:30
>>103
tWebBrowser
というコンポーネントがあるので、それを使います。
機能はWEBのブラウジング(表示)をおこないます。
URLを呼び出し先にセットすれば CGIトリガーが引かれます。
非表示、表示枠 サイス0にできるのでこれで良いかと...


105 :デフォルトの名無しさん:03/01/21 17:54
Delohiでwindowsゲームを作ろう!を見ながらつくってるんですが、
アニメーション作りでエラーが出てしまい、先へ進めません。
interface部を変えて、Timer1のOnTimerを、Timer1Timarに変えると、
エラーがでてしまい、メソッドTimer1Timerの実現部がみつかりません。
とでてしまいます。なにが悪いのでしょうか。おしえてください。

106 :デフォルトの名無しさん:03/01/21 18:09
実現部の名前を変えたからじゃないの?

107 :デフォルトの名無しさん:03/01/21 18:21
>>106
名前はどこも変えていないのです。
本みながらなのにつまづくなんて。。。
説明書どおりにしてるのですが。

108 :デフォルトの名無しさん:03/01/21 19:00
すいません。実行部ってどこでしょうか。。。
教えてください。お願いします。
もうだめぽ。

109 :組込もしまっせ:03/01/21 19:08
>>105
Timer1Timar <> Timer1Timer という事では?

Timer1のOnTimerを記述するときは
プロパティエディタの OnTimer をダブルクリックするといいよ


110 :デフォルトの名無しさん:03/01/21 19:11
>>108
implementから下の方。
procedure TForm1.Timer1Timer(Sender: TObject);
begin
end;
の様にイベントハンドラの実行部を書く。

111 :デフォルトの名無しさん:03/01/21 19:17
>>109
イベントですよね?してるんですが・・。
うぅ。。。
わかんない。。ソースあとで張ります。またきます。。

112 :デフォルトの名無しさん:03/01/21 19:33
>>110
ありがとう。

113 :デフォルトの名無しさん:03/01/21 19:52
VBを少しかじっってて、今Delphiやり始めたんですけど

Label1 TLabel
Label2 Tlabel

のLabel1,Label2などはそのコンポーネントの名前だってことはわかるんですが
TLabelとかってなんなんでしょうか?


114 :デフォルトの名無しさん:03/01/21 19:52
それと
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
{ Private 宣言 }
public
{ Public 宣言 }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

end.

↑がかなり気になるんですがこのままやっていいんですよね?

115 :デフォルトの名無しさん:03/01/21 20:06
>>113
クラス(コンポーネント)名。
その場合Label1はクラスTLabelのインスタンス。
>>114
TFormを継承したTForm1が作られている。そのままでも良いがTForm1よりもっとわかりやすい名前の方が良いかと。
オブジェクトインスペクタでForm1のNameというプロパティを変えるとTForm1というクラス名も勝手に変わる。
そしてフォームのprivateやpublicにメソッドを追加したりコンポーネントを貼り付けたり、
他のユニットをUsesしたりしてプログラムを作る。

116 :111:03/01/21 21:00
です。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
ImageList1: TImageList;
procedure Timer1Timer(Sender: TObject);
Procedure FormCreate(Sender:TObject);
private
{ Private 宣言 }
PtnNo: Imteger;
MxX, MyY: Integer;
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
これのあとに、Timer1のTimer1Timerをしようとしてもできません。お願いします。

117 :デフォルトの名無しさん:03/01/21 21:14
>>116
何がしたいかわからないっす。
TTimerのOnTimerイベントを書きたいなら、

>>109
>Timer1のOnTimerを記述するときは
>プロパティエディタの OnTimer をダブルクリックするといいよ
すれば、勝手に実行部にも宣言部にもコードを書いてくれる。

それをせずただ、宣言と実装を書くだけだと、イベントがTimerに割り当てられないので注意。

118 :111:03/01/21 21:36
>>117
ありがとうございます!わかりました。
interface部分を勝手にいじってました。
お騒がせしました。


119 :デフォルトの名無しさん:03/01/21 21:57
厨質問ですいませんが、フックの仕方を教えてください

具体的には、他のアプリケーション(市販のものです)のチャットのようなものがあって、
そこに表示されるメッセージに対して処理を行いたいのです
(誰かが入室したら音を鳴らすetc.)

調べたところ、そのウィンドウはListBoxになっているようで、
文字列が追加されるときは、LB_ADDSTRINGというメッセージが発生してるようなので、
このメッセージを捕まえられればと思うのですが、やり方がわかりません。
「Delhpi2 達人テクニック」という本のキーフックのところを参考にして、
やってみようとしたのですが、うまくいきません。
(PrtScキーを押したときに画面をキャプチャする例)

まず単純に本にあるSetWindowsHookExのコールバック関数の中の
if文の条件を下記のように変更してみたのですが、
これではLB_ADDSTRINGというのは捕まえられないのでしょうか?
(フックの種類はWH_GETMESSAGEになってます)


120 :119:03/01/21 21:58
function GetMsgProc(Code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var
rc: Boolean;
hFM: THandle; // メモリマップドファイル
pLog: PMsgBuf; // 共用メモリへのポインタ
pm: PMsg; // フックしたメッセージ
(省略)
begin
pLog := PMsgBuf(GetMapAddr);
if pLog <> nil then
begin
// ここから
if Code >= 0 then
begin
pm := PMsg(lParam);
// Ctrl+Escを殺す
if (pm.message = WM_SYSCOMMAND) and
(pm.wParam = SC_TASKLIST) then
begin
pm.message := WM_NULL;
pm.wParam := 0;
end;
// Print Screenキー
// if ((pm.message = WM_KEYUP) or (pm.message = WM_SYSKEYUP)) and
// (pm.wParam = VK_SNAPSHOT) then
if (pm.message = LB_ADDSTRING) then // <-変更行
begin
(以下略)


121 :デフォルトの名無しさん:03/01/21 22:13
>>119
取りあえずDLL内に置いてね。その関数。

122 :119:03/01/21 22:46
>121
レスありがとうございます。

説明が足らずにすいません。本に従って、DLLを作成しています。
(というか、サンプルでついてたのを少しずつ変更してます)
キーフックの動作は確認取れてます。

123 :デフォルトの名無しさん:03/01/21 23:36
適当というか予想

if (pm.message = WM_COMMAND) and (pm.wParam = LB_ADDSTRING) then


124 :119:03/01/22 00:00
>123
試してみましたが、駄目ですた(´・ω・`)ショボーン


125 :デフォルトの名無しさん:03/01/22 00:21
先生!小生、DLLは使えるようになったのですが(delphi6)、
COMはdelphi6で使えるのでしょうか!教えてくだだい!
宣言の仕方すら調べても出てきません!

126 :デフォルトの名無しさん:03/01/22 00:22
>>125
使える。

127 :125:03/01/22 01:14
>>126先生
使えますか!お返事ありがとうございます!

どこか参考になるようなサイトとかないですかね・・・
(・∀・)イイ情報キゴンヌ!
誰か教えて!COMコンポ!(の組込方


128 :いいサイト:03/01/22 01:19
>>127
http://www.google.com/
終了
一通り探しまくったらまた来い。

129 ::03/01/22 09:33
>>127
付属のヘルプくらいは読もうよ。
ActiveX の取り込みとか

130 :デフォルトの名無しさん:03/01/22 09:38
>>102

循環参照は解消できたのですが、UnitHogeからFormHogeのラベルのキャプションを
操作すると実行時エラーとなり、うまくいきませんでした。

自分なりに、外部からはコントロールの操作はできないのか?と考えて、FormHoge
にラベルのキャプション操作用のMethodHogeを追加して間接的にアクセスして見たり
もしたのですが、結果はおなじ(実行時エラー)でした。

(1) FormHoge内のイベントハンドラからMethodHogeを実行。→ ○
(2) UnitHoge内のプロシージャからMethodHogeを実行。→ ×

という結果です。
ちなみに、MethodHogeのコントロールを操作する記述をコメントアウトし、数値演算
やメッセージボックス表示の処理を記述した結果は(2)でもエラーにならずに正常実行
できました。
結局、原因も回避手段もわからず、UnitHogeに記述していた処理すべてをFormHogeに
記述することで妥協しました。(不本意)

このような場合、どのような実装が一般的なのでしょうか?多機能なフォームの場合、
関連する処理すべてを1箇所に記述すると、保守性が悪くなると思うのですが。

131 :デフォルトの名無しさん:03/01/22 09:44
>>130
エラーが出ると書いてエラーメッセージ書かない奴ってアホだと思うが。

132 :デフォルトの名無しさん:03/01/22 09:54
>>131
今手元にないので、書きたくても書けない。(メモって置けばよかったと思う)

133 :デフォルトの名無しさん:03/01/22 09:55
>>132
ちなみに、Try .... Finally でも回避できなかった。

134 :デフォルトの名無しさん:03/01/22 11:26
>>133
try...Finallyの場合例外はキャッチされずに呼び出し元に伝搬すると記憶。
IDEから実行してるならexceptのあるなしに関わらずデバッガが実行を停止してウザイ。

135 :デフォルトの名無しさん:03/01/22 11:47
>130
別スレッドから操作したらエラー出るけど、
別ユニットから操作したからってエラーは出ないよ。
俺はこんな感じでいくつかのユニットに分けてるけど、それが原因のエラーは出てないから。
unit untHoge;
interface
type
  THogeEvents = class(TObject)
  public
    procedure SetEvents;
    procedure Button1Click(Sender: TObject);
  end;
implementation
uses frmMain;
procedure THogeEvents.SetEvents;
begin
  MainForm.Button1.OnClick := Button1Click;
end;
procedure THogeEvents.Button1Click(Sender: TObject);
begin
  MainForm.Label1.Caption := '押しますた';
end;
end.

136 :デフォルトの名無しさん:03/01/22 11:50
やはり>>96の考え方(外部からフォームを操作する)がおかしいのだろうか?

137 :デフォルトの名無しさん:03/01/22 11:52
>>136
いや、普通に出来る。恐らく君のコーディングに何らかの問題があるだけかと。

138 :デフォルトの名無しさん:03/01/22 11:52
>>136はタイミングズレ。

>>135
ありがとうございます。書き忘れましたが、私の事例では、UnitHogeは
Classではないのです。(VBで言うところの「標準モジュール」)
これが間違いなのでしょうか?

139 :デフォルトの名無しさん:03/01/22 11:57
もうひとつ気になった疑問点は、public .... End;節に宣言しなくても
FunctionやProcedureが外部から呼べてしまう点。
(130の例でも、UnitHogeからの呼び出しでエラーになったのは、コント
ロールのプロパティ操作だけ)
スコープがイマイチよくわからない。

140 :デフォルトの名無しさん:03/01/22 12:03
>>139
Publicはプロジェクト外部に公開という意味?
Interface でPublicでないものはFriend(というキーワードはDelphiにはないが)
スコープになるのか・・・。
(基本的な部分がよくわかってないので、ヘルプを読んだ方がよさげ)

141 :デフォルトの名無しさん:03/01/22 17:42
Quadruple Dのインストールをしようとしたんですが、
この部分の意味がよくわかりませんでした。

>まず、配布アーカイブであるdddd.lzhを解凍し、libディレクトリに移動してください。

>そして、中にある全てのファイルを、Delphiのライブラリパスの通っているディレクトリにコピーしてください。
>dxheaderディレクトリの中のファイルも同様に、全てDelphiのライブラリパスの通っているディレクトリにコピーしてください。

適当にやったらエラーが出てしまいました。
どなたかインストール方法を教えていただけないでしょうか?




142 :141:03/01/22 20:44
できました。すいません

143 :デフォルトの名無しさん:03/01/22 21:28
>>139
ソース貼ってみ

144 :デフォルトの名無しさん:03/01/22 21:42
>>139-140
もうひとつユニットを作って色々呼んでみるとわかる筈。

public 他のソースファイルから見える
protected private に加え派生クラスから見える
private そのソースファイルだけ

public/privateはinterface/implementationとおんなじような関係。
同じソースファイル内なら同じ人が書くのは明白なので
妙なアクセス規制かけずに好き放題させてくれると考えればよし。

145 :デフォルトの名無しさん:03/01/22 22:17
でるふぁいで作ったプログラムは特別なコンポーネントがないと
うごきませんか?BVみたいに

146 :デフォルトの名無しさん:03/01/22 22:19
>>145
死ね。後、単体で動く。

147 :デフォルトの名無しさん:03/01/22 23:40
つまらんネタだろ?反応しないように<BV

148 :デフォルトの名無しさん:03/01/23 00:45
>>145
Windowsという特別なコンポーネント群が無いと動きません。

149 :デフォルトの名無しさん:03/01/23 01:03
>>1
>Delモナーがどんな厨房疑問でもやさしく答えます。
言ってるじゃん
馬鹿扱いしたりネタ扱いしてもいいけど、おしえて。


150 : :03/01/23 01:10
>>149
何に答えてほしいんだ?
つーか、「Delモナー」は優しいが、他は荒くれ者ばかりが集うスレ。
七つの海を制覇した強者しかいないと思ってくれ。

151 :デフォルトの名無しさん:03/01/23 01:12
>>149にハゲドウ
>>150そんなんしるか!


152 :デフォルトの名無しさん:03/01/23 01:23
プッシーは潮でも吹いてろ

153 :デフォルトの名無しさん:03/01/23 11:30
>>125
プロジェクト→タイプライブラリの取り込み、で登録したocxが表示されるはず。
んで、OKすると自動的にpasが作成されるから、それをusesすればよい。

そしたら、CreateComObjectし、ご自由にお使いくださいと。

154 :ななしへたぐらま ◆XcB18Bks.Y :03/01/23 14:18
>>149
>146さんがすでに書いてあるとおり単体で動きますよ.
ほかの方が作ったコンポーネントを使ってもやはり単体です.

>>150
それだとDelスレがいくつもある意味が….


155 :デフォルトの名無しさん:03/01/23 14:28
どなたか>119に知恵を貸してやってください


156 :組込もしまっせ:03/01/23 14:52
>>119 は、他のアプリが受け取ってるメッセージをフックしたいという事ですよね?
 それは簡単ではないと思います。
 というかソレが出来るなら、逆に困った事になってしまうような・・・

ListBoxの窓ハンドルが入手出来ているなら、 
LB_GETSELCOUNT LB_GETTEXT は使えませんか?

157 :デフォルトの名無しさん:03/01/23 15:10
>156
レスありがとうございます
いちおうタイマ処理で、SendMessageして文字列取得して処理するのは作ってみました

でも、フックができたら、いろいろできるんだろうなぁと妄想を膨らませていたので、
やり方がわかればと思ったのです
それができると困ったことになるということは、
Winの仕組み上できないようになってるってことなんでしょうか?
(できたとしてもキーフックみたいに簡単?ではないということですかね)




158 :組込もしまっせ:03/01/23 16:01
あ、ゴメン 観察するだけなんだね。 なら可能だ。

タイマー割り込みの代わりに、そのフック中で 自アプリにメッセージを送って貰って
それでテキストを取得したらいいんじゃないの?

159 :組込もしまっせ:03/01/23 16:05
もしかして、WH_CALLWNDPROC の方がいいのかもね
参考: ttp://home.att.ne.jp/yellow/hide_n/programming/tips03.html


160 :デフォルトの名無しさん:03/01/23 16:50
ありがとうございます
参考サイトを見ると、SendMessage()を送られたのはWH_CALLWNDPROCでってことみたいですね。
また挑戦してみます


161 :山崎渉:03/01/23 21:17
(^^)

162 :デフォルトの名無しさん:03/01/23 22:05

delphi 6 personal 使ってるんですが背景がデスクトップそのまま映ってて
気持ち悪いんですがVBのように背景をつけることってできないんでしょうか?


163 :デフォルトの名無しさん:03/01/23 22:06
背景っていうのはdelphi本体の背景のことです

164 :デフォルトの名無しさん:03/01/23 22:19
ファイルのコピーのダイアログに出るような

c:\progam filed\...\a.txt

の様な形式を生成するAPIとか関数ってあるんですか?

165 :デフォルトの名無しさん:03/01/23 22:52
たしかあった。

166 :デフォルトの名無しさん:03/01/23 23:08
>>165
ですよねw

昔Del3使ってた時に見かけた記憶があるんですけどねぇ。


167 :デフォルトの名無しさん:03/01/23 23:23
検 索 す れ ば 1 2 0 % 出 て く る ぞ 

168 :デフォルトの名無しさん:03/01/23 23:36
>>164
uses節に Filectrl を追加して MinimizeName

169 :デフォルトの名無しさん:03/01/23 23:45
頼むから1回くらい検索してくれ

170 :デフォルトの名無しさん:03/01/24 00:11
>>169
散々検索したけれど。
VCLリファレンスのファイルと名の付くものも読みあさった。

171 :162:03/01/24 00:16
誰かわかりませんか〜?

172 :煽りではないが:03/01/24 00:26
>>162
質問がワケ分からんから、誰も相手しないと見た。
このまま相手されなくて、他のとこへマルチポストしてる姿が見えます。

こんなんでましたけど(泉)

173 :デフォルトの名無しさん:03/01/24 00:36
MDI環境とSDI環境の違いじゃないの?
Delphiは使ったことないからどっちかしらないんだけど<おい

174 :デフォルトの名無しさん:03/01/24 00:40
一人よくわからないバカが勘違いして粋がっているスレはここですか?

175 :デフォルトの名無しさん:03/01/24 00:43
>>174
違います。

176 :デフォルトの名無しさん:03/01/24 03:00
パンツを洗濯機で洗うと必ず裏返しになる理由を考察するスレはここですか?

177 :デフォルトの名無しさん:03/01/24 03:17
>>162
放置するのも気持ち悪いからレスするけど外してたらごめんよ

http://www.borland.co.jp/tips/delphi/dh015/

178 :162:03/01/24 06:45

えーとつまり
http://age.ne.jp/x/kazuhito/Delphi/0101b.gif
この画像のようにフォームウィンドウの後ろにデスクトップがそのまま
見えていますよね?デスクトップが見えているとなんかやりにくいので
色をつけて隠せたらいいなと思うんですが可能でしょうか?

179 :デフォルトの名無しさん:03/01/24 07:59
>>178
Activeデスクトップ + 白いgifファイル&アイコンの表示をしない。

180 :デフォルトの名無しさん:03/01/24 08:15
>>178
Delphiの仕様です。

181 :デフォルトの名無しさん:03/01/24 08:15
ていうか、そこに突っ込む人をはじめてみた。

182 :デフォルトの名無しさん:03/01/24 08:23
VBも3位まで背景無くなかったっけ?


183 :デフォルトの名無しさん:03/01/24 08:56
>>178 わかるぞー 俺も最初は戸惑ったものだ。気持ち悪いと思ったものだ
今は全く気にならないけど

184 :デフォルトの名無しさん:03/01/24 09:06
>>183
気持ち悪いとは思わないが、バックグラウンドで別の窓が開いていると、
触ってしまう。


185 :デフォルトの名無しさん:03/01/24 12:11
結局>>173であってるじゃん。。。
ああ、>>174は自分で自分に言ってたのか
ちなみにVB6あたりでも、ツール>オプション>明細設定で変更できます

186 :ななしへたぐらま ◆XcB18Bks.Y :03/01/24 12:45
Delphi統合環境の画面の話でしたか.
>>182
そもそもこの画面構成はVBをまねたものにしか思えませんでしたが
VBの方はすでに変わっていたのですね.



187 :デフォルトの名無しさん:03/01/24 13:40
#include <stdio.h>

↑これってDelphiでいうところのuses?

188 :デフォルトの名無しさん:03/01/24 13:47
>>187
その行に stdio.h というファイルを 読み込んで追加 というような動作。

189 :デフォルトの名無しさん:03/01/24 14:45
>>187
Delphiでいうところの#include

190 :デフォルトの名無しさん:03/01/24 14:45
違った。$inlucde

191 :デフォルトの名無しさん:03/01/24 14:47
インルークド

192 :デフォルトの名無しさん:03/01/24 23:29
つーか、MSは昔から(95時代くらいから?)MDIは推奨しないって言ってたのに。


193 :162:03/01/24 23:42

レスありがとうございます
じゃあdelphiをMDIのように背景をつけることはできないんでしょうか?

194 : :03/01/25 00:00
悪いことは言わない。このままグダグダ同じこと聞くより
「慣  れ  ろ  !」
しまいには叩かれるぞ。いいじゃんか、後ろが見えたって。
絶対慣れるから。そのまま使うがヨロシ!

195 :デフォルトの名無しさん:03/01/25 00:44
>162
最背面に常に表示されるウインドウをもつ、フル画面のソフトを作って
常に立ち上げておけばいい。

196 :デフォルトの名無しさん:03/01/25 01:59
A型

197 :いちご:03/01/25 02:25
Delphi(プログラミング)初心者です。
上司から、これ参考にしてつくれと
eXescoper(逆コンパイラ?)とsample.exeを渡された
のですが使い方を書いたHPが見当たりません。
上司に質問したらそんなこと自分で調べろと怒られました。
先輩に聞いても、そんな課題でなかったらしく、知らない
と言われ、困ってます。どなたかご存知でしたら教えてください。

198 :デフォルトの名無しさん:03/01/25 02:46
初心者がeXescper作るなんて無理。

199 :デフォルトの名無しさん:03/01/25 02:54
>>198
違うだろ。
Sample.exe "を" eXescoper "で"懐石して作れだろ。

200 :デフォルトの名無しさん:03/01/25 02:55
>>197
何を作るのかを書かなければ分からない。
もう一度言う。「何を」を書かないと(その上司以外は)誰も分からない。
eXescopeは、exeやdll内の様々なデータを見るツール。
sample.exeは、作ったやつに聞け。それとも広く公開され有名なアプリなのか?sample.exeって。
自分しか分からない情報を出さないことには、誰も答えることなんて出来ない。
これは、プログラミングとは関係ない社会人としての常識である。


201 :いちご:03/01/25 02:59
レスありがとうございます。
私の説明が舌足らずでしたので、もう一度説明させて下さい。
sample.exeに動きを参考にしたい部分があるのですが
それをeXescoperを使って調べて、課題のプログラム
をつくれというのが上司の要求です。
(要するにパクれってことだと思います)
eXescoperを起動させてsample.exeを開くと、
なにやらいっぱい出てくるのですが見方がわかりません。
どうやって使うのでしょうか?


202 :デフォルトの名無しさん:03/01/25 03:16
>>201
なんで他のアプリをパクるのにeXescopeを使う必要があるの?
一体何を作るの?(仕様のことだよ)
sample.exeの「参考にしたい」部分を言わないと分からないよ。
まず、sample.exeが何をするものなのかから説明したほうがいいんじゃない?
eXescopeは、逆コンパイラじゃないよ。EXEのヘッダとか、参照してるやつとか、リソースを表示するやつだよ。


203 :デフォルトの名無しさん:03/01/25 03:31
ネタの予感…
でもマジレス。上司か先輩に聞け。恥を書くことを恐れては成長しない罠。

204 :いちご:03/01/25 03:36
はい、すみませんでした。以後気をつけます。
課題はブロック崩しゲームなのですが
(ピンポン玉があたるとブロックが消えていく)
ボールの動きが終始同じなのを、ブロックの数が少なく
なるにつれて、速くするというものです。
sample.exeはスクリーンセーバーだと思うのですが
球が壁に跳ね返っているものです。ただ時間がたつにつれて
次第にその移動スピードがあがってきます。
その部分をブロック崩しのピンポン玉の動きにとりいれろ
というのです。スピードのあがり方は全く同じにしなくては
いけないという条件なのでプログラムソースをみなくては
できないです。こんな状況ですが、おわかり頂けたでしょうか?

205 :デフォルトの名無しさん:03/01/25 03:52
>>204
そのアプリを作るにあたり、eXescopeは役に立ちそうにありません。
上司が本気でeXescopeを使えと言っているのなら、その上司は天才の反対の反対です。
動きをまったく(1pixelも違わずに)同じくする必要は無いでしょ?
この課題はパクることが目的なの?
たぶん、ブロック崩しを作る上で必要な、「ボールが壁に当たったときの跳ね返りの
角度を計算する」とか、そういうことを学ばせるために課題を出したんだと思う。
だとしたら、まったく同じくパクる必要はなくて、ちゃんと計算式が理解出来て、それをプログラムに
反映できればいいんじゃないかと思う。
で、そういう計算は、俺は分からんから、他の人に任せます。
あと、サイト見つけた。
http://pc.2ch.net/tech/kako/1004/10048/1004855513.html
http://www.geocities.co.jp/SiliconValley/2530/vbblock.html


206 :いちご:03/01/25 04:07
レスありがとうございます。
私も最初そういう主旨だと思って、だいたい似たような速度の上がり方
するもので提出したのですが、sample.exeはなにか特別な関数を使ってる
らしく全く同じ(1pixelも違わずに)してくれと却下されました。
パクることも目的のようです。

207 :いちご:03/01/25 04:19
はい、先輩にきいたのですが、
eXescoperなんて知らないって言う人ばかり(いじめ?)で
上司に聞いたら、それを調べるのが仕事とつっかえされました(涙)

208 :いちご:03/01/25 04:27
202さんへ、レスありがとうございます。
とんちんかんな質問でしたらごめんなさい。
eXescoperはコンパイル前の状態を復元するものでは
ないということでしょうか?

209 :デフォルトの名無しさん:03/01/25 04:41
>>208違います。
eXescopeは”なにか特別な関数”を使っている事や
その関数名とかはImport情報から分かるかもしれないが
例えば関数の引数の意味など仕様までは教えてくれない。
だから”よっぽど特別”な関数でない限り全く同じは無理。

情報を小出しにするあんたも、無茶な課題を出す上司
2人とも意識はないかもしれんが、相当悪質だぞ。


210 :デフォルトの名無しさん:03/01/25 04:41
>>208
違います。リソースを調べる物です。
これでアプリケーションの動作を検証するなんて事は出来ません。
そのサンプルはゲームだから目で見て判断するしかないんじゃないでしょうか?

211 :いちご:03/01/25 04:53
レスありがとうございます。
ということは全く同じにするには
本当の逆コンパイルツールっていりますよね?
そんなのあるのでしょうか?
すみません、いろいろ聞いちゃって。

212 :デフォルトの名無しさん:03/01/25 05:09
ある。が、DelphiのObjectPascalでなくアセンブラになるな。
…つまり、やめとけって事。

213 :いちご:03/01/25 05:23
レスありがとうございます。
アセンブラ→ObjectPascal翻訳みたいなツール
ないですよね・・すみません。
てことはどうしろってことなのかな?
単なるいじめ?

214 :デフォルトの名無しさん:03/01/25 05:27
どうでもいいがいじめいじめウザい

215 :デフォルトの名無しさん:03/01/25 05:41
eXescopeと課題の関係なさを説明しろってことかなぁ
リソースの中になにか数字が入ってるんだろうか
まったく同じにするには動画としてキャプったほうが手っ取り早そうだな
sample.exeとやらをうぷするわけにはさすがにいかんだろうが他にはなにもないの?

216 :デフォルトの名無しさん:03/01/25 05:46
ここか?
http://homepage3.nifty.com/digikei/ten.html

217 :デフォルトの名無しさん:03/01/25 05:53
>てことはどうしろってことなのかな?
知らんわ。あんたの上司の言う通りだ。ちったぁ自分でかんがえろや
ここはDelphi質問スレであって、新入社員を育成するスレじゃない。出直せ

218 :いちご:03/01/25 05:56
215さん、レスありがとうございます。
今、eXescoperをみてみたのですが、
リソースってのは具体的にどの部分のことを
いうのでしょうか?

219 :デフォルトの名無しさん:03/01/25 08:28
そろそろウザクなってきませんか?

>>218
リソースはいくつも意味があるが、この場合は、
exeファイルに埋め込まれた、アイコンや文字列、その他のデータを意味する。

220 :デフォルトの名無しさん:03/01/25 08:30
で、上司だけど
真性の馬鹿で、exescopeや逆コンパイルを何か知らないで渡したか、
わざと間違った道具を渡して、自分で調べさせようとした
のどちらか。

221 :デフォルトの名無しさん:03/01/25 09:42
できないならできない正統な理由を調べてレポートしろや、なあ。
できないことを証明するのも科学のうちだと学生のころにやったっしょ?

222 :デフォルトの名無しさん:03/01/25 09:51
レス付けてる人たちが、eXeScopeとeXeScoperがごっちゃにしてるような気がしなくもない。
似たようなもんだけどさ。

223 :デフォルトの名無しさん:03/01/25 09:51
つーかブロックの数に反比例して速度上げるくらいすぐ出来るだろ


224 :デフォルトの名無しさん:03/01/25 10:10
ExtractHeaderFieldsを使って、文字列を分解しようと思いセパレーターを
このように設定しました。
Parser:TSysCharSet;
Parser := [#$0..#$FF] - ['0'..'9', 'A'..'Z', '_', 'a'..'z'];
私としては、['0'..'9', 'A'..'Z', '_', 'a'..'z']以外のもの(空白や()、@等)
がセパレーターになると思ったのですが、違うようなのです。
空白や括弧等複数のセパレーターを設定するには、どうしたらいいでしょうか?
教えてください。よろしくお願いします。


225 :162:03/01/25 13:18

A型です


226 :デフォルトの名無しさん:03/01/25 13:27
> がセパレーターになると思ったのですが、違うようなのです。

どこで違うと思った?


227 :224:03/01/25 16:53
例えば AAAAA() という文字列があった場合AAAAAが取り出されると思うのですが、
AAAAA()と、全部なってしまうのです。
ブレークポイントを設定してマウスを合わせてみたら、Parserの中身は'@','[','_'
など6個ぐらいしか設定されていないようなのです。



228 :デフォルトの名無しさん:03/01/25 22:37
>>218
ネタの予感がしますが…
課題からしてほぼ9割いじめと考えていいでしょ。
コンパイルされたアプリから内部処理を取得することは普通のレベルの
プログラマには不可能です。(リソースは簡単)
DLLにリンクされていれば内部処理結果を取得することは可能でしょうが
それにしてもDLLの仕様を取得する必要があります。

229 :なのだ!:03/01/25 23:50
天才の反対の反対

結局、天才では?

230 :224:03/01/26 00:19
自己レスです。
ExtractHeaderFieldsは、urlを分解する為のものなので空白をセパレーターに
指定しても無視されるようです。
よく考えたらurlの場合は空白で区切るとまずいですよね。
(私の質問がまずかった。urlとかに関係のない文字列を分解しようとしている
ことを書かなかった)
226さん ありがとうございました



231 :デフォルトの名無しさん:03/01/26 00:35
function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;

説明

ExtractStrings 関数を使うと,Content で指定されたヌルで終わる文字列の部分文字列を文
字列リストに挿入できます。
Separators は,部分文字列を区切る区切り記号として使われる文字のセットです。復帰,改
行文字,および引用符(一重または二重)は常に区切り記号として扱われます。引用符付き
文字列の中の Separators は最後の引用符が現れるまで無視されます(引用符を二重にし
た場合,引用符を引用符付き文字列内に表示できます)。
WhiteSpace は,文字列の先頭にある場合に Content の分解時に無視される文字のセット
です。

Content は,部分文字列に分解されるヌルで終わる文字列です。
Strings は,Content から分解されたすべての部分文字列が追加される文字列リストです
。この文字列リストは ExtractStrings ではクリアされないので,文字列リストの既存の文字
列はそのまま維持されます。
ExtractStrings は,Strings パラメータに追加される文字列の数を返します。

注意ExtractStrings は,空の文字列をリストに追加しません。

232 :デフォルトの名無しさん:03/01/26 00:39
>>231
(´-`)。o ○ (オイオイ…)

233 :デフォルトの名無しさん:03/01/26 01:46
>>192
確かにそういう時期があったが、その後、複数起動を許すMDIなら
SDIとしてもMDIとしても利用できるので、現在はMDIを推奨してるんでなかった?
なにかの書籍で読んだ覚えが。

234 :いちご:03/01/26 05:20
222さんへ、ご指摘いただきありがとうございます。
私も今、eXescopeというのがあるのを知りましたが
私が渡されたのはeXescopeRです。eXescopeではありません。
レス頂いた皆さんへ、スペルを見る限り勘違いされてますね。

235 :いちご:03/01/26 05:32
223さんへ、反比例がどうかはわかりません。
わかっているのはブロックの数が少なくなると球のスピード
があがるということだけです。それを満たす関数なんて無数にありますよね。
(反比例というのもその中の1つですが)
課題はその中から特定しろってことです。

236 :デフォルトの名無しさん:03/01/26 06:06
厨房な質問で申し訳ないんですが、
&&rrlo;を使って反転させるのはわかるんですが、トリップ入れると反転
はできないと思ってたんですが・・・
http://okazu.bbspink.com/test/read.cgi/ascii/1041248983/308
↑これ どうやるんですか?
って・・・やっぱり、わかりませんよね
厨房すまそ

237 :デフォルトの名無しさん:03/01/26 06:09
上司は eXescoper を逆コンパイラと勘違いしているのかも。




238 :デフォルトの名無しさん:03/01/26 07:07
>>234
勘違いしていた。
だが、exescoperとやらも試してみた限り、逆コンパイラには程遠い代物だぞ。
やはり、いじめか、上司がバカかだな・・・。

239 :いちご:03/01/26 07:12
課題があともう1つ出てるので、わかる方みえましたら
アドバイス頂けたら幸いです。
電話で商品の注文を受け付けるシステムについて
{電話での入力(ボタンを押す)に対して音声を返す(”在庫切れです”など)}
Delphiでできるそうなのですが、どんなハードのデバイスやコンポーネントが
必要になるのでしょうか?CTIサーバというのらしいのですが関連業界の方
みえたらさしさわりがない範囲でかまいませんので教えて下さい。

240 :デフォルトの名無しさん:03/01/26 07:17
>このソフトはDelphiでコンパイルされたEXE/DLLファイルを高速で解析して
>DFMファイル(Delphiフォーム)を抜き出したり、使用しているクラス及びPAS
>ファイル(Delphiソースコード)を取得することが出来ます。
>いわゆる逆コンパイラーに近い働きをすることが出来ます。たぶん。(^^;
>また、 自分で作成したプロジェクトの管理または他人が作ったプロジェクト
>を解析したい人にお勧めのソフトです。

なーんて書いてあるから、勘違いしたのでしょう。
上司の間違いを指摘すると逆切れされるかもしれないので、
適当に似せて作って、同じにはなりませんでしたと言えば良いでしょう。

241 :デフォルトの名無しさん:03/01/26 07:23
上司がここ見てたらどうするのかなぁ…。

242 :224:03/01/26 07:33
と言う訳で、どなたか単語に分解する関数知りませんか?



243 :デフォルトの名無しさん:03/01/26 07:39
>>239
Delphiで出来る事は、CTIサーバメーカーが提供するライブラリのAPIを
呼ぶぐらいじゃないの?

244 :いちご:03/01/26 08:11
eXescoperに関して、ファイルをみていったら
nameのところにらしき関数が書いてあったので
それで提出します。
レス頂いた皆様、ありがとうございました。

245 :いちご:03/01/26 08:19



246 :デフォルトの名無しさん:03/01/26 08:48
224,230です。
ExtractHeaderFieldsについて、くどくいようで申し訳ないのですが、
D6だと空白や括弧 ( で文字列を切り分けてくれるのですが、D7では切り分け
てくれないようです。
PRO版なのでソースを見比べてみたのですが、何が違うのか判りませんでした。
D6、D7どちらが正しいのか判らないのですが、D6の動作にしたいのでどなたか、教えてください。よろしくお願いします。
(とりあえずは、D6でプログラムします。)

247 :デフォルトの名無しさん:03/01/26 09:08
>>246
レス全部読まないバカは嫌い。

248 :世直し一揆:03/01/26 09:57
<血液型A型の一般的な特徴>(見せかけの優しさ・もっともらしさ(偽善)に騙され
るな!)
●とにかく気が小さい(神経質、臆病、二言目には「世間」、了見が狭い)
●他人に異常に干渉する(しかも好戦的・ファイト満々でキモイ、自己中心)
●自尊心が異常に強く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとす
る(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際には
たいてい、内面的・実質的に負けている)
●本音は、ものすごく幼稚で倫理意識が異常に低い(人にばれさえしなければOK)
●「常識、常識」と口うるさいが、実はA型の常識はピントがズレまくっている(日本
の常識は世界の非常識)
●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者に弱く
、弱い者には強い)
●あら探しだけは名人級(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす)
●基本的に悲観主義でマイナス思考に支配されているため性格がうっとうしい(根暗)
●一人では何もできない(群れでしか行動できないヘタレ)
●少数派の異質、異文化を排斥する(差別主義者、狭量)
●集団によるいじめのパイオニア&天才(陰湿&陰険)
●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい)
●他人からどう見られているか、人の目を異常に気にする(「世間体命」、「〜みたい
」とよく言う)
●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度
も言ってキモイ)
●表面上意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は
個性・アク強い)
●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う)
●自ら好んでストイックな生活をし、ストレスを溜めておきながら、他人に猛烈に嫉妬
する(不合理な馬鹿)
●執念深く、粘着でしつこい(「一生恨みます」タイプ)
●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。しかも冷酷)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(例:「俺のほうが男
前やのに、なんでや!(あいつの足を引っ張ってやる!!)」)


249 :デフォルトの名無しさん:03/01/26 11:19
Cで書かれたDLL内の、void hoge(char** au); を、Delphiから呼び出したいんですが
どう宣言すれば良いんでしょうか?

procedure hoge(au: array of pchar); <実行時例外
procedure hoge(au: array of array of pchar); <コンパイルエラー


250 :デフォルトの名無しさん:03/01/26 11:21
>>249
type

ppchar = ^PChar;

procedure hoge(au: ppchar);cdecl;

251 :デフォルトの名無しさん:03/01/26 11:49
>>250
すいません、追加で教えて下さい。
var
test: ppchar;
begin
GetMem(test, 1);
GetMem(test^, 6);
strcopy(test^, 'test0');
end;
こうすると、実行時例外になります。
メモリの確保と代入のところで何か間違いを犯してるんだと思うんですが
ppcharに値を代入するには、どうすれば良いんでしょうか?

252 :デフォルトの名無しさん:03/01/26 11:52
DelphiってDLLのあつかいがめんどくさいね。

253 :デフォルトの名無しさん:03/01/26 11:58
特に文字列の扱いがね。

254 :デフォルトの名無しさん:03/01/26 12:03
ArrayPChar = Array of PChar;
PArrayPChar = ^ArrayPChar;
procedure hoge(au: PArrayPChar); cdecl;

var
test: PArrayPChar;
begin
GetMem(test^,2);
GetMem(test^[0], 6);
GetMem(test^[1], 6);
strcopy(test^[0], 'test0');
strcopy(test^[1], 'test1');

としたらできました・・・・・・けど、なんでこんな複雑なことに?ヽ(;´Д`)ノ

255 :デフォルトの名無しさん:03/01/26 12:06
procedure hoge(var au: Array of PChar); cdecl;

var
test: Array of PChar;
begin
GetMem(test, 2);
GetMem(test[0], 6);
GetMem(test[1], 6);
strcopy(test[0], 'test0');
strcopy(test[1], 'test1');
end;
こうすると実行時例外になるんですが、なぜなんでしょう?
varはアドレスを渡すから、>>254と同じ結果になると思ったんですが・・・・・・

256 :デフォルトの名無しさん:03/01/26 12:06
Delphiなんか使わないでC/C++使えよ(藁

257 :デフォルトの名無しさん:03/01/26 12:08
>>251
GetMem(test, 1);→GetMem(test, 4);じゃないか。
SizeOf(PChar)の値だから。




258 :デフォルトの名無しさん:03/01/26 12:12
まっDelphiでAPIなんか使うなってこった。

259 :デフォルトの名無しさん:03/01/26 12:13
>>257
はう、確かに・・・・・・でも、>>254でエラーにならないのは何故なんだろう?
ポインターわからんですヽ(;´Д`)ノ

260 :デフォルトの名無しさん:03/01/26 12:13
>>258
アホ丸出しです。

>>252
他の言語より遙かに簡単です。


>>249
Cで作ったDLL側がstdcall呼び出し規約を使ってるならdelphi側も

procedure hoge();stdcall;

にすべし。

261 :デフォルトの名無しさん:03/01/26 12:26
249は根本的に間違ってないか?
DLLから関数を呼ぶときは、external でDLLのファイル名を指定しないと
procedure hoge(p:ppchar);external 'ABCDE.DLL';



262 :デフォルトの名無しさん:03/01/26 12:31
おいコラ! 教えてたら自分でできなくなるだろ!アホかてめえあえええええええええええええええええええええええええええええええええ あほかてめええええええ

263 :↑(´∀`)MVP:03/01/26 12:35
 

264 :246:03/01/26 15:16
すみません。あほです。
レスは全部呼んだつもりですが、多分231のレスを私が理解し切れていないため
あほ扱いになったと。
ヘルプは呼んだのですが、あの文章からどの文字では区切られて、どれではだめか
読みとる力がありません。
あほに解説していただけませんか?

265 :デフォルトの名無しさん:03/01/26 18:52
>>あほ
あほには何いっても無駄

266 :デフォルトの名無しさん:03/01/26 19:52
>>あほには何いっても無駄
え〜 そんなにおこらなくても。。。
これだから、ヒキオタは(略

267 :デフォルトの名無しさん:03/01/26 19:57
x[i]の値とx[j]の値を入れ替える手続きswapを
procedure swap(var x,y:array of integer);
var temp:array of integer;
begin
temp:=x;x:=y;y:=temp;
end;
と定義したら
'Array' と 'dynamic array' には互換性がありません
って怒られちゃいますた。助けてください。

268 :デフォルトの名無しさん:03/01/26 20:00
http://jsweb.muvc.net/index.html
  ★こんなサイト見つけました★

269 :デルファイの名無しさん:03/01/26 20:35
>>267
Pascalでは同じ内容でも別の場所で宣言した型は別の型。

type T = array of integer;
procedure swap(var x,y:T);
var temp:T;
begin
 temp:=x;x:=y;y:=temp;
end;

ならどうです?

270 :デフォルトの名無しさん:03/01/26 20:38
つーか・・・
procedure swap(var x,y:Integer);
var
 temp: Integer;
begin
 temp := y; y := x; x := Temp;
end;
じゃいかんの?

271 :267:03/01/26 20:55
ありがとうございます。でも両方とも
k:=0;
for l:=1 to r do
begin
if x[l]>x[l+1] then begin
swap(x[l],x[l+1]);
k:=l;
end;
r:=k-1;
end;
end;
の swap(x[l],x[l+1]); の部分で
変数実パラメータと変数仮パラメータとは同一の型でなければなりません
ってまた怒られちゃいますた…

272 :デフォルトの名無しさん:03/01/26 21:04
キャストすれ

273 :デフォルトの名無しさん:03/01/26 21:15
>>272
キャスト?

274 :デフォルトの名無しさん:03/01/26 21:24
>>273
(・Д・)!?

275 :デフォルトの名無しさん:03/01/26 21:30
>>274
( ;´Д`)

276 :デルファイの名無しさん:03/01/26 21:32
なんだ。全体じゃなく要素の入れ換えか。なら>>270でいいでしょ?
実はxがIntegerの配列ではないなんてオチで無ければ。

277 : :03/01/26 21:52
>>276
思いっきりそれですた…
ご迷惑おかけしますた。回線切って(ry

278 :しつもん:03/01/27 01:30
可変部付きのレコード型のタグフィールドって何か意味あるの?
使い方がよおわからん???

type
TRec = record
A:integer;
B:integer;
case C:Boolean of
True:(D:integer);
False:(E:integer);
end;

この時、フィールドDとFはいつでも読み書き出きるでしょ。
なら、タグフィールドCって何に使われるのでしょう?



279 :デフォルトの名無しさん:03/01/27 01:40
>>278
DとEは同じ記憶領域を共有するってわかってる?
同じ型じゃ可変部にする意味ないじゃん。

280 :しつもん:03/01/27 01:42
間違えた

type
TRec = record
A:integer;
B:integer;
case C:Boolean of
True:(D:integer);
False:(E:String[10]);
end;


281 :しつもん:03/01/27 01:55
DとEは同じメモリアドレスにアクセスするのはわかるけど、
Cの値関係無しに、DとEどちらも書き込み出きるでしょ。
C値によって、どちらかが制限されるのならわかるけど、
じゃあ、この中のCaseってどんな動作するの?
Cの使い方って?


282 :しつもん:03/01/27 02:02
>>279
同じ型にする意味はありますよ。
同じメモリ領域に二つの識別子が使えるので、
一つのレコード型データに対して、どちらかのフィールドしか使わない
(二つ一緒に使う事はない)
場合、メモリが節約できます。

283 :デフォルトの名無しさん:03/01/27 04:14
>>282
まじで?


284 :デフォルトの名無しさん:03/01/27 08:14
>>283
後、ビット列の表現を変えたい場合な。

IntegerとByte4つの構造体を共用させればRGB形式のデータの操作が楽だったり。

285 :282:03/01/27 08:46
278=280=281=282=284 なのかな?
メモリの節約なんてできませんよ
SizeOf の戻り値見てる?
むしろ case 文の分だけ損してる

> 後、ビット列の表現を変えたい場合な。
「後、」って何だろ?(w
その副詞は話の流れとして相応しくないな
レコードの可変は主にそのためにあるんでしょ

同じ型にして意味のある事といえば、ヘルプに出てくるみたいに
変数名を別にできるということくらいでしょう


286 :デフォルトの名無しさん:03/01/27 08:49
>>285
>同じ型にして意味のある事といえば、ヘルプに出てくるみたいに
>変数名を別にできるということくらいでしょう

アホですか?それになんの意味があるというのだ。

287 :285:03/01/27 09:13
>>286
あなたのアホすぎる質問に、発言するのが嫌になった・・・


288 :デフォルトの名無しさん:03/01/27 09:50
type t1=record a,b:Integer; end;
type t2=record case Boolean of true:(a:Integer;);false:(b:Integer;) end;
type t3=record case C:Boolean of true:(a:Integer;);false:(b:Integer;) end;
begin
AllocConsole;
writeln(sizeof(t1));
writeln(sizeof(t2));
writeln(sizeof(t3));
end;
実行結果
8
4
8


289 :デフォルトの名無しさん:03/01/27 10:39
タグフィールドは、Borland実装が単なるフィールドとしてしか扱わないってだけで、
p-codeやインタプリタのPascalには、ちゃんと見てくれて、
タグフィールドが向けられてない要素にアクセスしようとするとエラーになる実装が存在する

…と何処かで読んだ気がする。

290 :デフォルトの名無しさん:03/01/27 11:51
なんかさいきんあほとかばかとかでおわらせるのおおいな

291 :デフォルトの名無しさん:03/01/27 12:49
D6PROですが、かなり内部のソースコードまで付属しているんですね。
ひょっとしてDelphiそのものをビルドできちゃうとか?
IDEの正規表現検索を自分のアプリに組み込みたいのですが、
ユニットorクラスが見つかりません。
おしえてください。

292 :デフォルトの名無しさん:03/01/27 12:58
まあほんとうにばかなんだけどな
モナーじゃしょうがないのか...

>>291
ありません

293 :デフォルトの名無しさん:03/01/27 12:59
>>291
See also
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/index.php


294 :デフォルトの名無しさん:03/01/27 13:01
ガッカリ。。

とあるフレームワークでは標準装備なのに。。

295 :デフォルトの名無しさん:03/01/27 13:14
>>293
あ、これいいですね。どうもです。
ググルでは外部DLLものばかりひっかかってウンザリしてたんです。

296 :デフォルトの名無しさん:03/01/27 14:27
>295
しょせんんVBにはかなわんよな。プツ
くそったれ
デルポイ

297 :デフォルトの名無しさん:03/01/27 14:54
ろくにVBできねアフォが調子こいてんじゃねえよ
いっとくけどDelphiのほうが上だバカ

298 :デフォルトの名無しさん:03/01/27 15:02
比較して、こっちが上だと言う人は、両方の言語を使いこなしてないんだろうな。

299 :デフォルトの名無しさん:03/01/27 15:08
ばかやろう、VBの方がまだましだぜ。
たとえば、先行きわからんVCLに頼っているやつは
あほだろ。

300 :I90vmCq+:03/01/27 15:12
ボクは西沢選手が大好きです♥

301 :デフォルトの名無しさん:03/01/27 15:14
>>299
あなたの対象としてるのは、VB6までのこと?VB.NETからのこと?

302 :デフォルトの名無しさん:03/01/27 15:15
全部同じ奴っぽいな。
VB>DELPHIってほざいてんの

303 :デフォルトの名無しさん:03/01/27 15:40
Pascal >> delphi
だな。
かなりobject pascal文法は
いい加減だぞ。

304 :デフォルトの名無しさん:03/01/27 16:22
とあるフレームワークって.NET Frameworkのことだよ。
なにVB厨に釣られてるんだ(w
まあ.NETにもVBあるけどな。

305 :デフォルトの名無しさん:03/01/27 17:21
なにが.NETだつぎからつぎ新しいのだしやがって
難しくなっただけじゃねーーーーーーーーーーーのか
中身一緒で難しくなっただけじゃねえええええええええええええええええええええのか
つぎつぎ新しいのでてきりがねええええええええええええええええええんだよ
ちょっと書き方かわっただけじゃねえええええええええええええええええええのか
せっかく慣れたと思ったら次の出やがってやってらんねえええええええええええっての
信用ねえええええええええええええええええええええええええええええええっつの

306 :デフォルトの名無しさん:03/01/27 17:26
結論 Delphi.NETなんかだすな。

307 :デフォルトの名無しさん:03/01/27 22:50
>>296
とかカキコしてるツールが かちゅ とか ギコナビとか(w


308 :デフォルトの名無しさん:03/01/27 23:18
>>307
Janeだヴォケ(嘲笑禿藁

309 :デフォルトの名無しさん:03/01/27 23:33
>>305
同意。

310 :デフォルトの名無しさん:03/01/28 01:45
>>308
それ同じことだ。まじれすスマソ。

311 :デフォルトの名無しさん:03/01/28 03:12
なぜ2ちゃんねる関連のツールはDelphiやVB製が多いのだろう。

312 :..:03/01/28 05:03
>>311
ソフトウェアのできは、使うツールとは関係ない。ってこと。

313 :デフォルトの名無しさん:03/01/28 08:47
>>311
ユーザーが多いからだろ
ちなみに監視所、アクティブスレッドランキング、みみずん検索なども2ちゃんねる関連のツールと捉えると
Delphi、VBが多数派とも言えない

314 :デフォルトの名無しさん:03/01/28 08:47
(1)
external宣言でWin32APIを使う利点は、関数名にエイリアスを使えること以外に
ないように思えるのですが、他に何かメリットはありますか?

(2)
Handle(HWnd)を受け取る引数は何型で定義すればよいのでしょうか?
Integerだと「型が不一致」でハネられるのですが・・・。


315 :デフォルトの名無しさん:03/01/28 08:48
>>314


Cardinal

316 :デフォルトの名無しさん:03/01/28 08:52
>>315

(1) VBのDeclare宣言とおなじで、煩雑だと思います。
  楽だとは思えないんですが・・・。

(2) Cardinalとはちょっと気が付きませんでした。感謝です。

317 :デフォルトの名無しさん:03/01/28 08:54
>>316
GetProcAddrとかLoadLibraryの戻り値はちゃんとチェックしてくださいね。

318 :bloom:03/01/28 08:59
http://www.agemasukudasai.com/bloom/

319 :デフォルトの名無しさん:03/01/28 09:04
>>317
コメントありがとうございます。

320 :デフォルトの名無しさん:03/01/28 09:16
(3)
Delphiで作ったDLLのAPIをVBクライアントからDeclare宣言で呼び出すと、
function(procedure)の実行は出来るのですが、呼び出し元に変更を反映
させたい引数が、変更されません。(値渡しの引数やローカル変数と同じ
ような動作で、関数スコープ内でしか値が有効でない)
引数の型をPInteger(PChar)に変更したり、VB側のAPI関数宣言でByValを
ByRefに変更したりしましたが、結果はおなじでした。
どのようにコーディングすればよいのでしょうか?
(ちなみに、Delphi側の引数宣言をvarに変更したら、アプリケーション
エラーで落ちました)

(4)
VBクライアントから利用するAPIで文字列を返す場合は、PCharではなく、
PWideChar(Unicode扱い)でないとダメですか?
(1)の問題が解決しないことには意味がありませんが・・・。


321 :デフォルトの名無しさん:03/01/28 09:22
>>320
補足ですが、当然stdcallは記述しています。
「参照渡し引数の値の変更をクライアント側に反映させる」以外の動作は
一通り問題なく実現できています。
(テスト的なものなので、あまりむずかしい処理は書いていないのです)

322 :デフォルトの名無しさん:03/01/28 09:32
>>320 を書いた後で、

ttp://www.users.gr.jp/ml/archive/delphi/33597.asp

を見つけました。これで何とかなるのかな・・・?

323 :デフォルトの名無しさん:03/01/28 09:46
>>320

ttp://www.users.gr.jp/ml/archive/delphi/33627.asp

↑こんなのも見つけたのですが、この本、今でも入手できるのだろうか?

324 :デルファイの名無しさん:03/01/28 10:08
(1) C/C++製のdllだと関数名に変な記号が付いていて別名与えないとどうしようもない場合有り
(3) VB側で、違う型を与えてません?VBだとByRefに式が書けてその場合変更は無視された気が
(4) 6以前のVBは文字列の扱いがややこしいのでVariantに入れて返すのが一番楽と思う

325 :デフォルトの名無しさん:03/01/28 10:18
>>324
コメントありがとうございます。
結果報告は、後日・・・。

326 :デフォルトの名無しさん:03/01/28 12:00
教えて頂きたいのですが、

Delphiで、ShellAPIのShellExecute関数を使っているのですが、
起動したアプリケーションとDelphiのプログラムが同時に走ってしまい、
プログラムがうまくいきません。

ShellExecute関数で起動したアプリケーションの終了を確認してから、
プログラムの続きを実行する方法をどなたか教えて頂けないでしょうか。

宜しくお願いします。

327 :デフォルトの名無しさん:03/01/28 13:16
FAQ

328 :組込もしまっせ:03/01/28 13:23
WaitForSingleObject か
GetExitCodeProcess を使えば該当アプリが終了してるかどうかわかりますが
ところが、これらのAPIを呼出すのに必要なハンドルを ShellExecuteは返してくれません。

対策は、
1、ShellExecuteEx を使って hProcess を使う
2、 FindExecutable で対応アプリの名前を調べてCreateProcessする


329 :326:03/01/28 14:01
>>328

ご返答ありがとうございます。
教えていただいた内容を調べて概要が分かりました。

難しそうですが、何とかがんばってみます。
ありがとうございました。

330 :デフォルトの名無しさん:03/01/28 14:20

SpinEditというコンポーネントを使って数値を変えて
ボタンを押すとその数値を使って処理をするというプログラムについてなんですが、

処理が終わった後、ユーザーによって変えられた数値を
「元に戻す」ボタンで初期値に戻すためにはボタンを押したときに
SpinEdhit1.Valueに初期値を書いて代入する以外に何か方法ってありますか?




331 :デフォルトの名無しさん:03/01/28 15:46
>>330
Undoメソッドがあるにはあるけど
 キー入力→Undo→(・∀・)アンドゥセイコウ
 スピン→Undo→(・A・)アンドゥデキン
となった(Del6付属のTSpinEdit)

332 :デフォルトの名無しさん:03/01/28 16:59
ボタンを押すとテキストファイルにその日の日付を書き込みたいのですがどのようにやればいいのでしょうか?

たとえばボタンを押すと「2003/01/28」という文字がfile.iniの一番上の行に追加されるというものです。
昔の日付はだんだん下の行に下がっていく、つまり新しく書き込むと上から順に追加される
という感じなのですがこれはどうやるんでしょうか?

333 :組込もしまっせ:03/01/28 17:05
TStringList.Create; して、 LoadFromFileして、先頭に
Insert FormatDateTime して SaveToFileかな

でも、
新しい書き込みが下になった方が パソコンには優しい処理だと思うけどなあ・・・・


334 :デフォルトの名無しさん:03/01/28 18:49
ユーザ的に不便

はい次

335 :デフォルトの名無しさん:03/01/28 18:52
procedure TForm1.Button1Click(Sender: TObject);

var

vdate : String; vdata : TStringList;

begin

vdata := TStringList.Create ;
vdata.Text := vdate;
vdata.SaveToFile ('test.txt');
vdata.Free ;

end;

こんな感じでとりあえず保存だけやり方がわかったのですが追加書き込みはどうやるのでしょうか?
新しい日付が最初にこなくてもいいのでファイルもう一度ボタンを押すと
次の行に追加されるようにしたいのですが調べても詳しく分からなかったので
例みたいなものを教えていただけないでしょうか


336 :335:03/01/28 18:53
追記:vdateには日付が文字列型で入っています。


337 :デフォルトの名無しさん:03/01/28 19:07
コンソールアプリケーション作ったんですが
コマンドプロンプトで300行弱しか表示されません。
もっと表示するのって無理なんですかね…?

338 :デフォルトの名無しさん:03/01/28 19:17
コンソールアプリで表示される行数って考え方が今風だな(w

339 :デフォルトの名無しさん:03/01/28 19:32
>>337
OS次第。


340 :デフォルトの名無しさん:03/01/28 19:33
>>337
あなたの言われる機能はターミナルに依存します。
よって、履歴機能を自力で実装するしかないです。

341 :デフォルトの名無しさん:03/01/28 19:34
>>338-340
ありがとうございました。

342 :デフォルトの名無しさん:03/01/28 19:35
とはいえ、300行ってことは、NT系だろうからコマンドプロンプトのプロパティで増やせるはず。

343 :デフォルトの名無しさん:03/01/28 19:37
誰も解決策知らないのかよ(w

344 :デフォルトの名無しさん:03/01/28 19:38
>>342
もっと具体的に教えてください。

345 :デフォルトの名無しさん:03/01/28 19:42
>>344
何をつかってるんだ。

346 :デフォルトの名無しさん:03/01/28 19:46
だからターミナルに依存すると言っているだろうに
アプリ側でどうにかなるもんじゃない。てうかどうにかするほうが反則だゴルァ

それも嫌なら自前で出力ウィンドウ作るとか、リダイレクト使ってファイルに吐かせるとか。


347 :デフォルトの名無しさん:03/01/28 20:31
整列の時間を計ろうとしたら早く終わりすぎて計れなかったんでループさせてから
かかった時間をループ回数で割って計ろうとしました。
自分で作ってみたんですが途中で整列する対象がソート済みの配列に変わってしまうんです。
整列前のソートをソートし続けるいい方法はないですかね?
begin
for i:=1 to 100 do begin
y[i]:=101-i;
end;
for j:= 1 to 10000 do begin
for k:=1 to 100 do begin
x[k]:=y[k];
end;
while m<=100 do begin
writeln('x[',m,']=',x[m]); m:=m+1;
end;
for r:=100 downto 1 do begin
for l:=1 to 99 do begin
if (x[l]>x[l+1]) then swap(x[l],x[l+1]);{swap(x,y)はxの値とyの値を入れ替える手続き}
end;
end;
end.

348 :デフォルトの名無しさん:03/01/28 20:33
毎回初期化するか降順昇順でソートするかQueryPerformanceCounter使え。

349 :デフォルトの名無しさん:03/01/28 20:44
>>348
一応ループの中に
for k:=1 to 100 do begin
x[k]:=y[k];
end;
って入れてループに入るたびにxの値を更新するようにしたつもりなんですが…

90 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)