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

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

フサギコの *やさしい* Delphi質問スレ Ver.12

1 :フサギコ:03/02/17 19:15
           __________________________
   ∧,,∧    /Delフサギコがどんな厨房疑問でもやさしく答えます。
  ミ,,゚Д゚彡 < Delフサギコは時に私であり、時には別の人。
   U  つ∀ \他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 〜ミ  ミ ┴    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ 
前スレ モナーの *やさしい* Delphi質問スレ Ver.11
http://pc2.2ch.net/test/read.cgi/tech/1042421592/l50

2 :フサギコ:03/02/17 19:16
■過去スレ

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

モナーの *やさしい* 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/02/17 19:30
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/

4 :デフォルトの名無しさん:03/02/17 19:39
そうきたか。お疲れ。

5 :デフォルトの名無しさん:03/02/17 20:04


6 :デフォルトの名無しさん:03/02/17 20:24
>>1
Delフサギコの中の人も大変だな

7 :デフォルトの名無しさん:03/02/17 22:18
まぁ、がんがってくれ

8 :デフォルトの名無しさん:03/02/17 22:51
>Delモナー殉職

ワラタ

9 :デフォルトの名無しさん:03/02/17 23:08
本当の初心者で何からやればいいか解らない。って人は、
とりあえず>>3を見てください。
リンクに初心者向けのサイトがあります。


10 :デフォルトの名無しさん:03/02/17 23:10
げ、フサギコかよ。最悪。

11 :デフォルトの名無しさん:03/02/17 23:21
>>9
あれじゃわかりづらいだろ。もうちょっと整理してくれよ。

12 :ネタ:03/02/17 23:31
>>9
フロントページで作ってるHPかよ!と思ったのはオレだけ?

13 :デフォルトの名無しさん :03/02/17 23:42
Webbrowserに表示されているHTMLソースを得るにはどうすればいいのですか?

14 :デフォルトの名無しさん:03/02/18 09:50
>>13
右クリック>ソースの表示

15 :デフォルトの名無しさん:03/02/18 10:24
Delphiってwebとデータのやりとりってできるの?

16 :デフォルトの名無しさん:03/02/18 11:04
>>15
proなら少し、Entなら沢山できそうです

17 :デフォルトの名無しさん:03/02/18 13:18
トリップがないので偽物

18 :15:03/02/18 15:22
パーソナルじゃ駄目なのかぁ。・゚つД`)゚・。

19 :デフォルトの名無しさん:03/02/18 15:31
パーソナルでもダメって事はないけど、パーソナルで苦労するより .NET かな

20 :デフォルトの名無しさん:03/02/18 16:31
CGイラネ

21 :デフォルトの名無しさん:03/02/18 16:48
F9で実行してからdelphiを終了すると
「delphi32が原因でKERNEL32.DLLにエラーが発生しました」
と必ず出ます。
ただdelphiを起動して終了した場合は出ないのですが、
最近delphiをはじめたばっかりなので
まったく理由がわかりません。
何故でしょう?

22 :デフォルトの名無しさん:03/02/18 17:10
モジュール'USER32.DLL'のアドレス BFF45BA6でアドレス04345EC8に対する読み込み違反がおきました。
モジュール'CORERDE60.BPL.DLL'のアドレス005259AFでアドレス043F27ACに対する読み込み違反がおきました。
こういうのもでてました。

23 :Delフサギコ:03/02/18 17:29
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ;:・・.∴○;・.:∴       *     ☆
|      ゚     ⊂⊃   。
|         ☆,, ∧∧      *
|   ゚      ヽ(´∀`)ヘ
|      *    (□ノ)ノノ ゚.・∴..*.☆+
|     ⌒⌒⌒∪∪⌒⌒⌒⌒
|     ⌒  ⌒     ⌒ ⌒
|
| Delモナーさんはお空の上で幸せに暮らしているだろうか

   ̄ ̄ ̄ ̄ Ο  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ο
♪   ∧,,∧゚ ♪
    ミ,,゚Д゚彡  ♪
    ミつ[|lllll]).
   〜ミ  ミ
    U''U

質問はageでお願いします。

24 :デフォルトの名無しさん :03/02/18 20:10
Webbrowser上にあるボタンをクリックさせるようにしたいんですけど、

<input type=submit name="submit">

このようにnameが「submit」になっているので、
なぜかsubmit()とかclick()を使うとエラーが出ます。
何か他に方法はありませんでしょうか?
よろしくお願いします。

25 :デフォルトの名無しさん:03/02/18 21:27
インターフェイスから直接叩くとかどう?

26 :デフォルトの名無しさん:03/02/18 21:36
>>21
Borlandのページに置いてあるパッチを当てて、ちゃんとアップデートした?
あと、DelphiのバージョンとOSは?



27 :デフォルトの名無しさん:03/02/18 21:52
>>26
personal 6 パッチ済み
です。
コンポーネントをインストールしてからなったと思うのですが
よくわかりませんでした。
たぶんどこかで操作を間違えたんだと思います。

とりあえず再インストールして解決しました。

28 :デフォルトの名無しさん:03/02/18 23:34
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  >>27 とりあえず解決してよかったな
_と~,,,  ~,,,ノ_. ∀  \_よし、次!どんどん質問してよし!
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃   
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

29 :15:03/02/18 23:44
>>16
できるじゃん!Indyコンポネート入れたよ!
まだ試してないけどできるっぽいよ!

30 :デフォルトの名無しさん:03/02/19 00:01
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  >>29 >16>19はC#厨.NET厨だから、相手にするな
_と~,,,  ~,,,ノ_. ∀  \_質問募集中〜!質問はないのか?
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃   
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

31 : :03/02/19 00:11
赤ちゃんはどこから来るの?

32 :デフォルトの名無しさん:03/02/19 00:19
>>30
君には厨房を引き寄せる不思議な力があるようだ。
マ板かHSPスレに逝きなさい。

33 :デフォルトの名無しさん:03/02/19 00:29
>>32
はぁ?hspを愚弄する気か?
住所とメアド教えろ!
遊びに行くから。

34 :デフォルトの名無しさん:03/02/19 00:52
海の水はどうしてですか?

35 :デフォルトの名無しさん:03/02/19 00:53
津波だからです。

36 :デフォルトの名無しさん:03/02/19 01:24
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ-Д-ノ,っ━~  < 誰か質問してくんねーかなー
_と~,,,  ~,,,ノ_. ∀  \_誰も居ない…眠い…
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

37 :デフォルトの名無しさん:03/02/19 01:31
>>36
あんた誰?

38 :デフォルトの名無しさん :03/02/19 01:37
>>36
じゃあ>>24に答えてください。お願いします。

39 :デフォルトの名無しさん:03/02/19 02:12
>>33
遊びに行くのにメアドが必要な理由は何故ですか?

40 :デフォルトの名無しさん:03/02/19 03:01
山は死にますか?

41 :デフォルトの名無しさん:03/02/19 03:15
>>39
今は友達になると携帯メアド交換がセットだからでしょう。

42 :デフォルトの名無しさん:03/02/19 03:54
ListViewでListView.Selected.EditCaptionの様な感じで
SubItemを編集可能状態にしたいのですが
EditCaptionが使えないようで参ってます

今はダイアログを出して変更させてるのですが
できれば一列目のCaption編集と同様にやりたいので…

いい方法ありませんでしょうか?

43 :デフォルトの名無しさん:03/02/19 04:37
>>42
TEdit を SubItem の位置にそれらしく表示させて入力させる。

44 :デフォルトの名無しさん:03/02/19 06:17
Delphi7について教えてください。

D5で作ったプロジェクトそのまま移行できますか?
下位互換性ってどんなもんなんでしょ?
乗換えを考えているんですが…
宜しくお願いします。

45 :デフォルトの名無しさん:03/02/19 07:14
>>44
変なことしていなければ。
.DCU に互換性が無いから、ソースが無い 3rd party コンポーネントを
使っているとちょっと苦労するかも。
標準コンポーネントと自分のコードでできているのなら、楽勝。

46 :デフォルトの名無しさん:03/02/19 08:59
Delphi6で
他人のプロジェクトを開きフォームをドラッグだけして保存した後
メモ帳でフォームファイル(dfm)の中身を新旧で比較すると
微妙におかしな所が変更されていて困ってます。
objectの
Text='あああ'
の部分が
Text='#0123'
という感じに置き換わってしまいます。

解決法方をご存知でしたらよろしくお願いします。

47 :組込もしまっせ:03/02/19 09:17
>>46
http://www.google.co.jp/search?q=DFMFormat

かな?

48 :デフォルトの名無しさん:03/02/19 09:53
>>47
ありがとうございます。
文字化け解決しました。

が実はフォームの継承がうまくいかないのが悩みの種なのです。
ドラッグし保存しただけで継承がおかしくなるので
フォームファイル(dfm)関係かと思っていたのですが
的外れだったようです。
引き続き心当たりのある方情報よろしくお願いします。

49 :44:03/02/19 12:56
>>45
有難う御座います。
なるほど…そんなら私は問題無い!
最終Verになりそうだから買っておこう。

50 :デフォルトの名無しさん:03/02/19 12:57
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  他人のプロジェクトを使う時は、.cfg, .dof, .dsk
_と~,,,  ~,,,ノ_. ∀  \_ファイル内のパスを置換したほうがいいかもな
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃   
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

51 :デフォルトの名無しさん:03/02/19 13:39
.cfg, .dof, .dsk
それぞれどういう役目なんだ?



52 :デフォルトの名無しさん:03/02/19 14:39
Webページの内容をテキストで欲しい場合に
全て選択>コピー>貼り付けの作業で実現しようと思ったのですが

WebBrowser1.Navigate(Edit1.Text);
WebBrowser1.ExecWB(OLECMDID_SELECTALL, 0);
WebBrowser1.ExecWB(OLECMDID_COPY, 0);
Memo1.PasteFromClipboard;

を実行していった時に、
WebBrowser1.ExecWB(OLECMDID_COPY, 0);
'登録されていないドロップ先の登録を解除しています'
というエラーが出てしまい止まってしまいます。

この場合の解決方法と他によい方法あればヒントでも頂けないでしょうか
宜しくお願いします

53 :デフォルトの名無しさん:03/02/19 16:47
IEコンポーネントを使い倒すスレ
http://pc2.2ch.net/test/read.cgi/tech/982930049/l50


54 :デフォルトの名無しさん:03/02/19 17:25
>>52
別のやり方だけどこんなんでどう?

Usesに MSHTML_TLBを追加

procedure TForm1.Button1Click(Sender: TObject);
var
Doc: IHTMLDocument2;
begin
Doc := WebBrowser1.Document as IHTMLDocument2;
Memo1.Text := Doc.body.InnerText;
end;

55 :52:03/02/19 18:10
>>54
>Usesに MSHTML_TLBを追加
をするとMSHTML_TLB.dcuが見つかりませんのエラーでした。
もう少しがんばります レスありがとうでした

56 :54:03/02/19 18:37
ActiveXコントロールのインストールで
Microsoft HTML object Libraryを取り込むべし。
タイプライブラリの取り込みでもいいかもしれない。

Textの取得タイミングはNavigateしたあとOnDocumentCompleteがきてから。
OnDocumentCompleteに取り込みコード置くのがいいかも

57 :デフォルトの名無しさん:03/02/19 19:50
initialization時に生成したコンポーネントのComponentStateと
実行した時のComponentStateが空になってしまったんですけど
コンポーネント側でなにか区別する方法ありますか?

58 :57:03/02/19 20:01
>>57
えと単純に今、実行中なのかそれ以外なのか区別したいので・・・
ちなみにcsDesigning in ComponentStateではできない感じでした。

59 :デフォルトの名無しさん:03/02/19 20:10
>>51
cfgプロジェクト環境設定ファイル
dofDelphi オプションファイル
dskデスクトップ設定


60 :デフォルトの名無しさん:03/02/19 21:50
Delphi7付属のInstall Shieldのことで質問させてください。
OSは開発環境、動作環境ともにwinXPです。

Delphi7で作成したプログラムのインストーラを付属のInstall Shieldを使って作成しました。
このときBDEの設定の際に、インストール先のBDEのPATHパラメータを以下のように設定しました。

エリアス名:Delphi
PATH=C:\Delphi\

作成したインストーラをDelphi7がインストールされていない端末にインストールし、このときインストールされたBDEAdministratorで
確認したところ、インストーラ作成時に設定したPATHがしっかり設定されていました。
しかし、このインストールしたプログラムを一度アンインストール(windowsの「アプリケーションの追加と削除」を実行)し、
もう一度同じ端末にインストールしてBDEAdministratorで確認すると、
インストーラ作成時に設定したPATHではなく、開発環境のBDEで設定されている同エリアス名(config)のPATHが設定されていました。

BDEのPATHの設定の仕方が悪いのでしょうか?それともレジストリをいじらないといけないのでしょうか?



61 :デフォルトの名無しさん:03/02/19 22:02
TMemoはメモ帳互換のはずなのにユニコードを入力できません。
Font.Charsetにもユニコードがつかえません。
何とかなりませんか?

62 :46:03/02/19 22:47
>>48
でフォームファイル(dfm)の継承が〜
の件ですが
Delphiの再インストールしたら症状が出なくなりました。
結局原因は謎のままです。
ありがとうございました。

63 :デフォルトの名無しさん:03/02/19 23:23
indyについてなんですが、

http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&q=indy&btnG=Google+%8C%9F%8D%F5&lr=
↑みたいに、cgiの後ろにパラメーター?がついたurlを送って、
返ってくるページを読むにはどうすればいいのでしょうか?
indey.get()じゃ読めないです・・・。

64 :デフォルトの名無しさん :03/02/20 01:57
>>63
素直にwebbrowserを使いなさい

65 :デフォルトの名無しさん:03/02/20 03:12
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  TNMHTTPでも、普通にGetできるぞ。
_と~,,,  ~,,,ノ_. ∀  \_Indyって、そんなに使えないモノなのか?
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃   
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

66 :デフォルトの名無しさん:03/02/20 05:07
>>63
Googleは、Indyデフォルト設定のUserAgentだと弾かれます。
なんで、インスペタで別の名前に設定してあげてください。

67 :デフォルトの名無しさん:03/02/20 12:35
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  …ageてみるか…
_と~,,,  ~,,,ノ_. ∀  \_________
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

68 :52:03/02/20 13:16
>>56
ありがとうございました
無事に取得できました。

69 :デフォルトの名無しさん:03/02/20 14:06
60日間トライアル版を使って作成したプログラムって、60日間経つと
Delphi自体はともかく、作ったアプリケーションも実行できなくなるのっ
て本当ですか?

70 :デフォルトの名無しさん:03/02/20 15:50
>>69
『M$から「Windows .NET Server 2003 RC2 360日間限定評価版」
 というのが送られて来たけど
 360日を過ぎるとハードディスクをフォーマットしてしまうっ
 て本当ですか?』
というのと同じような気が・・・

71 :デフォルトの名無しさん:03/02/20 16:08
作ったアプリは使えなくなるよ。
そのせいで、ちょっぴりズルしようとしたらえらいめにあった。

72 :デフォルトの名無しさん:03/02/20 16:23
>>69
60日の期限が切れたらDelphiはともかく、そのDelphi
で作成したアプリケーションも使えなくなります。

73 :デフォルトの名無しさん:03/02/20 16:37
なんでDELPHI7のアップデートはいつまでたっても出ないの?

74 :デフォルトの名無しさん:03/02/20 16:40
すでにDel8が出荷準備中だからです。多分間違いないと思う。


75 :デフォルトの名無しさん:03/02/20 16:52
いやガラガラ蛇の開発に手を取られているんじゃないかな・・・ って フサギコの名前付いてると雑談スレ化し易くなって

76 :デフォルトの名無しさん:03/02/20 17:16
いやD7アプデート期間延長のDMが来たのでD8の開発は相当遅れています。

77 :デフォルトの名無しさん:03/02/20 17:32
テスト

78 :ねこま:03/02/20 17:37
期間延長!期間延長!!って毎度 DM 送りつけられてもねぇ
しらけるよ.
いまのところ欲しいのは dbExpress だけ


79 :デフォルトの名無しさん:03/02/20 18:52
デルフアイでォープンソウスな大作ソフトって何かありますか?

80 :デフォルトの名無しさん:03/02/20 19:17
delphiで作られた有名ソフトって何がある?
http://pc2.2ch.net/test/read.cgi/tech/990056026/l50


81 :Delフサギコ ◆A6VzDeLphI :03/02/21 00:37
    ∧,,∧  コロコロ
    ミ゚Д゚,,彡 
  σ⊂  ∪ミ   仕事忙しすぎで
┳┳ (~,,(~,,,ミ@   激しく遅くなりますた


.bpg プロジェクトグループファイル
.dpr プロジェクトファイル
.dpk パッケージファイル
.pas パスカルソースファイル
.dfm Form定義ファイル(Kylix/CLXでは.xfm)
.res リソースファイル
.dcu コンパイル済みユニット(Kylix/CLXでは.dpu)
.bpl 実行時パッケージライブラリファイル(Kylix/CLXではbpl….so)
.dcp パッケージバイナリイメージ
.cfg プロジェクト環境設定ファイル
.dof プロジェクトオプションファイル(Kylix/CLXでは.kof)
.dsk デスクトップ設定ファイル(もしくは.desk)
.dcr ダイナミックコンポーネントリソース、コンポーネント用のリソースファイル
.ddp ダイアグラム情報ファイル
.tds 外部デバッグシンボルテーブルファイル
.todo TODO設定ファイル
.dci 支援機能設定ファイル
.dct コンポーネントテンプレート設定ファイル
.dmt メニューテンプレート設定ファイル
.dro リポジトリ設定ファイル
.dsm ???

82 :デフォルトの名無しさん:03/02/21 01:24
レ+ファ#+ラ+ド

83 :デフォルトの名無しさん:03/02/21 01:49
もちろん俺はレ+ファ#+シだぜ!

84 :デフォルトの名無しさん:03/02/21 08:13
フォームにEditのみ3個乗っているアプリがあったとして、
FindWindowExでEditのハンドルを取得しようとすると、
いつも同じEditが1つだけしか取得できないのですが
Edit3個のそれぞれのハンドルを取得するにはどうすれば良いのですか?

85 :デフォルトの名無しさん:03/02/21 08:30
>>84 自分で作ったアプリ? それとも人のというか既製の?

既製のなら、 EnumWindows で順に探すか、 FindWindowEx でも探せるはずだけど?

もしかして、Editが3個乗ってるように見えて、必要なEditBoxを1個しか使ってないかもしれないよ
昔はリソース減らす為に、そんな事もやってたから

86 :デフォルトの名無しさん:03/02/21 08:37
>>79

OpenJaneDoe


87 :デフォルトの名無しさん:03/02/21 10:31
gikonavi ?



88 :60:03/02/21 10:40
>>60の補足として、
Delphi5のInstallShieldで作成したインストーラだとうまくいっていました。

この事象に関して解決策を知っている方がいましたら
教えていただけないでしょうか。

89 :デフォルトの名無しさん:03/02/21 10:55
リストボックスを使用してまして、リストのある項目のみ色を変更したいのですがうまくいきません。
ListBox1.Items[0].Font.Color := clRed;
とやるとレコード、オブジェクトまたはクラスのいずれかが必要です
のエラー

そもそも色が変更できないのか、対処法あるのかどうかどうか教えてください。

90 :デルファイの名無しさん:03/02/21 11:11
オーナードローしか無いです。
Style = lbOwnerDrawFixedにして自前で描画。

91 :デフォルトの名無しさん:03/02/21 13:24
InstallShieldのBDEの設定で、
PATHパラメータに[INSTALLDIR]といったディレクトリ識別子は使えるんでしょうか?

92 :デフォルトの名無しさん:03/02/21 14:03
2ちゃんねるブラウザの6割はDel製ですな。


93 :デフォルトの名無しさん:03/02/21 14:28
Visio + Delphiはいつのバージョンで実現するのかな?

94 :デフォルトの名無しさん:03/02/21 16:20
タイマーコンポーネントがツールバーにないんですけど
どうやったら追加できますか?

それかタイマコントロール以外でなにかありますか?

95 :デフォルトの名無しさん:03/02/21 16:23
>>92

>2ちゃんねるブラウザの6割はDel製ですな。 =DQNばかりってこと?



96 :デフォルトの名無しさん:03/02/21 16:25
君がそう思うのならそうなんでしょう。


97 :デフォルトの名無しさん:03/02/21 16:31
プログラムを終了させるコマンドはENDですか?

98 :デフォルトの名無しさん:03/02/21 16:37
システム時計の時間と分と秒をしる関数はありませんか?

99 :デフォルトの名無しさん:03/02/21 17:01
>>94
>>98
探せばある

100 :デフォルトの名無しさん:03/02/21 17:21
どうもあまり言語になれてないみたいです
タイマーコントロールは見つかった^^;
プログラム終了コマンドも見つかったhalt

システム時計GETの関数が見つかりません><
そんでもって、線をひきたいのですが
MoveToメソッドが定義されてませんだっておこられました
TFormにメソッドがないんです
どうやってフォームに線を引いたらいいでしょか?

101 :デフォルトの名無しさん:03/02/21 17:26
うにゃー
お茶をこぼしてしまったよ。

102 :デフォルトの名無しさん:03/02/21 17:32
>>100
TForm::Canvasは知ってるかい?

WindowsのUIで使われる線ならGroupBoxで簡単。

103 :デフォルトの名無しさん:03/02/21 17:38
なんで2chブラウザってDelphi製が多いわけ?

104 :デフォルトの名無しさん:03/02/21 17:46
ひねくれ者が多い、Delphiは癖がある、2ch者は癖がある。
これ以上何がある?

105 :デフォルトの名無しさん:03/02/21 17:54
>>104
タダでIDE配ってるからだろ。

と、普通に返してみる。


106 :デフォルトの名無しさん:03/02/21 17:58
>>102
ちょっと知りません
手元の参考書で
イベント処理のところに
いきなりこう書きました
with canvas do この書き方しりません
begin
moveto(100,100);lineto(20,20);
end;
そしたら引けました
VC++をしたことあるのですが、オブジェクトパスカルは
ややこしいです


107 :デフォルトの名無しさん:03/02/21 18:01
>>103
暇な学生プログラマが多いから

と、適当に予想してみる。

108 :デフォルトの名無しさん:03/02/21 18:14
>>106
Form1.Canvas.MoveToで指定位置に移動
LineToで指定位置まで線を引く

109 :デフォルトの名無しさん:03/02/21 19:14
>>106  ? MFC だって CDC::LineTo で同じじゃないかと思うのだが?


110 :デフォルトの名無しさん:03/02/21 19:50
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  isnot演算子がないのは何か特別の理由でもあるんかいナ?
_と~,,,  ~,,,ノ_. ∀  \ while not (item is TAClass) do ...
    .ミ,,,/~),  .| ┷┳━ while item isnot TAClass do ...
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃  下のほうがsimple&smartのような気が。。。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

111 :デフォルトの名無しさん:03/02/21 20:00
>>110
どうせなら演算子を自由に定義出来ればいいのにね

112 :デルファイの名無しさん:03/02/21 20:11
Adaにはありますね。A not in B だったかな?
単にPascalではサポートして無いってだけでしょ。でも欲しいのは同意。
ついでにcase文で

case AObj of
TheClass: …;
AnyClass: …;

なんて書きたかったり…

113 :デフォルトの名無しさん:03/02/21 20:33
>>112
isnot はいらないけど
その下のは激しく欲しい

みんなどうやってる?


114 :デフォルトの名無しさん:03/02/21 20:42
>>113
AObj.Hoge;


115 :デフォルトの名無しさん:03/02/21 20:44
>>111
Adaでさえできたのにねえ。
もう「でるぽい」はだめぽ。

116 :デフォルトの名無しさん:03/02/21 21:45
>>113
多態

117 :デフォルトの名無しさん:03/02/21 22:22
少々お尋ねします。
MSアクセスで開発済みの顧客管理とか販売管理とかのシステムがあります。
これをパッケージのような形にして、代理店に配布する計画があります。
将来的には自社サーバーをたてて、B2Bのようなこともしたいです。
そこで開発ツールを何にするか、現在社内でもめております。
いろいろ見聞きして、開発しやすさ、メンテナンスのしやすさで
DELPHIかなと思っておりますが、本屋さん行っても
C#とかVB.NETとかが圧倒的に多く、迷っております。
あとあとのことを考えると、どれがよいでしょうか?
ご意見をお聞かせ願えれば幸いです

118 :デフォルトの名無しさん:03/02/21 22:26
フサギコって誰?アフォ?

119 :デフォルトの名無しさん:03/02/21 22:55
>>118
アフォはフサギコじゃない。
フサギコなのはおまえのほうだ。

120 :デフォルトの名無しさん:03/02/21 22:58
>>117
5年くらい担当が変わらないなら、がんばればどれでも良い。
1年くらいなら、パッケージソフトに業務をあわせる。
かな?

121 :113:03/02/21 23:04
すんません意味がわかりません・・・
case AObj of
TheClass: …;
AnyClass: …;

これが欲しいという発言にどうして
>AObj.Hoge;
>多態
なのでしょうか??

ヘテロなオブジェクトツリーをよく作るので、何かいい方法が無いかなと思い発言しました。
よろしくお願いします。


122 :デフォルトの名無しさん:03/02/21 23:08
case Sender.Tag of
1:
begin
end;
2:
begin
end;

とかよくやるけど

123 :デフォルトの名無しさん:03/02/21 23:11
if obj.ClassName = "MyClass" then ... else ...;
とか is でやればいいのでわ?

124 :デルファイの名無しさん:03/02/21 23:13
case文使うような箇所にはvirtual関数使えってことでしょうね。
自分もふつーそうしますが、対象クラスを書き換えられなかったり書き換えたくなかったりして、
時々if Obj is XXX then … else if Obj is YYY then … なんて書かざるを得ないので
112で書いたような機能が欲しいなーと思うこともしばし。
実際except節ではそういうことができるので、普通の分岐文として書けてもいいじゃないですか、ねえ?

//実はDel.NETでclass helperが使えるようになれば解決だったり

125 :デフォルトの名無しさん:03/02/21 23:17
>>124
対象クラス「自身」でやる必要ないだろ。
クラス参照と処理用のメソッドのペアを登録して検索。

126 :デフォルトの名無しさん:03/02/21 23:26
まあ本来のcaseのセレクタは順序型だし、
それを拡張するとpascalではなくなるし。
まあ、delphi言語とすればいいのだろうが。

127 :デフォルトの名無しさん:03/02/21 23:31
クラス型、文字列、整数、実数、オブジェクトの内容、参照を個別に対応するのは無理だし
かといってどれか一つだけ対応するのもばかげている。
なので===演算子のオーバーロードのない言語では無理。


128 :デフォルトの名無しさん:03/02/21 23:47
   ===

  -===-

 -==・==-

129 :NOT 116:03/02/22 00:33
>>121
多態が分かっていれば誰でも多態と答えると思うぞ。
分からないなら多態がさっぱり分かってないということだ。

130 :NOT 121:03/02/22 00:47
ヘテロなオブジェクトに対し、多態とはこれいかに。

131 :デフォルトの名無しさん:03/02/22 01:13
USBオナホールを動かすにはどうすれば?

132 :NOT 116:03/02/22 01:28
>>130
ヘテロは 121 で追加された条件。
ヘテロが追加される以前の返答ならそんな特殊条件を考えないから当然多態という返答になるだろ。
そして、そんな条件を持たない連中が多態と答えるのが理解できないのなら多態が分かってないということだ。

最後に私は多態でヘテロができるかどうかには答えた気はない。
勘違いされてもしかたない書き方をしたというのは認める。

133 :デフォルトの名無しさん:03/02/22 03:44
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  たまに見るclass helper・・・って、ナニ?
_と~,,,  ~,,,ノ_. ∀  \ ↓これと何か関係があるとでも?
    .ミ,,,/~),  .| ┷┳━ ttp://staff.aist.go.jp/y-ichisugi/mj/papers/mj-20020830.pdf
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃  
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

134 :121:03/02/22 04:24
わたしの脳味噌でのデフォルトがヘテロだったため盲目的になっていました
指摘されて気づきました。どうもてす
確かに可能なら多態かinterfaceですね。

ヘテロだと、わざわざcase文にするためにTClassList.IndexOfを使ったりします。


135 :デフォルトの名無しさん:03/02/22 05:21
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  無料版使わないで買えよおめーら。
_と~,,,  ~,,,ノ_. ∀  \
    .ミ,,,/~),  .| ┷┳━ 
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃  
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

136 :デフォルトの名無しさん:03/02/22 08:00
「ヘテロ」ってどういう意味?

137 :84:03/02/22 08:06
>85

ちょっと遅くなりましたが、レスありがとうございます。

既成のアプリで、上から順に3個Editがあるのですが

var
Hnd1,Hnd2:HWND;
begin
Hnd1:=FindWindow('クラス名', nil);
SetForegroundWindow(Hnd1);
Hnd2:=FindWindowEx(Hnd1,0,'Edit',nil);
end;

こんな感じでやると、常にHnd2には、1番上のEditのハンドルが入るのですが
2番目、3番目のEditのハンドルを取得するにはどうすればいいのですか?  

138 :デフォルトの名無しさん:03/02/22 09:39
>class helper
Delphi.NETでCLRの型をPascalの型に見せかけるために用意された構文。
既存の型に後付けでメソッドを追加できるが、悪用すればMixJuiceモドキが可能となる。

139 :組込もしまっせ:03/02/22 10:56
>>137
Hnd2が1番目だから2番目3番目は Hnd2:=FindWindowEx(Hnd1,Hnd2,'Edit',nil); とループすればいいはず

でも、

function EnumChildProc(hw:HWND; param:TFtest):BOOL;stdcall;
var s,t:string;
begin
s:='';
SetLength(s,1000);
GetClassName(hw,PChar(s),Length(s));
t:=PChar(s);
GetWindowText(hw,PChar(s),Length(s));
s:=PChar(s);
param. Memo1.Lines.Add('CLASS='+t+' txt='+s);
Result:=True;
end;

function EnumProc(hw:HWND; param:TFtest):BOOL;stdcall;
var s:string;
begin
s:='';
SetLength(s,1000);
GetWindowText(hw,PChar(s),Length(s));
s:=PChar(s);
if s='Form1' then EnumChildWindows(hw,@EnumChildProc,Integer(param) );
Result:=True;
end;

みたいな感じにして
EnumWindows(@EnumProc,Integer(Self) );
で検索開始をかけた方が、自分は楽だな

140 :デフォルトの名無しさん:03/02/22 15:11
>>103
使いやすいから

と、マジレスしてみるテスト

141 :デフォルトの名無しさん:03/02/22 17:39
TTreeViewで[Del]キーと[BkSp]キを押したときノードを削除する処理を
以下のように書いたのですが[Del]キーだけ受け付けてくれません。
試しに他のフォームでテストプログラムを作って試すと[Del][BkSp]と
もうまくいくのですが…
うまくいく方とうまくいかない方のTreeViewのプロパティを比較して
いろいろいじくってみたのですがうまくいきません。。
考えられる原因として何か分かる方おられたらアドバイス頂けないでしょうか?

procedure TForm1.TreeView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Node: TTreeNode;
begin
Node := TreeView1.Selected;
if Node = nil then Exit;
case Key of
VK_BACK, VK_DELETE: Node.Delete;
end;
end;

142 :デフォルトの名無しさん:03/02/22 17:46
>>141
メニューのショートカットにdelを割り当ててるんじゃないの?

143 :141:03/02/22 19:31
>>142
あ、もろビンゴです。お恥ずかしい…
けどかなり悩んでいたので助かりました。
ありがとうございます!

144 :デフォルトの名無しさん:03/02/22 21:28
マウスをクリックしながらキーを押したときにアクションを起こさせたいのですが、
OnKeyDownやOnKeyUpイベントに

if ssLeft in Shift then ShowMessage('Test');

のようなコードをいろいろと試してみましたが全く反応がありません。
OnKeyDownのTShiftStateに対してssLeftやらssMiddleのような
マウスの状態を指定することは出来ないのでしょうか?

145 :デフォルトの名無しさん:03/02/23 00:51
>>144
マウスをクリックしながらキーを押す動作が想像できないんだけど、
GetAsyncKeyState じゃだめかな?


146 :デフォルトの名無しさん:03/02/24 08:21
クラスAでクラスBを使い、クラスBでクラスAを使うのって
どうtype節に書けばいいの?

147 :デフォルトの名無しさん:03/02/24 08:58
>>146
type
 TB = class;
 TA = class
 private
  FB: TB;
 end;
 TB = class
 private
  FA: TA;
 end;

148 :デフォルトの名無しさん:03/02/24 09:15
アナログ時計作ってるんですが算数に悩んでいます
中心点からたとえば、2時を指す場合最終点はどうやって
計算すればいいでしょうか

サインとかコサインならったようなきがするんですが、、、

149 :デフォルトの名無しさん:03/02/24 09:31
ttp://www.nifty.ne.jp/forum/fdelphi/samples/00078.html

そういえばDelにはVBみたいなCircleメソッドが存在しないなぁ
使い道がないから?WinAPIに存在しないから?



150 :デフォルトの名無しさん:03/02/24 09:45
ソフトをインターネットエクスプローラーからのアイテムのドラドロ
(例えばブラウザからのドラドロでスクラップできる「紙」とかみたいに)
に対応させるにはどうすればいいんでしょうか?
ブラウザからリンクをドラドロしたらそのURLを受け取るようにしたいのですが…


151 :デフォルトの名無しさん:03/02/24 10:01
>>149
うーんサンプルの貼り付け方がわかりません^^;;
タイマーコントロールにOnTimerイベントがオブジェクト
インスペクタに出てこないんです><
タイマーコントロールのイベントにはFormCreateが出てます
おかしいです


152 :デフォルトの名無しさん:03/02/24 10:09
>>151
再起動汁。そしてTimerコンポーネントをダブルクリック汁。


153 :デフォルトの名無しさん:03/02/24 10:21
>>152
Timerコンポーネントはできました

あとは関数でエラーがでます
GetXとGetYです
関数の宣言と実装をしかるべきところに貼り付けたつもりなのですが
エラーになってしまします。
宣言は、パブリックにはりつけました
実装は、Inprimentetion直下にはりつけました。

うーんどうすればよいのか、おかしいです

154 :153:03/02/24 10:32
GetXとGetYの宣言はなんだろう?
TFormのメソッドでもなし、TTimerのメソッドでもなし
そういえば普通の関数ってどうやって宣言するのだろう、、

155 :デフォルトの名無しさん:03/02/24 10:36
ListBoxを使っておりまして、項目をダブルクリックすると
その項目のTextを取得するにはどうすればよいのでしょうか?

156 :153:03/02/24 10:38
関数の宣言は宣言部のtypeに書いたらあかんね、、
宣言部のvar以下に書いたらいけますた

すまそ

157 :デフォルトの名無しさん:03/02/24 10:41
>>149
VBみたいな と言うのがどういうことかわからんけど Arc とか Ellipse とかじゃ駄目な理由があったら教えて

158 :153:03/02/24 11:06
フォームを円形にしたのですが
フォームのタイトルバーがあるので時計の中心が変になります
タイトルバーをけすにはどうすればいいですか?

そうするとアプリの移動とかできなくなるけど時計らしいので、、
理想としてはクライアント領域でドラッグできたらいいのですが

159 :デフォルトの名無しさん:03/02/24 11:22
>>158
BorderStyle と WM_NCHITTEST あたりかな?

160 :153:03/02/24 12:43
>>159
クリックイベントの際にlParamがないのですが
どうやってメッセージを判断すればよいですか?

161 :159:03/02/24 13:14
>>160
ん? オレへの質問か?
いまいち趣旨がよくわからん

162 :153:03/02/24 13:25
>>161
すまそ
メッセージ処理はどうやったらいいかわかりません


163 :デフォルトの名無しさん:03/02/24 13:32
>>162
キーワードを教えてもらったら
http://www.google.co.jp/search?q=WM_NCHITTEST+delphi

こうやって、自分で調べる事。

自分だって、そういう 「どうやったらいいか」なんて聞かれても、困ってしまうだろ?

164 :153:03/02/24 13:54
>>163
サンプルをそのまま使ってもあれなので自分なりに解釈してみました
サンプルが難しいです、、、
ttp://www.borland.co.jp/qanda/delphi/d0002348.html
##サンプル##
{このメソッドはいつ呼び出されるのか?}
{Mの型はTFormにはないはず、、入れ子?}
procedure TForm1.WMNCHITTEST(var M: TWMNCHITTEST);
begin
 inherited;{ 継承されたメッセージハンドラの呼び出し}
 {TFormのメソッドを使うと思う。でもどのメソッドを継承したかわからない} 
if M.Result = htClient then { クライアント領域がクリックされたか? }
 M.Result := htCaption; { もしそうであれば,タイトルバーが }
{ クリックされたと Windows に思わせる }
end;

165 :159:03/02/24 14:22
>>164
{このメソッドはいつ呼び出されるのか?}
WindowsからWM_NCHITTESTメッセージが送られたとき。


{Mの型はTFormにはないはず、、入れ子?}
Message.Pas で定義されている (右クリック→定義の検索 でみれるかも)


{TFormのメソッドを使うと思う。でもどのメソッドを継承したかわからない}
TFormの標準の動作を使う。メソッドになっているとは限らない。
TFormはWindowsのウインドウの動作を継承している。


{ クライアント領域がクリックされたか? }
クリックに限らずすべてのマウスイベントで発生していることに注意。


わからない単語はどんどん検索しよう。

166 :デフォルトの名無しさん:03/02/24 14:53
protected
procedure WMNCHITTEST(var M: TWMNCHITTEST); message WM_NCHITTEST;

この定義で使ってる message をヘルプで調べてみたら?
ディスパッチを勝手に自動的にやってくれるとても便利な機構だよ

167 :153:03/02/24 15:44
>>165
###{このメソッドはいつ呼び出されるのか?}
###WindowsからWM_NCHITTESTメッセージが送られたとき。
procedureの宣言をみるとprocedureがWM_NCHITTESTを返しているように見えるんです、、
CALLBACK関数みたいな感じでしょうか?

###{TFormのメソッドを使うと思う。でもどのメソッドを継承したかわからない}
###TFormの標準の動作を使う。メソッドになっているとは限らない。
メソッドや関数やAPIでないとすると、、理解が非常に苦しいです


168 :デフォルトの名無しさん:03/02/24 15:52
Delphiで、エクスプローラーからファイルコピー & 移動 & 削除などを
管理できるようなソフトって作れるんですか?
これはディレクトリの指定とか無しで。
サンプルプログラムかソースがあったら嬉しいっす。

169 :153:03/02/24 15:53
>>166
message指令がヘルプにあったので参考にしました
感想::どこでも実装できる機能だとわかった
  ::でもなぜに、継承するのか?謎
procedure WMNCHITTEST(var M: TWMNCHITTEST); message WM_NCHITTEST;
の宣言でWMNCHITTEST型はヘルプでありませんでした、システムで定義されている
ものなのでしょうか?
メソッド名称もWMNCHITTESTである必要はないのでしょうか?
メソッド名称は変更してもとおりました。
Mの型名は変更すると怒られました。



170 :デフォルトの名無しさん:03/02/24 16:00
フォームのドラッグ
http://www.google.co.jp/search?q=cache:vbEbucp5V7gC:www.nifty.ne.jp/forum/fdelphi/faq/00137.htm+wm_syscommand+%E3%83%89%E3%83%A9%E3%83%83%E3%82%B0&hl=ja&lr=lang_ja&ie=UTF-8&inlang=ja
こんなもあったよ

171 :153:03/02/24 16:27
>>170
ちょっとわかりやすいです。原始的な感じでOK

172 :159:03/02/24 16:31
>>167
まあ、落ち着いてお茶でも飲め。

WM_NCHITTESTを返しているように見える? : と ; に注意。
[ウインドウメッセージ]とか[メッセージハンドラ]あたりがキーワード。


メソッドや関数やAPIでないけどWindowsの内部処理。
あえて言うならDefWindowProc APIの動作。

SDKでプログラムを書くとわかりやすいけど基本的な動作のかなりの部分はWindowsが面倒をみてくれる。
ウインドウを作れば基本的なウインドウの動作を、ボタンを作れば基本的なボタンの動作をWindowsが処理してくれるわけ。
で、プログラマは拡張した動作を記述すればすむ と。

基本的な動作
 キャプションでウインドウを移動できる
 ウインドウの枠でサイズ変更ができる
 ボタン上でマウス押下するとボタンがくぼむ
 
拡張した動作
 キャプション以外でもウインドウを移動させる
 ウインドウの枠でサイズ変更されたら中身の再配置
 ボタンがクリックされたら何かの処理を開始する

まとまりない文章でごめん

173 :Move 手続きの引数:03/02/24 21:20
procedure Move(const Source; var Dest; Count: Integer);
 Move 手続きの第1、第2引数の型はいったい何なのでしょう? ヘルプファイルの例
var
 A: array[1..4] of Char;
 B: Integer;
begin
 Move(A, B, SizeOf(B)); { 安全のため,SizeOf 関数を使う }
end;
を見ると第1引数はポインタ、第2引数はIntegerと思いますが文字列をコピーするような使用例を見ると
var
 S: string;
 n,Count: Integer;
 p: PChar;
begin
 Move(S[1], n, Count);
 または
 p := PChar(S);
 Move(p^, n, Count);
end;
というような例があり、そうなると第1引数はChar型なのかと、第2引数はどうやらInteger型らしいと思いたくなりますが
var
 B, L: Byte;
 Buffer: array [0..1023] of Byte;
 P: PChar;
begin
 P := @Buffer;
 Move(L, P^, SizeOf(L));   // length of keyword
end;
というような例では第2引数はいったい何の型なのか(逆参照が示す型はChar型だと思いますが……)ますます訳がわからなくなってしまいます。


174 :デフォルトの名無しさん:03/02/24 21:23
const Sourceは変更不可能な型無しパラメータ
var Destは変更可能な型無しパラメータ
Cのvoid*みたいなもんだ


175 :デフォルトの名無しさん:03/02/24 22:14
Keybd_event(VK_SNAPSHOT, 0, 0, 0);

↑これでキーを押すのができるらしいですが、
Windowsのマークのキーを押すにはどういう文字を入れればいいんですか?

176 :デフォルトの名無しさん:03/02/24 22:15
VK_WINDOWS

177 :Delフサギコ ◆A6VzDeLphI :03/02/24 22:22
>>150さん
  ∧,,∧  どっかの有名などらどろコンポーネントを
 ミ,,゚Д゚彡 インスコ汁。
 ミつ日(ミ
海外製だけど英語全く出来なくても
インスコ&使用に問題なしでつ。

>>158さん
タイトルバはBorderStyle bsNoneだったっけ?
フォームを円形にできるオマイさんでしたら
[暗い餡と領域][ドラドロ]をキーにして
検索しると、答えはニフでもエムエルでも
見つけられると思われ。


178 :デフォルトの名無しさん:03/02/24 22:35
ありがとうございます

179 :デフォルトの名無しさん:03/02/24 22:35
<xml attr="hoge"> hogehoge </xml>


上のXML文書で、xml要素のattr属性の内容( この文書ではhoge )や、
要素の中身( この文書ではhogehoge )を調べるにはどうすればいいんですか

180 :デフォルトの名無しさん:03/02/24 22:40
>>179
お金があるなら Entを買う。 
お金が無いならパーサを自分で作る

それもやりたくないならMSXML か Xerces を使う





181 :デフォルトの名無しさん:03/02/24 22:42
C#なら只で簡単にできるよ。

182 :デフォルトの名無しさん:03/02/24 22:46
VB.NETでも只で簡単にできるよ。君たちは認めたくないだろうけど。(大爆笑

183 :デフォルトの名無しさん:03/02/24 22:49
まあdelでもmsxmlを使えばいいだけの話。

184 :デフォルトの名無しさん:03/02/24 22:50
OpenXMLで検索してみ。それ以外でもフリーのXMLパーサなんて沢山あるから。
ちなみにEntじゃなくてPro以上。

185 :デフォルトの名無しさん:03/02/24 22:57
どんな手使おうが、次のバージョンでVB.NETと同じAPIを後追いするわけだがな。( ゚,_・・゚)ブブブッ

186 :デルファイの名無しさん:03/02/24 23:10
ええと、真面目に答えておくと、TXMLDocumentというのを使う。
ヘルプは何故かEntにしか無いみたいだけど、実はPro版以上に搭載されてる。
単純なのでXMLDoc.pasに書かれた宣言見ればすぐわかると思いますよ。

…金が無い場合は、>>180-185に習って

187 :デフォルトの名無しさん:03/02/25 04:41
>181, 182, 185
いちいちこういう発言が出るまで見張ってるのか?
気持ちわる……


188 :デフォルトの名無しさん:03/02/25 04:47
ExitWindowsEx(EWX_REBOOT,0);
これを使っても再起動しないんですが何故ですか?エラーも出ない

189 :デフォルトの名無しさん:03/02/25 08:04
>>188
仕様です。再起動用BIOSが搭載されてないマシンでそうなります。

190 :デフォルトの名無しさん:03/02/25 09:12
スレ毎にNGワード設定できる2ちゃんねるブラウザって無いのか?

191 :お約束:03/02/25 09:16
>>190
PGなら作れ!

192 :153:03/02/25 09:34
>>172
###WM_NCHITTESTを返しているように見える? : と ; に注意。
あーほんとだ。
メッセージ処理の構文だと覚えて、、、

###DefWindowProc
ウィンドウプロシージャにはすべてのメッセージが届くを思っていましたが
そうではないのですね、、、

###拡張した動作
なるほど。基本動作と拡張動作で切り分ければわかりやすいです
ということは、message処理等を行うということは
OSの提供する機能をカスタマイズして使う
そして、VCLは基本的にOSの提供する基本機能をAPIを
ラップしているということと、、、思いました


193 :153:03/02/25 09:36
>>177
### 暗い餡と領域][ドラドロ]をキーにして
ドラドロはひっかかりました

194 :bloom:03/02/25 09:37
http://www.agemasukudasai.com/bloom/

195 :デフォルトの名無しさん:03/02/25 10:15
>>188
NT系だとそのコードだけだと動かんよ。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/shutting_down.asp

196 :デフォルトの名無しさん:03/02/25 10:46
TTabControl のタブの文字を縦書きにするにはどうしたら宜しいのでしょか?

197 :デフォルトの名無しさん:03/02/25 10:51
>>196
TabPosition := tpRight で
Font に縦書きフォントを指定

tpLeft だと逆さになるのね ^^;

198 :デフォルトの名無しさん:03/02/25 12:40
>>197
うわ、ほんとだ。縦書きフォントなんてあるんすね・・・
縦書き=#13を一個一個入れる になってました。
ありがとうございました。(tpLeftは使えないという事っすね)

199 :153:03/02/25 12:52
演算子がわかりません

C言語みたいに
A += A;をしたいんですけど
A +:= A;だと怒られました

探してみましたが、こういうのはないみたいですね

200 :デフォルトの名無しさん:03/02/25 12:53

>>199
どうせネタだろうけど・・・。

A := A + 1;

201 :153:03/02/25 12:57
ある場所に文字を表示したいのですが
Canvas.TextOut(CX - int(let/2) ,CY - 20,str);
[エラー] Unit1.pas(134): 'Integer' と 'Extended' には互換性がありません
と怒られました
CXもletもintegerなのになぜでしょうか?

202 :153:03/02/25 13:17
マジ質です、すいません、、、

203 :デフォルトの名無しさん:03/02/25 13:25
>>200
それは違うだろ

A:=A+A;
A:=2*A;
inc(A,A);

じゃないのか?

>>201

実数の割算してるからだよ / じゃなく DIV にしなさいな



204 :デフォルトの名無しさん:03/02/25 13:25
>>202
Delphiヘルプから
| x/y の値は,x と y の型に関係なく,常に Extended 型になる。

Canvas.TextOut(CX - (let div 2) ,CY - 20,str);

とかは?


205 :デフォルトの名無しさん:03/02/25 13:31
>>201

function Int(X: Extended): Extended;


代わりにTrunc関数、もしくは"/"演算子ではなく、"div"演算子(整数除算)を使うのがよい

Trunc(X: Extended): Int64;

しかし、このケースではRound関数の方が良いかもしれない。



206 :デフォルトの名無しさん:03/02/25 13:38
203-205 ジュウコーン

207 :153:03/02/25 13:47
DivもRoundもいけました。
inc(A,A);がスマートで好きです
ありがとうございます

208 :デフォルトの名無しさん:03/02/25 13:57
HTMLのソースの中から絶対パスのURLのみを抜き出す方法ってありますでしょうか?

209 :デフォルトの名無しさん:03/02/25 14:01
ビット操作ってどうやるの?

210 :デフォルトの名無しさん:03/02/25 14:04
>>208
http://https://からURLに使われる文字だけで構成される部分を取り出す。


211 :論理演算子(ビット演算子):03/02/25 15:00
>>209
どんな操作がしたいの?

212 :153:03/02/25 15:06
設定のダイアログ機能をつけたいのですが
コントロールはOpenDiarolを使うのがふつうですか?

ポップアップメニュの項目を選択→設定ダイアログボックスがでる
モーダレスででてOKボタンを押したら反映して消える、、、

213 :デフォルトの名無しさん:03/02/25 15:07
>>210
なんとなくできました♪
どうもありがとうございました

214 :元VBプログラマ:03/02/25 16:26
昨日から見よう見まねでDelphi(Personal6)をはじめたのですが、
配列をfunctionの引数にするところで躓いています。

procedure TForm1.ButtonClick(Sender: TObject);
var
 wBuf: array of Byte;
 i: Integer;
begin
 SetLength(wBuf, 6);
 wBuf[0] := 1;
 FillArray(wBuf);
 wBuf[5] := 100;
end;

procedure TForm1.FillArray(Buf: array of Byte);
var
 i: Integer;
begin
 for i := 1 to 4 do
  Buf[i] := i * 5;
end;

を実行したときに、wBufの値は(1, 1, 10, 15, 20, 100)になってほしいのですが、
結果は wBuf(1, 0, 0, 0, 0, 100)となってしまいます。
ブレイクポイントで確認したところ、FillArray内では 1, 10, 15, 20を割り当てているようなのですが、
FillArrayから抜けた瞬間に 0が割り当てられているみたいです。

配列を引数にして、その配列に値を割り当てるのはこの方法は間違っているのでしょうか?
VB6で通っていたコードがそのままで通らない(厳密になっている?)のですが、めげずに何とかしたいです。
ご存知の方、わたし厨房で申し訳ないのですがお願いします。



215 :デフォルトの名無しさん:03/02/25 16:33
ソースの中で ’ を使いたいのですがエラーが出てしまいます。
例えば、if t = ''' then のような
tが'と等しかったらというような事をしたいのですが
何がよい方法ないでしょうか?

216 :デフォルトの名無しさん:03/02/25 16:40
>214
procedure TForm1.FillArray(Buf: array of Byte);
じゃなくて
procedure TForm1.FillArray(var Buf: array of Byte);
だよ。
ちゃんとvarつけないと代入できんです。

>215
アスキーコードで指定すればいいんじゃない?

217 :デルファイの名無しさん:03/02/25 16:45
'''' でもいけます。

218 :デフォルトの名無しさん:03/02/25 17:11
''''''''''''''''

219 :元VBプログラマ:03/02/25 17:11
>>216

ありがとございます。
ご教授いただいた方法でうまくいきました。
感謝しております。

220 :デフォルトの名無しさん:03/02/25 18:04
オフィスXPで使われているような、
透明ぽいポップアップメニューのコンポーネントはありますか?

221 :デフォルトの名無しさん:03/02/25 18:36
FormatSettings : TFormatSettings;
のようなのはDelphi7からしか使えないんですか?

222 :デフォルトの名無しさん:03/02/25 18:49
TClientSocketを使って、
送信した時のエラーはどうやって取得すればよいのでしょうか?

223 :デフォルトの名無しさん:03/02/25 19:42
一生懸命 レスしてたけど・・・・最近疲れちゃった・・・・タッチしてくれ

224 :デフォルトの名無しさん:03/02/25 23:07
>>220
ペルソナルにはありません。

225 :デフォルトの名無しさん :03/02/26 00:41
なんでモナーじゃなくなったの?
フサギコなんて嫌だ

226 :デフォルトの名無しさん:03/02/26 08:40
モナーの中の人がフサギコだったのさ。

227 :153:03/02/26 09:25
TForm1(Unit1)の記述の中でTForm2(Unit2)をShowModalさせたいのですがうまくいきません

Unit1
TForm2.ShowModal ソースコードの補完の段階で失敗します

Unit1とUnit2を関連づける方法はどうするのですか?

228 :デフォルトの名無しさん:03/02/26 09:34
ゆーず汁!!

229 :デフォルトの名無しさん:03/02/26 09:38
>>215

#$27


230 :223:03/02/26 09:45
ふう、もう少しがんばってみるか

>>221 Yes
>>222 OnError イベントで ( もし取れないエラーがあるなら WSAGetLastError )
>>227 TForm2 は型名 Form2 が変数名だから Form2を使えば IDEが uses しますか?って聞いてくれる・・・かも

231 :デフォルトの名無しさん:03/02/26 09:48
'''' { ' }

' でヘルプひけば出てくるはず


232 :228&229:03/02/26 09:59
>>223

otukaresamadesu. sukoshiyasundekudasai.

233 :デフォルトの名無しさん:03/02/26 10:23
>>216>>217>>218>>229>>231
こんなにも沢山のレスありがとうございます。
無事にできました♪

また質問なのですが、HTMLソースをCGIを使っているページから取得しよとするとエラーがでます
Memo1.Lines.Add(IdHTTP1.Get(Edit1.Text));
これは元々不可能なことなのでしょうか?

234 :デフォルトの名無しさん:03/02/26 10:35
整数の桁数を得たい場合、(1000 = 4, 9999999 = 7 等)
わたしには if の連発か、文字列にしてしまうぐらいしか思いつきません
ほかに良い方法があったら教えてください。
よろしくおねがいします。


235 :デフォルトの名無しさん:03/02/26 10:39
trunc(log10(n))+1

236 :デフォルトの名無しさん:03/02/26 10:50
素朴なギモン。
変数定義って、ローカル変数よりグローバル変数のほうが全然便利に思えるんだけど
ローカル変数を使うメリットって何?
同じ変数名が使える(違う関数部で)とかメモリ領域とかに関係あんの?

237 :デフォルトの名無しさん:03/02/26 10:56
>>236
全ての変数をグローバルにして10000行程度のプログラムを書いてみると分かると思うよ
もっともDelphiの場合、ループ変数をグローバルにすることは許されないけど
(仮にループ変数をグローバルにできたとして
 同じループ変数を使っている別の手続き・関数をループ内で呼び出したら
 どうなるか考えてみるといいよ)

238 :234:03/02/26 11:02
>235
ありがとうございました。
勉強になりました。


239 :223:03/02/26 11:08
>>236
人間は一度に そんなに大きなものを緻密に設計したり考えたり出来るように作られていません。

そこで、小さな単位に分割して、その機能や概念に名前を付けて ものを考えたり設計したりするわけです

その小さな機能に分割したものはその単位内で十分簡単でシンプルで独立していた方がいいでしょう?

グローバル変数を使うと、その単位は独立ではなくなります。
たとえば、複数のスレッドで同じ関数を使ったり出来ない訳です。

>>232
よし、任せたよ。

240 :デフォルトの名無しさん:03/02/26 11:10
あなたが、とてつもない記憶力と管理能力の持ち主で、数百行のソースコードの
どこを読んでいるときでも、すべてのグローバル変数の用途を把握しており、
かつ、複数のスレッドが動いているときや複雑なイベント/メッセージのやり取りの
最中でも、すべてを自分で制御する自信があり、
かつ、そのソースを別の仕事/作業を終えた後、一月くらいしてから読み直しても
すらすらと理解できるほどの理解力とコメント記録能力があるのなら

すべてグローバル変数/関数でプログラムしても良いのではないか?

241 :240:03/02/26 11:12
うわ。みんな親切..

242 :デファルトの名無しさん:03/02/26 11:29
質問でゲス。

Delphi7で作ったコンポーネントがDelphi6で読み込めないのは気のせい??
初めてコンポーネントを作ってみようとしているのでワケがわかんないです。
もう少し調べてなんかわかったらまた書きます。

よろしくお願いします


243 :デフォルトの名無しさん:03/02/26 11:33
>>242
Del6で使いたければソースをDel6でコンパイルしてインストールしる

244 :236:03/02/26 12:45
>>237-241
なるほど、設計者の、設計のためなのね。親切なみなさんありがとう。

245 :デファルトの名無しさん:03/02/26 13:00
>>243
それが、Delphi7にしかないコンポーネントを親コンポーネント(?:上位クラス?)にしたものを
インストールできるようにしたいんです。

と、確認してみようとしたら…あれ?
弄り回したせいかDelphi7から目的のコンポーネントが消えた!?
と、思ったらいじったときに作ったTemplatesにあった。
動作している模様。
一安心です…

コンポーネントの上位クラス(ここら辺もよくわかってませんが)の指定を変えればいくのでしょうかね?
調べていろいろ試してみます。

(初心者ですみません)

246 :デフォルトの名無しさん:03/02/26 13:23
>それが、Delphi7にしかないコンポーネントを親コンポーネント(?:上位クラス?)にしたものを

…そりゃ無理っしょ。
Del6にも似たようなのがあるなら{$IFDEF}で切り分けるとかさあ

247 :デフォルトの名無しさん:03/02/26 13:34
ttp://home1.infonia.ne.jp/~delphian/delphi/
ここ以外でコンポーネントが豊富にあるオススメ日本語HPを教えてください。

248 :デファルトの名無しさん:03/02/26 13:45
>>246さん
やはりそうですか。
じゃああきらめます。

(☆∀☆)!(アイデアひらめきぃ)
Delphiにはじめからついているコンポーネントのソースって手に入らないのでしょうか?
手に入れば移植もできなくは…ないと思うのですが…
どうなのでしょうかねぇ?
その前にソース字体手に入るものなのか......?

249 :デフォルトの名無しさん:03/02/26 13:50
>>248 お金出せば手に入るよ

250 :デフォルトの名無しさん:03/02/26 13:56
>>248
Pro版買ってね。

251 :デファルトの名無しさん:03/02/26 14:31
>>249
まさか、あなたに…

>>250
Pro版だとどうやればいいのでしょうか?

252 :デフォルトの名無しさん:03/02/26 14:40
>>251
Pro版以上だとSourceというフォルダにほとんどのソースが入っていて(一部例外あり)
とても勉強になるのでし

メッセージループなどが実は昔ながらのスタイルでちゃんと実装されていて
Delphiが紛れもなくTurbo Pascalだということも教えてくれるのでし

253 :デファルトの名無しさん:03/02/26 14:53
返事したのにかかれてないみたいですね。

>>249
だれにですか?

>>250
一応Pro版だったらどうしたらみれるのでしょうか?

254 :デファルトの名無しさん:03/02/26 14:54
ミスです…

255 :デファルトの名無しさん:03/02/26 14:56
>>252
回答は、ありがとうございました。

256 :227:03/02/26 15:03
uses句に使うことを宣言するのですね

Unit2でTFormをTForm2として継承してForm2でインスタンスしています
それでUnit1でForm2を参照しようとするには
Unit1のuses句でUnit2と書けばいいのでしょうか?

257 :デフォルトの名無しさん:03/02/26 17:06
10進数を2進数にするにはどうすればいいのですか?

258 :デフォルトの名無しさん:03/02/26 17:14
        ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ∩゚Д゚彡 < もしもし、回答者の増員をおねがいすます。
□………ミつ  彡  \_________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
. .          |
.             |

259 :デフォルトの名無しさん:03/02/26 17:26
>>257
小学校の算数で習った気がするが・・・
開平は中学校の数学だったかな。
ともかくその手順をアルゴリズムにすればいいわけで。
まず自力でやってみろ。話はそれからだ。

260 :デフォルトの名無しさん:03/02/26 17:31
>>259
わかった

261 :デフォルトの名無しさん:03/02/26 17:35
>>256
相互参照する時は少なくとも一方は
interface部ではなくimplementation部へ書く必要があるよ

参照するユニットの宣言を宣言部で使用しているのでなければ
通常はimplementation部のuses節へ書く

どうしてもinterface部での相互参照になってしまうようなら
同じユニットに書かなければならない

262 :デフォルトの名無しさん:03/02/26 17:40
>>260
>10進数を2進数
これができないとアタタタ符号化の真似ができないもんな(w

263 :デフォルトの名無しさん:03/02/26 17:43
分かりにくかったかな
×参照するユニットの宣言を宣言部で使用しているのでなければ
×interface部で相手のユニットを参照しているのでなければ

264 :デフォルトの名無しさん:03/02/26 17:43
うぐっ・・・2行目が○だ・・・

265 :デフォルトの名無しさん:03/02/26 17:44
>>263
余計分かりにくい

266 :デフォルトの名無しさん:03/02/26 18:06
mod 2 mod 2 mod 2 mod 2でいいのだよな?

267 :デフォルトの名無しさん:03/02/26 18:15
  ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  < >>257 IntToBin関数で変換
  ミ  つ    \_________
〜ミ,,_U

268 :デフォルトの名無しさん:03/02/26 18:19
>IntToBin
>ユニット IdGlobal
>IntToBin 関数は,Integer 値のバイナリ文字列表現を返します。
>
>function IntToBin(Value: cardinal): string;
>パラメータ
>Value: cardinal
>変換する Cardinal 値
>
>戻り値
>String - Integer 値のバイナリ文字列表現
>
>説明
>IntToBin は,32 ビット Integer 値のバイナリ表現を構築する String 関数です。IntToBin の戻り値は,整数 Value のビットごとに「0」または「1」を格納します。


269 :デフォルトの名無しさん:03/02/26 18:20
しまった、ひとあし遅くてカブったか。
スマソ、打つ

270 :デフォルトの名無しさん:03/02/26 18:24
そのIndyコンポーネントはDelphyパーソナルにも入っているのか?
BCB6Pro.には入っていたが。
いや、DLしてきてインストールすればいいだけだが。

271 :デフォルトの名無しさん:03/02/26 18:26
>>270
「DLLしてきてインストロールすれば」と書け

272 :デフォルトの名無しさん:03/02/26 18:30
基本的なことで申し訳ないのですが…。
ReWriteを使ってファイルに一行書き込むには、
Writelnを使えばいいのですが、
既存のファイルの終端に書き込む場合にはどうすればいいのでしょうか?
ファイルの終端をキャッチできればいいのですが…。

273 :デフォルトの名無しさん:03/02/26 18:53
>>267
>>268
だんくす

274 :デルファイの名無しさん:03/02/26 20:16
>>272
Append

275 :デフォルトの名無しさん:03/02/26 20:25
>>272
TFileStream使ったら?

276 :デフォルトの名無しさん:03/02/26 20:30
持ってる本をレビュってみた
中級者以上向けの本を持っている人感想を聞かせてくだちい

http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BDelphi%B4%D8%CF%A2%BD%F1%C0%D2%5D%5D


277 :デフォルトの名無しさん:03/02/26 21:32
>ところでパーツ単位の描画でCustomImageListを動的に生成して使おうと
>してるんですが、ちょっと困ったことが。
>128*128pixelサイズのBitmap(←TBitmap)に、マップチップ画像が存在しているとして
>MapTip := TCustomImageList.CreateSize(8,8);
>MapTip.AddMasked(Bitmap, clBlack);
>みたいなことしたら、なぜかMapTip.Countが16に。256になってホスィのにー
>ちなみに、Bitmapには画像が正常に読みこまれていることを確認しますた。

コピペにて失礼します。別の板で話題に出したのですが、解決に至りませんでした。
結局、自作の関数で代用したのですが、この事が気にかかっています。
どこかで使い方を間違えているのでしょうか?まずい点がありましたらご指摘下さい。

278 :デフォルトの名無しさん:03/02/26 21:33
DBGridでマルチセレクト指定しているのですが
Ctrlキーで1つ1つ選択を増やす事はできるのですが
Shiftキーで範囲指定ができません
ほかに何か設定が必要なのでしょうか?

279 :デフォルトの名無しさん:03/02/26 21:39
>>277
単に縦方向は読み込まないという仕様ではないかと。


280 :デフォルトの名無しさん:03/02/26 22:28
var x, y, z: Byte;
x shr y and z = (x shr y) and z
↑あってますよね?


281 :デフォルトの名無しさん:03/02/27 00:33
age

282 :デフォルトの名無しさん:03/02/27 01:13
>>280
演算子の優先順位のことを言っているのなら
shrとandは同じなのでその通りだけど
乗除と加減のようにどの言語でもほぼ共通というのでなければ
括弧を付けておく方が無難だと思うよ
(ちなみにその文自体はコンパイラを通らないけど
 そういうことじゃないと解釈)

283 :デフォルトの名無しさん :03/02/27 01:36
MediaPlayerを使ってMP3ファイルを再生したんですけど、

with Mediaplayer1 do begin
FileName:='C:\test.mp3';
Open;
Play;
end;

なぜかこれだとウィンドウが勝手に閉じてしまいます。
どうすればちゃんと再生できるんですか?
よろしくお願いします。

284 :デフォルトの名無しさん:03/02/27 01:50
>>283
んで、このコードをどこに書いたのよ。

285 :デフォルトの名無しさん:03/02/27 03:23
>>284
紙の上

286 :デフォルトの名無しさん:03/02/27 09:59
範囲型の全集合を返す演算子や関数は用意されていないですか?

type THoge = 0..10;

if (a in [Low(THoge)..High(THoge)] then
 HogeMoge;

と書くのが単調だと感じています。

type THoge = 0..10;

if (a in UniversalSet(THoge)] then
 HogeMoge;

みたいなものって用意されていないですか?

287 :デフォルトの名無しさん:03/02/27 10:19
const Hage = [0..10];

と定数を定義したらいいんじゃないの?

288 :272:03/02/27 10:26
遅レスですが…教えてくださった方々、ありがとうございます。

289 :227:03/02/27 10:36
>>261-263
Inplimentation節の直下にuses節がつかえるなんて驚きです
Interface節のuses節は型宣言で使用するときに使うのですね

@節についてのまとめ@
Unit節 一番上で必ず必要で外部からの参照名称を決めることができる
Interface節 必ず2番目に書き、クラス宣言や変数宣言ができる
 type句 を必要なときに必要な数だけ書くことができる
uses句 を必要なときに必要な数だけ書くことができる
 var句 を必要なときに必要な数だけ書くことができる
     宣言と同時に値の代入もできる
    あとconstとか
Inplementation節 必ず三番目に書き、Interface節での実装を記述できる
 uses句 を必要なときに必要なだけ記述できる
 interface節とInplementation節のuses句はInterface節に統一したほうが
 わかりやすいようなきがします
C言語のインクルードくらい単純であれば、、、

290 :227:03/02/27 10:50
ちょっと不思議に思ったのですが
type節でTFormの継承やそれにのっかるTButtonなどのオブジェクト
変数とメソッドを宣言していますが、普通のIntergerなどの変数が
宣言できないのはなぜでしょうか?せっかくprivateとかあるので
変数が宣言できてもいいように思えます。
 type節の直下のvarでクラス設計の変数を宣言すると考えるのでしょうか
しかし、varでtype節で宣言したTFormをインスタンス化しているし
どうも不思議なobjectパスカルです

291 :デフォルトの名無しさん:03/02/27 10:53
>>289
少し複雑なコード群を記述すると、interface と implementation の両方に
uses を書ける理由がわかるよ。

C/C++ のインクルードは単なるファイルの参照でしかないので uses のメカニズムとは
ちょっと違う。単純だから応用も利くけどなんでもできるから始末が悪い。


292 :デフォルトの名無しさん:03/02/27 11:00
>>290
>普通のIntergerなどの変数が宣言できないのはなぜでしょうか?
>せっかくprivateとかあるので変数が宣言できてもいいように思えます。
できますけど・・・普通に宣言してますけど・・・
ただし、privateより上の部分は直接編集しないのが普通(ここはDelphiが使うpublish部)
イベントハンドラを消さないでコンポーネントを削除してしまった場合に触ることがある程度

293 :デフォルトの名無しさん:03/02/27 11:01
published

294 :227:03/02/27 11:04
>>291
なるほど、
ありがとうございます

295 :227:03/02/27 11:14
>>292-293
できますた

private
var test:integer; ← ×
private
test:integer; ← ○

勘違いしたました


296 :デフォルトの名無しさん:03/02/27 11:19
type
X = 0..10;

で0 - 1 = 10 にはならないのですか?

297 :デフォルトの名無しさん:03/02/27 11:56
Delphiを勉強したいと思うのですが
3000円以内くらいのおすすめの本があったら教えてください。
プログラムの経験はvisual basic4.0のころに少ししたことのある程度の超初心者です。

スレ違いだったらスマソ

298 :デフォルトの名無しさん:03/02/27 12:31
スレ違いではないがあまりのFAQで・・・

299 :デフォルトの名無しさん:03/02/27 13:29
296 の質問の意図がわからないよぉ...
mod 11 もどきを期待している。っていみかなぁ?

300 :デフォルトの名無しさん:03/02/27 13:38
>>289

> C言語のインクルードくらい単純であれば、、、

非OO言語との比較は無意味では?

301 :227:03/02/27 15:01
>>300
   ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  <すいませんよくわかりません;汗

302 :デフォルトの名無しさん:03/02/27 15:44
>>299
Byte型だと255を超えると0にもどるのを
10とかでやりたいと

303 :デフォルトの名無しさん:03/02/27 15:51
>>302
列挙型でも部分範囲型でも言語レベルではそうなっていない模様
そういう動作をさせたいならプロパティにして実装するのが吉

304 :デフォルトの名無しさん:03/02/27 15:52
>>303
やっぱりそうですか。
ありがとうございました。

305 :デフォルトの名無しさん:03/02/27 18:01
Idhttp1.Get(URL);
を行ったときに「日付に変換できない値が渡されました」というエラーがでました。
どのURLかは不明なのですが、このエラーの原因と対応ってありますか?
情報が少ないですが、ヒントだけでも構いませんので宜しくお願い致します

306 :デフォルトの名無しさん:03/02/27 18:04
ローカルの動的配列変数を文字列変数のようにnilで初期化しない理由は何でしょうか?

307 :デフォルトの名無しさん:03/02/27 18:23
delphiでwebブラウザを作るにはどうすればよいのですか?

308 :デフォルトの名無しさん:03/02/27 18:24
>>307
Delphiでコンパイルする。

309 :デフォルトの名無しさん:03/02/27 18:27
>>308
うっせ。クソ。氏ね。ネタしかかけないなら出てくんな。

310 :デフォルトの名無しさん:03/02/27 18:29
>>309
マジレスですが・・・

311 :デフォルトの名無しさん:03/02/27 18:31
>>310
あほか。delphiでwebブラウザ作るって聞いてんだから
webブラウザのソース出せ。

312 :デフォルトの名無しさん:03/02/27 18:34
>>311
2ちゃんねる用ブラウザ「OpenJane」Part59
http://pc2.2ch.net/test/read.cgi/software/1045985106/

313 :デフォルトの名無しさん:03/02/27 18:35
>>312
それでいいんだよ。ったく最初っから出せよな。

314 :307:03/02/27 18:39
あ、なんか自己解決しました。
すいません

315 :デフォルトの名無しさん:03/02/27 18:41
>>310
>>312
自己解決したってよ。お疲れさん。

316 :デフォルトの名無しさん:03/02/27 18:43
>>311
パクリ厨氏ね

317 :デフォルトの名無しさん:03/02/27 18:45
>>316
はぁ〜ん。誰がパクリ厨だって〜?
自己解決したって言ってんだからレスすんなよ。
放置しろって(w

318 :デフォルトの名無しさん:03/02/27 18:46
超マジレス
http://www.mozilla.org/

319 :デフォルトの名無しさん:03/02/27 18:47
http://www.agemasukudasai.com/bloom/

320 :デフォルトの名無しさん:03/02/27 18:49
>>318
超ネタだろ。delphiで作ったブラウザのソースだせよ。放置できないしと。

321 :デフォルトの名無しさん:03/02/27 19:00
>>320
begin
webbrowser.home;
end;

322 :デフォルトの名無しさん:03/02/27 19:01
>>321
そうそう。それでいいんだよ。もう自己解決したみたいだがな(w

323 :デフォルトの名無しさん:03/02/27 19:04
DelphiでUNIXライクなOSをつくるにはどうしたらよいのでしょうか。


324 :デフォルトの名無しさん:03/02/27 19:06
超マジレス
http://www.linux.org/

325 :デフォルトの名無しさん:03/02/27 19:54
>307-324
他人が見て面白いことを書こう
大勢の読者がいることを意識しましょう。
http://www.2ch.net/before.html

326 :デフォルトの名無しさん:03/02/27 19:57
>>325
全員が面白いと思うことを書くのは不可能ですよ。
俺が面白けりゃそれでいいのです。
ここは2ちゃんねるですよ。

327 :デフォルトの名無しさん:03/02/27 20:27
でるふぁいを学ぶのに最適なサイトをおせーて。

328 :デフォルトの名無しさん:03/02/27 20:32
>327
MLの過去ログ

329 :デフォルトの名無しさん:03/02/27 21:28
>>327
ヘルプとマニュアル

330 :デフォルトの名無しさん:03/02/27 21:35
サイトと書いてあるので、マニュアルは適切な答えでは無い

http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D#content_1_3

この辺へ逝くといいかも
何が最適かはその人による

331 :デフォルトの名無しさん:03/02/27 23:02
>279
遅レスですが有難うございました。

332 :デフォルトの名無しさん:03/02/28 00:35
少し分からない所があるので失礼します。
すごく初歩的な質問だとおもうのですが、
フォルダ内のテキストファイルをデータとして取り込んで
行単位で削除したり追加したり読み込んだりと編集しながら扱いたいのですが、
いちどTmemoオブジェクトなどに読み込んで
Linesプロパティで作業すればいいのかと思ったのですが、
これでいいのでしょうか?
writelnやreadlnを使うのかとも思ったのですが、それよりは上に書いたような方法の方が
扱いやすいような気がしたりして、そのあたりが良く分かりません。
よろしくお願いします。

333 :332:03/02/28 00:40
データとして扱うというのは内部のデータとしてという意味です。
なのでmemoはvisible:=falseです。

334 : :03/02/28 00:41
>>332
TStringlist.Create;

335 :デフォルトの名無しさん:03/02/28 00:44
>>332
正解です

その機能は元々TStringsから派生しているものだから
TStringListでも同じことができるけど
インスタンスの生成と破棄をちゃんとできるようになるまでは
TMemoを使うのが無難ですね

336 :335:03/02/28 00:45
>>334
ちょとかぶた

337 :332:03/02/28 00:53
>>334-336
返答ありがとうございます。
Tstringlistというものも知らなかったので
これから勉強してみようと思います。
どうもありがとうございました。


338 :デフォルトの名無しさん:03/02/28 06:05
private
 FTest: string;
end;



private
 FTest: string;
published
 property Test: string read FTest write FTest;
end;
こんな風に、プロパティを一気に作ってくれる機能がDelphiのエディタにあったような記憶があるのですが、ショートカットが思い出せません。
いまヘルプを見ているのですが、それらしい記述がみあたりません・・・
知っているかたどうか教えてください。それともぼくの思い違いでしょうか?


339 :デフォルトの名無しさん:03/02/28 06:06
>>338
Ctrl押しながらF8

340 :デフォルトの名無しさん:03/02/28 06:19
すばやいレスありがとうございます
でも何もおきないのですが・・・


341 :デフォルトの名無しさん:03/02/28 06:43
>>340
property Test; Integer;
の段階でCtrl+Shift+Cだったかな?

342 :338:03/02/28 07:19
おおっ出来ました!
ありがとうございます>>341さん
これ Set メソッドができてしまうんですねー


343 :338:03/02/28 07:24
「クラス補完」機能だったんですね。
「各種の編集コマンド」ばかり見ていました。
>これ Set メソッドができてしまうんですねー
これも当たり前か

344 :227:03/02/28 14:53
タスクトレイのアイコンをシステムでないものに変更したいのですが
変更の仕方がわかりません。
FIconData : TNotifyIconData;
FIconData.hIcon := Application.Icon.Handle; {アイコン指定}
これで、Delphiのアイコンになるのですが
Delphiアイコンエディタで作成さいたアイコンを指定するには
どうすたらいいですか?

345 :デフォルトの名無しさん:03/02/28 15:18
>>344
TIconを知らないわけでもあるまい。

346 :227:03/02/28 15:28
>>345
サンクス
フォームのアイコンを指定してみました

347 :227:03/02/28 15:41
アナログ時計作ってまして、なんとかリージョンで
フォームを円形にしました。

そこで、時計の針と数字だけを表示してその他は透かしたいと思い
TFormのアルファブレンドを20位にしたら全部透けてしまい
ました^^;
針と数字だけをアルファブレンドの対象外にするにはどうすればいいですか?

348 :デフォルトの名無しさん:03/02/28 15:52
>>347
別のフォームを重ねればいい
時針のフォーム、分針のフォーム、秒針のフォーム

349 :デフォルトの名無しさん:03/02/28 15:52
透過できる環境ならTransparentColorで透過してみれ。

350 :349:03/02/28 15:54
>>348だった

351 :227:03/02/28 16:13
>>348
時針のフォーム
 位置を計算して棒状にリージョン
分針のフォーム
 位置を計算して棒状にリージョン
秒針のフォーム
 位置を計算して棒状にリージョン
そして重ねる
うーん、アプリをドラッグするときが難しそうです
>>349
試しましたが反応しません、カードが対応してないということですか?

352 :デフォルトの名無しさん:03/02/28 16:44
ttp://www.dotnetmagic.com/features.html
こういう感じのメニューとかタブとかをDelphiでできますか?

353 :デフォルトの名無しさん:03/02/28 16:53
>>352
フラットスタイル?

354 :352:03/02/28 17:12
なにスタイルだか知りませんが、VS.NETのIDEスタイルです。
以前、このC#用コントロールをDLしましたが、
C#だとこれ用のDLLをいっしょに配布しないといけないんです。
DelphiならEXE単体にできますよね?

主に、タブを切り替えたり閉じたりするボタンと、
アクティブページの色を指定したいです。
副に、メニューの外観を変えたいです。

355 :349:03/02/28 17:27
>>351
そうかもしれないですね。

確認
・TransparentColorがTrueで、TransparentColorValueがきちんと設定されているか
これでだめだったら別の方法を。

356 :ねこま:03/02/28 17:28
ドッキングウインドウのキャプションなら同じの作った
もろに面倒くさいけどできるよ
タブもメニューもできる
タブの×ボタン付けるのどうやるんだろ?

昔は結構、こういった外観を変えたコンポーネントを作ったものだけど
流行がコロコロ変わるから追いかけるのが面倒くさいし、
もしかしてこういうのって標準のコントロール使っておいて、
各ユーザーが使う外観を変えるソフトとかXPのビジュアルスタイルとかに
まかせる方がユーザーにとっても親切なのではないか?
という考えになってめっきりやらなくなった


357 :デフォルトの名無しさん:03/02/28 18:40
Windowsで動くGUIアプリを趣味で無料で作るなら、C#とDelphi、どちらがオススメですか?
説得力ある理由をキボン。

358 :デフォルトの名無しさん:03/02/28 18:44
趣味で無料でだったら、自分の好きな方という他ないが…

359 :デフォルトの名無しさん:03/02/28 19:00
>>357
マルチすんなよ。C#スレにも投下してたろ。

360 :デフォルトの名無しさん:03/02/28 19:01
>>357
Delphi。軽いから。
Delphiスレだから。

361 :デフォルトの名無しさん:03/02/28 20:29
>>357
他に欲目が無くて(自分のスキルがどうとか)
純粋に今の時点で優劣を言うならGUIアプリについてはDelphiだろうね。


362 :デフォルトの名無しさん:03/02/28 22:33
使おうかどうか迷ってるんですけど、
Quadruple Dで3Dのオブジェクトのアニメーション(例えば歩行など)は
できるのでしょうか?

363 :デフォルトの名無しさん:03/02/28 22:55
ちょっと質問したいことがあります。
私は最近Delphiを始めたばかりの超初心者です。
以前、MS-DOS時代には一応BASICをかじっていたことがあるのでDelphiをはじめてまずやろうとしたのがBASIC言語で記述するのなら
PRINT "メッセージの表示"
(フォーム上に無条件に表示する)
と同じことなのですが、どうやってよいのやらさっぱりわかりません。
皆さんアドバイスお願いします。
最終的な目標として、私はシュミレーションゲームを作ってみたいと考えています。
皆さんが参考にしている書籍などがあれば同時にその書籍名と出版社を併記していただければ幸いです。


364 :デフォルトの名無しさん:03/02/28 23:07
>>363
  with TLabel.Create(Self) do
  begin
    Parent:=Self;
    Top:=0;
    Left:=0;
    Caption:='メッセージの表示';
  end;


365 :デフォルトの名無しさん:03/02/28 23:53
>>364
解放どうすんの?

366 :デフォルトの名無しさん:03/03/01 00:23
with TLabel.Create(Self) do

ってことは 
たぶんTform1のイベントハンドラに書いてあるだろう
なので self は Tfrom1を指す つまりオーナーがTform1なので
解放はTform1の解放時に同時に解放されるかと。

367 :デフォルトの名無しさん:03/03/01 01:15
>>363
新規作成でコンソールアプリケーションを選んで、WriteLn("メッセージの表示");から入ってみれば?
フォームへの道は遠くなってしまうけど、DOSの頃と同じセンスでいけるので、とりあえずDelphiに慣れることはできる。

368 :デフォルトの名無しさん:03/03/01 01:46
>>366
いや、parentをTFormにしただけじゃTFormがLabelを自分の子だと知る術はない。

ブラジルで「俺はあんたの子供だ!」と名乗ってる奴なんぞ認知できないわけで。

369 :デフォルトの名無しさん:03/03/01 02:09
基本かもしれないけどOwnerが解放されたとき一緒に解放されるんですか?
今までむだにdestructorに解放コード書いてたのかしら。

370 :デフォルトの名無しさん:03/03/01 02:11
>>368
>>366が言ってるのは、ParentじゃなくてOwnerの話だし、
Ownerはちゃんと所有コンポーネントを解放してくれる。

>>369
される。

371 :デフォルトの名無しさん:03/03/01 02:14
>368
釣り?本気?
本気なら、とりあえずヘルプ読め
TComponent.Create

372 :デフォルトの名無しさん:03/03/01 02:20
>>368
366の通り、Create(Self)でオーナーが示されているからちゃんと破棄はされる
(Parentはインスタンスの破棄には関係しない
 364の例ではオーナーがそのままParentになっているというだけ)

でも364の書き方はあまりDelphiらしくはないよね

>>363
素直にフォームにラベルを貼り付けるのが普通

373 :372:03/03/01 02:21
あらら、のんびりしてたらかぶっちゃった

374 :372:03/03/01 02:26
>>369
いいんでねーすか?
自分でCreateしたものは自分でFree(またはRelease)する習慣にしておけば
間違いはないでしょ

失うものもこれといってないのだし

375 :デフォルトの名無しさん:03/03/01 09:23
>>372
>でも364の書き方はあまりDelphiらしくはないよね
生成する数や位置が設計時に決められない場合
実行時に生成するのはよくあることでは。

>>374
>自分でCreateしたものは自分でFree(またはRelease)する習慣にしておけば
>間違いはないでしょ
そうともいえない。
TComponentはOwnerに破棄を任せる。
TObjectは自分でFree/FreeAndNilする。
Interface継承すると参照カウンタを考慮しつつ(半)自動的に破棄される。

いずれにしても長い人生一度はConstructor/Destructorに
ShowMessage('Create')なんかのメッセージ表示を仕込んでおいて
上の三種類のオブジェクトがどんなタイミングで破棄されるかを実験しといたほうがいいよ。


376 :デフォルトの名無しさん:03/03/01 22:54
>生成する数や位置が設計時に決められない場合
>実行時に生成するのはよくあることでは。
動的にコンポーネントを生成するのはもちろん普通なんだけど
「変数宣言なしで」というところが「らしくない」ということでし
with文の濫用がよい習慣とも思えないので

377 :デフォルトの名無しさん:03/03/02 02:36
メインフォームだけのアプリケーションで、メインフォームを見えなくするにはどうすればいいんですか?
VisibleをFalseにしても表示されてしまいます

378 :デフォルトの名無しさん:03/03/02 03:21

Application.ShowMainForm := False;
をプロジェクトファイルのApplication.Run;の前に追加。

379 :デフォルトの名無しさん:03/03/02 04:27
ドモ

380 :デフォルトの名無しさん:03/03/02 11:34
Delphiによるオブジェクト指向プログラミングの方法を教えて☆

381 :デフォルトの名無しさん:03/03/02 11:40
「オブジェクト指向プログラミングの方法」って
なんじゃそりゃ・・・
VB厨?


382 :デフォルトの名無しさん:03/03/02 11:49
>>381
ばれちゃった?(T_T)
ごめんなさいね(T_T)

383 :デフォルトの名無しさん:03/03/02 16:03
>>380
Delphiを起動する→フォームが表示されている→オブジェクト指向プログラミングのはじまりはじまり〜

384 :デフォルトの名無しさん:03/03/02 18:02
Delphiを起動し、フォーム上にLabelコンポーネントを配置したら、
オブジェクトインスペクタ→プロパティ→Captionからではなく、
プログラム上からこのCaptionが変更できるのならその方法を教えてください。

385 :デフォルトの名無しさん:03/03/02 18:09
>>384
Label1.Caption := 'ちょっとは頭使えや。';


386 :デフォルトの名無しさん:03/03/02 18:27
>>385
Label1.Caption := '産休べりーまっち';


387 :デフォルトの名無しさん:03/03/02 18:31
>>383
ということはなんとなく使っていればオブジェクト指向になるんですか?
実はオブジェクト指向という言葉の意味自体、よく分かっていないんです(T_T) なんか流行っているらしくて(T_T)

388 :デフォルトの名無しさん:03/03/02 18:43
>>387
オブジェクト指向って言う概念自体、多岐にわたりあやふやになってるところがあるね。

389 :デフォルトの名無しさん:03/03/02 20:22
>>387
Delphiを使っていれば、自然とオブジェクト指向、コンポーネント指向が分かってきます。
↓見て、とにかくDelphiを使ってみましょう。
http://www.borland.co.jp/delphi/papers/vbtodel/index.html

390 :デフォルトの名無しさん:03/03/02 20:58
>>389
結局クラスライブラリを覚えられるかどうかだよ。

最低限そこに到達しないとオブジェクト指向の利点はわかりにくい。

391 :デフォルトの名無しさん:03/03/02 23:20
ポインタの初歩的なことはわかったんだけど、どんなことに使えばいいの?
教えてください

392 :デフォルトの名無しさん:03/03/02 23:32
>>391
どこかのDelphiスレで同じような質問があったよ。

結論は参照があるからポインタは滅亡。とか言う頭悪いとしか思えない物だったけど。

393 :391:03/03/02 23:41
何か初心者でもできるようなのを教えてください

394 : ◆qVtare/k3c :03/03/02 23:42
>>391
そりゃ使うときがやってきたら使う(しかない)、としか胃炎だろ。
例えば引数が「T○○型」じゃなくて「P○○型」で宣言されてる関数使ったり、
TListにデータ入れたり、TTreeView/TListView.Item.Dataにデータ入れたり、
WindowsAPI直接使ったり、などなど。

395 : :03/03/02 23:46
オレも長いこと利用価値が分からんかった…。
要するに、
○入れ物ごと、ごっそり渡す
○入れ物の場所「だけ」を教える
どちらが良いか?ってことなんだ…よね?(^^;

396 :デフォルトの名無しさん:03/03/02 23:55
>>393
文字列の長さをLength関数ではなく、ポインタで求めてみよう。

397 :デフォルトの名無しさん:03/03/02 23:56
>>394
比較的問題外。

>>395
まぁ、そうなんだけど。

>>396
楽しいか?それ。

398 :デフォルトの名無しさん:03/03/03 00:22
ポインタと参照の定義にもよるけど…
仮にポインタとは参照にアドレス演算の機能を追加したものと考えると

関数などにデータの位置だけを渡す…どちらでも可
リンクリストや木構造を作る…どちらでも可
DIBなどに書き込む…ポインタ
バイナリデータを使う…ポインタ
(interfaceの_AddRef他、様々な言語orIDEの支援を受ける…参照)

な感じかなあ。

399 :398:03/03/03 00:26
で、比較的楽しいのは、TBitmap.ScanLineに直接書き込んでみるとかどうだろう。
DirectXでテクスチャをロックして…でもいいけど

400 :396:03/03/03 00:43
文字列のメモリブロックのレイアウトはヘルプのメモリ管理に載ってるよ。
初心者のポインタの練習としてはこの程度でいいのでは?

401 : ◆qVtare/k3c :03/03/03 01:11
比較的問題外っていわれても…
だってDelphiはポインタ「も」使えるってだけで、
ポインタ推奨じゃないし。むしろ使わない方向で設計されてるんだし。

>>391は初心者を免罪符にしてるか単なる釣りにしか思えない。
そんなにポインタ使いたけりゃC言語使えばいいじゃん。

402 :デフォルトの名無しさん:03/03/03 01:15
>>401
GetMem
NULLで終わる文字列
TList

どこがだよ。

403 : ◆qVtare/k3c :03/03/03 01:17
>>402
そんなの初心者が使わないだろ。
中・上級者だったら目的に応じてポインタ使うか使わないか選択できるだろ。

404 :デフォルトの名無しさん:03/03/03 02:09
初心者だけど使ってます…

405 :デフォルトの名無しさん:03/03/03 08:00
初心者だから使ってますの間違いだろ

406 :227:03/03/03 11:09
ヘルプ機能をつけたいのですが、いわゆるヘルプデザイナーが
みあたりません。どうやってヘルプ機能を実装するのが一般的
ですか?

407 :デフォルトの名無しさん:03/03/03 13:35
HelpDesigner
http://www.koji27.com/soft/hd/tool.htm


408 :デフォルトの名無しさん:03/03/03 20:02
Delphi初心者の場合は、ポインタ使う前に覚えることが山ほどあるわけで。
Cからの移行組はいったんポインタのことは忘れることだ。

409 :デフォルトの名無しさん:03/03/03 21:20
えっとぉ、ポインタを介しての配列へのアクセスは(ry

410 :デフォルトの名無しさん:03/03/03 22:04
Delphiで配列使うことなんてあまりないだろ

411 :デフォルトの名無しさん:03/03/03 23:37
・・・ココはバカになるスレですか?

Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ
Delphiで配列使うことなんてあまりないだろDelphiで配列使うことなんてあまりないだろ


412 :スレ違い:03/03/03 23:58
普通はstd::vectorだろ。

413 :デフォルトの名無しさん:03/03/04 00:39
>>412
std::vector vec = new std::vector();

vec = malloc(120);

vec[32] = \x0;

俺はそんな怖い使い方は出来ん・・・。


414 :デフォルトの名無しさん:03/03/04 00:44
つかバッファ確保にvector<byte>使うのやめれ

415 :デフォルトの名無しさん:03/03/04 08:18
>>411
へ?動的配列がなかった時代はどうしてたの?

416 :デフォルトの名無しさん:03/03/04 08:22
>>415
Cで可変長文字列が扱えないってのと一緒だな。

417 :デフォルトの名無しさん:03/03/04 09:35
配列定数ならよく使いますがな。


418 :デフォルトの名無しさん:03/03/04 15:47
任意のMDIChildeウィンドウを1番手前に持ってくるにはどうしたらいいのですか?
SetFocusでも無理だし、SetForegroundWindowでも無理でした。

419 :デフォルトの名無しさん:03/03/04 16:03
過去ログです。
1: http://page.freett.com/dat2ch00/030107-1041260616.html
マタカ[]乱交サークル個人情報漏洩[]アホ
2: http://page.freett.com/dat2ch00/030107-1041268516.html
マタカ[]乱交サークル個人情報漏洩[]アホ 【part2】
3: http://page.freett.com/dat2ch00/030107-1041274177.html
マタカ[]乱交サークル個人情報漏洩[]アホ 【part3】
4: http://page.freett.com/dat2ch00/030107-1041288143.html
マタカ[]乱交サークル個人情報漏洩[]アホ 【part4】
5: http://page.freett.com/dat2ch00/030107-1041311110.html
【岡ちゃん】乱交サークル個人情報漏洩【最高!】Part5
6: http://page.freett.com/dat2ch00/030107-1041321139.html
【岡ちゃん】乱交サークル個人情報漏洩【最高!】Part6
7: http://page.freett.com/dat2ch00/030107-1041353460.html
【岡ちゃん】乱交サークル個人情報漏洩【最高!】Part7
8: http://page.freett.com/dat2ch00/030107-1041609085.html
【岡ちゃん】乱交サークル個人情報漏洩【最高!】Part8
9: http://2chlog.homeftp.org/20030203/1041773755.html
【議員の息子】乱交サークル個人情報漏洩!【会社役員】Part9
10:http://2chlog.homeftp.org/20030203/1042853091.html
【議員の息子】乱交サークル個人情報漏洩【PWC大ちゃん】Part10

420 :デフォルトの名無しさん:03/03/04 17:39
>>418
BringToFrontは?

421 :デフォルトの名無しさん:03/03/04 17:58
>>418
変なことしてなければShowメソッドでOKだけど。


422 :デフォルトの名無しさん:03/03/04 20:41
>>420,421

ありがとうございます。Showでできました。


423 :デフォルトの名無しさん:03/03/04 21:12
Delphi 6 Personal のレジストができません。
(登録メールアドレスにメールが送られてこない)

6 Personal はもう登録受付を終了してしまったのでしょうか?

424 :デフォルトの名無しさん:03/03/04 21:16
>>423
終わったよ。


425 : :03/03/04 23:19
>>424
本当?423じゃないけど。

「フリーのパソナルをDLしてプログラムを学ぼう!」みたいな本が出てたのに…。
あの本、立ち読みしてたら、
>作者はまだdelphi3なので、6の環境はよく分からないのですが…
みたいなこと書いてあった…。
それでいいのだろうか…。
そんなんで本書いていいのだろうか…?
「delphi3で学ぼう!」に変えた方がいいのではないだろうか…。

426 :デフォルトの名無しさん:03/03/04 23:48
Win2kPro+SP3でDelphi6Pro使ってますが、
ATOK16で半角固定入力すると、
コードエディタでキャレットが表示されなくなります。
これは不具合でしょうか?
ちょっと打ちづらいですね。
Delphi7ではどうでしょう?


427 :デフォルトの名無しさん:03/03/04 23:50
>>426
同じ環境ですがそんなことは起こっていません。

428 :426:03/03/05 01:24
>>427
ネタですか?

429 :デフォルトの名無しさん:03/03/05 04:04
ぬるぽって何ですか

430 :デフォルトの名無しさん:03/03/05 07:27
>>425
ネタだろ
どうせいつもの通り認証サーバが落ちてるだけ

単純な煽りカキコに騙されんように
自演だったら氏ね

431 :デフォルトの名無しさん:03/03/05 07:40
ソフトウェアのアイコンをクリックしてから一番初めに動くprocedureはなんですか?

432 :デフォルトの名無しさん:03/03/05 07:50
procedure の前に全ユニットのinitialization部
その後 program 宣言で始まるユニットの実行ブロック

433 :デフォルトの名無しさん:03/03/05 07:51
>>431
イベントドリブンプログラミングの書き方から勉強すべき。
どこから始まるかは意識せずに、操作に対応したコードを書いていくのです。

といいつつ一応答えておく。
*.dpr 内の begin end. 内。
(initialization がある場合は別だが

434 :デフォルトの名無しさん:03/03/05 08:57
thanks

435 :デフォルトの名無しさん:03/03/05 09:46
>>429 ガツ

436 :デフォルトの名無しさん:03/03/05 15:10
Delphiの将来性ってどうなのですか?

437 :デフォルトの名無しさん:03/03/05 15:11
>>436
そろそろ次の身を寄せる場所を探した方が良いと思う。

438 :デフォルトの名無しさん:03/03/05 15:33
>>437
どこ行ってもダメさ。 人余り。

 仕事ないよ。

期待の.NETも、最初からVB並だもんなあ・・・・

439 :デフォルトの名無しさん:03/03/05 16:44
VBと同じものを作ったら、Delphiの方がファイルサイズが大きくなりました
何故ですか?

440 :デフォルトの名無しさん:03/03/05 16:47
>>439
同じものを作れているなら同じになっている筈です。
それは同じものが作れていないわけでは?

441 :デフォルトの名無しさん:03/03/05 16:47
>>439
>同じ物
眉唾だけど。

Delphiはランタイムを実行ファイルに埋め込むからファイルサイズが大きくなる傾向がある。

442 :デフォルトの名無しさん:03/03/05 17:02
>>439
大きいのは .DSM ファイルでしょ? それはいつ消してもかまわない。

フォームファイルや .pas ファイルのサイズは気にならないと思うし、
exeファイルも今時のパソコンなら気にしなくていい。 FDに入れたいならUPXで検索してそれで小さくするといい。

逆にVBだと FD に入れて他のパソコンで動かすなんて時に色々困る

443 :デフォルトの名無しさん:03/03/05 17:06
>>442を晒しage

444 :デフォルトの名無しさん:03/03/05 17:09
>>443を晒しage

445 :デフォルトの名無しさん:03/03/05 18:16
>>439
プロジェクトオプション>パッケージタブ>実行時パッケージを使って構築にチェック。
ただし別途.bplを配布しなければならない。

446 :デフォルトの名無しさん:03/03/05 18:50
CVSでソース管理してる人いる?
Delphiから直接使えたらなぁ。。。

447 :デフォルトの名無しさん:03/03/05 19:24
Indyのコンポーネントの使い方が詳しく載っている日本語の解説サイト、どなたかご存知ありませんか?

448 :デフォルトの名無しさん:03/03/05 19:50
>>447
もなぢら

449 :デフォルトの名無しさん:03/03/05 19:59
前から疑問だったんだが、Indyって何?

450 :デフォルトの名無しさん:03/03/05 20:28
コンポ集のことっぽい<Indy
っていうかOpenJaneのソース使うのに漏れもインストウルした

451 :デフォルトの名無しさん:03/03/05 20:29
ランタイム不要で少しくらい大きくてもさ、
他人がダウソして実行しても動かなくてゴミ箱直行されるのとどっちがいい?

俺の場合、要VBランタイムとか書いてあるアプリはゴミ箱逝き。
だって、そういう厨な事書いてあるソフトって、
ランタイムファイルのどのファイルが実際に必要なのか、
という肝心な事が書いてない。
だからVectorからランタイムパックをダウソしようにも、
どのパッケージなら足りてるかわかんねーよ。
つーか最初からアプリにランタイム同梱版を用意しておくのがマナーだろ。

とまあこんな感じで。

452 :デフォルトの名無しさん:03/03/05 21:45
>>439
Win32APIを駆使してVCLに依存しないコードを書けば、コンパクトなサイズの実行ファイルを
作ることは可能。
ただし、難度は高く、イバラの道。職業プログラマなら生産性の面で到底お奨めできない。

どしろうとはVBでも使ってなさいってこった(w





・・・と釣られてみるテスト。

453 :デフォルトの名無しさん:03/03/05 22:22
Editコンポーネントで、特定の文字(たとえば数字)だけを入力可能にする方法はある?

454 :デフォルトの名無しさん:03/03/05 22:23
>>435追伸
たとえば数字(=半角数字)

455 :デフォルトの名無しさん:03/03/05 22:24
>>453 MaskEditはどうしてナシなの?

456 :Delフサギコ ◆A6VzDeLphI :03/03/05 22:40

    ∧,,∧
   ミ,,゚Д゚彡旦~~
   (   / ̄ ̄ ̄ ̄ヽ
彡(三三/   MaskEditもいいですが

http://www2.big.or.jp/~osamu/Delphi/browse.cgi?index=41612
http://www2.big.or.jp/~osamu/Delphi/browse.cgi?index=50209
こんなのはいかがでしょうか?

ES_NUMBERで検索してみますた。


457 :デフォルトの名無しさん:03/03/05 23:22
>>449
Indyってのは、インターネット通信ソフトが楽に作れるコンポーネント集です。
フリーで使えます。
Professional版にはデフォルトでインストール済み。Personal版は自分でインストールする。

例えば、

var
 Source: string;
begin
 Source := IdHTTP1.Get('http://pc2.2ch.net/tech/');
 Memo1.Text := Source;
end;

これだけで指定したアドレスのソースがMemoに表示できる。

458 :デフォルトの名無しさん:03/03/06 04:11
>>446
>CVSでソース管理してる人いる?
俺は ModelMaker 付属のアドインで CVSWin を呼び出している。特に問題は無い。
メニュー/ショートカットでカレントウィンドウを保存し、リポジトリにコミットする
だけだけど、それで十分だよね?

MM に限らず、探せばいろんなソース管理アドインツールが存在するんだけど、日本語
でない。って理由だけで使わない/知られていないんだよね。

ツールが豊富にあるから誰も困っていないので、製品に取り込まないんでは?


459 :デフォルトの名無しさん:03/03/06 09:42
VBランタイム=ポップアップ広告

460 :449:03/03/06 11:26
>>457
thx!
それだけでソース取得できるとはすごいね。

461 :デフォルトの名無しさん:03/03/06 11:32
CVSは言語というか、ファイルの種類を選ばないはずだが
(いまいち勝手は悪いが)


462 :デフォルトの名無しさん:03/03/06 12:24
CVS を IDE から簡単に使う。って話ではなかったかな?


463 :デフォルトの名無しさん:03/03/06 12:38
>>452
ヴァカは死ね。

464 :デフォルトの名無しさん:03/03/06 12:43
音系はWAVしか実行ファイルに埋め込めないのでしょうか?

465 :デフォルトの名無しさん:03/03/06 12:48
>>464
midならmidiメッセージをリソースにしといて
リソースからAPIに命令を出すことで埋め込めるよ。

466 :デフォルトの名無しさん:03/03/06 12:53
>>464
大抵のものは埋め込めますよ。

やりかた
http://pc2.2ch.net/test/read.cgi/tech/1009080085/21

あとは再生する直前にファイルを作って再生するのが簡単。
 リソースのまま再生する方法もあるけど、

467 :デフォルトの名無しさん:03/03/06 13:00
いいじゃん実行ファイルなんかに埋め込まなくて。
一つでも分かれてても同じ事。
ランタイム恐怖症の次はデータファイル恐怖症か?(w

468 :デフォルトの名無しさん:03/03/06 14:07
アイコンも埋め込むな

469 :デフォルトの名無しさん:03/03/06 14:17
アプリケーションのアイコンは埋め込んだ方がいいね。
その他のアイコンは埋め込む必要ないけど。

470 :デフォルトの名無しさん:03/03/06 14:19
理論上あらゆる種類のファイルが入るよ。
いざ使うときはめんどくさいけど

471 :デフォルトの名無しさん:03/03/06 16:49
プログラマーも埋め込めよ。
中の人も大変だ、を地で行く。

472 :デフォルトの名無しさん:03/03/06 18:57
>>456
「Delフサギコ ◆A6VzDeLphI 」さん
産休です。

473 :デフォルトの名無しさん:03/03/06 18:59
>>472追伸

>>453 >>454より

474 :デフォルトの名無しさん:03/03/06 19:00
Windows2000でDelphi6.0を使っています。
.dprのショートカットを作ってダブルクリックして立ち上げたら、
エラーがたくさん出てDelphiが動かなくなり、それ以降は.dprを
ダブルクリックしても起動できなくなりました。

Delphiを先に起動した後に.dprを読み込めば問題なく動きます。
どうしたら直りますか?

475 :ねこま:03/03/06 19:07
Delphiを先に起動した後に.dprを読み込んでください

@NIFTY-FDELPHI / Delphi-ML でもそういう意見です.


476 :474:03/03/06 19:59
直らないんですね…。ありがとうございました。

477 :デフォルトの名無しさん:03/03/06 21:04
Del6Personalでは物足りなくなったのでDel7Proを買います。


478 :デフォルトの名無しさん:03/03/06 21:08
>>458
できたらDel6Per.でも使える方法きぼん

Proを買えという話ですな。
Del8が出たら買うと思うけど。。。

479 :デフォルトの名無しさん:03/03/06 21:51
そもそも、ModelMakerってProについてるのか?

とりあえず、CVSはWinCVSで使ってる。一人で使ってても昔のを取り出せて便利だ。

480 :デフォルトの名無しさん:03/03/06 22:49
ガイシュツのような気もするけど、マルチバイト文字を含むフォルダ名の直下に
*.DPRを保存すると、起動時にエラーがでまくり、大変なことになります。

エラーになるなら、保存時に警告してほすい・・・。(-_-;

ちなみに上位の階層に全角文字を含むフォルダ名が混在していても、直下
でなければセーフのようです。

481 :デフォルトの名無しさん:03/03/07 00:58
>>479
WinCVSって使いにくくない?
eclipseみたいに使えたらなぁ。。。とないものねだりしてみる。

482 :デフォルトの名無しさん:03/03/07 01:01
>>481
書けばいいじゃん。あんたはプログラマ、開発環境はある。これ以上ない環境だぞ。

483 :デフォルトの名無しさん:03/03/07 01:06
低機能なDelphi&フリーウェアの拾い食いなんてやってないで
素直にVisual C#+Visual SourceSafe使いなよ。


484 :デフォルトの名無しさん:03/03/07 01:47
>>483
>低機能な
そうでもないよ。

485 :デフォルトの名無しさん:03/03/07 04:41
スタートアップに登録されているかどうかを調べる方法ありますか?

486 :デフォルトの名無しさん:03/03/07 10:29
>>485
スタートアップフォルダ漁れば良かろう。

487 :デフォルトの名無しさん:03/03/07 11:03
>>486
レジストリモナー

488 :デフォルトの名無しさん:03/03/07 11:08
ショートカットをスタートアップに入れられたら意味無さそう

489 :デフォルトの名無しさん:03/03/07 12:06
C#がでてからいっそうDelphiが活気づいた気がする。

490 :デフォルトの名無しさん:03/03/07 12:09
>>489

C#の設計者 = Delphiの設計者って聞いたけど、ホント??
(MSが暴乱度から引き抜いたとか・・・)

491 :デフォルトの名無しさん:03/03/07 12:12
>>490
C#のライブラリ見てみれば何となくわかると思う。
VCL + Javaと言った感じ。

492 :デフォルトの名無しさん:03/03/07 12:40
>>490
ホント。ヘジルスバーグ。
C#完成後は某に帰っていった。

493 :デフォルトの名無しさん:03/03/07 12:49
メニューやツールバー用にイメージリストに取り込むビットマップを山ほどください。

494 :デフォルトの名無しさん:03/03/07 13:05
Del6の無料版でつくったものは、ソースだけならくばっていいんですか?

495 :デフォルトの名無しさん:03/03/07 13:08
>>494
バイナリ配っちゃダメだったっけ?

496 :490:03/03/07 13:09
>>491-492
ありがと。
しかし、MSってほんとに引き抜きの好きな会社だね(w
(各球団の4番打者をえげつなく引き抜く長島巨人みたいだw)

497 :デフォルトの名無しさん:03/03/07 13:33
良い人材を引き抜くのはビジネスの常識。
それを禁止されたら良い人材に正当な評価が出来なくなる。

498 :デフォルトの名無しさん:03/03/07 13:34
何が正当なんですか? :-P

499 :デフォルトの名無しさん:03/03/07 13:37
>>498
お前は一生その会社でただ働きだな。:3−)

500 :デフォルトの名無しさん:03/03/07 13:44
>>498
ヘジルスバーグが某の文句言ってただろ。何が正当かは人次第だよ。:-P
ところでいつ某に戻ったんだ? 戻ってきてほしいの間違いだろ。

501 :デフォルトの名無しさん:03/03/07 13:44
>>496
長島→長嶋

502 :デフォルトの名無しさん:03/03/07 14:43
>>501
ご指摘ありがと。
でも、まあ堅いこと言うなや(w

503 :デフォルトの名無しさん:03/03/07 15:01
>>502
せっかく指摘してあげたのに文句言うなや(w

504 :デフォルトの名無しさん:03/03/07 15:15
当方OSはXP-Homeで、Delphi6Perを使っています。
以前OSがWin98SEだったときに作ったソフトがありまして、
ボタンを押すとMemo中の選択文字列を指定したタグで挟むようにしていたんです。

例えばこのような感じです。
Memo1.SelText:= "<A>" + Memo1.SelText + "</A>";
で、これまでは特に問題なかったのですが、
XPにしてから置換後のタグに挟まれた元の文字列が化けるようになったんです。

たとえば"リンク"という文字列を上のように挟むと<A>B</A>になります。
おかしいと思ってSelLengthを調べると3が返ってきました。
"リンク"のように全角3文字なら6が返ってこないとおかしいと思うのですが…。
自分以外にもXPで同様に化けたという人もいて非常に困っています。
何か対策や、OS以外の原因はあるのでしょうか?
よろしくお願いします。

505 :デフォルトの名無しさん:03/03/07 15:15
>>503
ごめんね(w

m(_ _)m

506 :504:03/03/07 15:21
もちろん"じゃなくて'です…すいません。

507 :デフォルトの名無しさん:03/03/07 15:22
>>デルふぁi6パーsonaru

シェアウェアにしたら駄目なだけだよ

508 :デフォルトの名無しさん:03/03/07 15:40
アフォみたいな質問でつが、hoge.exeの内容を文字列として
function hogehoge(S: string): string;
に渡すにはどうすりゃいいんでつか。

509 :デフォルトの名無しさん:03/03/07 16:00
>>505
誤ってすむなら警察いらねーんだよ。

510 :デフォルトの名無しさん:03/03/07 16:00
>>508
アフォみたいな質問ですね(w

511 :デフォルトの名無しさん:03/03/07 16:01
>>507
だよね。どきどきしたよ。

512 :デフォルトの名無しさん:03/03/07 16:02
>>508
BASE64とかMD5とかの関数ですか?

513 :508:03/03/07 16:05
>>512
MD5でつ。

514 :デフォルトの名無しさん:03/03/07 16:07
>>513
MD5だと大変だぞ

515 :508:03/03/07 16:10
>>514
どう大変?

516 :デフォルトの名無しさん:03/03/07 16:16
    _, ._
  ( ゜ Д゜)

517 :508:03/03/07 16:40
ttp://homepage2.nifty.com/kht0000/
ここで拾ったDLL使ってんだけどそれでも大変でつか?

518 :デフォルトの名無しさん:03/03/07 17:00
「拾った」って表現を使うな


519 :デフォルトの名無しさん:03/03/07 17:30
function StringFromFile(const FileName: TFileName):string;
var
 Stream: TStream;
 Size: Integer;
begin
 Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
 try
  Size := Stream.Size - Stream.Position;
  SetString(Result, nil, Size);
  Stream.Read(Pointer(Result)^, Size);
 finally
  Stream.Free;
 end;
end;


520 :デフォルトの名無しさん:03/03/07 17:39
とやればいいのだが、途中にNull文字が含まれることになる。
利用したい関数が、途中にあるNull文字を終端と見なすようなら、
お好みの1バイトに置換してやればいい。

521 :デフォルトの名無しさん:03/03/07 17:53
Stringは普通にバイナリを扱えますが
PCharにするとnull文字を終端とみなされてしまいます。

522 :デフォルトの名無しさん:03/03/07 18:11
バイナリがパイズリに見えた


自分でもワラタ

523 :508:03/03/07 18:55
>>519
519殿は漏れにとって神でつ。
ありがとうございますた。



524 :デフォルトの名無しさん:03/03/07 18:57
TEditなどにフォーカスがあたった時に
IMEのソフトキーボードを自動で表示するにはどうしたらいいですか?

525 :デフォルトの名無しさん:03/03/07 19:03
>>523
それで正しい結果が得られているの?

526 :524:03/03/07 19:35
>>524
Imm をUseして
Imm32SetConversionStatus(hImc, IME_CMODE_SOFTKBD, IME_SMODE_NONE);
でできました。

527 :523:03/03/07 19:40
>>525
Sample0 窓の手(winhandxp.exe)

漏れアプリ
File .. winhandxp.exe
MD5 .. d1474071f86f497ca4084e5feece8daa
CRC32 .. 2D6962C9

WinMD5Sum
d1474071f86f497ca4084e5feece8daa


Sample1 リソースハッカー(ResHacker.exe)

漏れアプリ
File .. ResHacker.exe
MD5 .. c6eebc7eb6d50dcb32c5539346f8692b
CRC32 .. BB5F151F

WinMD5Sum
c6eebc7eb6d50dcb32c5539346f8692b

//サンプルは適当に選びますた。

528 :デフォルトの名無しさん:03/03/07 19:54
unit md5;

interface

uses Windows;

type

TByteArray = array[0..65535000] of Byte;
TDWORDArray = array[0..65535000] of DWORD;

PByteArray = ^TByteArray;
PDWORDArray = ^TDWORDArray;

TMD5_CTX = record
state :array[0..3] of DWORD;
count :array[0..1] of DWORD;

buffer :array[0..63] of Byte;
end;

PMD5_CTX = ^TMD5_CTX;

TRoundFunc = function (x :DWORD;y :DWORD;z :DWORD) :DWORD;

function GetMD5(data :PByteArray;len :Cardinal) :string;


529 :デフォルトの名無しさん:03/03/07 19:54
implementation

function f(x :DWORD;y :DWORD;z :DWORD) :DWORD;
begin
Result := ((x and y) or ((not x) and z));
end;


function g(x :DWORD;y :DWORD;z :DWORD) :DWORD;
begin
Result := ((x and z) or (y and (not z)));
end;

530 :デフォルトの名無しさん:03/03/07 19:55
function h(x :DWORD;y :DWORD;z :DWORD) :DWORD;
begin
Result := x xor y xor z;
end;


function i(x :DWORD;y :DWORD;z :DWORD) :DWORD;
begin
Result := y xor (x or (not z));
end;

function rotate_left(x :DWORD;n :DWORD) :DWORD;
begin
Result := (x shl n) or (x shr (32 - n));
end;

procedure roundx(num :Byte;var a :DWORD;b :DWORD;c :DWORD;d :DWORD;x :DWORD;s :Byte;ac :DWORD);
const
roundfunc :array[0..3] of TRoundFunc = (f,g,h,i);
begin
Inc(a,roundfunc[num](b,c,d) + x + DWORD(ac));
a := rotate_left(a,s);

Inc(a,b);
end;

531 :デフォルトの名無しさん:03/03/07 19:55
procedure MD5transform(state :PDWORDArray;block :PByteArray);
const
const_init :array[0..3] of Byte = (0,1,5,0);
const_inc :array[0..3] of Byte = (1,5,3,7);
const_s :array[0..15] of Byte = (7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21);
const_c :array[0..63] of DWORD =
($d76aa478,$e8c7b756,$242070db,$c1bdceee,$f57c0faf,$4787c62a,$a8304613,$fd469501
,$698098d8,$8b44f7af,$ffff5bb1,$895cd7be,$6b901122,$fd987193,$a679438e,$49b40821

,$f61e2562,$c040b340,$265e5a51,$e9b6c7aa,$d62f105d,$2441453,$d8a1e681,$e7d3fbc8
,$21e1cde6,$c33707d6,$f4d50d87,$455a14ed,$a9e3e905,$fcefa3f8,$676f02d9,$8d2a4c8a

,$fffa3942,$8771f681,$6d9d6122,$fde5380c,$a4beea44,$4bdecfa9,$f6bb4b60,$bebfbc70
,$289b7ec6,$eaa127fa,$d4ef3085,$4881d05,$d9d4d039,$e6db99e5,$1fa27cf8,$c4ac5665

,$f4292244,$432aff97,$ab9423a7,$fc93a039,$655b59c3,$8f0ccc92,$ffeff47d,$85845dd1
,$6fa87e4f,$fe2ce6e0,$a3014314,$4e0811a1,$f7537e82,$bd3af235,$2ad7d2bb,$eb86d391);


532 :デフォルトの名無しさん:03/03/07 19:55
var
a :DWORD;
b :DWORD;
c :DWORD;
d :DWORD;
x :array[0..15] of DWORD;
i,j,k :Byte;
cou :Byte;
p :array [0..15] of PDWORD;
begin
a := state[0];
b := state[1];
c := state[2];
d := state[3];

p[0] := @a;
p[1] := @b;
p[2] := @c;
p[3] := @d;


533 :デフォルトの名無しさん:03/03/07 19:56
p[4] := @d;
p[5] := @a;
p[6] := @b;
p[7] := @c;

p[8] := @c;
p[9] := @d;
p[10] := @a;
p[11] := @b;

p[12] := @b;
p[13] := @c;
p[14] := @d;
p[15] := @a;

CopyMemory(@x,block,64);


534 : ◆MuQLEaWKLg :03/03/07 21:50
厨房質問でお茶を濁すぜ。

Del6personal@winXP。
Indyってのはプログラムからの通信を全部管理するんですか?
たとえばHTMLの表示にTMozillaBrowser.Navigateを使ったらIndy HTTP Clientに設定されているプロキシ設定とかが反映されるんですか?
ってことです。

535 :デフォルトの名無しさん:03/03/07 22:10
>>534
馬鹿言うな

536 : ◆MuQLEaWKLg :03/03/07 22:21
馬鹿を言ってみたかったんだ(=゚ω゚)ノょぅ・・・

ってかIndy HTTP Clientと(゚д゚)ウマーな関係を作れるパーサはないかなぁ....

537 :デフォルトの名無しさん:03/03/07 23:03
>>536
なんで?

538 : ◆deTS7/W6y2 :03/03/07 23:04
質問です。

自作クラスを配列で宣言したとします。
 hoges:Array[0..100] of THoge;
でも、Createしたのは、5つでした(たとえばの話)。
で、その5つを解放するのは当たり前ですが、
他の「宣言しただけ状態」のクラスは、どうなるのでしょうか?
宣言しただけの場合、メモリ的にはどうなってる状態なんでしょう?
教えてください。よろしくお願いします。

539 :デフォルトの名無しさん:03/03/07 23:06
>>538
>他の「宣言しただけ状態」のクラスは、どうなるのでしょうか?

極端に言えばただのポインタ変数なのでどうもしなくて良いです。

540 : ◆deTS7/W6y2 :03/03/07 23:14
>>539
レス、ありがとうございます。
そうですか。何もしないでいいんですか…。
私の挙げた例は別に変じゃないですか?
integerとかstringとかの「宣言しただけ」は、今までもほっておいたんですが(^^;。
クラスの宣言は勝手が違うのかと…。

541 :デフォルトの名無しさん:03/03/07 23:23
>>540
まぁ、ポインタみたいにどこでも持って行けるのが便利って事で。

542 : ◆deTS7/W6y2 :03/03/07 23:29
>>541
そうですか。ありがとうございました!
※解決※

543 :デフォルトの名無しさん:03/03/07 23:52
 縦書きビューワーコンポ(エディタコンポならまだいいけど)ってないですか?


544 :デフォルトの名無しさん:03/03/07 23:57
>>543
RichEditに然るべきメッセージ。

545 :デフォルトの名無しさん:03/03/08 00:28
>>543の日本語が難しい

546 :デフォルトの名無しさん:03/03/08 00:33
>>545
それに関しては激しく同意。

547 :デフォルトの名無しさん:03/03/08 09:35
>>540
stringも実態は参照カウンタ付きポインタだよ。
ただ、スコープが外れた時に勝手に開放されたりして、
「プログラマは何もしないでいい」だけで。
# クラスも無理やりinterface使えば、参照カウンタで管理することも出来るが・・・

548 :デフォルトの名無しさん:03/03/08 09:55
>>544
RichEdit の縦書きサポートは W2K か XP でなくなりました。マジで。

549 :デフォルトの名無しさん:03/03/08 10:44
Win9x系のriched32.dllを持ってくれば解決するがオススメしない。

550 :デフォルトの名無しさん:03/03/08 10:58
スタートアップフォルダにあるやつを起動させてるやつは何者なんだYOOOOOOOOOOO
スタートアップフォルダ自体は単なるフォルダなんでしょ?

551 :デフォルトの名無しさん:03/03/08 11:23
>>550
Windowsだろ。

552 :デフォルトの名無しさん:03/03/08 11:56
ただのフォルダじゃなく選ばれたフォルダなんだよ

553 :デフォルトの名無しさん:03/03/08 12:04
キングオブフォルダ

554 :デフォルトの名無しさん:03/03/08 14:00
>>485
>>550
ttp://hp.vector.co.jp/authors/VA009712/take/delphi/kabesys.htm#getshellfolder
こんなんでどうでしょう?

555 :デフォルトの名無しさん:03/03/08 14:04
>>554
またライブラリ厨か・・・

556 :デフォルトの名無しさん:03/03/08 16:14
>>554
なんか使えそうですね
ありがd

557 :デフォルトの名無しさん:03/03/08 17:55
次はショートカットってどうなってんだYOOOOOですか?

558 :デフォルトの名無しさん:03/03/08 17:56
CSIDL_PROGRAMSはProgram Filesフォルダではなくスタートメニューのプログラムフォルダです。
Program Filesの取得にはconst CSIDL_PROGRAM_FILES = $0026を使います。

559 :デフォルトの名無しさん:03/03/09 04:56
ショートカットの件は克服できそうデス

560 :デフォルトの名無しさん:03/03/09 06:24
エンターキーでパソコンの電源を入れられる伝説のコードを探せ

561 :デフォルトの名無しさん:03/03/09 06:24
もうそうなってるし。スペースでも入るぞ。

562 :デフォルトの名無しさん:03/03/09 09:15
「if A or B = C then」
これって、
A = CとB = Cが両方成り立ったときっていうことなの?
それとも、どっちかだけ?
っていうか、こういう書きカタってあるの?

563 :デフォルトの名無しさん:03/03/09 10:06
>>562
いや、

AがtrueかつB=Cがtrueのとき。

564 :デフォルトの名無しさん:03/03/09 10:08
>>563
わるい、かつじゃなくてもしくはだ。

まだ寝てるな・・・

565 :デフォルトの名無しさん:03/03/09 10:12
>>562
or演算子の優先順位が高いから
AかBがTrueかつ、CがTrueの時じゃないのかなぁ。

>A = CとB = Cが両方成り立ったとき
「if (A=C) and (B=C) then」
とするのが(・∀・)イイ!

566 :デフォルトの名無しさん:03/03/09 10:12
ってことは、
if A = C or B = C then
とすれば、どっちかが成り立った時になるわけかdd

567 :デフォルトの名無しさん:03/03/09 10:13
>>565
やっぱりか。いつもはまるからor andするときは何があろうがかっこを付けることにしてるよ。

568 :デフォルトの名無しさん:03/03/09 10:14
>>566
A = (C orB) = Cじゃないの?

569 :デフォルトの名無しさん:03/03/09 10:15
>>566
(・∀・)カコツケYO!
if (A = C) or (B = C) then


570 :デフォルトの名無しさん:03/03/09 10:16
{A = (C or B)} = C

571 :デフォルトの名無しさん:03/03/09 10:17
括弧に入れれば間違いない無さそうだね
みんなどうも

572 :デフォルトの名無しさん:03/03/09 10:28
なるほどなるほど
わかりますた()

573 :デフォルトの名無しさん :03/03/09 16:39
NMHTTPを使いたいんですけど、通信してる途中重くて仕方がありません。
たとえばIEでページをロードしても別に重さを感じることはありませんよね?
でもNMHTTPを使ってるとボタンが押せないくらい重くなります。
これを防ぐ方法はありませんか?よろしくお願いします。

574 :デフォルトの名無しさん:03/03/09 16:40
>>573
スレッド

575 :デフォルトの名無しさん:03/03/09 16:41
重いならスレッド。

576 :デフォルトの名無しさん:03/03/09 16:41
粉うかた無き混じれ酢だがIndy使え

577 :デフォルトの名無しさん:03/03/09 17:29
>>573
ttp://damedame.ddo.jp/delphi/wininet.html
こんなのダメですか・・?

全然違う質問なんですけど、コードエディタで複数行にわたってインデントを調節したいときってどうすればいいんですか?
いつも使っているエディタだと、複数行選択してTabを何回か押すと、そのブロックごとインデントするんですけど、
Delphiのエディタだとざっくりと消えてしまうんです。
今は面倒だけど、一行ずつTab入れて調節しています。


578 :デフォルトの名無しさん:03/03/09 17:36
^ki ^ku

579 :デフォルトの名無しさん:03/03/09 18:02
>>577
行選択orブロック選択して
Ctrl + Shift + U
Ctrl + Shift + I

580 :デフォルトの名無しさん:03/03/09 19:14
>>579
ありがとうございました。m(__)m

581 :デフォルトの名無しさん:03/03/09 23:31
標準のTTimerをつかって一定間隔でイベントを起動させたいのですが、
たとえば、10分おきに更新するような場合に、手動でも更新できるようにしたいのです。
そのときは最後に更新したときからまたカウントをしなおしたいのです。

標準のVCLでは無理そうなのですが、そんなことができるコンポありますでしょうか?


582 :デフォルトの名無しさん:03/03/09 23:37
>>581
自分で作るって選択肢は無いの?
いい機会だから継承とかいろいろ勉強したら?

583 :デフォルトの名無しさん:03/03/09 23:42
>>581
Timer.Interval=1000にしてWindows.GetTickCountと変数一つ組み合わせれば実現できるよ。

584 :デフォルトの名無しさん:03/03/09 23:45
test

585 :デフォルトの名無しさん:03/03/10 02:09
>>581
timerのenableをオフにしてまたオンにするとカウントリセットされる。

586 :デフォルトの名無しさん:03/03/10 03:24
>>582-585
皆様たいへんありがとうございました。
なにせ3からいきなり7に飛んでいますし、ここ数年GUIは手をつけていなかったので・・・
今作っているのはまったくの趣味ですが、人様が作ってくれたいろんな有用なコードを切り貼りしていると言っても過言ではないです。
自分でコンポまで作れればいいのですが、そこまで技術がなかなか伸びないままいつも途中で放り投げて・・・

今度は完成できるといいなぁ


587 :デフォルトの名無しさん:03/03/10 07:41
あきらめずに続ければ、いつのまにか上達するものだよ。ガンガレ。

588 :デフォルトの名無しさん:03/03/10 13:16
Indy HTTP Client でGetしたHTMLをTMozillaBrowserに表示する方法をご教授ください....

方々探し回りましたがやっぱりいったんファイルに出力しなきゃだめでしょうか?

589 :デフォルトの名無しさん:03/03/10 15:31
>>573に便乗みたいなものですが、スレッドがうまく使えません。
ヘルプなどをみて、一通りスレッドの使い方は勉強しましたが、
実用的には使えません。

処理中のダイアログがでて、そのダイアログにキャンセルボタンがあって、
スレッドでやらせる仕事を途中でキャンセルできるコードのやり方を教えてください。

つまずいている点は、たとえばモード付きダイアログを出すと帰ってこないし、
モードなしだとユーザー操作で例外を出してしまう点とか、
一度開始したスレッドに、メインからどうやって連絡するかです。

590 :デフォルトの名無しさん:03/03/10 16:30
>>589
モーダレスにしてみるとか。そもそもダイアログボックスをフォームで作ればいいのでは?その上でスレッド作って処理させる。

591 :デフォルトの名無しさん:03/03/10 16:32
>>589
昨日考えたのは


while(WaitForSingleObject(stopflag,nowait) <> 0 do
begin
処理
end;

って感じ。

592 :デフォルトの名無しさん:03/03/10 17:37
>>589
単純に考えるといい
1、グローバル変数 Hoge:boolean; を用意
2、Hoge:=false;
3、スレッドを作って走らせてから ダイアログを表示
   ->スレッドでは処理 if Hoge then 中断処理
4、ダイアログでボタンが押されたらHoge:=false;


593 :デフォルトの名無しさん:03/03/10 19:14
質問なのですが、ヘルプに
if OpenDialog1.Excute then
Memo1.Lines.SaveToFile(OpenDialog1.FileName);
とか見るのですが、if と then が無くてもそれっぽく動くのですが
どうしてifとかthenとか必要なんですか?

594 :デフォルトの名無しさん:03/03/10 19:15
>>593
ダイアログでファイル選択しないでキャンセルしたらどーなる?

595 :Delpher:03/03/10 19:30
何方か教えていただけないでしょうか
Delphi6付属のServerSocketを使ってファイル送受信を実装しようとしているのですが
TFileStreamとTMemoryStreamを使い、TFileStreamでファイルを開いてそれで
TMemoryStreamにコピーしたあとヘッダーを追加し
TCustomWinSocketでSocket.SendStream( S )として送信をするのですが
小さいファイルをやり取りするには問題は無いのですが
16MBなどといったちょっと大きなファイルを送ろうとすると一定時間Formが応答
しなくなってしまいます(Formが固まってします)待てばよいのですが、これだと
ちょっと問題ありのような気がしまして..他の接続しているクライアントが応答
を受け取れなくなります

メーリングリストを読むと
>TWinSocketStreamを使うとFormは固まるものの、比較的わ
>かりやすく安全に処理できるような気がします。
とか書いてあるのですが、これは絶対に固まってしまうものなのでしょうか?
ServerSocketの特性なのでしょうか?

なんとかFormの固まりを回避したいのですがどなたかアドバイスいただけないでしょうか...


596 :デフォルトの名無しさん:03/03/10 19:34
Indy使え

597 :デフォルトの名無しさん:03/03/10 19:34
>>595
スレッド。

はい、次の方。


598 :Delpher:03/03/10 19:37
うぅ
>>596
やっぱりそうですか....

>>596
スレッド!?
これはヒントなのですか?

厨房質問ですみません

599 :デフォルトの名無しさん:03/03/10 20:16
>>598
そうだよ。2ちゃんねるにも沢山スレッドあるだろ。

600 :デフォルトの名無しさん:03/03/10 20:25
構造体が動的配列で宣言されているとして、その構造体のメンバにも
動的配列を含める・・・ってのは出来ないようになっているんでしょうか?
シンプルなソースで試そうとしたのですが上手くいかないっぽいので
白か黒か気になってます。

601 :デフォルトの名無しさん:03/03/10 20:26
>>600
出来ないでしょう。可変長の構造体なんて認められないんで。

602 :デフォルトの名無しさん:03/03/10 20:33
任意次元の動的配列の確保の応用では駄目?

type
 a = record v : array of integer; end;
 b = array of a;

var
 BB : b;

 SetLength(BB, 10);
 SetLength(BB[2].s, 100);
 SetLength(BB[8].s, 200);


603 :デフォルトの名無しさん:03/03/10 20:50
601さん602さん、有難うございます。
特に困るわけではないのでメンバを静的配列にすることにします。
白黒ついてスッキリです。

604 :デフォルトの名無しさん:03/03/10 22:54
Indyを使っておりまして、IdHTTP.GetにてHTMLを取得しているのですが
存在しないページ等をGetしようとすると、エラーが出て処理が中断します。
エラーを出さない方法
あるか無いかの判断をする方法
以上二つお願いいたします。

605 :デフォルトの名無しさん:03/03/10 22:56
>>604
エラーと例外の区別を付ければあんたは伸びる。
しかし、エラーが出ると良いながらエラーメッセージを書かないところを見ると、才能がないようにも見える。

606 :604:03/03/10 23:01
>>605
httpget.exeアプリケーションエラー
"0x61031957"の命令が"0x00000004"のメモリを参照しました。メモリが"written"
になることはできませんでした。

607 :デフォルトの名無しさん:03/03/10 23:04
>>606
死んでるじゃん・・・

608 :604:03/03/10 23:35
>>607
だから困っているのですが...

609 :デフォルトの名無しさん:03/03/10 23:53
try
except

610 :デフォルトの名無しさん:03/03/11 00:12
>>609
いや、それで回避しちゃダメな例外(と言うか出来るのか?)

611 :デフォルトの名無しさん:03/03/11 00:19
>>604
んなこたないと思うけど。最小のサンプル作って再現できたらうpしてみなよ。

612 :デフォルトの名無しさん:03/03/11 00:22
>>604
例外処理してみそ。

try
IdHTTP1.Get('aaa');
except
end;

613 :604:03/03/11 01:19
606、608は私ではないのですが、
エラーは存在しないページだと302NotFoundです
今回はエラー内容よりも、エラーに対する処理ということでしたので
書きませんでしたが説明不足ですみません。

以前どこかで見つけたソースを使ってみたのですが
そのコードは応答コードを利用するものでした。WinInetを使う?
通常は200で302や404でたらGetしないという処理でしたが
最近自動で転送なのか、無いファイルを指定したときに自動的に
違うページを表示するような場合でも200を返してしまうので困っておりました。

exceptを使うとエラーは表示されなくなりました。
ありがとうございます。
URLの存在確認の決め手となる方法あらば教えて頂けませんでしょうか?



614 :608:03/03/11 01:43
>>606
騙るなよ...

615 :デフォルトの名無しさん:03/03/11 02:01
595氏のついでに便乗質問
Socket通信中ってApplication.ProcessMessagesってマズイの?


616 :デフォルトの名無しさん:03/03/11 03:19
>>613
Except部でどんな例外が出たか調べるんだよ多分。

617 :デフォルトの名無しさん:03/03/11 05:24
デルフアイにはエラーをスルーするコマンコありますか?

618 :デフォルトの名無しさん:03/03/11 06:52
>>587
ありがとうございました。

けっこう出来るようになるもので、制作はじめに予定していた機能はほとんど完成に近付きました。

いま困っているのは、
電光掲示板みたいなコンポを載せたフォーム(タイトルバーなし)がマウスでD&Dできないことと、
プログレスバーを載せたステータスバー上のパネルに、文字列を表示するとプログレスバーの
表示が止まるまで表示されないということ
の2つです。

もうひとつ、通信系の問題で、サーバからcontent-lengthが返ってこない場合に、取得するファイル
サイズを事前に知る方法ってありませんか?

あとはトレイアイコンにしたり、そこから右クリックで電光掲示板出したり・・・いろいろ構想はありますけど



619 :デフォルトの名無しさん:03/03/11 06:57
このスレでよく、
PerだったらPro買え、みたいなレスをよく見るけど、
ただ単にVCLが豊富ってだけなの?
Perでも自力で実装すれば、出来ない事は無いの?

620 :デフォルトの名無しさん:03/03/11 07:04
Per Per いう奴が Per
Per には何も出来ません

621 :デフォルトの名無しさん:03/03/11 07:54
ひとつ質問です。

1つのプロシージャ内でStatusBarのPanelにテキスト表示しているのですが
全部で24回同じ位置に表示するうちの最後のものしか表示されません。
このプロシージャは一瞬で終わるわけではなく、途中で関数を呼びながら
10秒くらい掛かるのですが、10秒間ほどの間23回の表示はまったく見えません。

念のためにBeginUpdate, EndUpdateで囲ってもみましたがダメでした。

何か手立ては無いでしょうか?
(直前にMemoコンポに同じ内容を表示してて、こちらはまがりなりにもスクロール
などしてあとから見ると全部表示されています。最中も一部は見えます)






622 :デフォルトの名無しさん:03/03/11 08:11
>>619
某に儲けさせたいから

623 :デフォルトの名無しさん:03/03/11 08:42
>>621
Application.ProcessMessages
を所々に入れてみるとか。

624 :デフォルトの名無しさん:03/03/11 08:55
そうだな、4年タダみたいに使って6年廉くこき使って26で放出か、26なら再就職先あるだろ。


625 :デフォルトの名無しさん:03/03/11 11:21
InternetCombineUrlを使った簡単なコードを教えて下さい

626 :デフォルトの名無しさん:03/03/11 11:28
>>623

ありがとうございました。うまくいきました。m(__)m


627 :デフォルトの名無しさん:03/03/11 16:54
ソフトからだした、ShowMessageをソフトから消すことって出来ますか?

628 :デフォルトの名無しさん:03/03/11 16:55
ソフトにだした、ShowMessageをソフトに消すことって出来ますか?

629 :デフォルトの名無しさん:03/03/11 17:30
>>628
sendmessage

630 :627:03/03/11 17:41
>>629
出来ましたありがとうございます。

631 :デフォルトの名無しさん:03/03/11 21:00
メニューアイテムのヒントを表示するには、どこをどう設定すればよいのでしょうか?
メニューアイテムには他のコントロールのようにShowHintプロパティが無いんです。
ヒントプロパティに設定した文字列を表示したいんです。

632 :デフォルトの名無しさん:03/03/11 22:02
>>631
DelphiヘルプのTMenuItem.Hintを参照

633 :A:03/03/11 23:07
>>619
ProにはVCLのソースがついてくるのが一番の違いだと思われ。

634 :デフォルトの名無しさん:03/03/12 13:39
Delphiのツールメニューにhtmlファイルを追加するには、どうすればできるのかな?

635 :デフォルトの名無しさん:03/03/12 13:44
>>634
タイトル:HTML
プログラム:ブラウザ.exe
作業フォルダ:
実行時引数:HTMLファイル.html

636 :デフォルトの名無しさん:03/03/12 14:08
文字列から、最後の一字を省くにはどうすればいいんですか?

たとえば「あかさたな」から「な」だけ削除して表示するみたいなやつ。
この「あかさたな」はランダムで生成される文字列です

637 :デフォルトの名無しさん:03/03/12 14:22
function DeleteLastChar( w : widestring ) : widestring;
begin
 if w = '' then Result := ''
 else Result := copy(w, 1, length(w) - 1);
end;


638 :nanasi:03/03/12 16:19
Indyを使ったちょっとした通信ソフトみたいなサンプルソースありませんか?
chatでもファイル転送でも

639 :デフォルトの名無しさん:03/03/12 17:00
某の web でも ML でも明示されていないけど、アップデート出てます。

Delphi 6 RTL アップデート #2
http://www.borland.co.jp/delphi/del6up.html

最新情報ページくらい更新しろよ > 某日

640 :デフォルトの名無しさん:03/03/12 17:23
>>639
>某の web でも ML でも明示されていないけど

あれ?3日前Borland日本のサイトでそれダウンロードしたけど。


641 :デフォルトの名無しさん:03/03/12 17:24
>>639
Delphi起動したときの案内画面に出てたが。


642 :デフォルトの名無しさん:03/03/12 18:21
ソース付きのソフトウェアキーボードのコンポーネント(アプリでも可)を
置いてあるサイト知ってる人いたら教えてください

643 :デフォルトの名無しさん:03/03/12 18:49
>>642
アクティブなウインドウにKEYDOWNメッセージでも送れば良いんじゃないの?

644 :デフォルトの名無しさん :03/03/12 20:13
DELPHIで作ったWEBサーバーアプリケーションは、
CGIが使えるWEBスペースサービス(niftyとか)でなら実行できますか?

645 :デフォルトの名無しさん:03/03/12 20:20
>>643
たとえばMicrosoftのスクリーンキーボードはボタンをマウスで押してもウィンドウがアクティブにならないですよね?
ああいうのはどうすれば出来るのか知りたいのです。

646 :デフォルトの名無しさん:03/03/12 20:23
>>644
CGIの使えるUnix/Linuxサーバじゃ動かないだろ。
Windowsであることが必須。たしかGeoとかそうだったようなそうで無かったような。

647 :デフォルトの名無しさん:03/03/12 20:46
GeoがWindowsなんか使うわけないだろう。
あそこはSolarisやFreeBSD

648 :デフォルトの名無しさん:03/03/12 20:58
そもそもGeoはサーバサイドでプログラムを動かせない。

649 :デフォルトの名無しさん:03/03/12 22:26
そもそもサーバーサイドはプログラムじゃない。

650 :デフォルトの名無しさん:03/03/12 22:35
そもそもサーバーに中の人などいない。

651 :デフォルトの名無しさん:03/03/12 23:22
しょうもない質問ですが、ラベルコンポでワードラップ可能にしたとき
強制的に折り返しの位置を指定する特殊文字ってありますか?
それとも1行目の末尾にスペースを入れて調整しないとダメですか?

652 :デフォルトの名無しさん:03/03/13 00:04
#13#10 とか。

653 :デフォルトの名無しさん:03/03/13 01:09
>>651
sLineBreak

654 :651:03/03/13 01:45
>>652-653
あのぅ、お答えいただいて大変恐縮なのですが・・・
それはコードで動的に書く場合ですよね?
GUI設計時にプロパティ欄に入れる方法はないですか?

たとえば、エクセルだとCtrl+Enterで改行が入りますよね?
それと同じような感じでないですか?


655 :デフォルトの名無しさん:03/03/13 02:00
>>654
D6以降ならテキスト形式のDFMファイルに直接
Caption := 'Label1'#13#10'改行テスト';
みたいに書き込んだら?

656 :デフォルトの名無しさん:03/03/13 02:14
>>654
655さんに先に書かれてもうたけど・・・
フォームを「エディタで表示」にしておいて
Caption = 'First'#10'Second'
ならOK

657 :デフォルトの名無しさん:03/03/13 02:16
まず、プロパティの型を string から TStringList に切り替える。
そうすればプロパティエディタ側は複数行編集可能になる。

TMemo では、コントロールが保持している文字列の代わりに Memo コントロールが
返してくる文字列をプロパティの値としている。
ここを書き換えて、常にコントロール側で保持している文字列を返すようにすれば
良いかと。


658 :651:03/03/13 12:45
>>655-657
なるほど!こういう方法があったんですね。
ありがとうございました。

「エディタで開く」のやり方が良く分からなかったのですが、該当コンポ上を右クリックで
下から2番目にそのメニューが出てきました。(D7です)


659 :デフォルトの名無しさん:03/03/13 13:07
Delモナーは?

660 :デフォルトの名無しさん:03/03/13 13:44
>>659
日本法人の方針変更、規模縮小に伴いリストラされますた。


661 :デフォルトの名無しさん:03/03/13 16:56
ゲームとかで、足元のY座標を調べて、小さいほうから作画すれば
ちゃんと奥行きが反映できますよね?
でも、その方法が思いつきません。
誰か(・∀・)イイ!!方法教えてください。

662 :デフォルトの名無しさん:03/03/13 17:06
>>661 Zオーダーの事?

グラフィックコンポーネントは親の Components 順に描画されたと思うけど

663 :デフォルトの名無しさん:03/03/13 20:09
TEditにTUpDownボタンをつけて数字を入力し、その数字をTIniFileを使って保存・読み込むという
仕組みを作りました。
TEditのOnChangeメソッドにIniFileへ数字を保存するコードを書きました。
TEditの貼り付いているFormのOnShowメソッドにIniFileから数字を読み込んでTEditに設定する
コードを書きました。

このようにしたら、OnShow時に(設計時と異なる)数字を書き換えることでOnChangeメソッドが
呼ばれてしまい、なぜか設計時の数値に置き換わってしまいます。

IniFileへUpDownで指定した数値が保存されたことは確認しましたし、トレースしてOnShowのあとに
OnChangeが呼ばれて、なぜかそのときにすでにTEdit.textの値が設計時の値になっていることも
確認しました。

なぜなのでしょう?


664 :デフォルトの名無しさん:03/03/13 20:17
>>663
変更するごとにファイルに書き込むって言う仕様から変えた方が良いと思うけれど。

665 :デフォルトの名無しさん:03/03/13 20:18
>>663
自己レスです。

はぁ、厨厨な質問でした。なさけねぇー。
UpDown.Positionの値にせっとすべきなのですた。はぁ〜


666 :デフォルトの名無しさん:03/03/13 20:22
>>664

あ、すみません、レス付けていただいてましたね。

・・・というと、どうすればいいんでしょう?
いちおう設定のダイアログはあるんですけど、そのボックスだけは頻繁に変更する
たぐいの情報なので、いきなりメインフォームに張り付いているんです。
だから、変更したタイミングで・・・あ、そうか、UpDownボタンから離れたタイミングで
変更とかそういう仕様ですか?

でも、そうすると、Editで直接編集したときに変更するタイミングがなくなるような・・・

どうしたらいいんでしょう?

667 :デフォルトの名無しさん:03/03/13 20:55
>>662
いや、グラフィックコンポーネントっていうかBitmap間のCopyRectの場合。
思いついたのはY座標でソートして、その順番で作画という方法。
ただ、恐ろしく重くなりそうでコードにする気力も起きない。
なんか、ビシッとすごい方法ないですかね。

668 :デフォルトの名無しさん:03/03/13 21:14
>>667
だから ソートするのは Y座標じゃなくて Zオーダなんだろ?

669 :デフォルトの名無しさん:03/03/13 21:44
 TreeView で指定したノード(下の階層にノードを持つ)だけをソートするには
どうしたらよいのでしょう。


670 :デフォルトの名無しさん:03/03/13 22:44
>>668
Zオーダって何だYO!!!と思ったんで調べてみたけど、
確かにこれをソートすればできそうだね。
でも、これってコンポーネントの場合しかなくない?
それとも探し方が悪かったかな。
どうすれば、キャラのZオーダをソートできんの?

671 :デフォルトの名無しさん:03/03/13 23:03
>>670
>キャラの
君への罵倒用の文句が20程思いついた。

672 :デフォルトの名無しさん:03/03/13 23:50
>>671
凄いね。天才だね。
で、その20の文句を言ってみろよ。
本当に20もあるのならな(ハゲ

673 :A:03/03/13 23:59
>>670
そのキャラってのが、どういう状態なんだか、ぜんぜん分からないけど
それらを管理するオブジェクトを作って、Zオーダー持たせればよいかと。
ソートが必要なのは、Y座標から計算、でも、Zオーダーでも同じだけど。

674 :デフォルトの名無しさん:03/03/14 00:16
たびたびすみません

Form1からForm3Createを呼び出すときに、引数Sender: TObjectが必要なのですが
どのように書けばいいのですか?とくに呼び出し元の情報は必要無いので
nilと書いたり、省略したら怒られてしまいます。


675 :デフォルトの名無しさん:03/03/14 00:29
>>674
Applicationでも渡しとけば?

676 :デフォルトの名無しさん:03/03/14 00:30
>>674
>constructor Create(AOwner: TComponent); override;

なぁ?Senderじゃないんだけど。

677 :デフォルトの名無しさん:03/03/14 00:43
あれ?こうなっていますよ。

procedure TForm3.FormCreate(Sender: TObject);

おかしいなぁ・・。

>>675
applicationを渡したら通るようになりましたが、Form3のCreateプロシージャ内で
Form3の内容がnilになってて、諸プロパティを設定させようとするとエラーが出ます。

showの前にcreateだけしてそのコンポに値をセットして送って出来ないんでしょうか?
というか、一般に設定ダイアログの生成ってどうやるんですか?

今作っている流れでは
メインフォームの作成・表示→設定ダイアログの生成→要求があれば設定ダイアログを表示
→INIファイルに設定保存→アプリケーション終了→再起動→INIファイルから設定読み込み→(繰り返し)

という流れなんですけど。



678 :デフォルトの名無しさん:03/03/14 00:49
>>677
釣りじゃないと仮定して…
全然全くもって勘違いしてます。
「もしかして?」と思って書き込まなかったけど。
”それ”と”それ”は別物ですよ。

679 :デフォルトの名無しさん:03/03/14 00:50
あ、それとも発想を変えて

設定は全てINIファイルで管理することにして、設定ダイアログはINIファイルを
いじるためだけの道具と考えればいいのかな?

そうすれば、Form1からはForm3ではなくINIファイルへアクセスすれば
いいことになりますよね。

つうかそれがふつうですか?

680 :デフォルトの名無しさん:03/03/14 00:57
>>677
var
Form2:TForm2;
begin

Form2 := TForm2.Create(Self);
Form2.ShowModal();



Form2.Free();


681 :デフォルトの名無しさん:03/03/14 01:02
>>677
プロジェクトのオプションでSetupFormを自動作成させないという前提で
例えばこんな方法もあるよ
// 設定ダイアログ側
TSetupForm
 (中略)
 public
  procedure Execute;
end;
(中略)
procedure TSetupForm.Execute;
begin
 // INIファイル読み込み
 ShowModal;
 if ModalResult=mrOk then
  ApplyIniFile; // INIファイル書込み
end;

// メインフォーム側
TForm1.OpenSetupForm;
begin
 SetupForm:=TSetupForm.Create(Self);
 SetupForm.Execute;
 SetupForm.Release;
end;

682 :デフォルトの名無しさん:03/03/14 01:35
>>680-681
見ず知らずの者にこんなにコード書いてくださってありがとうございます。
今読もうと思っているところですが、たぶん今の自分のレベルではなかなか
理解できないかなーなんて。
一つ一つステップ踏んでいくしかないと思ってますので、どうか温かく見守っていてください。n(__)n


683 :デフォルトの名無しさん:03/03/14 08:17
>>673
ありがd
なんかぼんやりと思いついてきたような。
これからソートのいいやり方探してきます。


684 :デフォルトの名無しさん:03/03/14 08:36
>>683
簡単にやるなら、グラフィックコントロール継承にして、ビットマップとか枠とか持たせて
そのコントロールにZオーダのメンバーを持たせておいて
例えばパネルに描くなら、パネルCompomentsをZオーダでソートする


685 :デフォルトの名無しさん:03/03/14 13:39
ある特定のファイルの名前を変更出来なくすることって可能なんでしょうか?
具体的にはコンテキストメニューやプロパティで名前を変更しようとしたときに「このファイルは名前の変更が禁止されています」と表示して、
ファイル名の変更を禁止したいのです

686 :デフォルトの名無しさん:03/03/14 13:55
>>685
ReadOnlyにしとけばいいやん

687 :デフォルトの名無しさん:03/03/14 14:53
自作コンポのアイコンってかビットマップかえるのって、
ttp://www.borland.co.jp/qanda/delphi/d0005108.html
これでいいんすよね?Delphi5.0なんですがうまくいかないっ!あう。

688 :デフォルトの名無しさん:03/03/14 15:12
設計時パッケージのプロジェクトに.dcrを追加してみる。
それでも駄目なら{$R で無理やり埋めこむ。

689 :デフォルトの名無しさん:03/03/14 15:20
>>688
おおでけたw さんくす!
でもフォームに配置すると・・・・・うはw かわんねえw
継承元のやつが出てくるなあ・・。

690 :デフォルトの名無しさん:03/03/14 15:27
>>686
それでも変えられるやん

691 :デフォルトの名無しさん:03/03/14 16:24
>>690
ずっと開いとけばええやん

692 :デフォルトの名無しさん:03/03/14 16:48
>>691
屁理屈やん

693 :デフォルトの名無しさん:03/03/14 17:21
レコード型の定数済定数を定義したいのですが

type
 Taaa = record
  a: Integer;
 end;

 Tbbb = record
  b1: Integer;
  b2: Integer;
  aa: array[0..1] of Taaa;
 end;

const
 bbb: Tbbb = (
  b1: 100; b2: 200;
  ここはどういう風に書けばいいのでしょうか?
 );

aa[0].a: 1 とかやってみたのですがだめでした。
よろしくおねがいします。


694 :693:03/03/14 17:31
分けて考えたらできました
aa:((a:1), (a:2))


695 :デフォルトの名無しさん:03/03/14 18:06
Delphi言語とPascal言語の違いを教えてください小一時間

696 :デフォルトの名無しさん:03/03/14 18:17
Delphi言語=
 古代ギリシアで行われた、神託の儀式で使われる言語、
 Delphi神殿では、床から常時火山性ガスが吹き出している。
 巫女にそのガスを吸い込ませ、一種のトランス状態にさせる。
 そのときのお告げに使われる言語がDelphi言語という。

Pascal言語=
 真女神転生1というゲームで、主人公の飼い犬が話す言語。


697 :デフォルトの名無しさん:03/03/14 20:22
CのHファイルを変換して、Delphiで使いたいのですが、
いいツールなどはありませんか?

698 :デフォルトの名無しさん:03/03/14 20:29
h2pas

699 :デフォルトの名無しさん:03/03/14 20:30
>>697
http://www.google.co.jp/search?q=H2PAS&lr=lang_ja

これを手がかりに検索していってみたら?

700 :デフォルトの名無しさん:03/03/14 20:33
h2pasって、フリーパスカルのやつですよね。
あれのh2pasで変換したやつを使ったら、
ライセンスはGPLにしないといけないんでしょうかねぇ?

701 :デフォルトの名無しさん:03/03/14 20:37
>>700 そういうネタはこっちで・・・・GCCでコンパイルしたらGPLになるってのより酷いネタだね

【殺しの】ライセンス【道で拾った】
http://pc2.2ch.net/test/read.cgi/tech/1045006087/


702 :デフォルトの名無しさん:03/03/14 21:02
ファイルの保存にTSaveDialogを使っているのですが、
プログラム内では何も指定していないのに、前回保存した
フォルダが開いてくれます。
これはどこに情報が保存されているのでしょうか?

703 :デフォルトの名無しさん:03/03/14 21:03
プログラム終了したら元に戻らないか?

704 :702:03/03/14 21:08
>>703
終了して再起動しても覚えててくれてるのです。
これはこれで使う側には便利なのですが、謎です。

705 :デフォルトの名無しさん:03/03/14 21:13
ムスカキタ━━━━━(゚∀゚)━━━━━!!!!

706 :デフォルトの名無しさん:03/03/14 21:31
>>704
レジストリをフォルダのパスで検索して調べてみては?

707 :702:03/03/14 21:45
>>706
やっぱレジストリですよね。いくつかそれらしき箇所が見つかりました。
使う側が意図しなくても暗黙に使われることがあるという事がわかりました。

708 :デフォルトの名無しさん:03/03/14 22:51
何かDelphiの裏技はありませんか?

709 :デフォルトの名無しさん:03/03/14 23:07
>>708
バージョン情報でAlt+T E A M
って昔も書いたな。

710 :デフォルトの名無しさん:03/03/15 00:04
>>704
その「TSaveDialog」は何もしてなくても、他のもんでファイルオープンとかしてない?
そーすっと、勝手にそのフォルダになったりするよーな気が。

711 :710:03/03/15 00:14
なんか頓珍漢なレスしたよーな気がしてきたので>>710は忘れて♥

712 :デフォルトの名無しさん:03/03/15 07:49
>>709
Alt+ S A S A D U K A


713 :デフォルトの名無しさん:03/03/15 08:57
レコード型という便利なものがあることを知りました。

レコード型の配列変数を作ったのですが、

たとえば
type Delphi: record
Object: integer;
Pascal: string;
end;

として
var Borland: array [0..100] of Delphi;
みたいなことをやったのですが、

この配列のBorland[0].Pascal から Borland[50].Pascal に同一の値を入れたい場合に
一気に入れるやり方ってありますか?
それともfor文でループさせるしかないですか?



714 :デフォルトの名無しさん:03/03/15 09:12
>>713
ない。たいした手間じゃあるまい?

どんな構文を期待しているの?


715 :デフォルトの名無しさん:03/03/15 09:13
>>713
それは 別の配列と51レコード文同じ配列を作りたいという事?
 そのやり方は、absolute で 別名を与える。 つまり、
 var Borland: array [0..50] of Delphi51 absolute Delphi50 ; //51レコード文の配列
 してこっちに代入すればいいという方法

あるいは1レコード目と残り50レコードを一致させたいという事?
 これならあったとしても、for文でループさせるのと効率は同じだし判り易いからそうすべきだと思う



716 :デフォルトの名無しさん:03/03/15 09:28
>>712
もういいか。

Alt + サ サ ツ ゙ カ

NEC-98 のカナロック、または IME で半角カタカナ直接入力モードで。


717 :デフォルトの名無しさん:03/03/15 09:29
>>714
ずらずらと書き連ねるのは面倒なので・・・コピーすれば良いんですけど、添え字の部分はて入力になってしまうし。
やっぱりfor文ですかね。

>>715
後者の意味です。
Borland[0].Pascalから始まって、Borland[1].Pascal,Borland[2].Pascal,...,.Borland[50].Pascalに至るまで
全部同じ値を入れたいんです。

「から・・・に・・・」って紛らわしい表現でした。お詫びします。


718 :まだまだ:03/03/15 10:16
Alt + DEVELOPERS

719 :デフォルトの名無しさん:03/03/15 10:21
Alt + ANDY
Delphi1のみ

720 :デフォルトの名無しさん:03/03/15 10:37
>>716
「焼肉食いてー」
だっけ?

721 :デフォルトの名無しさん:03/03/15 12:22
Alt + MANKO

残念ながらモザイク有り

722 :デフォルトの名無しさん:03/03/15 13:03
ALT+TEAMでスターウォーズみたいなオープニングがでてきましたが
これってどうやって描画しているのですか?
Delphiって3Dサポートしてましたっけ?

723 :デフォルトの名無しさん:03/03/15 13:05
VBはWith文使うと明らかに実行速度が変わってきますが、
DelphiだとWith文使っても実行速度が変わらないって本当?


724 :デフォルトの名無しさん:03/03/15 13:08
オーバーヘッドの大きいメソッドの呼び出し回数を減らすような
使い方をすれば速くなるしそうでなければ速くならない。

725 :デフォルトの名無しさん:03/03/15 13:49
>>723
って言うかそんなもん最適化の時点でどっちも同じになると思われ。所詮はレジスタなりメモリなりのアドレスな訳で。

726 :デフォルトの名無しさん:03/03/15 13:59
>>725
そうとも限らない。こんなケースではwithを使うと高速化されるよ。
with HeavyMethod.SlowMethod.HttpDownloadMethod('http://www.borland.com/') do
begin
 Memo1.Lines.Assigned(Strings);
 Memo2.Lines.Assigned(Strings);
end;

727 :デフォルトの名無しさん:03/03/15 14:00
>>722
Open-GL.

728 :デフォルトの名無しさん:03/03/15 14:05
>>726
あ、そのテクニックおいしすぎ。
値欲しいだけなのに変数宣言するの面倒だったりするもんな。

729 :デフォルトの名無しさん:03/03/15 14:14
>>716 が気になる。
何が出るの?


730 :デフォルトの名無しさん:03/03/15 14:23
>値欲しいだけなのに変数宣言するの面倒だったりするもんな。
C#ではこれが理由でwith廃止されてしまったんだよな。
any s = HeavyMethod.SlowMethod.HttpDownloadMethod('http://www.borland.com/');
みたいに型明示しないんならそれでもいいんだけど、そうでないからやっぱり面倒。

>>729
ネタ

731 :デフォルトの名無しさん:03/03/15 15:00
//もっと強引なやり方

with TStringList.Create do
try
    Text := WatchString;
    SaveToFile('DEBUG.TXT');
finally
    Free;
end;

732 :デフォルトの名無しさん:03/03/15 15:01
>>731
感動した。

c := x.Create('hoge').hogehoge();

とかしたい局面って結構あるからね。


733 :イースターエッグ:03/03/15 15:24
Alt + TEAM
Alt + DEVELOPERS
Alt + SASADUKA

734 :デフォルトの名無しさん:03/03/15 15:29
With文は便利なんだが、
デバック時に変数のヲチがめんどくさいのが最大の欠点。

735 :デフォルトの名無しさん:03/03/15 15:39
Japanese Staff
Masahiro Aoki
Takeshi Arisawa
Kayo Chigira
Noriko Kanda
Ken Masuyama
Ken'ichi Nakano
Tetsuo Nishimura
Hiroshi Shimizu
Motohisa Ohono
Miyoko Nishimura
Keiko Kitao
# Service Pack1 #
Masahiro Aoki
Takeshi Arisawa
Ken Masuyama
Mina Matsuchika
Takashi Matsumaru
Ken'ichi Nakano
Tetsuo Nishimura
Hiroshi Shimizu
Motohisa Ohono
Miyoko Nishimura
Keiko Kitao

736 :デフォルトの名無しさん:03/03/15 18:35
>>734
そりゃデバッガの問題のような。といったところで解決するわけでもないけど。
全体的にデバッガ機能が弱いよね。関数の戻り値すら教えてくれないのにはびっくり。

737 :ビギナー:03/03/15 19:47
デルフォイってバージョン6で作ったやつを、
そのままで7でも続きを作ることが出来るんですか?

738 :デフォルトの名無しさん:03/03/15 20:00
>>737
2→3→4→5→6
と引き継いできたアプリがあるよん
俺は7に上げてないけど→7も当然できると思うよん

739 :デフォルトの名無しさん:03/03/15 20:40
>>736

ctrl+F7で普通にできるような

740 :A:03/03/15 22:28
メインのHDDが壊れたのでDelphiを入れなおし…

Indy9.0をサイトから落としてきて、
指示どうりに、Fulld4.bat を実行。D4フォルダができて中にファイルが並ぶ。
コンポーネント-パッケージの追加 で、D4フォルダの dclIndy40.bpl を登録。
パレットにIndyコンポが並ぶ。

試しに、何も無いFormに適当にIndyコンポ(TIdTCPClient)を1つ乗せて
実行してみると、usesのところで、

[致命的エラー] Unit1.pas(7): ファイルが見つかりません : 'SyncObjs'

と出る…検索するとたしかに、そんなファイルは無いらしい。
これって、何?

バージョンは、Delphi4 Standard up3
環境オプションのライブラリパスはD4フォルダを通ってる。

741 :デフォルトの名無しさん:03/03/15 23:33
>>740
Indy 9.0 は Delphi4 std をサポートしてない。
ダウンロードページにも書いてあるだろ。
ちゃんと読め。
http://www.indyproject.org/AnOpenLetterToD4StdUsers.html

742 :A:03/03/16 00:13
>>741
うお。ほんとだ…
D4ができるからすっかり対応してるものだとばかり…
stdだけだめなのね。
8.0落としてくる…

743 :デフォルトの名無しさん:03/03/16 01:28
TTimerコンポについて質問させてください(D7)。

エディットボックスの数値と連動させて、一定間隔であるプロシージャを呼ぶようにしたいのです。
問題は、アプリを起動して、カウントが始まるわけですが、
たとえば、12:00スタートで15分間隔、12:15が次回イベント発生時だったとして
この間、12:10くらいになって、エディットボックスをプラス5した場合、
新たに15+5=20をIntervalにセットしなおすと、12:20ではなくて、12:30にイベント発生が延びてしまう
のではないでしょうか?

次回イベント発生までの残り時間をセットできるプロパティは無いようなのですが・・・どうすれば良いでしょう?
あるいは前回起動時からの経過時間がわかれば、次回までは差分をセットしておいて、その後は新たな値を
フルでセットする・・・という方法も考えたのですが・・・。



744 :デフォルトの名無しさん:03/03/16 01:30
>>743
タイマを2つ使う

いじょ

745 :デフォルトの名無しさん:03/03/16 01:35
>>744
それはもしかして・・・ダイハードで公園の泉の脇にあった2つのボトルを使うパズルみたいな・・・頭を使う仕掛けですか?
漏れでも簡単に思いつきますか?
とりあえず一晩考えてみます。

http://piza2.2ch.net/tech/kako/1001/10010/1001035627.html
の224見つけたんですけど、リンク切れ・・・うぅ

746 :デフォルトの名無しさん:03/03/16 01:40
>>745
元のタイマを一旦眠らせて
もうひとつのタイマに
「次回イベント発生までの残り時間をセット」
しておいて
そのタイマでイベントを発生させつつ
元のタイマを起こしてやるわけでし
これならどんな風にでも使えまし

747 :デフォルトの名無しさん:03/03/16 01:52
>>746
えーーと・・・・うーーん・・・「次回イベント発生までの残り時間」って取得できるんでしたっけ?

タイマーイベントが発生するまでの経過時間を指定するにはInterval プロパティを使う
時間を指定したイベントを停止するにはタイマーコンポーネントのEnabled プロパティをfalse に設定する

使えそうなプロパティはIntervalしか見当たらないんですけど・・・
もしかして起動時から現在時まで差分を求めて、以後毎回イベント発生時にその時刻を変数に入れて
現在時と差分を取る・・・みたいなことをするんですか?



748 :デフォルトの名無しさん:03/03/16 01:58
>>747
何とでもできるでしょ
1分刻みのタイマで時刻を指定するのもよし差分を使うのもよし

要するにエディットボックスの数値が変更されたときにだけ
普段は寝かしてあるもうひとつのタイマを起こして調整するということでし

がんばりませう

749 :デフォルトの名無しさん:03/03/16 02:02
>>748
2つ使うという大ヒントを貰ったので、なんとか今晩がんばってみます。
どうもありがとうございました。m(__)m

750 :デフォルトの名無しさん:03/03/16 03:49
>>743 >>449
エディットボックスの値とIntervalを一緒にしない方法も。
Intervalは1秒(1000)に固定。
変数n:Integerを用意して
タイマーがスタートしたときはn:=0にセット。
でOnTimer()のたびに、nを1増加。
このnが900(15×60)を超えれば15分経過したことになる。
nの値とエディットボックスの値を比較してやればよい。


751 :デフォルトの名無しさん:03/03/16 15:22
タイマー使わないで、プログラムの処理を5秒間止めることって出来ますか?

752 :デフォルトの名無しさん:03/03/16 15:45
手を使わずオナニーすることって出来ますか?

753 :デフォルトの名無しさん:03/03/16 15:48
Sleep(5000)

754 :デフォルトの名無しさん:03/03/16 15:52
>>752
口でも足でも色々方法はありますが、何か?

755 :デフォルトの名無しさん:03/03/16 16:06
>>754
レスありがとうございます。
さっそく試してみます。

756 :デフォルトの名無しさん:03/03/16 16:20
>>753
ありがとうございます

757 :デフォルトの名無しさん:03/03/16 21:05
>>753

行末のセミコロン(;)が抜けてます。

758 :デフォルトの名無しさん :03/03/16 21:17
HTMLの特殊文字を文字に直したりできるコンポーネントはありませんか?

759 :デフォルトの名無しさん:03/03/16 22:47
begin
Sleep(5000)
end;

Compile ok

760 :デフォルトの名無しさん:03/03/16 23:00
>>754
肛門にはどの程度まで指を突っ込めばいいのでしょうか?

761 :デフォルトの名無しさん:03/03/16 23:00
>>758
自分で作ったら?
そんなにむずかしいとは思えないんだけど。

762 :デフォルトの名無しさん:03/03/16 23:02
もしわかる方がいましたら、よろしくお願いします。
環境は Win2000、Delphi 6 Personal です。

メインフォームから開いたサブフォームを、メインフォームのパネルに埋め込んだ状態と
別ウィンドウの状態とで切り替えたかったので、下のような命令を書いてみました。

サブフォーム、埋め込みボタンクリック時
  self.Parent := MainForm.PanelSubForm;
  self.BorderStyle := bsNone;
  self.Align := alClient;

サブフォーム、解除ボタンクリック時
  self.Align := alNone;
  self.BorderStyle := bsSizeable;
  self.Parent := nil;

ところが上手く動く場合と、デスクトップの左上に張り付く場合と、
「コントロール 'SubForm' は親ウィンドウを持っていません.」
のようなエラーが発生する場合とがあって原因がつかめませんでした。
根本的なやり方が間違ってるのでしょうか?

763 :Delフサギコ ◆A6VzDeLphI :03/03/16 23:04
  ∧,,∧  >>758さん
 ミ,,゚Д゚彡 HTMLの特殊文字って
 ミつ日(ミ  どんなものがあるですか?

&hearts;とか?

764 :Delフサギコ ◆A6VzDeLphI :03/03/16 23:19
  ∧,,∧  >>762さん
 ミ,,゚Д゚彡 うちではうまく動いてますよ・
 ミつ日(ミ  D6Up2、WinXPPro
procedure TForm1.FormShow(Sender: TObject);
begin
 Form2.Show;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
 self.Parent := Form1.Panel1;
 self.BorderStyle := bsNone;
 self.Align := alClient;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
 self.Align := alNone;
 self.BorderStyle := bsSizeable;
 self.Parent := nil;
end;


765 :デフォルトの名無しさん:03/03/17 00:08
(´-`)。o ○ (特殊文字ってマジで何のことを言ってるんだろう?
まさか「改行」とか?微妙に気になる…)

766 :762:03/03/17 00:12
>764
レス有り難うございます。
うーん、確かに上手く行く時は上手く行くんですが、既存のプログラムに追加すると
ダメだったり、新規にテストプログラムを作ってみても動いたりダメだったり……。
あと、エラーは出ないんですが状態が変わらないという現象も出ました。
「コントロール 'SubForm' は親ウィンドウを持っていません.」の場合、self.Parentに
セットする部分でそのエラーが起きてました。self.Parentを見たら"nil"だったんですが、
上手く動いてる方も同じく"nil"でした。

やり方としてはこの方法で間違ってなかったのでしょうか?
もしこのまま原因がつかめないようでしたら、代替手段を探してみます。
どうも有り難うございました。

767 :デフォルトの名無しさん :03/03/17 00:44
>>765
http://www.pst.co.jp/Powersoft/html/htmlChar.htm

768 :765:03/03/17 00:54
>>767
ああ、そーゆー意味か。
サンクス。

769 :デフォルトの名無しさん:03/03/17 02:09
こんな深夜、しかも週明けに申し訳ありません。

別スレッドの中で新しくフォームを作成して・・ということをやっているのですが、
実行しても設定したプロパティ通りに表示されません。

自動で作成されたユニットとフォームを見ると、フォームファイル.DFMがあって
そこにプロパティは格納されているようですが、手動でフォームを動的に作成する場合
.DFMファイルの果たす役割はどう処理すればいいのでしょう?


770 :デフォルトの名無しさん:03/03/17 02:21
TForm.CreateNewで作ると.DFMは読まない。
TForm.Createで作れば.DFM(の内容が入ったリソース)を読む。
自分が分かるのはここまでッス。

咳が酷くて眠れない…


771 :デフォルトの名無しさん:03/03/17 03:05
>>770
ありがとうございます!
それがわかっただけでも大きな進歩です。

目の周りがだんだん引きつってきました・・・

772 :デルファイの名無しさん:03/03/17 03:05
喉が痛いお仲間レス。
確かVCLは複数のスレッドからGUIを出せなかった気がします。
GUIスレッドは一本で、そこへ他スレッドがTThread.Synchronizeで同期を取る…みたいな。

773 :デルファイの名無しさん:03/03/17 03:09
あれ?他のスレッドで作成しても、メッセージループをGUIスレッド(メイン)に任せてしまうなら問題無いのかな?
…と、なにかずれたことを言ってる気がする。

774 :デフォルトの名無しさん:03/03/17 06:40
フォームのボーダースタイルをノーンにしたら立体感が損なわれますが、立体感を損なわずにノーンの状態にするにはどうするのが良いのでしょうか

775 :デフォルトの名無しさん:03/03/17 07:15
>>774
立体感を損なわなかったら、ノーンの状態じゃないじゃん。

タイトルバー非表示で、ボーダー付きとかそういう意味なら、
NIFTY SERVE Delphi Users' Forumに載ってるよ。

776 :デフォルトの名無しさん:03/03/17 09:54
>>773
自分が作っているのは、本体を最小化したときに電光掲示板みたいなウインドウで
情報を流すものなのです。ねじまき企画さんのコンポを使っているのですが、
なぜかフォーカスが当たってないとスクロールがぎこちないんですよ。
自分の実装の仕方がまずいのかも知れませんが、フォーカス当てれば滑らかなので
それならスレッド分ければフォーカス当ててるのと同じ効果出るのかなぁと思って。。。

それか、スレッドって通信系みたいなGUIとは関係無いパートにしか使えないのですか?
シンクロメソッドを使った操作は別フォームに対してもできるようですが、それをやると
スレッドにした意味があまり無いと、MLの過去ログに書いてありました。


777 :デフォルトの名無しさん:03/03/17 09:59
>>776
 ぎこちないのは、CPU負荷下げるためにわざとやってるんじゃないの?

そういう動作の為にスレッド別ける設計はあまりよくない
タイマーでそこの部分にInvalidate を発行して
Paint メソッドで再描画させる方がいい。

 まあタイマー内で描画させてもいいけど・・・・

778 :デフォルトの名無しさん:03/03/17 10:07
>>777
そうだったのですか・・・。
教えていただいた方法のほうが私みたいな未熟者でも簡単にコードかけますので
そうしてみます。やはり菊は一時の恥ですね。どうもありがとうございます。m(__)m

779 :デフォルトの名無しさん:03/03/17 11:08
教えて君は死んでも教えて君。

780 :デフォルトの名無しさん:03/03/17 11:51
TClientSocketを使うプログラムを作成しているのですが、
接続が確立できないIPを指定した場合に、
タイムアウトまでの時間が長く、ハングアップしたような感じになってしまいます。
なにか改善方法はありますでしょうか?

781 :デフォルトの名無しさん:03/03/17 12:16
>>780
CreateThread

782 :デフォルトの名無しさん:03/03/17 12:26
>>775
見つかりました。ありがとうございます

783 :デフォルトの名無しさん:03/03/17 14:58
「nil」って無しってことですか?
あと、「nil」と「null」は同じ意味なんですか?

784 :デフォルトの名無しさん:03/03/17 15:00
んだ

785 :デフォルトの名無しさん:03/03/17 15:06
1009

786 :デフォルトの名無しさん:03/03/17 15:33
ノーンってNONE?

787 :デフォルトの名無しさん:03/03/17 15:49
フサギコの中の人は大変でつか?

788 :デフォルトの名無しさん:03/03/17 15:51
馬鹿っ!NONEはノネだろ!

789 :デフォルトの名無しさん:03/03/17 15:53
  ∧_∧
 ( ´∀`)<にるぽ

790 :デフォルトの名無しさん:03/03/17 16:23
>>789
それ前やったけど全然流行らなかったよ・・・頑張れ!

791 :デフォルトの名無しさん:03/03/17 17:48
IndyのidTCPServerって非ブロッキングソケットにできないの?
やり方教えてください
お願いします

792 :デフォルトの名無しさん:03/03/17 17:54
最大化で起動するようにしたらタスクバーをも隠してしまうのはバグですか?

793 :デフォルトの名無しさん:03/03/17 17:58
>>792
お前のな。

794 :デフォルトの名無しさん:03/03/17 17:59
仕様です(ksw

795 :bloom:03/03/17 18:04
http://www.agemasukudasai.com/bloom/

796 :デフォルトの名無しさん :03/03/17 18:28
変数からn行目の文字を取り出すにはどうすればいいんですか?

797 :デフォルトの名無しさん:03/03/17 18:32
>>796
1. どういう変数のことを言いたいのか分からない
2. n行目というからには文字ではなくて文字列ではないのか
以上のように質問に問題があるのだけど

TStrings型の変数aStringsのn行目の文字列ならaStrings[n-1]

798 :デフォルトの名無しさん :03/03/17 18:57
>>797
TStringsではなくて、Stringの行を指定して文字列を取り出すことはできませんか?

799 :デフォルトの名無しさん:03/03/17 19:00
>>798
Stringの行って・・・ナニ?
TStringListやTStringsでなく?

800 :デフォルトの名無しさん:03/03/17 19:03
>>798
function GetLine(s:string;n:integer):string;
begin
 with TStringList.Create do try
  Text:=s;
  Result:=Strings[n];
 finally free;end;
end;


801 :デフォルトの名無しさん:03/03/17 19:03
>>799
改行コードが含まれるString型の変数のことではなかろうか。


802 :デフォルトの名無しさん:03/03/17 19:05
>>801
俺は素直にTStringListのTextに放り込むけどなぁ。

803 :デフォルトの名無しさん :03/03/17 19:05
>>801
そうですそれです。

804 :デフォルトの名無しさん :03/03/17 19:07
>>800
ありがとうございます!

805 :デフォルトの名無しさん:03/03/17 19:14
彼(彼女)はTstringsの使用を潔しとしないのか
それとも使用できないのか


806 :デフォルトの名無しさん :03/03/17 19:23
>>805
後者の方です

807 :デフォルトの名無しさん:03/03/17 19:33
使用できないのに>800の方法はOKなのか?
よくわからん

808 :デフォルトの名無しさん:03/03/17 20:05
PopupMenuをフォームの真ん中にポップアップさせるにはどうすればいいですか?

809 :デフォルトの名無しさん :03/03/17 21:02
>>807
functionは分かるんで>>800さんのでも大丈夫ですよ。

810 :800:03/03/17 21:10
>>800 は 行数が多いときは重い処理だから、軽くするなら
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/uSpliter.txt
を使って

function GetLine(s:string;n:integer):string;
var i:Integer;
begin
  with TStringSpliter.Create(s) do try
   for i:=0 to n-1 do GetSplitStr(#13#10);
   Result:= GetSplitStr(#13#10);
  finally free;end;
end;

とするといい。

811 :デフォルトの名無しさん:03/03/17 21:11
Imagingを使ったビューアを作成しています
画像サイズのことで教えて欲しいのですが、
例えば、解像度200dpi×200dpi・幅1664 高さ2338の画像を
ウインドウに合わせて表示したときの
拡大率が60%のときに、300%まで拡大率を上げて
ウインドウの大きさは全く変えてないとすると
表示されている部分の幅、高さは何ピクセルになるでしょうか?
すれ違いだとは思いますが、質問するところがわからず
delphi使用版なのでここで質問させてもらいます

812 :デフォルトの名無しさん :03/03/17 21:13
>>810
ありがとうございます。ほんと助かりました。

813 :デフォルトの名無しさん:03/03/17 22:01
>811
こんな感じじゃない?適当だけど
//ウインドウサイズ変更
Zoom := 60/100;
ImageWidth := 1664;
WindowWidth := ImageWidth*Zoom;

//ウインドウサイズ固定で画像をズーム
Zoom := 300/100;
PixelPerPixel := 1/Zoom;
VisibleImageWidth := PixelPerPixel*WindowWidth;
//VisibleImageWidthがImageの表示されている部分の実際の幅

814 :デフォルトの名無しさん:03/03/17 23:02
>>813
レス有難うー
いまいちよく解らないけど、サンプル見ながらがんばってみますね^


815 :デフォルトの名無しさん:03/03/18 00:35
>Tstrings

そもそも抽象クラスです。

816 :813:03/03/18 00:49
>814
あ、いちおう言っておくと、>813の変数は何かのプロパティとかじゃなくて、
全部、適当に用意したやつね。

817 :デフォルトの名無しさん:03/03/18 00:57
整数なら/じゃなくてdivじゃない?

818 :デフォルトの名無しさん:03/03/18 00:59
>>815
このあたりのレスで使われている機能はTStringsから継承してるものだから
TStringsでいいんでないの?
実装とはまた別の話

819 :デフォルトの名無しさん:03/03/18 01:04
>817
この場合、整数でdivでやるんじゃなくて、実数型で計算して、
最後にTruncってやらないと、欲しいのと全然違う値になっちゃうと思う。
もっと工夫すれば、整数でも計算できるのかもしれないけど。

820 :デフォルトの名無しさん:03/03/18 04:46
60%にするなら普通にImageWidth * 60 div 100でいいとおもった。

821 :デフォルトの名無しさん:03/03/18 04:59
四捨五入したいなら (ImageWidth * 60 + 50) div 100 かな

822 :デフォルトの名無しさん:03/03/18 05:06
ディヴって何?

823 :デフォルトの名無しさん:03/03/18 05:17
>>822
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%B3%E4%A4%EA%BB%BB&sw=1

824 :デフォルトの名無しさん:03/03/18 09:05
夫人だろ。


825 :デフォルトの名無しさん:03/03/18 09:22
パスカルでもdivを使えるとは知らなかった
逝ってきます

826 :デフォルトの名無しさん:03/03/18 11:41
Edit1に入力した名前をデータベースから検索するのに
“DataSource1.DataSet.Locate('名前',Edit1.Text,[loPartialKey])”
と書いてるのですが、最初の一件しか検索できません。

次の候補を検索させるにはどうすればいいですか?

827 :デフォルトの名無しさん:03/03/18 12:11
          Peal
うーん・・  +Perl
   +Pascal
эlforth


828 :デフォルトの名無しさん:03/03/18 12:23
>>826
最初の一件を見つけるために使うのが Locate だから。
見つかったレコードに移動するだけ。

Filter かけるか Query 出すか。


829 :デフォルトの名無しさん:03/03/18 13:04
マウスジェスチャーのポンコーネントください

830 :826:03/03/18 14:40
>>828
そうですか。(´・ω・`)ショボーン

831 :デフォルトの名無しさん:03/03/18 15:13
>> 830
なんで ショボーン するんだよぉ

Filter セットして FindNext をよびましょ

832 :826:03/03/18 15:58
>>831
Filterって、完全一致でないと駄目なんじゃないですか?
例えば、“名前”に“加藤”を含む加藤一郎、加藤二郎、加藤三郎を
表示させるのは、Filterで出来ます?
部分一致で、検索するかフィルタするかしたいんです。


833 :デフォルトの名無しさん:03/03/18 18:18
TEditで文字列を真ん中や右に揃えられないの?

834 :デフォルトの名無しさん:03/03/18 19:24
>>833
TMemo(だったっけ?)を使うが吉。

835 :検索くらい(略):03/03/18 23:06
>>833
検(略)

836 :デフォルトの名無しさん:03/03/18 23:27
ポート番号がわかりません。
どうやって知ることができますか?

837 :デフォルトの名無しさん:03/03/18 23:29
>>836
どうもこうも。

838 :デフォルトの名無しさん:03/03/19 00:14
>>836
ライブラリは何使ってるの?


839 :デフォルトの名無しさん:03/03/19 00:49
>>836
ポートスキャンしてください。

840 :デフォルトの名無しさん :03/03/19 00:51
タイ━━━━||Φ|(|´|Д|`|)|Φ||━━━━ホ!!

841 :デフォルトの名無しさん:03/03/19 01:17
>>832
最近はSQLばっかでフィルター使ってないんだけど・・・
OnFilterRecordの中で
Accept:=(AnsiPos('加藤', フィールド名.Value)>0);
みたいにすればいいんでないのけ

842 :デフォルトの名無しさん:03/03/19 05:15
スレッドってfunctionとして定義できますか?
例を見てみるとprocedureとして書いてあるのだけなんですけど・・

843 :デフォルトの名無しさん:03/03/19 06:36
MicrosoftとBorland、共同でDelphi.NET開発中だそうだ。

844 :デフォルトの名無しさん:03/03/19 08:43
>>842
と、言うか素直にTThread使った方がよく無くないですtか?

845 :826:03/03/19 08:53
>>841
ありがdございます、できますた!
よかったら、後学のためにSQLでの書き方も教えてもらえないですか?
ヒントだけでも。

846 :デフォルトの名無しさん:03/03/19 09:00
>>842
 スレッドって API で直接実行する方法の場合は
   int型の帰り値を持たせてる方法と
  ExitThreadで終らせる方法があるから

前者の方法を使うなら function でなくちゃ


847 :デフォルトの名無しさん:03/03/19 10:29
>>845
DBによってまちまちで
 SQL-Server:CONTAINS、FREETEXT(CONTAINSTABLE、FREETEXTTABLE)
 Oracle:INSTR、INSTRB
 Firebird(InterBase):CONTAINING
をそれぞれWHERE句で使うんでないかい(SQL-Serverの括弧内はFROM句)
・・・Firebird以外は自信なし

お使いのDBで調べてくさい

848 :826:03/03/19 10:56
>>847
分かりました。ありがdございますた。

849 :デフォルトの名無しさん:03/03/19 13:20
>>843
ソースは?

850 :オシエテちゃん:03/03/19 13:21
HyperCardのwin版ってないのでしょうか?
お願い!詳しい人教えてくださいな!

851 :デフォルトの名無しさん :03/03/19 15:21
>>849
ワロタw

852 :デフォルトの名無しさん:03/03/19 15:29
>>850
ばーか

853 :842:03/03/19 20:29
日本語になってませんでした。すみません。
やろうとしていたことは、WinAPI使ってURIデータを送受信する部分のスレッド化だったのですが
実装してみたら使えませんでした。もうお分かりかと思いますが、データが返ってくる前にそのデータを
待ち受けているべきメインスレッドが先に進行してしまって・・・(笑
>>844
TThreadは使っていたのです。それのexecuteをprocedureではなくfunctionとして書きました。
(それ自体は成功しました)

>>846
APIを使う方法は試してません。そこまで力無いです。

ありがとうございました。



854 :デフォルトの名無しさん:03/03/19 21:15
StringGridで列単位に入力を制限する方法って
ありますか?

855 :デフォルトの名無しさん:03/03/19 22:37
>853
TThread.OnTerminateイベント使ったら?

856 :デフォルトの名無しさん:03/03/19 22:37
jconvertってもう落とせないのでせうか…

857 :デフォルトの名無しさん:03/03/19 22:39
>>856
ワラタ

858 :デフォルトの名無しさん:03/03/19 22:46
>>849
1年前の情報なら発見
http://ascii24.com/news/i/topi/article/2002/05/21/635897-000.html

859 :842:03/03/19 23:11
>>855
それも実装してみたのですが・・・
とにかくスレッド化してしまうと、スレッドを分けた分岐点から処理が先に進行してしまう・・・
あ、そうか、OnTerminateの部分にメインスレッドの先を書けばいいのか・・・あぁ、どうしてそれに
気付かなかったのだらう・・・あのユニットもう消しちゃったよ・・・うぅ


860 :デフォルトの名無しさん:03/03/19 23:27
>>854
特定の列だけ入力できないようにしたいって話なら、
OnSelectCellでOptionsにgoEditingを付けたり外したり。
EditorModeも変える必要があったかもしれん。

861 :デフォルトの名無しさん:03/03/20 10:51
>>860
それやったんだけど
goAlwaysShowEditorをTrueにしてる場合だと
たまに入力できる状態になったりする。
マウスをドラッグした時とか・・・



862 :854:03/03/20 11:58
>>861
MouseUpとKeyUpでgoAlwaysShowEditorを変更するようにしたら
できました。

863 :デフォルトの名無しさん:03/03/20 14:49
procedure TFormMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if MessageDlg('終了しても良いですか?', mtConfirmation,[mbOK, mbCancel], 0) = mrOK then begin
Exit;
end;
end;

こんな感じでやってみましたが、キャンセル押しても終了されてしまいました。
キャンセル押したときに、終了を無効化できることはできないんですか?

864 :863:03/03/20 14:59
解決しました

865 :デフォルトの名無しさん:03/03/20 15:29
FindFirst関数で使うfaArchiveとはどういうファイルのことなんですか?

866 :デフォルトの名無しさん:03/03/20 15:45
>>865
http://www.google.co.jp/search?num=100&hl=ja&inlang=ja&ie=Shift_JIS&c2coff=1&q=attribute+archive%91%AE%90%AB&lr=lang_ja

867 :デフォルトの名無しさん:03/03/20 16:48
ツールバーコンポのように設計時にボタンを追加したくてTComponentEditorをいじってるんですが、
ExecuteVerbでTButton.Create(Component).parent := TPanel(Component)
としても追加はできてもプロパティの変更等ができません。
どうしたらよいでしょうか?


868 :ねこま:03/03/20 21:50
>>867
IFormDesigner.Edit


869 :デフォルトの名無しさん :03/03/20 23:35
戦争反対!!戦争反対!!戦争反対!!戦争反対!!戦争反対!!
戦争反対!!戦争反対!!戦争反対!!戦争反対!!戦争反対!!
戦争反対!!戦争反対!!戦争反対!!戦争反対!!戦争反対!!
戦争反対!!戦争反対!!戦争反対!!戦争反対!!戦争反対!!
戦争反対!!戦争反対!!戦争反対!!戦争反対!!戦争反対!!

870 :A:03/03/21 01:54
TTreeViewについて質問

ツリーを作ることはできるのですが、特定のノードへアクセスできません。

例えばルート(レベル1?)の3番目の5段目ノード(レベル5?)にアクセスするとか
複雑に枝分かれしたある場所のノードへアクセスするのがさっぱり。

871 :デフォルトの名無しさん:03/03/21 02:05
teditor でハイフンと半角英字の混ざった単語を色分けするにはどうすればいいでしょう。
a-b、みたいなやつを別色にしたいのですが…

872 :デフォルトの名無しさん:03/03/21 02:53
>870
TTreeNode.Itemプロパティとか、これらのメソッドとかを使えば、きっとなんとかなる。
getFirstChild GetLastChild GetNext GetNextChild
getNextSibling GetNextVisible GetPrev GetPrevChild
getPrevSibling GetPrevVisible
とりあえずヘルプをよく読むことをお奨めする。

873 :A:03/03/21 10:52
aaa

874 :デフォルトの名無しさん:03/03/21 11:16
>>872
つうかDOMじゃん。

875 :デフォルトの名無しさん:03/03/21 11:23
ZAKUじゃん

876 :デフォルトの名無しさん:03/03/21 12:59
MIDIキーボードからの入力を受け取るにはどうすればいいんですかね?

877 :しったかてふてふ◎三(゜д゜ ) ◆1xsES22i66 :03/03/21 13:09
>>876
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=mmsystem.h+midi+in&lr=lang_ja

878 :デフォルトの名無しさん:03/03/21 16:16
アイコン変えたら、元に戻せなくなりました。
あの新規プロジェクトの時に付いてるアイコンは一体どこにあるのですか?

879 :デフォルトの名無しさん:03/03/21 16:39
Delphi32.exe

880 :デフォルトの名無しさん:03/03/21 17:11
メモリの解放っていつやればいいんですか?

881 :デフォルトの名無しさん:03/03/21 17:25
要らなくなった時

882 :デフォルトの名無しさん:03/03/21 20:26
>>880
OSにまかせちゃえ

883 :デフォルトの名無しさん:03/03/21 20:57
>>882
GC搭載してるOSってなんかあったっけか?

884 :デフォルトの名無しさん:03/03/21 21:01
プロセス終了時に開放するって意味だろう。

885 :デフォルトの名無しさん:03/03/21 22:37

TCharFormat、TCharRange ってどのunitにはいっていますか?


886 :デフォルトの名無しさん:03/03/22 00:29
>>885
プッチモニ。


……すまん。

887 :デフォルトの名無しさん:03/03/22 00:31
>>886
ミニモニ。に謝れ。

888 :デフォルトの名無しさん:03/03/22 01:17
>>886-887
モーヲタキショイ

>>885
メロン記念日

889 :デフォルトの名無しさん:03/03/22 01:58
教授!メニューバーの項目を右寄せする方法教えてください

890 :デフォルトの名無しさん:03/03/22 02:03
教授て誰?
天才柳沢?
チャールズ・エグゼビア?

891 :デフォルトの名無しさん:03/03/22 02:29
>>889
しなくていいです。そんなことしてるソフトは絶滅危惧種です。

892 :889:03/03/22 03:22
やっぱDelphiじゃ出来るわけ無いか

893 :デフォルトの名無しさん:03/03/22 04:22
・・・・・んぁ?

894 :デフォルトの名無しさん:03/03/22 06:24
勘違いされてるようなんで一応書いておくと、
インターネットエクスプローラのようにメニューバーの右端にマークを付けたいだけです

895 :Delphi初心者:03/03/22 11:21
Delphiでは主に何が作れるのですか?ほかの言語に比べて、作りやすいですか?

896 :デフォルトの名無しさん:03/03/22 11:26
Windowsのプログラムが作れます。慣れれば作りやすいです。

897 :Delphi初心者:03/03/22 11:31
.exeファイルも作れますか?

898 :デフォルトの名無しさん:03/03/22 11:31
Q1 Delphiでは主に何が作れるのですか
 いわゆるWindows アプリ全般
 無料のものでも外部コンポーネントを使えばクライアントアプリも作れる
 お金を出せば
 ActiveXもつくれるし
 イントラサーバ側や、データベースを利用したアプリも簡単に作れる

Q2 ほかの言語に比べて、作りやすいですか?
 作りやすいかどうかは他人には判らない
 文法はシンプルで厳格かつ柔軟
 応用力のある人には覚える事が少なく楽だろう。
 キー打鍵数は比較的多い方だろう
 コンポーネントを使ったVBに似たお手軽プログラミングも可能。
 ただ、VBと違って、学ぶ姿勢があれば、
 構造化スタイルからオブジェクト指向まで容易に習得出来る。


899 :デフォルトの名無しさん:03/03/22 11:33
>>897
 32bitWindows用の Exe 又は DLLが作れます
 お金を出せば NTサービスも作れるそうです

900 :Delphi初心者:03/03/22 11:35
レス有り難うございました。ところで、みなさんはDelphiを使っているのですか?

901 :デフォルトの名無しさん:03/03/22 11:37
Delphi自体には不満が無いが、ボーランドジャパンの弱体化ぶりが
気になる昨今。(開発者は英語力鍛えとけよ・・・って事で。)

902 :デフォルトの名無しさん:03/03/22 12:59
>>899
タダのやつを使ってもAPI使えばNTサービスも作れるよ。
NTサービスは、それほど難しくない。


903 :デフォルトの名無しさん:03/03/22 13:14
>>894
CoolBarじゃねえかドルァ

904 :デフォルトの名無しさん:03/03/22 13:25
ただし情報が少なすぎてプログラミング自体初心者は他言語より苦労します

905 :デフォルトの名無しさん:03/03/22 13:53
>>904
インターネットが普通に検索できる人間なら別に問題なし。
教えて君にならずに自分で何でもやってみることだな。

906 :デフォルトの名無しさん:03/03/22 13:54
後、Cも平行して覚えればAPIに関しては何の心配もいらないと思われ。


907 :デフォルトの名無しさん:03/03/22 14:18
>>904
むしろ自分で情報探さなきゃいけない分、
ほかの言語より厨房度は低いような・・・

908 :デフォルトの名無しさん:03/03/22 14:32
>>906
Cも平行して覚えられるのなら、厨とかその程度のレベルには居ない資質の人間かと思われ。

909 :デフォルトの名無しさん:03/03/22 14:36
>>908
お褒めにあずかり光栄ですw

910 :デフォルトの名無しさん:03/03/22 14:46
最後に触った言語はQuickBasicでその前がファミリーベーシックだ…。

911 :デフォルトの名無しさん:03/03/22 14:55
>>910
VBにいかずにDelphiにしようと思ったのは如何に?
DelphiはBASICじゃないぜ?

912 :デフォルトの名無しさん:03/03/22 15:01
>>911
QuickBASICのBASICではないが。それ以前にVBもBASICじゃないだろ。もはや。

913 :デフォルトの名無しさん:03/03/22 15:22
Delphiのtryとexceptで例外を処理するときに、
どのメソッドがどんな例外を発生するかどうやって調べれば良いんでしょうか?
Javaのようにコンパイラが教えてくれたり、リファレンスに書いてないので分からないんです。

914 :デフォルトの名無しさん:03/03/22 15:23
>>913
ヘルプに載ってますけど。

915 :913:03/03/22 15:32
>>914
ヘルプってVCLリファレンスのことですか?
それとも別の物?
たとえばTStringsのSaveToFileメソッドを使ったときに、
起こり得る例外などリファレンスのどこを見ればいいんですか?

916 :デフォルトの名無しさん:03/03/22 15:34
>>915
書いてない->投げない



917 :デフォルトの名無しさん:03/03/22 15:42
>>916
アフォ

>>915
書いていない例外は経験と勘と後付のエラー対応とVCLソース解析で対処。

918 :デフォルトの名無しさん:03/03/22 15:43
>>917
あふぉと言われたので荒らすことにします。

























919 :デフォルトの名無しさん:03/03/22 15:43
 




                                               
             



                                






                                   procedure

920 :tantei:03/03/22 15:46
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 直通  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  hentaimtt@k9.dion.ne.jp
   グローバル探偵事務局 



921 :910:03/03/22 16:27
>>911
なんとなくカコイイから…じゃ駄目ですか?
もうDelphi7Pro買ってきちゃったよう・゚・(ノД`)・゚・。

922 :デフォルトの名無しさん:03/03/22 16:45
Delphiの説明がされているお勧めのHPってありますか?

923 :デフォルトの名無しさん:03/03/22 16:49
>>922
http://www.inprise.com

924 :デフォルトの名無しさん:03/03/22 16:50
>>923
ありがとうございます

925 :デフォルトの名無しさん:03/03/22 16:51
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D

926 :デフォルトの名無しさん:03/03/22 16:54
>>925
おぉーありがとうございます。

927 :デフォルトの名無しさん:03/03/22 17:13
某日だけinpriseのドメインが通らないのは某日のやる気の無さと考えてよろしいですか?

928 :デフォルトの名無しさん:03/03/22 19:03
>>927
.co.jp を持てるのはは1企業1ドメインのみ

929 :デフォルトの名無しさん:03/03/22 23:39
D6Perでまともに使えるウェブブラウザコンポありませんか?

930 :デフォルトの名無しさん:03/03/22 23:41
>929
TEmbeddedWB

931 :パソナラー:03/03/23 00:57
始めた理由:タダだったから。

>>930
外人さんのコンポって、たとえフリーでもちょっと敬遠しちゃうな…。
embeddedwbって素晴らしいコンポーネントだと思うけど、
「タダ!利用して配布してもタダ!文句言わないよ!勝手に使ってね♥」
ってでっかく書いといてくんないかなぁ(^^;。
利用規約がどのあたりに書いてあるのかよく分からない…。

932 :デフォルトの名無しさん:03/03/23 00:58
アリガd

933 :デフォルトの名無しさん:03/03/23 01:01
日本産のUIWebBrowserより便利だコレ

934 :デフォルトの名無しさん:03/03/23 03:20
DelphiでP2Pアプリを組みたいんですが、どこかにサンプルみたいなのありませんか?
タダ版のServerSocketを使うやつでいいんだろうか…


935 :デフォルトの名無しさん:03/03/23 03:57
Indy使え

936 :デフォルトの名無しさん:03/03/23 06:41
テキストで計算結果を文字列の最後に追加したいです

商品 個数 合計
100  5
200  3
150  3
これを元に以下のように

商品 個数 合計
100  5  500 
200  3  600
150  3  450

という風に出来ますか




937 :デフォルトの名無しさん:03/03/23 06:48
バイナリデータをファイルに書き出したいのですが、どのようにすればいいのでしょうか?

HEX表示で 01 23 45 67 89 AB CD EF みたいなデータがあるとして

BinDate := IntToHex( $0123456789ABCDEF )
AssignFile(BIN, 'bindata.bin');
ReWrite(BIN);
Write(BIN, BinData);
CloseFile(BIN);

みたいなことをしたのですが、HEX文字列がそのままテキスト形式で出てきただけでした。


938 :デフォルトの名無しさん:03/03/23 06:51
>>936
出来ます

939 :デフォルトの名無しさん:03/03/23 06:52
>>936
出来ます

940 :デフォルトの名無しさん:03/03/23 07:08
どういう風にすればよいのでしょうか

TStringList[0]に商品 個数 合計として
TStringList[1]に100 5 
配列に入れて合計を出します。これは出来るのですが

その後TStringList[1]に追加する方法が分かりません




941 :????:03/03/23 08:29
IntToStr(合計値)

942 :デフォルトの名無しさん:03/03/23 08:55
DataLirt:TStringList
として

DataList.String[1]:=DataList.String[1]+','+IntToStr(合計値)
はできるのですが、合計値をループまわして皆に入れようとすると
エラーがでます


943 :デフォルトの名無しさん:03/03/23 10:39
>>942
for i := 0 to list.count - 1 do

944 :デフォルトの名無しさん:03/03/23 15:51
for i:=0 to 0 do
と1回まわす分にはいけるのですが

for i:=0 to 1 do
とするとだめです

945 :デフォルトの名無しさん:03/03/23 15:53
>>944
絶対インスタンス作ってないに一票。

946 :デフォルトの名無しさん:03/03/23 15:57
関係するソースを全部さらせ。

947 :デフォルトの名無しさん:03/03/23 16:00
>>946
VCLのソースが転載されるに8スレッド

948 :デル:03/03/23 17:20
テキストデータやCSVデータをエクセルの様に色々計算させたいのですが
TStringGridを使えば出来るのはわかるのですが、これはフォーム上に
STringGridを置いて使うものなのでしょうか?

データを配列に入れて、計算した結果を列を追加していきたいのですが、
掲示板でサンプルを探しているのですがなかなかありません。

STringGridの良いサンプルがあれば教えてほしいのですが
デルファイ歴 1週間です

949 :デフォルトの名無しさん:03/03/23 21:09
>デルファイ歴 1週間です
まだ質問するにも早すぎるな。

950 :デル:03/03/23 21:11
まあそういわずに

951 :デフォルトの名無しさん:03/03/23 21:30
>>948
Excelのように使うのは無理だが(計算機能がないから)、
CellsプロパティにIntToStrで値を入れてやるってのが普通かなぁ。

952 :デフォルトの名無しさん:03/03/23 21:53
Delphi中毒(末期)の漏れが言うのもなんだけど、何事も適材適所。
セルの計算がしたいだけならExcelで組むのがいいとおもうよ。

新人さんにこそよくよく聞いて欲しいんだけど、どの設計方針で組むのが
一番コストがかからないのか、組み始める前にじっくり考える癖をつけて欲しい。

それでもDelphiにしたいならまた来てよ。そのときは歓迎するよ。

953 :デル:03/03/23 22:06
Excelは遅いからDelphiにするんですけど

Excelで1つのファイルのデータを貼り付けて計算して結果出すのに
30秒から1分かかります。4000ものファイルを計算させるととんでもない
ことになります。

最初に作ったのは1つのファイルのデータを4000のファイルに振り分けるものです
Excelでは40分から50分かかります。
delphiでは25秒でした。

Excelはファイルオープン、クローズに時間がかかります。
だからDelphiにするのですが、いけませんか?

954 :デフォルトの名無しさん:03/03/23 22:38
>>953
だからと言ってプログラミング歴1週間ではいかんともしがたいぞ。

955 :デル:03/03/23 22:53
そうですね。
一応サンプル探してCSVのデータの4列めと5列めをたして、6列めに
書くコードを作って見ましたが、エラーが出ます

procedure TForm1.Button1Click(Sender: TObject);
var
d: array[0..14] of string;
o: array[0..14] of string;
h: array[0..14] of string;
l: array[0..14] of string;
c: array[0..14] of string;
k: Integer;
StringList1:TStringList;
string_a_line:WideString;
// 2バイト文字を正確に扱うために、WideString とした
i,j:Integer;
begin
// テキストファイルからデータを読み取る作業
StringList1:=TStringList.Create;
try
StringList1.LoadFromFile('C:\test\test.csv');
for i:=1 to StringList1.Count-1 do
begin
string_a_line:=StringList1.Strings[i];
// 1行分を取り出します。
j:=Pos(',',string_a_line);
// カンマの位置を見つけ
d[i]:=Copy(string_a_line,1,j-1);
// カンマの前までの文字列を読み込み、配列に代入
string_a_line:=Copy(string_a_line,j+1,length(string_a_line));
// 最初のカンマの次の文字以降を新たな string_a_line とする
// 以下は同等の処理の繰り返し

956 :デル:03/03/23 22:54
j:=Pos(',',string_a_line);
o[i]:=Copy(string_a_line,1,j-1);
string_a_line:=Copy(string_a_line,j+1,length(string_a_line));
j:=Pos(',',string_a_line);
h[i]:=Copy(string_a_line,1,j-1);
string_a_line:=Copy(string_a_line,j+1,length(string_a_line));
j:=Pos(',',string_a_line);
l[i]:=string_a_line;
string_a_line:=Copy(string_a_line,j+1,length(string_a_line));
c[i]:=string_a_line;
if i=14 then // 配列変数のすべてにデータが入ったら
break;
end;
finally
StringList1.Free;
end;
try
for i :=1 to StringList1.Count-1 do
begin
k:=StrToInt(l[i])+StrToInt(c[i]);
StringList1.Strings[i]:=StringList1.Strings[i]+','+IntToStr(k);
end;
StringList1.SaveToFile('C:\test\test.csv');
finally
StringList1.Free;
end;
ShowMessage('終了しました');
end;
end.

957 :デフォルトの名無しさん:03/03/23 23:49
どのようなエラーが出たのかを書けないと意味ないね

958 :デフォルトの名無しさん:03/03/24 00:21
Imageコンポーネントにあるpictureを消す場合って、単純に
> Image.picture := nil
で良いのでしょうか?

試しに、Image1.picture:=nil;
if (Image1.picture=nil) then showmessage('ほげ'); ってやってみても何も出てこなかったのが
非常に気になっているのですが・・・。

959 :デフォルトの名無しさん:03/03/24 00:23
>>958
きっとメモリリーク起こしてます。


960 :デフォルトの名無しさん:03/03/24 00:25
Image1.picture=nil ←これいくない。
Not Assigned(Image1.picture)←こちらを奨める

理由はヘルプ嫁

961 :デフォルトの名無しさん:03/03/24 00:30
try‥finallyの使い方間違ってますし、
数値に変換するのに2バイト文字というのは意味不明。

962 :デフォルトの名無しさん:03/03/24 01:37
CommaTextでも使え。

963 :デフォルトの名無しさん:03/03/24 02:06
クラスAとクラスBがあって、
クラスAのメンバにクラスBのオブジェクトを宣言して
クラスBのメンバにクラスAのオブジェクトを宣言するにはどうしたらいいのでしょうか?

A = class
private
    bbb:    B;
end;

B = class
private
    aaa:    A;
end;

こんな感じですがクラスAを宣言する時にクラスBが定義されていないので
エラーになってしまうのですが、どうすればよいのでしょうか?


964 :デフォルトの名無しさん:03/03/24 02:15
Aを宣言する前に
B = class;
とforward宣言しておく。

965 :デフォルトの名無しさん:03/03/24 02:17
>>958
.visible := False;

966 :デフォルトの名無しさん:03/03/24 02:22
>>964
ありがとうございました
また1つ勉強になりました。

967 :デル:03/03/24 06:34
>>957

デバッガ例外が発生
EAccessViolationクラスの例外を生成しました。
アドレス00000000でアドレス00000000に対する読み込み違反がおきました。

です


968 :デフォルトの名無しさん:03/03/24 08:15
つーか1週間やっただけでExcel越えようと思うのは妄想が激しすぎると思ふ。

969 :デフォルトの名無しさん:03/03/24 08:48
>>968
なんでもやり始めというのは壮大な夢を持つものさ。特にプログラミングは。
プロと同じツールを使うわけだからね。

だからと言って、他人を巻き込むなと言いたいわけで。

970 :デフォルトの名無しさん:03/03/24 09:13
むか〜しD3Professionalを使って、Paradoxのデータベースのアプリをかじった
のですが、再び始めようと思ってます。

無償配布のD6PersonalはD3proのDataAccessやDataControlsのような機能が
ないようなんですが、やっぱり有料版を使わないと駄目なんでしょうか。
Borlandのサイトではデータベース機能を利用するにはProfessionalでないと
駄目みたいなことが書いてあるんですが、他にやり方とかあるんでしょうか。


971 :デフォルトの名無しさん:03/03/24 10:35
>>959-960
ありがとうございます。ポインタが無効な場合が・・・なるほど。

procedure TForm1.FormCreate(Sender: TObject);
begin
 Image1.picture.LoadFromFile('test.bmp');
  if assigned(Image1.picture) then showmessage('hoge1');
 Image1.picture:=nil;
  if assigned(Image1.picture) then showmessage('hoge2');
end;

で、試しにFormにImageをひとつだけ置いてこうやってみたんですが、
何故か、両方のダイアログが出現・・・Form上ではpictureは消えてるんですが・・・。(ノД`)?

972 :デフォルトの名無しさん:03/03/24 12:31
バイナリファイルにテキストデータを付け加えたいのですが

AssignFile(f, 'test.txt');
Append(f);
Write(f, textdata);

で行なうと、以前書き込んだバイナリデータの上に上書きしてしまいます。
つまり、appendを使ってもファイル末尾に書き込んでくれないのですが
どうすればいいのでしょうか?
ヘルプを読むと、末尾128バイト以内に云々と書いてありますが・・

973 :デル:03/03/24 12:36
>>969

>だからと言って、他人を巻き込むなと言いたいわけで。
じゃあでてくるなよ

最初は誰でも素人
デルファイが伸びないのは、あなたのような人がいるからかもしれないね



974 :デフォルトの名無しさん:03/03/24 13:04
>>971
Picture.FreeとしないとAssignedではFALSEにならんよ

Image1.Picture.Graphic.Assign(nil);
if Image1.Picture.Graphic.Empty then
としてみてはどう?


975 :デフォルトの名無しさん:03/03/24 13:06
>>972
Append は ctrl+Z の後に追加するのでそうなります。

TFileStream を使って、書き込みポインタを最後にもってきてから書くといい

976 :デフォルトの名無しさん:03/03/24 13:25
>>975
はい、チャレンジしてみます。ありがとうございました。

977 :デフォルトの名無しさん:03/03/24 13:30
>>975
・・ってバイナリデータの書き込みの際にTFileStreamは使っているので
それをそのまま使ってみます。

WriteBufferでバイナリデータは書いていますが、
テキストデータの場合、どうすれば書き込めますか?
var
TextData: string;
FileStream: TFileStream;
である場合、どうなるのですか?

FileStream.WriteBuffer(TextData, length(TextData));

ではうまき行きませんでした。



978 :デフォルトの名無しさん:03/03/24 14:25
>977
FileStream.WriteBuffer(TextData[1], Length(TextData));

979 :デフォルトの名無しさん:03/03/24 14:26
次スレどこ〜?

980 :デフォルトの名無しさん:03/03/24 14:41
>>978
そんなことだったのですかぁ・・・・あああ
全然理解していなかった私・・・
どうもありがとうございました。m(__)m

981 :デフォルトの名無しさん:03/03/24 14:55
>>963-964
後方参照できないところがC言語にちょっとだけ似ていないこともない。

982 :デフォルトの名無しさん:03/03/24 20:07
>>981
PascalとCはいとこみたいなもの(Pascalの方がちょっと年上)

983 :デフォルトの名無しさん:03/03/24 21:48
TActionListって何のために使うんですか?

984 :デフォルトの名無しさん:03/03/24 21:59
>>983
メインメニュー、ポップアップメニュー、ボタン
などで共通の動作をさせるときに一元管理できるようにしたもの
(分類して管理できる)

だけどメニューのキャプションとボタンのキャプションは同一ではないので
結局思ったほど便利じゃなかった罠

985 :デフォルトの名無しさん:03/03/24 22:52
ActionList使ってみたけど、あんまし使いかってよくなかったな。
へんてこなコンポいらんから新しいhファイルの変換して素早く公開するくらいのことしてほしい。

986 :デフォルトの名無しさん:03/03/24 23:13
Action/ActionListのメリットが理解できない奴は抽象的な思考に不自由な奴が多い。

987 :デフォルトの名無しさん:03/03/24 23:43
TStreamクラスとその派生クラスのWriteメソッドとWriteBufferメソッドはどう違うの?
何か使い分けとかあるの?

988 :デフォルトの名無しさん:03/03/25 00:22
>>987
Writeメソッドは抽象オブジェクトなので、
派生オブジェクト上でWriteを使って必ず同じ動作をするとは限らない。
素直にWriteBuffer使っておけ。

989 :デフォルトの名無しさん:03/03/25 03:25
ウンコンポは要らない!

990 :デフォルトの名無しさん:03/03/25 11:16
>>989をラッピングしてみたんですが・・・いらないですね。

991 :デフォルトの名無しさん:03/03/25 12:13
DelphiのIDEのように
上のMenuを隠さないような最大化を
実現するにはどうするのでしょう?

大きさはTSizeConstraintsで制御出るようですが
X,Y座標の設定をどうするのか悩んでいます

よろしくお願いします。

992 :デフォルトの名無しさん:03/03/25 12:53
>>991
ウインドウメッセージ取るとか、タスクバー領域に指定しちゃうとか。

993 :デフォルトの名無しさん:03/03/25 13:12
>>992
すみません。
私の技量が足りなくて、言葉だけの説明だけでは
理解できません・・・

現在、上にメニュー。下にワークフォームを用意しています
タスクバー領域に指定とは
上のメニューをOSにタスクバーと認識させると言った解釈で
よろしいのでしょうか?

994 :デフォルトの名無しさん:03/03/25 13:14
ステップ実行し、変数ウォッチすればわかる。

995 :デフォルトの名無しさん:03/03/25 14:23
WM_GETMINMAXINFO メッセージを処理するメソッドを定義して、
ウィンドウの位置を調整する。
D6 以降なら、{Public 宣言} の真下あたりで Ctrl-Space 押して wmgetmin って打つと
"procedure WM_GETMINMAXINFO...." ってのが出てくる。これをリターンで確定すると
WMGetMinMaxInfo メソッドが定義されるから、Shift-Ctrl-C でクラス定義を補完。

実装部分に、たとえば
 Message.MinMaxInfo.ptMaxSize := 600;
って打つと、最大化ボタンを押しても幅 600 どっとになる。

996 :デフォルトの名無しさん:03/03/25 14:54
>>995
これもわかりやすい説明をしてくれるなんて
涙が出そうです(質問してよかった・・・)
ありがとうございます!!

早速やってみると
MainFormの指定(下記のソースでY座標に当たる部分)では
うまくいきました

しかしその後オブジェクトインスペクタの様なメニューも欲しかったので
左に新しいFormを作成することにしました。
しばらくの作業後、Formもできました(ToolForm)。
WorkFormの最大化制御コードを拡張しようと
教えて頂いた事を元に以下のように書きました

procedure TfrmSDIWork.WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo);
var
 MaxPoint :TPoint;
begin
 //ToolFormのレフトと幅を加えたものをX座標に
 MaxPoint.X := frmSDITool.Left + frmSDITool.Width; //Err...
 //MenuFormのトップと高さを加えたものをY座標に
 MaxPoint.Y := frmSDIMenu.Top + frmSDIMenu.Height; //OK!!
 Message.MinMaxInfo.ptMaxPosition := MaxPoint;
end;

997 :デフォルトの名無しさん:03/03/25 14:55
続き

このソースでは
MaxPoint.Y := frmSDIMenu.Top + frmSDIMenu.Height;の部分では
うまくいくものの
X座標指定の
MaxPoint.X := frmSDITool.Left + frmSDITool.Width; //Err...
でエラーが出ます

どうやらToolForm = nilの様なのですが(Assignedで調べました)
このWorkFormを作成するときには既にToolFormは存在しています

何か見落としている点がありませすでしょうか?

998 :987:03/03/25 15:45
>> 988
サンクスです。

999 :991:03/03/25 15:50
自己解決しました

どうやら原因はfrmSDIToolLeftの変数を使って
インスタンスを作成していませんでした

お騒がせしてすみませんでした

1000 :デフォルトの名無しさん:03/03/25 16:10
1000!

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

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

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)