トップページ⇒tech
1001コメント297KB

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

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

モナーの *やさしい* 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
0003一応貼っとくNGNG
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/
0004デフォルトの名無しさんNGNG
そうきたか。お疲れ。
0005デフォルトの名無しさんNGNG
乙
0006デフォルトの名無しさんNGNG
>>1
Delフサギコの中の人も大変だな
0007デフォルトの名無しさんNGNG
まぁ、がんがってくれ
0008デフォルトの名無しさんNGNG
>Delモナー殉職

ワラタ
0009デフォルトの名無しさんNGNG
本当の初心者で何からやればいいか解らない。って人は、
とりあえず>>3を見てください。
リンクに初心者向けのサイトがあります。
0010デフォルトの名無しさんNGNG
げ、フサギコかよ。最悪。
0011デフォルトの名無しさんNGNG
>>9
あれじゃわかりづらいだろ。もうちょっと整理してくれよ。
0012ネタNGNG
>>9
フロントページで作ってるHPかよ!と思ったのはオレだけ?
0013デフォルトの名無しさん NGNG
Webbrowserに表示されているHTMLソースを得るにはどうすればいいのですか?
0014デフォルトの名無しさんNGNG
>>13
右クリック>ソースの表示
0015デフォルトの名無しさんNGNG
Delphiってwebとデータのやりとりってできるの?
0016デフォルトの名無しさんNGNG
>>15
proなら少し、Entなら沢山できそうです
0017デフォルトの名無しさんNGNG
トリップがないので偽物
001815NGNG
パーソナルじゃ駄目なのかぁ。・゚つД`)゚・。
0019デフォルトの名無しさんNGNG
パーソナルでもダメって事はないけど、パーソナルで苦労するより .NET かな
0020デフォルトの名無しさんNGNG
CGイラネ
0021デフォルトの名無しさんNGNG
F9で実行してからdelphiを終了すると
「delphi32が原因でKERNEL32.DLLにエラーが発生しました」
と必ず出ます。
ただdelphiを起動して終了した場合は出ないのですが、
最近delphiをはじめたばっかりなので
まったく理由がわかりません。
何故でしょう?
0022デフォルトの名無しさんNGNG
モジュール'USER32.DLL'のアドレス BFF45BA6でアドレス04345EC8に対する読み込み違反がおきました。
モジュール'CORERDE60.BPL.DLL'のアドレス005259AFでアドレス043F27ACに対する読み込み違反がおきました。
こういうのもでてました。
0023DelフサギコNGNG
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ;:・・.∴○;・.:∴       *     ☆
|      ゚     ⊂⊃   。
|         ☆,, ∧∧      *
|   ゚      ヽ(´∀`)ヘ
|      *    (□ノ)ノノ ゚.・∴..*.☆+
|     ⌒⌒⌒∪∪⌒⌒⌒⌒
|     ⌒  ⌒     ⌒ ⌒
|
| Delモナーさんはお空の上で幸せに暮らしているだろうか
\
   ̄ ̄ ̄ ̄ Ο  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ο
♪   ∧,,∧゚ ♪
    ミ,,゚Д゚彡  ♪
    ミつ[|lllll]).
   〜ミ  ミ
    U''U

質問はageでお願いします。
0024デフォルトの名無しさん NGNG
Webbrowser上にあるボタンをクリックさせるようにしたいんですけど、

<input type=submit name="submit">

このようにnameが「submit」になっているので、
なぜかsubmit()とかclick()を使うとエラーが出ます。
何か他に方法はありませんでしょうか?
よろしくお願いします。
0025デフォルトの名無しさんNGNG
インターフェイスから直接叩くとかどう?
0026デフォルトの名無しさんNGNG
>>21
Borlandのページに置いてあるパッチを当てて、ちゃんとアップデートした?
あと、DelphiのバージョンとOSは?

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

とりあえず再インストールして解決しました。
0028デフォルトの名無しさんNGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  >>27 とりあえず解決してよかったな
_と~,,,  ~,,,ノ_. ∀  \_よし、次!どんどん質問してよし!
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃   
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
002915NGNG
>>16
できるじゃん!Indyコンポネート入れたよ!
まだ試してないけどできるっぽいよ!
0030デフォルトの名無しさんNGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  >>29 >16>19はC#厨.NET厨だから、相手にするな
_と~,,,  ~,,,ノ_. ∀  \_質問募集中〜!質問はないのか?
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃   
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
0031 NGNG
赤ちゃんはどこから来るの?
0032デフォルトの名無しさんNGNG
>>30
君には厨房を引き寄せる不思議な力があるようだ。
マ板かHSPスレに逝きなさい。
0033デフォルトの名無しさんNGNG
>>32
はぁ?hspを愚弄する気か?
住所とメアド教えろ!
遊びに行くから。
0034デフォルトの名無しさんNGNG
海の水はどうしてですか?
0035デフォルトの名無しさんNGNG
津波だからです。
0036デフォルトの名無しさんNGNG
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ-Д-ノ,っ━~  < 誰か質問してくんねーかなー
_と~,,,  ~,,,ノ_. ∀  \_誰も居ない…眠い…
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
0037デフォルトの名無しさんNGNG
>>36
あんた誰?
0038デフォルトの名無しさん NGNG
>>36
じゃあ>>24に答えてください。お願いします。
0039デフォルトの名無しさんNGNG
>>33
遊びに行くのにメアドが必要な理由は何故ですか?
0040デフォルトの名無しさんNGNG
山は死にますか?
0041デフォルトの名無しさんNGNG
>>39
今は友達になると携帯メアド交換がセットだからでしょう。
0042デフォルトの名無しさんNGNG
ListViewでListView.Selected.EditCaptionの様な感じで
SubItemを編集可能状態にしたいのですが
EditCaptionが使えないようで参ってます

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

いい方法ありませんでしょうか?
0043デフォルトの名無しさんNGNG
>>42
TEdit を SubItem の位置にそれらしく表示させて入力させる。
0044デフォルトの名無しさんNGNG
Delphi7について教えてください。

D5で作ったプロジェクトそのまま移行できますか?
下位互換性ってどんなもんなんでしょ?
乗換えを考えているんですが…
宜しくお願いします。
0045デフォルトの名無しさんNGNG
>>44
変なことしていなければ。
.DCU に互換性が無いから、ソースが無い 3rd party コンポーネントを
使っているとちょっと苦労するかも。
標準コンポーネントと自分のコードでできているのなら、楽勝。
0046デフォルトの名無しさんNGNG
Delphi6で
他人のプロジェクトを開きフォームをドラッグだけして保存した後
メモ帳でフォームファイル(dfm)の中身を新旧で比較すると
微妙におかしな所が変更されていて困ってます。
objectの
Text='あああ'
の部分が
Text='#0123'
という感じに置き換わってしまいます。

解決法方をご存知でしたらよろしくお願いします。
0047組込もしまっせNGNG
>>46
http://www.google.co.jp/search?q=DFMFormat

かな?
0048デフォルトの名無しさんNGNG
>>47
ありがとうございます。
文字化け解決しました。

が実はフォームの継承がうまくいかないのが悩みの種なのです。
ドラッグし保存しただけで継承がおかしくなるので
フォームファイル(dfm)関係かと思っていたのですが
的外れだったようです。
引き続き心当たりのある方情報よろしくお願いします。
004944NGNG
>>45
有難う御座います。
なるほど…そんなら私は問題無い!
最終Verになりそうだから買っておこう。
0050デフォルトの名無しさんNGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  他人のプロジェクトを使う時は、.cfg, .dof, .dsk
_と~,,,  ~,,,ノ_. ∀  \_ファイル内のパスを置換したほうがいいかもな
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃   
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
0051デフォルトの名無しさんNGNG
.cfg, .dof, .dsk
それぞれどういう役目なんだ?

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

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

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

この場合の解決方法と他によい方法あればヒントでも頂けないでしょうか
宜しくお願いします
0053デフォルトの名無しさんNGNG
IEコンポーネントを使い倒すスレ
http://pc2.2ch.net/test/read.cgi/tech/982930049/l50
0054デフォルトの名無しさんNGNG
>>52
別のやり方だけどこんなんでどう?

Usesに MSHTML_TLBを追加

procedure TForm1.Button1Click(Sender: TObject);
var
Doc: IHTMLDocument2;
begin
Doc := WebBrowser1.Document as IHTMLDocument2;
Memo1.Text := Doc.body.InnerText;
end;
005552NGNG
>>54
>Usesに MSHTML_TLBを追加
をするとMSHTML_TLB.dcuが見つかりませんのエラーでした。
もう少しがんばります レスありがとうでした
005654NGNG
ActiveXコントロールのインストールで
Microsoft HTML object Libraryを取り込むべし。
タイプライブラリの取り込みでもいいかもしれない。

Textの取得タイミングはNavigateしたあとOnDocumentCompleteがきてから。
OnDocumentCompleteに取り込みコード置くのがいいかも
0057デフォルトの名無しさんNGNG
initialization時に生成したコンポーネントのComponentStateと
実行した時のComponentStateが空になってしまったんですけど
コンポーネント側でなにか区別する方法ありますか?
005857NGNG
>>57
えと単純に今、実行中なのかそれ以外なのか区別したいので・・・
ちなみにcsDesigning in ComponentStateではできない感じでした。
0059デフォルトの名無しさんNGNG
>>51
cfgプロジェクト環境設定ファイル
dofDelphi オプションファイル
dskデスクトップ設定
0060デフォルトの名無しさんNGNG
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の設定の仕方が悪いのでしょうか?それともレジストリをいじらないといけないのでしょうか?

0061デフォルトの名無しさんNGNG
TMemoはメモ帳互換のはずなのにユニコードを入力できません。
Font.Charsetにもユニコードがつかえません。
何とかなりませんか?
006246NGNG
>>48
でフォームファイル(dfm)の継承が〜
の件ですが
Delphiの再インストールしたら症状が出なくなりました。
結局原因は謎のままです。
ありがとうございました。
0063デフォルトの名無しさんNGNG
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()じゃ読めないです・・・。
0064デフォルトの名無しさん NGNG
>>63
素直にwebbrowserを使いなさい
0065デフォルトの名無しさんNGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  TNMHTTPでも、普通にGetできるぞ。
_と~,,,  ~,,,ノ_. ∀  \_Indyって、そんなに使えないモノなのか?
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃   
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
0066デフォルトの名無しさんNGNG
>>63
Googleは、Indyデフォルト設定のUserAgentだと弾かれます。
なんで、インスペタで別の名前に設定してあげてください。
0067デフォルトの名無しさんNGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  …ageてみるか…
_と~,,,  ~,,,ノ_. ∀  \_________
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
006852NGNG
>>56
ありがとうございました
無事に取得できました。
0069デフォルトの名無しさんNGNG
60日間トライアル版を使って作成したプログラムって、60日間経つと
Delphi自体はともかく、作ったアプリケーションも実行できなくなるのっ
て本当ですか?
0070デフォルトの名無しさんNGNG
>>69
『M$から「Windows .NET Server 2003 RC2 360日間限定評価版」
 というのが送られて来たけど
 360日を過ぎるとハードディスクをフォーマットしてしまうっ
 て本当ですか?』
というのと同じような気が・・・
0071デフォルトの名無しさんNGNG
作ったアプリは使えなくなるよ。
そのせいで、ちょっぴりズルしようとしたらえらいめにあった。
0072デフォルトの名無しさんNGNG
>>69
60日の期限が切れたらDelphiはともかく、そのDelphi
で作成したアプリケーションも使えなくなります。
0073デフォルトの名無しさんNGNG
なんでDELPHI7のアップデートはいつまでたっても出ないの?
0074デフォルトの名無しさんNGNG
すでにDel8が出荷準備中だからです。多分間違いないと思う。
0075デフォルトの名無しさんNGNG
いやガラガラ蛇の開発に手を取られているんじゃないかな・・・ って フサギコの名前付いてると雑談スレ化し易くなって
0076デフォルトの名無しさんNGNG
いやD7アプデート期間延長のDMが来たのでD8の開発は相当遅れています。
0077デフォルトの名無しさんNGNG
テスト
0078ねこまNGNG
期間延長!期間延長!!って毎度 DM 送りつけられてもねぇ
しらけるよ.
いまのところ欲しいのは dbExpress だけ
0079デフォルトの名無しさんNGNG
デルフアイでォープンソウスな大作ソフトって何かありますか?
0080デフォルトの名無しさんNGNG
delphiで作られた有名ソフトって何がある?
http://pc2.2ch.net/test/read.cgi/tech/990056026/l50
0081Delフサギコ ◆A6VzDeLphI NGNG
    ∧,,∧  コロコロ
    ミ゚Д゚,,彡 
  σ⊂  ∪ミ   仕事忙しすぎで
┳┳ (~,,(~,,,ミ@   激しく遅くなりますた


.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 ???
0082デフォルトの名無しさんNGNG
レ+ファ#+ラ+ド
0083デフォルトの名無しさんNGNG
もちろん俺はレ+ファ#+シだぜ!
0084デフォルトの名無しさんNGNG
フォームにEditのみ3個乗っているアプリがあったとして、
FindWindowExでEditのハンドルを取得しようとすると、
いつも同じEditが1つだけしか取得できないのですが
Edit3個のそれぞれのハンドルを取得するにはどうすれば良いのですか?
0085デフォルトの名無しさんNGNG
>>84 自分で作ったアプリ? それとも人のというか既製の?

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

もしかして、Editが3個乗ってるように見えて、必要なEditBoxを1個しか使ってないかもしれないよ
昔はリソース減らす為に、そんな事もやってたから
0086デフォルトの名無しさんNGNG
>>79

OpenJaneDoe
0087デフォルトの名無しさんNGNG
gikonavi ?

008860NGNG
>>60の補足として、
Delphi5のInstallShieldで作成したインストーラだとうまくいっていました。

この事象に関して解決策を知っている方がいましたら
教えていただけないでしょうか。
0089デフォルトの名無しさんNGNG
リストボックスを使用してまして、リストのある項目のみ色を変更したいのですがうまくいきません。
ListBox1.Items[0].Font.Color := clRed;
とやるとレコード、オブジェクトまたはクラスのいずれかが必要です
のエラー

そもそも色が変更できないのか、対処法あるのかどうかどうか教えてください。
0090デルファイの名無しさんNGNG
オーナードローしか無いです。
Style = lbOwnerDrawFixedにして自前で描画。
0091デフォルトの名無しさんNGNG
InstallShieldのBDEの設定で、
PATHパラメータに[INSTALLDIR]といったディレクトリ識別子は使えるんでしょうか?
0092デフォルトの名無しさんNGNG
2ちゃんねるブラウザの6割はDel製ですな。
0093デフォルトの名無しさんNGNG
Visio + Delphiはいつのバージョンで実現するのかな?
0094デフォルトの名無しさんNGNG
タイマーコンポーネントがツールバーにないんですけど
どうやったら追加できますか?

それかタイマコントロール以外でなにかありますか?
0095デフォルトの名無しさんNGNG
>>92

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

0096デフォルトの名無しさんNGNG
君がそう思うのならそうなんでしょう。
0097デフォルトの名無しさんNGNG
プログラムを終了させるコマンドはENDですか?
0098デフォルトの名無しさんNGNG
システム時計の時間と分と秒をしる関数はありませんか?
0099デフォルトの名無しさんNGNG
>>94
>>98
探せばある
0100デフォルトの名無しさんNGNG
どうもあまり言語になれてないみたいです
タイマーコントロールは見つかった^^;
プログラム終了コマンドも見つかったhalt

システム時計GETの関数が見つかりません><
そんでもって、線をひきたいのですが
MoveToメソッドが定義されてませんだっておこられました
TFormにメソッドがないんです
どうやってフォームに線を引いたらいいでしょか?
0101デフォルトの名無しさんNGNG
うにゃー
お茶をこぼしてしまったよ。
0102デフォルトの名無しさんNGNG
>>100
TForm::Canvasは知ってるかい?

WindowsのUIで使われる線ならGroupBoxで簡単。
0103デフォルトの名無しさんNGNG
なんで2chブラウザってDelphi製が多いわけ?
0104デフォルトの名無しさんNGNG
ひねくれ者が多い、Delphiは癖がある、2ch者は癖がある。
これ以上何がある?
0105デフォルトの名無しさんNGNG
>>104
タダでIDE配ってるからだろ。

と、普通に返してみる。
0106デフォルトの名無しさんNGNG
>>102
ちょっと知りません
手元の参考書で
イベント処理のところに
いきなりこう書きました
with canvas do この書き方しりません
begin
moveto(100,100);lineto(20,20);
end;
そしたら引けました
VC++をしたことあるのですが、オブジェクトパスカルは
ややこしいです
0107デフォルトの名無しさんNGNG
>>103
暇な学生プログラマが多いから

と、適当に予想してみる。
0108デフォルトの名無しさんNGNG
>>106
Form1.Canvas.MoveToで指定位置に移動
LineToで指定位置まで線を引く
0109デフォルトの名無しさんNGNG
>>106  ? MFC だって CDC::LineTo で同じじゃないかと思うのだが?
0110デフォルトの名無しさんNGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  isnot演算子がないのは何か特別の理由でもあるんかいナ?
_と~,,,  ~,,,ノ_. ∀  \ while not (item is TAClass) do ...
    .ミ,,,/~),  .| ┷┳━ while item isnot TAClass do ...
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃  下のほうがsimple&smartのような気が。。。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
0111デフォルトの名無しさんNGNG
>>110
どうせなら演算子を自由に定義出来ればいいのにね
0112デルファイの名無しさんNGNG
Adaにはありますね。A not in B だったかな?
単にPascalではサポートして無いってだけでしょ。でも欲しいのは同意。
ついでにcase文で

case AObj of
TheClass: …;
AnyClass: …;

なんて書きたかったり…
0113デフォルトの名無しさんNGNG
>>112
isnot はいらないけど
その下のは激しく欲しい

みんなどうやってる?
0114デフォルトの名無しさんNGNG
>>113
AObj.Hoge;
0115デフォルトの名無しさんNGNG
>>111
Adaでさえできたのにねえ。
もう「でるぽい」はだめぽ。
0116デフォルトの名無しさんNGNG
>>113
多態
0117デフォルトの名無しさんNGNG
少々お尋ねします。
MSアクセスで開発済みの顧客管理とか販売管理とかのシステムがあります。
これをパッケージのような形にして、代理店に配布する計画があります。
将来的には自社サーバーをたてて、B2Bのようなこともしたいです。
そこで開発ツールを何にするか、現在社内でもめております。
いろいろ見聞きして、開発しやすさ、メンテナンスのしやすさで
DELPHIかなと思っておりますが、本屋さん行っても
C#とかVB.NETとかが圧倒的に多く、迷っております。
あとあとのことを考えると、どれがよいでしょうか?
ご意見をお聞かせ願えれば幸いです
0118デフォルトの名無しさんNGNG
フサギコって誰?アフォ?
0119デフォルトの名無しさんNGNG
>>118
アフォはフサギコじゃない。
フサギコなのはおまえのほうだ。
0120デフォルトの名無しさんNGNG
>>117
5年くらい担当が変わらないなら、がんばればどれでも良い。
1年くらいなら、パッケージソフトに業務をあわせる。
かな?
0121113NGNG
すんません意味がわかりません・・・
case AObj of
TheClass: …;
AnyClass: …;

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

ヘテロなオブジェクトツリーをよく作るので、何かいい方法が無いかなと思い発言しました。
よろしくお願いします。
0122デフォルトの名無しさんNGNG
case Sender.Tag of
1:
begin
end;
2:
begin
end;

とかよくやるけど
0123デフォルトの名無しさんNGNG
if obj.ClassName = "MyClass" then ... else ...;
とか is でやればいいのでわ?
0124デルファイの名無しさんNGNG
case文使うような箇所にはvirtual関数使えってことでしょうね。
自分もふつーそうしますが、対象クラスを書き換えられなかったり書き換えたくなかったりして、
時々if Obj is XXX then … else if Obj is YYY then … なんて書かざるを得ないので
112で書いたような機能が欲しいなーと思うこともしばし。
実際except節ではそういうことができるので、普通の分岐文として書けてもいいじゃないですか、ねえ?

//実はDel.NETでclass helperが使えるようになれば解決だったり
0125デフォルトの名無しさんNGNG
>>124
対象クラス「自身」でやる必要ないだろ。
クラス参照と処理用のメソッドのペアを登録して検索。
0126デフォルトの名無しさんNGNG
まあ本来のcaseのセレクタは順序型だし、
それを拡張するとpascalではなくなるし。
まあ、delphi言語とすればいいのだろうが。
0127デフォルトの名無しさんNGNG
クラス型、文字列、整数、実数、オブジェクトの内容、参照を個別に対応するのは無理だし
かといってどれか一つだけ対応するのもばかげている。
なので===演算子のオーバーロードのない言語では無理。
0128デフォルトの名無しさんNGNG
   ===

  -===-

 -==・==-
0129NOT 116NGNG
>>121
多態が分かっていれば誰でも多態と答えると思うぞ。
分からないなら多態がさっぱり分かってないということだ。
0130NOT 121NGNG
ヘテロなオブジェクトに対し、多態とはこれいかに。
0131デフォルトの名無しさんNGNG
USBオナホールを動かすにはどうすれば?
0132NOT 116NGNG
>>130
ヘテロは 121 で追加された条件。
ヘテロが追加される以前の返答ならそんな特殊条件を考えないから当然多態という返答になるだろ。
そして、そんな条件を持たない連中が多態と答えるのが理解できないのなら多態が分かってないということだ。

最後に私は多態でヘテロができるかどうかには答えた気はない。
勘違いされてもしかたない書き方をしたというのは認める。
0133デフォルトの名無しさんNGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  たまに見るclass helper・・・って、ナニ?
_と~,,,  ~,,,ノ_. ∀  \ ↓これと何か関係があるとでも?
    .ミ,,,/~),  .| ┷┳━ ttp://staff.aist.go.jp/y-ichisugi/mj/papers/mj-20020830.pdf
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃  
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
0134121NGNG
わたしの脳味噌でのデフォルトがヘテロだったため盲目的になっていました
指摘されて気づきました。どうもてす
確かに可能なら多態かinterfaceですね。

ヘテロだと、わざわざcase文にするためにTClassList.IndexOfを使ったりします。
0135デフォルトの名無しさんNGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  無料版使わないで買えよおめーら。
_と~,,,  ~,,,ノ_. ∀  \
    .ミ,,,/~),  .| ┷┳━ 
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃  
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
0136デフォルトの名無しさんNGNG
「ヘテロ」ってどういう意味?
013784NGNG
>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のハンドルを取得するにはどうすればいいのですか?  
0138デフォルトの名無しさんNGNG
>class helper
Delphi.NETでCLRの型をPascalの型に見せかけるために用意された構文。
既存の型に後付けでメソッドを追加できるが、悪用すればMixJuiceモドキが可能となる。
0139組込もしまっせNGNG
>>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) );
で検索開始をかけた方が、自分は楽だな
0140デフォルトの名無しさんNGNG
>>103
使いやすいから

と、マジレスしてみるテスト
0141デフォルトの名無しさんNGNG
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;
0142デフォルトの名無しさんNGNG
>>141
メニューのショートカットにdelを割り当ててるんじゃないの?
0143141NGNG
>>142
あ、もろビンゴです。お恥ずかしい…
けどかなり悩んでいたので助かりました。
ありがとうございます!
0144デフォルトの名無しさんNGNG
マウスをクリックしながらキーを押したときにアクションを起こさせたいのですが、
OnKeyDownやOnKeyUpイベントに

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

のようなコードをいろいろと試してみましたが全く反応がありません。
OnKeyDownのTShiftStateに対してssLeftやらssMiddleのような
マウスの状態を指定することは出来ないのでしょうか?
0145デフォルトの名無しさんNGNG
>>144
マウスをクリックしながらキーを押す動作が想像できないんだけど、
GetAsyncKeyState じゃだめかな?
0146デフォルトの名無しさんNGNG
クラスAでクラスBを使い、クラスBでクラスAを使うのって
どうtype節に書けばいいの?
0147デフォルトの名無しさんNGNG
>>146
type
 TB = class;
 TA = class
 private
  FB: TB;
 end;
 TB = class
 private
  FA: TA;
 end;
0148デフォルトの名無しさんNGNG
アナログ時計作ってるんですが算数に悩んでいます
中心点からたとえば、2時を指す場合最終点はどうやって
計算すればいいでしょうか

サインとかコサインならったようなきがするんですが、、、
0149デフォルトの名無しさんNGNG
ttp://www.nifty.ne.jp/forum/fdelphi/samples/00078.html

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

0150デフォルトの名無しさんNGNG
ソフトをインターネットエクスプローラーからのアイテムのドラドロ
(例えばブラウザからのドラドロでスクラップできる「紙」とかみたいに)
に対応させるにはどうすればいいんでしょうか?
ブラウザからリンクをドラドロしたらそのURLを受け取るようにしたいのですが…
0151デフォルトの名無しさんNGNG
>>149
うーんサンプルの貼り付け方がわかりません^^;;
タイマーコントロールにOnTimerイベントがオブジェクト
インスペクタに出てこないんです><
タイマーコントロールのイベントにはFormCreateが出てます
おかしいです
0152デフォルトの名無しさんNGNG
>>151
再起動汁。そしてTimerコンポーネントをダブルクリック汁。
0153デフォルトの名無しさんNGNG
>>152
Timerコンポーネントはできました

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

うーんどうすればよいのか、おかしいです
0154153NGNG
GetXとGetYの宣言はなんだろう?
TFormのメソッドでもなし、TTimerのメソッドでもなし
そういえば普通の関数ってどうやって宣言するのだろう、、
0155デフォルトの名無しさんNGNG
ListBoxを使っておりまして、項目をダブルクリックすると
その項目のTextを取得するにはどうすればよいのでしょうか?
0156153NGNG
関数の宣言は宣言部のtypeに書いたらあかんね、、
宣言部のvar以下に書いたらいけますた

すまそ
0157デフォルトの名無しさんNGNG
>>149
VBみたいな と言うのがどういうことかわからんけど Arc とか Ellipse とかじゃ駄目な理由があったら教えて
0158153NGNG
フォームを円形にしたのですが
フォームのタイトルバーがあるので時計の中心が変になります
タイトルバーをけすにはどうすればいいですか?

そうするとアプリの移動とかできなくなるけど時計らしいので、、
理想としてはクライアント領域でドラッグできたらいいのですが
0159デフォルトの名無しさんNGNG
>>158
BorderStyle と WM_NCHITTEST あたりかな?
0160153NGNG
>>159
クリックイベントの際にlParamがないのですが
どうやってメッセージを判断すればよいですか?
0161159NGNG
>>160
ん? オレへの質問か?
いまいち趣旨がよくわからん
0162153NGNG
>>161
すまそ
メッセージ処理はどうやったらいいかわかりません
0163デフォルトの名無しさんNGNG
>>162
キーワードを教えてもらったら
http://www.google.co.jp/search?q=WM_NCHITTEST+delphi

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

自分だって、そういう 「どうやったらいいか」なんて聞かれても、困ってしまうだろ?
0164153NGNG
>>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;
0165159NGNG
>>164
{このメソッドはいつ呼び出されるのか?}
WindowsからWM_NCHITTESTメッセージが送られたとき。


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


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


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


わからない単語はどんどん検索しよう。
0166デフォルトの名無しさんNGNG
protected
procedure WMNCHITTEST(var M: TWMNCHITTEST); message WM_NCHITTEST;

この定義で使ってる message をヘルプで調べてみたら?
ディスパッチを勝手に自動的にやってくれるとても便利な機構だよ
0167153NGNG
>>165
###{このメソッドはいつ呼び出されるのか?}
###WindowsからWM_NCHITTESTメッセージが送られたとき。
procedureの宣言をみるとprocedureがWM_NCHITTESTを返しているように見えるんです、、
CALLBACK関数みたいな感じでしょうか?

###{TFormのメソッドを使うと思う。でもどのメソッドを継承したかわからない}
###TFormの標準の動作を使う。メソッドになっているとは限らない。
メソッドや関数やAPIでないとすると、、理解が非常に苦しいです
0168デフォルトの名無しさんNGNG
Delphiで、エクスプローラーからファイルコピー & 移動 & 削除などを
管理できるようなソフトって作れるんですか?
これはディレクトリの指定とか無しで。
サンプルプログラムかソースがあったら嬉しいっす。
0169153NGNG
>>166
message指令がヘルプにあったので参考にしました
感想::どこでも実装できる機能だとわかった
  ::でもなぜに、継承するのか?謎
procedure WMNCHITTEST(var M: TWMNCHITTEST); message WM_NCHITTEST;
の宣言でWMNCHITTEST型はヘルプでありませんでした、システムで定義されている
ものなのでしょうか?
メソッド名称もWMNCHITTESTである必要はないのでしょうか?
メソッド名称は変更してもとおりました。
Mの型名は変更すると怒られました。

0170デフォルトの名無しさんNGNG
フォームのドラッグ
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
こんなもあったよ
0171153NGNG
>>170
ちょっとわかりやすいです。原始的な感じでOK
0172159NGNG
>>167
まあ、落ち着いてお茶でも飲め。

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


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

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

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

まとまりない文章でごめん
0173Move 手続きの引数NGNG
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型だと思いますが……)ますます訳がわからなくなってしまいます。
0174デフォルトの名無しさんNGNG
const Sourceは変更不可能な型無しパラメータ
var Destは変更可能な型無しパラメータ
Cのvoid*みたいなもんだ
0175デフォルトの名無しさんNGNG
Keybd_event(VK_SNAPSHOT, 0, 0, 0);

↑これでキーを押すのができるらしいですが、
Windowsのマークのキーを押すにはどういう文字を入れればいいんですか?
0176デフォルトの名無しさんNGNG
VK_WINDOWS
0177Delフサギコ ◆A6VzDeLphI NGNG
>>150さん
  ∧,,∧  どっかの有名などらどろコンポーネントを
 ミ,,゚Д゚彡 インスコ汁。
 ミつ日(ミ
海外製だけど英語全く出来なくても
インスコ&使用に問題なしでつ。

>>158さん
タイトルバはBorderStyle bsNoneだったっけ?
フォームを円形にできるオマイさんでしたら
[暗い餡と領域][ドラドロ]をキーにして
検索しると、答えはニフでもエムエルでも
見つけられると思われ。
0178デフォルトの名無しさんNGNG
ありがとうございます
0179デフォルトの名無しさんNGNG
<xml attr="hoge"> hogehoge </xml>


上のXML文書で、xml要素のattr属性の内容( この文書ではhoge )や、
要素の中身( この文書ではhogehoge )を調べるにはどうすればいいんですか
0180デフォルトの名無しさんNGNG
>>179
お金があるなら Entを買う。 
お金が無いならパーサを自分で作る

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



0181デフォルトの名無しさんNGNG
C#なら只で簡単にできるよ。
0182デフォルトの名無しさんNGNG
VB.NETでも只で簡単にできるよ。君たちは認めたくないだろうけど。(大爆笑
0183デフォルトの名無しさんNGNG
まあdelでもmsxmlを使えばいいだけの話。
0184デフォルトの名無しさんNGNG
OpenXMLで検索してみ。それ以外でもフリーのXMLパーサなんて沢山あるから。
ちなみにEntじゃなくてPro以上。
0185デフォルトの名無しさんNGNG
どんな手使おうが、次のバージョンでVB.NETと同じAPIを後追いするわけだがな。( ゚,_・・゚)ブブブッ
0186デルファイの名無しさんNGNG
ええと、真面目に答えておくと、TXMLDocumentというのを使う。
ヘルプは何故かEntにしか無いみたいだけど、実はPro版以上に搭載されてる。
単純なのでXMLDoc.pasに書かれた宣言見ればすぐわかると思いますよ。

…金が無い場合は、>>180-185に習って
0187デフォルトの名無しさんNGNG
>181, 182, 185
いちいちこういう発言が出るまで見張ってるのか?
気持ちわる……
0188デフォルトの名無しさんNGNG
ExitWindowsEx(EWX_REBOOT,0);
これを使っても再起動しないんですが何故ですか?エラーも出ない
0189デフォルトの名無しさんNGNG
>>188
仕様です。再起動用BIOSが搭載されてないマシンでそうなります。
0190デフォルトの名無しさんNGNG
スレ毎にNGワード設定できる2ちゃんねるブラウザって無いのか?
0191お約束NGNG
>>190
PGなら作れ!
0192153NGNG
>>172
###WM_NCHITTESTを返しているように見える? : と ; に注意。
あーほんとだ。
メッセージ処理の構文だと覚えて、、、

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

###拡張した動作
なるほど。基本動作と拡張動作で切り分ければわかりやすいです
ということは、message処理等を行うということは
OSの提供する機能をカスタマイズして使う
そして、VCLは基本的にOSの提供する基本機能をAPIを
ラップしているということと、、、思いました
0193153NGNG
>>177
### 暗い餡と領域][ドラドロ]をキーにして
ドラドロはひっかかりました
0194bloomNGNG
http://www.agemasukudasai.com/bloom/
0195デフォルトの名無しさんNGNG
>>188
NT系だとそのコードだけだと動かんよ。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/shutting_down.asp
0196デフォルトの名無しさんNGNG
TTabControl のタブの文字を縦書きにするにはどうしたら宜しいのでしょか?
0197デフォルトの名無しさんNGNG
>>196
TabPosition := tpRight で
Font に縦書きフォントを指定

tpLeft だと逆さになるのね ^^;
0198デフォルトの名無しさんNGNG
>>197
うわ、ほんとだ。縦書きフォントなんてあるんすね・・・
縦書き=#13を一個一個入れる になってました。
ありがとうございました。(tpLeftは使えないという事っすね)
0199153NGNG
演算子がわかりません

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

探してみましたが、こういうのはないみたいですね
0200デフォルトの名無しさんNGNG

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

A := A + 1;
0201153NGNG
ある場所に文字を表示したいのですが
Canvas.TextOut(CX - int(let/2) ,CY - 20,str);
[エラー] Unit1.pas(134): 'Integer' と 'Extended' には互換性がありません
と怒られました
CXもletもintegerなのになぜでしょうか?
0202153NGNG
マジ質です、すいません、、、
0203デフォルトの名無しさんNGNG
>>200
それは違うだろ

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

じゃないのか?

>>201

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

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

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

とかは?
0205デフォルトの名無しさんNGNG
>>201

function Int(X: Extended): Extended;


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

Trunc(X: Extended): Int64;

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

0206デフォルトの名無しさんNGNG
203-205 ジュウコーン
0207153NGNG
DivもRoundもいけました。
inc(A,A);がスマートで好きです
ありがとうございます
0208デフォルトの名無しさんNGNG
HTMLのソースの中から絶対パスのURLのみを抜き出す方法ってありますでしょうか?
0209デフォルトの名無しさんNGNG
ビット操作ってどうやるの?
0210デフォルトの名無しさんNGNG
>>208
http://やhttps://からURLに使われる文字だけで構成される部分を取り出す。
0211論理演算子(ビット演算子)NGNG
>>209
どんな操作がしたいの?
0212153NGNG
設定のダイアログ機能をつけたいのですが
コントロールはOpenDiarolを使うのがふつうですか?

ポップアップメニュの項目を選択→設定ダイアログボックスがでる
モーダレスででてOKボタンを押したら反映して消える、、、
0213デフォルトの名無しさんNGNG
>>210
なんとなくできました♪
どうもありがとうございました
0214元VBプログラマNGNG
昨日から見よう見まねで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で通っていたコードがそのままで通らない(厳密になっている?)のですが、めげずに何とかしたいです。
ご存知の方、わたし厨房で申し訳ないのですがお願いします。

0215デフォルトの名無しさんNGNG
ソースの中で ’ を使いたいのですがエラーが出てしまいます。
例えば、if t = ''' then のような
tが'と等しかったらというような事をしたいのですが
何がよい方法ないでしょうか?
0216デフォルトの名無しさんNGNG
>214
procedure TForm1.FillArray(Buf: array of Byte);
じゃなくて
procedure TForm1.FillArray(var Buf: array of Byte);
だよ。
ちゃんとvarつけないと代入できんです。

>215
アスキーコードで指定すればいいんじゃない?
0217デルファイの名無しさんNGNG
'''' でもいけます。
0218デフォルトの名無しさんNGNG
''''''''''''''''
0219元VBプログラマNGNG
>>216

ありがとございます。
ご教授いただいた方法でうまくいきました。
感謝しております。
0220デフォルトの名無しさんNGNG
オフィスXPで使われているような、
透明ぽいポップアップメニューのコンポーネントはありますか?
0221デフォルトの名無しさんNGNG
FormatSettings : TFormatSettings;
のようなのはDelphi7からしか使えないんですか?
0222デフォルトの名無しさんNGNG
TClientSocketを使って、
送信した時のエラーはどうやって取得すればよいのでしょうか?
0223デフォルトの名無しさんNGNG
一生懸命 レスしてたけど・・・・最近疲れちゃった・・・・タッチしてくれ
0224デフォルトの名無しさんNGNG
>>220
ペルソナルにはありません。
0225デフォルトの名無しさん NGNG
なんでモナーじゃなくなったの?
フサギコなんて嫌だ
0226デフォルトの名無しさんNGNG
モナーの中の人がフサギコだったのさ。
0227153NGNG
TForm1(Unit1)の記述の中でTForm2(Unit2)をShowModalさせたいのですがうまくいきません

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

Unit1とUnit2を関連づける方法はどうするのですか?
0228デフォルトの名無しさんNGNG
ゆーず汁!!
0229デフォルトの名無しさんNGNG
>>215

#$27
0230223NGNG
ふう、もう少しがんばってみるか

>>221 Yes
>>222 OnError イベントで ( もし取れないエラーがあるなら WSAGetLastError )
>>227 TForm2 は型名 Form2 が変数名だから Form2を使えば IDEが uses しますか?って聞いてくれる・・・かも
0231デフォルトの名無しさんNGNG
'''' { ' }

' でヘルプひけば出てくるはず
0232228&229NGNG
>>223

otukaresamadesu. sukoshiyasundekudasai.
0233デフォルトの名無しさんNGNG
>>216>>217>>218>>229>>231
こんなにも沢山のレスありがとうございます。
無事にできました♪

また質問なのですが、HTMLソースをCGIを使っているページから取得しよとするとエラーがでます
Memo1.Lines.Add(IdHTTP1.Get(Edit1.Text));
これは元々不可能なことなのでしょうか?
0234デフォルトの名無しさんNGNG
整数の桁数を得たい場合、(1000 = 4, 9999999 = 7 等)
わたしには if の連発か、文字列にしてしまうぐらいしか思いつきません
ほかに良い方法があったら教えてください。
よろしくおねがいします。
0235デフォルトの名無しさんNGNG
trunc(log10(n))+1
0236デフォルトの名無しさんNGNG
素朴なギモン。
変数定義って、ローカル変数よりグローバル変数のほうが全然便利に思えるんだけど
ローカル変数を使うメリットって何?
同じ変数名が使える(違う関数部で)とかメモリ領域とかに関係あんの?
0237デフォルトの名無しさんNGNG
>>236
全ての変数をグローバルにして10000行程度のプログラムを書いてみると分かると思うよ
もっともDelphiの場合、ループ変数をグローバルにすることは許されないけど
(仮にループ変数をグローバルにできたとして
 同じループ変数を使っている別の手続き・関数をループ内で呼び出したら
 どうなるか考えてみるといいよ)
0238234NGNG
>235
ありがとうございました。
勉強になりました。
0239223NGNG
>>236
人間は一度に そんなに大きなものを緻密に設計したり考えたり出来るように作られていません。

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

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

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

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

すべてグローバル変数/関数でプログラムしても良いのではないか?
0241240NGNG
うわ。みんな親切..
0242デファルトの名無しさんNGNG
質問でゲス。

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

よろしくお願いします
0243デフォルトの名無しさんNGNG
>>242
Del6で使いたければソースをDel6でコンパイルしてインストールしる
0244236NGNG
>>237-241
なるほど、設計者の、設計のためなのね。親切なみなさんありがとう。
0245デファルトの名無しさんNGNG
>>243
それが、Delphi7にしかないコンポーネントを親コンポーネント(?:上位クラス?)にしたものを
インストールできるようにしたいんです。

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

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

(初心者ですみません)
0246デフォルトの名無しさんNGNG
>それが、Delphi7にしかないコンポーネントを親コンポーネント(?:上位クラス?)にしたものを

…そりゃ無理っしょ。
Del6にも似たようなのがあるなら{$IFDEF}で切り分けるとかさあ
0247デフォルトの名無しさんNGNG
ttp://home1.infonia.ne.jp/~delphian/delphi/
ここ以外でコンポーネントが豊富にあるオススメ日本語HPを教えてください。
0248デファルトの名無しさんNGNG
>>246さん
やはりそうですか。
じゃああきらめます。

(☆∀☆)!(アイデアひらめきぃ)
Delphiにはじめからついているコンポーネントのソースって手に入らないのでしょうか?
手に入れば移植もできなくは…ないと思うのですが…
どうなのでしょうかねぇ?
その前にソース字体手に入るものなのか......?
0249デフォルトの名無しさんNGNG
>>248 お金出せば手に入るよ
0250デフォルトの名無しさんNGNG
>>248
Pro版買ってね。
0251デファルトの名無しさんNGNG
>>249
まさか、あなたに…

>>250
Pro版だとどうやればいいのでしょうか?
0252デフォルトの名無しさんNGNG
>>251
Pro版以上だとSourceというフォルダにほとんどのソースが入っていて(一部例外あり)
とても勉強になるのでし

メッセージループなどが実は昔ながらのスタイルでちゃんと実装されていて
Delphiが紛れもなくTurbo Pascalだということも教えてくれるのでし
0253デファルトの名無しさんNGNG
返事したのにかかれてないみたいですね。

>>249
だれにですか?

>>250
一応Pro版だったらどうしたらみれるのでしょうか?
0254デファルトの名無しさんNGNG
ミスです…
0255デファルトの名無しさんNGNG
>>252
回答は、ありがとうございました。
0256227NGNG
uses句に使うことを宣言するのですね

Unit2でTFormをTForm2として継承してForm2でインスタンスしています
それでUnit1でForm2を参照しようとするには
Unit1のuses句でUnit2と書けばいいのでしょうか?
0257デフォルトの名無しさんNGNG
10進数を2進数にするにはどうすればいいのですか?
0258デフォルトの名無しさんNGNG
        ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ∩゚Д゚彡 < もしもし、回答者の増員をおねがいすます。
□………ミつ  彡  \_________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
. .          |
.             |
0259デフォルトの名無しさんNGNG
>>257
小学校の算数で習った気がするが・・・
開平は中学校の数学だったかな。
ともかくその手順をアルゴリズムにすればいいわけで。
まず自力でやってみろ。話はそれからだ。
0260デフォルトの名無しさんNGNG
>>259
わかった
0261デフォルトの名無しさんNGNG
>>256
相互参照する時は少なくとも一方は
interface部ではなくimplementation部へ書く必要があるよ

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

どうしてもinterface部での相互参照になってしまうようなら
同じユニットに書かなければならない
0262デフォルトの名無しさんNGNG
>>260
>10進数を2進数
これができないとアタタタ符号化の真似ができないもんな(w
0263デフォルトの名無しさんNGNG
分かりにくかったかな
×参照するユニットの宣言を宣言部で使用しているのでなければ
×interface部で相手のユニットを参照しているのでなければ
0264デフォルトの名無しさんNGNG
うぐっ・・・2行目が○だ・・・
0265デフォルトの名無しさんNGNG
>>263
余計分かりにくい
0266デフォルトの名無しさんNGNG
mod 2 mod 2 mod 2 mod 2でいいのだよな?
0267デフォルトの名無しさんNGNG
  ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  < >>257 IntToBin関数で変換
  ミ  つ    \_________
〜ミ,,_U
0268デフォルトの名無しさんNGNG
>IntToBin
>ユニット IdGlobal
>IntToBin 関数は,Integer 値のバイナリ文字列表現を返します。
>
>function IntToBin(Value: cardinal): string;
>パラメータ
>Value: cardinal
>変換する Cardinal 値
>
>戻り値
>String - Integer 値のバイナリ文字列表現
>
>説明
>IntToBin は,32 ビット Integer 値のバイナリ表現を構築する String 関数です。IntToBin の戻り値は,整数 Value のビットごとに「0」または「1」を格納します。
0269デフォルトの名無しさんNGNG
しまった、ひとあし遅くてカブったか。
スマソ、打つ
0270デフォルトの名無しさんNGNG
そのIndyコンポーネントはDelphyパーソナルにも入っているのか?
BCB6Pro.には入っていたが。
いや、DLしてきてインストールすればいいだけだが。
0271デフォルトの名無しさんNGNG
>>270
「DLLしてきてインストロールすれば」と書け
0272デフォルトの名無しさんNGNG
基本的なことで申し訳ないのですが…。
ReWriteを使ってファイルに一行書き込むには、
Writelnを使えばいいのですが、
既存のファイルの終端に書き込む場合にはどうすればいいのでしょうか?
ファイルの終端をキャッチできればいいのですが…。
0273デフォルトの名無しさんNGNG
>>267
>>268
だんくす
0274デルファイの名無しさんNGNG
>>272
Append
0275デフォルトの名無しさんNGNG
>>272
TFileStream使ったら?
0276デフォルトの名無しさんNGNG
持ってる本をレビュってみた
中級者以上向けの本を持っている人感想を聞かせてくだちい

http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BDelphi%B4%D8%CF%A2%BD%F1%C0%D2%5D%5D
0277デフォルトの名無しさんNGNG
>ところでパーツ単位の描画でCustomImageListを動的に生成して使おうと
>してるんですが、ちょっと困ったことが。
>128*128pixelサイズのBitmap(←TBitmap)に、マップチップ画像が存在しているとして
>MapTip := TCustomImageList.CreateSize(8,8);
>MapTip.AddMasked(Bitmap, clBlack);
>みたいなことしたら、なぜかMapTip.Countが16に。256になってホスィのにー
>ちなみに、Bitmapには画像が正常に読みこまれていることを確認しますた。

コピペにて失礼します。別の板で話題に出したのですが、解決に至りませんでした。
結局、自作の関数で代用したのですが、この事が気にかかっています。
どこかで使い方を間違えているのでしょうか?まずい点がありましたらご指摘下さい。
0278デフォルトの名無しさんNGNG
DBGridでマルチセレクト指定しているのですが
Ctrlキーで1つ1つ選択を増やす事はできるのですが
Shiftキーで範囲指定ができません
ほかに何か設定が必要なのでしょうか?
0279デフォルトの名無しさんNGNG
>>277
単に縦方向は読み込まないという仕様ではないかと。
0280デフォルトの名無しさんNGNG
var x, y, z: Byte;
x shr y and z = (x shr y) and z
↑あってますよね?
0281デフォルトの名無しさんNGNG
age
0282デフォルトの名無しさんNGNG
>>280
演算子の優先順位のことを言っているのなら
shrとandは同じなのでその通りだけど
乗除と加減のようにどの言語でもほぼ共通というのでなければ
括弧を付けておく方が無難だと思うよ
(ちなみにその文自体はコンパイラを通らないけど
 そういうことじゃないと解釈)
0283デフォルトの名無しさん NGNG
MediaPlayerを使ってMP3ファイルを再生したんですけど、

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

なぜかこれだとウィンドウが勝手に閉じてしまいます。
どうすればちゃんと再生できるんですか?
よろしくお願いします。
0284デフォルトの名無しさんNGNG
>>283
んで、このコードをどこに書いたのよ。
0285デフォルトの名無しさんNGNG
>>284
紙の上
0286デフォルトの名無しさんNGNG
範囲型の全集合を返す演算子や関数は用意されていないですか?

type THoge = 0..10;

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

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

type THoge = 0..10;

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

みたいなものって用意されていないですか?
0287デフォルトの名無しさんNGNG
const Hage = [0..10];

と定数を定義したらいいんじゃないの?
0288272NGNG
遅レスですが…教えてくださった方々、ありがとうございます。
0289227NGNG
>>261-263
Inplimentation節の直下にuses節がつかえるなんて驚きです
Interface節のuses節は型宣言で使用するときに使うのですね

@節についてのまとめ@
Unit節 一番上で必ず必要で外部からの参照名称を決めることができる
Interface節 必ず2番目に書き、クラス宣言や変数宣言ができる
 type句 を必要なときに必要な数だけ書くことができる
uses句 を必要なときに必要な数だけ書くことができる
 var句 を必要なときに必要な数だけ書くことができる
     宣言と同時に値の代入もできる
    あとconstとか
Inplementation節 必ず三番目に書き、Interface節での実装を記述できる
 uses句 を必要なときに必要なだけ記述できる
 interface節とInplementation節のuses句はInterface節に統一したほうが
 わかりやすいようなきがします
C言語のインクルードくらい単純であれば、、、
0290227NGNG
ちょっと不思議に思ったのですが
type節でTFormの継承やそれにのっかるTButtonなどのオブジェクト
変数とメソッドを宣言していますが、普通のIntergerなどの変数が
宣言できないのはなぜでしょうか?せっかくprivateとかあるので
変数が宣言できてもいいように思えます。
 type節の直下のvarでクラス設計の変数を宣言すると考えるのでしょうか
しかし、varでtype節で宣言したTFormをインスタンス化しているし
どうも不思議なobjectパスカルです
0291デフォルトの名無しさんNGNG
>>289
少し複雑なコード群を記述すると、interface と implementation の両方に
uses を書ける理由がわかるよ。

C/C++ のインクルードは単なるファイルの参照でしかないので uses のメカニズムとは
ちょっと違う。単純だから応用も利くけどなんでもできるから始末が悪い。
0292デフォルトの名無しさんNGNG
>>290
>普通のIntergerなどの変数が宣言できないのはなぜでしょうか?
>せっかくprivateとかあるので変数が宣言できてもいいように思えます。
できますけど・・・普通に宣言してますけど・・・
ただし、privateより上の部分は直接編集しないのが普通(ここはDelphiが使うpublish部)
イベントハンドラを消さないでコンポーネントを削除してしまった場合に触ることがある程度
0293デフォルトの名無しさんNGNG
published
0294227NGNG
>>291
なるほど、
ありがとうございます
0295227NGNG
>>292-293
できますた

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

勘違いしたました
0296デフォルトの名無しさんNGNG
type
X = 0..10;

で0 - 1 = 10 にはならないのですか?
0297デフォルトの名無しさんNGNG
Delphiを勉強したいと思うのですが
3000円以内くらいのおすすめの本があったら教えてください。
プログラムの経験はvisual basic4.0のころに少ししたことのある程度の超初心者です。

スレ違いだったらスマソ
0298デフォルトの名無しさんNGNG
スレ違いではないがあまりのFAQで・・・
0299デフォルトの名無しさんNGNG
296 の質問の意図がわからないよぉ...
mod 11 もどきを期待している。っていみかなぁ?
0300デフォルトの名無しさんNGNG
>>289

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

非OO言語との比較は無意味では?
0301227NGNG
>>300
   ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  <すいませんよくわかりません;汗
0302デフォルトの名無しさんNGNG
>>299
Byte型だと255を超えると0にもどるのを
10とかでやりたいと
0303デフォルトの名無しさんNGNG
>>302
列挙型でも部分範囲型でも言語レベルではそうなっていない模様
そういう動作をさせたいならプロパティにして実装するのが吉
0304デフォルトの名無しさんNGNG
>>303
やっぱりそうですか。
ありがとうございました。
0305デフォルトの名無しさんNGNG
Idhttp1.Get(URL);
を行ったときに「日付に変換できない値が渡されました」というエラーがでました。
どのURLかは不明なのですが、このエラーの原因と対応ってありますか?
情報が少ないですが、ヒントだけでも構いませんので宜しくお願い致します
0306デフォルトの名無しさんNGNG
ローカルの動的配列変数を文字列変数のようにnilで初期化しない理由は何でしょうか?
0307デフォルトの名無しさんNGNG
delphiでwebブラウザを作るにはどうすればよいのですか?
0308デフォルトの名無しさんNGNG
>>307
Delphiでコンパイルする。
0309デフォルトの名無しさんNGNG
>>308
うっせ。クソ。氏ね。ネタしかかけないなら出てくんな。
0310デフォルトの名無しさんNGNG
>>309
マジレスですが・・・
0311デフォルトの名無しさんNGNG
>>310
あほか。delphiでwebブラウザ作るって聞いてんだから
webブラウザのソース出せ。
0312デフォルトの名無しさんNGNG
>>311
2ちゃんねる用ブラウザ「OpenJane」Part59
http://pc2.2ch.net/test/read.cgi/software/1045985106/
0313デフォルトの名無しさんNGNG
>>312
それでいいんだよ。ったく最初っから出せよな。
0314307NGNG
あ、なんか自己解決しました。
すいません
0315デフォルトの名無しさんNGNG
>>310
>>312
自己解決したってよ。お疲れさん。
0316デフォルトの名無しさんNGNG
>>311
パクリ厨氏ね
0317デフォルトの名無しさんNGNG
>>316
はぁ〜ん。誰がパクリ厨だって〜?
自己解決したって言ってんだからレスすんなよ。
放置しろって(w
0318デフォルトの名無しさんNGNG
超マジレス
http://www.mozilla.org/
0319デフォルトの名無しさんNGNG
http://www.agemasukudasai.com/bloom/
0320デフォルトの名無しさんNGNG
>>318
超ネタだろ。delphiで作ったブラウザのソースだせよ。放置できないしと。
0321デフォルトの名無しさんNGNG
>>320
begin
webbrowser.home;
end;
0322デフォルトの名無しさんNGNG
>>321
そうそう。それでいいんだよ。もう自己解決したみたいだがな(w
0323デフォルトの名無しさんNGNG
DelphiでUNIXライクなOSをつくるにはどうしたらよいのでしょうか。
0324デフォルトの名無しさんNGNG
超マジレス
http://www.linux.org/
0325デフォルトの名無しさんNGNG
>307-324
他人が見て面白いことを書こう
大勢の読者がいることを意識しましょう。
http://www.2ch.net/before.html
0326デフォルトの名無しさんNGNG
>>325
全員が面白いと思うことを書くのは不可能ですよ。
俺が面白けりゃそれでいいのです。
ここは2ちゃんねるですよ。
0327デフォルトの名無しさんNGNG
でるふぁいを学ぶのに最適なサイトをおせーて。
0328デフォルトの名無しさんNGNG
>327
MLの過去ログ
0329デフォルトの名無しさんNGNG
>>327
ヘルプとマニュアル
0330デフォルトの名無しさんNGNG
サイトと書いてあるので、マニュアルは適切な答えでは無い

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

この辺へ逝くといいかも
何が最適かはその人による
0331デフォルトの名無しさんNGNG
>279
遅レスですが有難うございました。
0332デフォルトの名無しさんNGNG
少し分からない所があるので失礼します。
すごく初歩的な質問だとおもうのですが、
フォルダ内のテキストファイルをデータとして取り込んで
行単位で削除したり追加したり読み込んだりと編集しながら扱いたいのですが、
いちどTmemoオブジェクトなどに読み込んで
Linesプロパティで作業すればいいのかと思ったのですが、
これでいいのでしょうか?
writelnやreadlnを使うのかとも思ったのですが、それよりは上に書いたような方法の方が
扱いやすいような気がしたりして、そのあたりが良く分かりません。
よろしくお願いします。
0333332NGNG
データとして扱うというのは内部のデータとしてという意味です。
なのでmemoはvisible:=falseです。
0334 NGNG
>>332
TStringlist.Create;
0335デフォルトの名無しさんNGNG
>>332
正解です

その機能は元々TStringsから派生しているものだから
TStringListでも同じことができるけど
インスタンスの生成と破棄をちゃんとできるようになるまでは
TMemoを使うのが無難ですね
0336335NGNG
>>334
ちょとかぶた
0337332NGNG
>>334-336
返答ありがとうございます。
Tstringlistというものも知らなかったので
これから勉強してみようと思います。
どうもありがとうございました。
0338デフォルトの名無しさんNGNG
private
 FTest: string;
end;

↓

private
 FTest: string;
published
 property Test: string read FTest write FTest;
end;
こんな風に、プロパティを一気に作ってくれる機能がDelphiのエディタにあったような記憶があるのですが、ショートカットが思い出せません。
いまヘルプを見ているのですが、それらしい記述がみあたりません・・・
知っているかたどうか教えてください。それともぼくの思い違いでしょうか?
0339デフォルトの名無しさんNGNG
>>338
Ctrl押しながらF8
0340デフォルトの名無しさんNGNG
すばやいレスありがとうございます
でも何もおきないのですが・・・
0341デフォルトの名無しさんNGNG
>>340
property Test; Integer;
の段階でCtrl+Shift+Cだったかな?
0342338NGNG
おおっ出来ました!
ありがとうございます>>341さん
これ Set メソッドができてしまうんですねー
0343338NGNG
「クラス補完」機能だったんですね。
「各種の編集コマンド」ばかり見ていました。
>これ Set メソッドができてしまうんですねー
これも当たり前か
0344227NGNG
タスクトレイのアイコンをシステムでないものに変更したいのですが
変更の仕方がわかりません。
FIconData : TNotifyIconData;
FIconData.hIcon := Application.Icon.Handle; {アイコン指定}
これで、Delphiのアイコンになるのですが
Delphiアイコンエディタで作成さいたアイコンを指定するには
どうすたらいいですか?
0345デフォルトの名無しさんNGNG
>>344
TIconを知らないわけでもあるまい。
0346227NGNG
>>345
サンクス
フォームのアイコンを指定してみました
0347227NGNG
アナログ時計作ってまして、なんとかリージョンで
フォームを円形にしました。

そこで、時計の針と数字だけを表示してその他は透かしたいと思い
TFormのアルファブレンドを20位にしたら全部透けてしまい
ました^^;
針と数字だけをアルファブレンドの対象外にするにはどうすればいいですか?
0348デフォルトの名無しさんNGNG
>>347
別のフォームを重ねればいい
時針のフォーム、分針のフォーム、秒針のフォーム
0349デフォルトの名無しさんNGNG
透過できる環境ならTransparentColorで透過してみれ。
0350349NGNG
>>348だった
0351227NGNG
>>348
時針のフォーム
 位置を計算して棒状にリージョン
分針のフォーム
 位置を計算して棒状にリージョン
秒針のフォーム
 位置を計算して棒状にリージョン
そして重ねる
うーん、アプリをドラッグするときが難しそうです
>>349
試しましたが反応しません、カードが対応してないということですか?
0352デフォルトの名無しさんNGNG
ttp://www.dotnetmagic.com/features.html
こういう感じのメニューとかタブとかをDelphiでできますか?
0353デフォルトの名無しさんNGNG
>>352
フラットスタイル?
0354352NGNG
なにスタイルだか知りませんが、VS.NETのIDEスタイルです。
以前、このC#用コントロールをDLしましたが、
C#だとこれ用のDLLをいっしょに配布しないといけないんです。
DelphiならEXE単体にできますよね?

主に、タブを切り替えたり閉じたりするボタンと、
アクティブページの色を指定したいです。
副に、メニューの外観を変えたいです。
0355349NGNG
>>351
そうかもしれないですね。

確認
・TransparentColorがTrueで、TransparentColorValueがきちんと設定されているか
これでだめだったら別の方法を。
0356ねこまNGNG
ドッキングウインドウのキャプションなら同じの作った
もろに面倒くさいけどできるよ
タブもメニューもできる
タブの×ボタン付けるのどうやるんだろ?

昔は結構、こういった外観を変えたコンポーネントを作ったものだけど
流行がコロコロ変わるから追いかけるのが面倒くさいし、
もしかしてこういうのって標準のコントロール使っておいて、
各ユーザーが使う外観を変えるソフトとかXPのビジュアルスタイルとかに
まかせる方がユーザーにとっても親切なのではないか?
という考えになってめっきりやらなくなった
0357デフォルトの名無しさんNGNG
Windowsで動くGUIアプリを趣味で無料で作るなら、C#とDelphi、どちらがオススメですか?
説得力ある理由をキボン。
0358デフォルトの名無しさんNGNG
趣味で無料でだったら、自分の好きな方という他ないが…
0359デフォルトの名無しさんNGNG
>>357
マルチすんなよ。C#スレにも投下してたろ。
0360デフォルトの名無しさんNGNG
>>357
Delphi。軽いから。
Delphiスレだから。
0361デフォルトの名無しさんNGNG
>>357
他に欲目が無くて(自分のスキルがどうとか)
純粋に今の時点で優劣を言うならGUIアプリについてはDelphiだろうね。
0362デフォルトの名無しさんNGNG
使おうかどうか迷ってるんですけど、
Quadruple Dで3Dのオブジェクトのアニメーション(例えば歩行など)は
できるのでしょうか?
0363デフォルトの名無しさんNGNG
ちょっと質問したいことがあります。
私は最近Delphiを始めたばかりの超初心者です。
以前、MS-DOS時代には一応BASICをかじっていたことがあるのでDelphiをはじめてまずやろうとしたのがBASIC言語で記述するのなら
PRINT "メッセージの表示"
(フォーム上に無条件に表示する)
と同じことなのですが、どうやってよいのやらさっぱりわかりません。
皆さんアドバイスお願いします。
最終的な目標として、私はシュミレーションゲームを作ってみたいと考えています。
皆さんが参考にしている書籍などがあれば同時にその書籍名と出版社を併記していただければ幸いです。
0364デフォルトの名無しさんNGNG
>>363
  with TLabel.Create(Self) do
  begin
    Parent:=Self;
    Top:=0;
    Left:=0;
    Caption:='メッセージの表示';
  end;
0365デフォルトの名無しさんNGNG
>>364
解放どうすんの?
0366デフォルトの名無しさんNGNG
with TLabel.Create(Self) do

ってことは 
たぶんTform1のイベントハンドラに書いてあるだろう
なので self は Tfrom1を指す つまりオーナーがTform1なので
解放はTform1の解放時に同時に解放されるかと。
0367デフォルトの名無しさんNGNG
>>363
新規作成でコンソールアプリケーションを選んで、WriteLn("メッセージの表示");から入ってみれば?
フォームへの道は遠くなってしまうけど、DOSの頃と同じセンスでいけるので、とりあえずDelphiに慣れることはできる。
0368デフォルトの名無しさんNGNG
>>366
いや、parentをTFormにしただけじゃTFormがLabelを自分の子だと知る術はない。

ブラジルで「俺はあんたの子供だ!」と名乗ってる奴なんぞ認知できないわけで。
0369デフォルトの名無しさんNGNG
基本かもしれないけどOwnerが解放されたとき一緒に解放されるんですか?
今までむだにdestructorに解放コード書いてたのかしら。
0370デフォルトの名無しさんNGNG
>>368
>>366が言ってるのは、ParentじゃなくてOwnerの話だし、
Ownerはちゃんと所有コンポーネントを解放してくれる。

>>369
される。
0371デフォルトの名無しさんNGNG
>368
釣り?本気?
本気なら、とりあえずヘルプ読め
TComponent.Create
0372デフォルトの名無しさんNGNG
>>368
366の通り、Create(Self)でオーナーが示されているからちゃんと破棄はされる
(Parentはインスタンスの破棄には関係しない
 364の例ではオーナーがそのままParentになっているというだけ)

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

>>363
素直にフォームにラベルを貼り付けるのが普通
0373372NGNG
あらら、のんびりしてたらかぶっちゃった
0374372NGNG
>>369
いいんでねーすか?
自分でCreateしたものは自分でFree(またはRelease)する習慣にしておけば
間違いはないでしょ

失うものもこれといってないのだし
0375デフォルトの名無しさんNGNG
>>372
>でも364の書き方はあまりDelphiらしくはないよね
生成する数や位置が設計時に決められない場合
実行時に生成するのはよくあることでは。

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

いずれにしても長い人生一度はConstructor/Destructorに
ShowMessage('Create')なんかのメッセージ表示を仕込んでおいて
上の三種類のオブジェクトがどんなタイミングで破棄されるかを実験しといたほうがいいよ。
0376デフォルトの名無しさんNGNG
>生成する数や位置が設計時に決められない場合
>実行時に生成するのはよくあることでは。
動的にコンポーネントを生成するのはもちろん普通なんだけど
「変数宣言なしで」というところが「らしくない」ということでし
with文の濫用がよい習慣とも思えないので
0377デフォルトの名無しさんNGNG
メインフォームだけのアプリケーションで、メインフォームを見えなくするにはどうすればいいんですか?
VisibleをFalseにしても表示されてしまいます
0378デフォルトの名無しさんNGNG
↑
Application.ShowMainForm := False;
をプロジェクトファイルのApplication.Run;の前に追加。
0379デフォルトの名無しさんNGNG
ドモ
0380デフォルトの名無しさんNGNG
Delphiによるオブジェクト指向プログラミングの方法を教えて☆
0381デフォルトの名無しさんNGNG
「オブジェクト指向プログラミングの方法」って
なんじゃそりゃ・・・
VB厨?
0382デフォルトの名無しさんNGNG
>>381
ばれちゃった?(T_T)
ごめんなさいね(T_T)
0383デフォルトの名無しさんNGNG
>>380
Delphiを起動する→フォームが表示されている→オブジェクト指向プログラミングのはじまりはじまり〜
0384デフォルトの名無しさんNGNG
Delphiを起動し、フォーム上にLabelコンポーネントを配置したら、
オブジェクトインスペクタ→プロパティ→Captionからではなく、
プログラム上からこのCaptionが変更できるのならその方法を教えてください。
0385デフォルトの名無しさんNGNG
>>384
Label1.Caption := 'ちょっとは頭使えや。';
0386デフォルトの名無しさんNGNG
>>385
Label1.Caption := '産休べりーまっち';
0387デフォルトの名無しさんNGNG
>>383
ということはなんとなく使っていればオブジェクト指向になるんですか?
実はオブジェクト指向という言葉の意味自体、よく分かっていないんです(T_T) なんか流行っているらしくて(T_T)
0388デフォルトの名無しさんNGNG
>>387
オブジェクト指向って言う概念自体、多岐にわたりあやふやになってるところがあるね。
0389デフォルトの名無しさんNGNG
>>387
Delphiを使っていれば、自然とオブジェクト指向、コンポーネント指向が分かってきます。
↓見て、とにかくDelphiを使ってみましょう。
http://www.borland.co.jp/delphi/papers/vbtodel/index.html
0390デフォルトの名無しさんNGNG
>>389
結局クラスライブラリを覚えられるかどうかだよ。

最低限そこに到達しないとオブジェクト指向の利点はわかりにくい。
0391デフォルトの名無しさんNGNG
ポインタの初歩的なことはわかったんだけど、どんなことに使えばいいの?
教えてください
0392デフォルトの名無しさんNGNG
>>391
どこかのDelphiスレで同じような質問があったよ。

結論は参照があるからポインタは滅亡。とか言う頭悪いとしか思えない物だったけど。
0393391NGNG
何か初心者でもできるようなのを教えてください
0394 ◆qVtare/k3c NGNG
>>391
そりゃ使うときがやってきたら使う(しかない)、としか胃炎だろ。
例えば引数が「T○○型」じゃなくて「P○○型」で宣言されてる関数使ったり、
TListにデータ入れたり、TTreeView/TListView.Item.Dataにデータ入れたり、
WindowsAPI直接使ったり、などなど。
0395 NGNG
オレも長いこと利用価値が分からんかった…。
要するに、
○入れ物ごと、ごっそり渡す
○入れ物の場所「だけ」を教える
どちらが良いか?ってことなんだ…よね?(^^;
0396デフォルトの名無しさんNGNG
>>393
文字列の長さをLength関数ではなく、ポインタで求めてみよう。
0397デフォルトの名無しさんNGNG
>>394
比較的問題外。

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

>>396
楽しいか?それ。
0398デフォルトの名無しさんNGNG
ポインタと参照の定義にもよるけど…
仮にポインタとは参照にアドレス演算の機能を追加したものと考えると

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

な感じかなあ。
0399398NGNG
で、比較的楽しいのは、TBitmap.ScanLineに直接書き込んでみるとかどうだろう。
DirectXでテクスチャをロックして…でもいいけど
0400396NGNG
文字列のメモリブロックのレイアウトはヘルプのメモリ管理に載ってるよ。
初心者のポインタの練習としてはこの程度でいいのでは?
0401 ◆qVtare/k3c NGNG
比較的問題外っていわれても…
だってDelphiはポインタ「も」使えるってだけで、
ポインタ推奨じゃないし。むしろ使わない方向で設計されてるんだし。

>>391は初心者を免罪符にしてるか単なる釣りにしか思えない。
そんなにポインタ使いたけりゃC言語使えばいいじゃん。
0402デフォルトの名無しさんNGNG
>>401
GetMem
NULLで終わる文字列
TList

どこがだよ。
0403 ◆qVtare/k3c NGNG
>>402
そんなの初心者が使わないだろ。
中・上級者だったら目的に応じてポインタ使うか使わないか選択できるだろ。
0404デフォルトの名無しさんNGNG
初心者だけど使ってます…
0405デフォルトの名無しさんNGNG
初心者だから使ってますの間違いだろ
0406227NGNG
ヘルプ機能をつけたいのですが、いわゆるヘルプデザイナーが
みあたりません。どうやってヘルプ機能を実装するのが一般的
ですか?
0407デフォルトの名無しさんNGNG
HelpDesigner
http://www.koji27.com/soft/hd/tool.htm
0408デフォルトの名無しさんNGNG
Delphi初心者の場合は、ポインタ使う前に覚えることが山ほどあるわけで。
Cからの移行組はいったんポインタのことは忘れることだ。
0409デフォルトの名無しさんNGNG
えっとぉ、ポインタを介しての配列へのアクセスは(ry
0410デフォルトの名無しさんNGNG
Delphiで配列使うことなんてあまりないだろ
0411デフォルトの名無しさんNGNG
・・・ココはバカになるスレですか?

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で配列使うことなんてあまりないだろ
0412スレ違いNGNG
普通はstd::vectorだろ。
0413デフォルトの名無しさんNGNG
>>412
std::vector vec = new std::vector();

vec = malloc(120);

vec[32] = \x0;

俺はそんな怖い使い方は出来ん・・・。
0414デフォルトの名無しさんNGNG
つかバッファ確保にvector<byte>使うのやめれ
0415デフォルトの名無しさんNGNG
>>411
へ?動的配列がなかった時代はどうしてたの?
0416デフォルトの名無しさんNGNG
>>415
Cで可変長文字列が扱えないってのと一緒だな。
0417デフォルトの名無しさんNGNG
配列定数ならよく使いますがな。
0418デフォルトの名無しさんNGNG
任意のMDIChildeウィンドウを1番手前に持ってくるにはどうしたらいいのですか?
SetFocusでも無理だし、SetForegroundWindowでも無理でした。
0419デフォルトの名無しさんNGNG
過去ログです。
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
0420デフォルトの名無しさんNGNG
>>418
BringToFrontは?
0421デフォルトの名無しさんNGNG
>>418
変なことしてなければShowメソッドでOKだけど。
0422デフォルトの名無しさんNGNG
>>420,421

ありがとうございます。Showでできました。
0423デフォルトの名無しさんNGNG
Delphi 6 Personal のレジストができません。
(登録メールアドレスにメールが送られてこない)

6 Personal はもう登録受付を終了してしまったのでしょうか?
0424デフォルトの名無しさんNGNG
>>423
終わったよ。
0425 NGNG
>>424
本当?423じゃないけど。

「フリーのパソナルをDLしてプログラムを学ぼう!」みたいな本が出てたのに…。
あの本、立ち読みしてたら、
>作者はまだdelphi3なので、6の環境はよく分からないのですが…
みたいなこと書いてあった…。
それでいいのだろうか…。
そんなんで本書いていいのだろうか…?
「delphi3で学ぼう!」に変えた方がいいのではないだろうか…。
0426デフォルトの名無しさんNGNG
Win2kPro+SP3でDelphi6Pro使ってますが、
ATOK16で半角固定入力すると、
コードエディタでキャレットが表示されなくなります。
これは不具合でしょうか?
ちょっと打ちづらいですね。
Delphi7ではどうでしょう?
0427デフォルトの名無しさんNGNG
>>426
同じ環境ですがそんなことは起こっていません。
0428426NGNG
>>427
ネタですか?
0429デフォルトの名無しさんNGNG
ぬるぽって何ですか
0430デフォルトの名無しさんNGNG
>>425
ネタだろ
どうせいつもの通り認証サーバが落ちてるだけ

単純な煽りカキコに騙されんように
自演だったら氏ね
0431デフォルトの名無しさんNGNG
ソフトウェアのアイコンをクリックしてから一番初めに動くprocedureはなんですか?
0432デフォルトの名無しさんNGNG
procedure の前に全ユニットのinitialization部
その後 program 宣言で始まるユニットの実行ブロック
0433デフォルトの名無しさんNGNG
>>431
イベントドリブンプログラミングの書き方から勉強すべき。
どこから始まるかは意識せずに、操作に対応したコードを書いていくのです。

といいつつ一応答えておく。
*.dpr 内の begin end. 内。
(initialization がある場合は別だが
0434デフォルトの名無しさんNGNG
thanks
0435デフォルトの名無しさんNGNG
>>429 ガツ
0436デフォルトの名無しさんNGNG
Delphiの将来性ってどうなのですか?
0437デフォルトの名無しさんNGNG
>>436
そろそろ次の身を寄せる場所を探した方が良いと思う。
0438デフォルトの名無しさんNGNG
>>437
どこ行ってもダメさ。 人余り。

 仕事ないよ。

期待の.NETも、最初からVB並だもんなあ・・・・
0439デフォルトの名無しさんNGNG
VBと同じものを作ったら、Delphiの方がファイルサイズが大きくなりました
何故ですか?
0440デフォルトの名無しさんNGNG
>>439
同じものを作れているなら同じになっている筈です。
それは同じものが作れていないわけでは?
0441デフォルトの名無しさんNGNG
>>439
>同じ物
眉唾だけど。

Delphiはランタイムを実行ファイルに埋め込むからファイルサイズが大きくなる傾向がある。
0442デフォルトの名無しさんNGNG
>>439
大きいのは .DSM ファイルでしょ? それはいつ消してもかまわない。

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

逆にVBだと FD に入れて他のパソコンで動かすなんて時に色々困る
0443デフォルトの名無しさんNGNG
>>442を晒しage
0444デフォルトの名無しさんNGNG
>>443を晒しage
0445デフォルトの名無しさんNGNG
>>439
プロジェクトオプション>パッケージタブ>実行時パッケージを使って構築にチェック。
ただし別途.bplを配布しなければならない。
0446デフォルトの名無しさんNGNG
CVSでソース管理してる人いる?
Delphiから直接使えたらなぁ。。。
0447デフォルトの名無しさんNGNG
Indyのコンポーネントの使い方が詳しく載っている日本語の解説サイト、どなたかご存知ありませんか?
0448デフォルトの名無しさんNGNG
>>447
もなぢら
0449デフォルトの名無しさんNGNG
前から疑問だったんだが、Indyって何?
0450デフォルトの名無しさんNGNG
コンポ集のことっぽい<Indy
っていうかOpenJaneのソース使うのに漏れもインストウルした
0451デフォルトの名無しさんNGNG
ランタイム不要で少しくらい大きくてもさ、
他人がダウソして実行しても動かなくてゴミ箱直行されるのとどっちがいい?

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

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

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





・・・と釣られてみるテスト。
0453デフォルトの名無しさんNGNG
Editコンポーネントで、特定の文字(たとえば数字)だけを入力可能にする方法はある?
0454デフォルトの名無しさんNGNG
>>435追伸
たとえば数字(=半角数字)
0455デフォルトの名無しさんNGNG
>>453 MaskEditはどうしてナシなの?
0456Delフサギコ ◆A6VzDeLphI NGNG

    ∧,,∧
   ミ,,゚Д゚彡旦~~
   (   / ̄ ̄ ̄ ̄ヽ
彡(三三/   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で検索してみますた。
0457デフォルトの名無しさんNGNG
>>449
Indyってのは、インターネット通信ソフトが楽に作れるコンポーネント集です。
フリーで使えます。
Professional版にはデフォルトでインストール済み。Personal版は自分でインストールする。

例えば、

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

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

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

ツールが豊富にあるから誰も困っていないので、製品に取り込まないんでは?
0459デフォルトの名無しさんNGNG
VBランタイム=ポップアップ広告
0460449NGNG
>>457
thx!
それだけでソース取得できるとはすごいね。
0461デフォルトの名無しさんNGNG
CVSは言語というか、ファイルの種類を選ばないはずだが
(いまいち勝手は悪いが)
0462デフォルトの名無しさんNGNG
CVS を IDE から簡単に使う。って話ではなかったかな?
0463デフォルトの名無しさんNGNG
>>452
ヴァカは死ね。
0464デフォルトの名無しさんNGNG
音系はWAVしか実行ファイルに埋め込めないのでしょうか?
0465デフォルトの名無しさんNGNG
>>464
midならmidiメッセージをリソースにしといて
リソースからAPIに命令を出すことで埋め込めるよ。
0466デフォルトの名無しさんNGNG
>>464
大抵のものは埋め込めますよ。

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

あとは再生する直前にファイルを作って再生するのが簡単。
 リソースのまま再生する方法もあるけど、
0467デフォルトの名無しさんNGNG
いいじゃん実行ファイルなんかに埋め込まなくて。
一つでも分かれてても同じ事。
ランタイム恐怖症の次はデータファイル恐怖症か?(w
0468デフォルトの名無しさんNGNG
アイコンも埋め込むな
0469デフォルトの名無しさんNGNG
アプリケーションのアイコンは埋め込んだ方がいいね。
その他のアイコンは埋め込む必要ないけど。
0470デフォルトの名無しさんNGNG
理論上あらゆる種類のファイルが入るよ。
いざ使うときはめんどくさいけど
0471デフォルトの名無しさんNGNG
プログラマーも埋め込めよ。
中の人も大変だ、を地で行く。
0472デフォルトの名無しさんNGNG
>>456
「Delフサギコ ◆A6VzDeLphI 」さん
産休です。
0473デフォルトの名無しさんNGNG
>>472追伸

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

Delphiを先に起動した後に.dprを読み込めば問題なく動きます。
どうしたら直りますか?
0475ねこまNGNG
Delphiを先に起動した後に.dprを読み込んでください

@NIFTY-FDELPHI / Delphi-ML でもそういう意見です.
0476474NGNG
直らないんですね…。ありがとうございました。
0477デフォルトの名無しさんNGNG
Del6Personalでは物足りなくなったのでDel7Proを買います。
0478デフォルトの名無しさんNGNG
>>458
できたらDel6Per.でも使える方法きぼん

Proを買えという話ですな。
Del8が出たら買うと思うけど。。。
0479デフォルトの名無しさんNGNG
そもそも、ModelMakerってProについてるのか?

とりあえず、CVSはWinCVSで使ってる。一人で使ってても昔のを取り出せて便利だ。
0480デフォルトの名無しさんNGNG
ガイシュツのような気もするけど、マルチバイト文字を含むフォルダ名の直下に
*.DPRを保存すると、起動時にエラーがでまくり、大変なことになります。

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

ちなみに上位の階層に全角文字を含むフォルダ名が混在していても、直下
でなければセーフのようです。
0481デフォルトの名無しさんNGNG
>>479
WinCVSって使いにくくない?
eclipseみたいに使えたらなぁ。。。とないものねだりしてみる。
0482デフォルトの名無しさんNGNG
>>481
書けばいいじゃん。あんたはプログラマ、開発環境はある。これ以上ない環境だぞ。
0483デフォルトの名無しさんNGNG
低機能なDelphi&フリーウェアの拾い食いなんてやってないで
素直にVisual C#+Visual SourceSafe使いなよ。
0484デフォルトの名無しさんNGNG
>>483
>低機能な
そうでもないよ。
0485デフォルトの名無しさんNGNG
スタートアップに登録されているかどうかを調べる方法ありますか?
0486デフォルトの名無しさんNGNG
>>485
スタートアップフォルダ漁れば良かろう。
0487デフォルトの名無しさんNGNG
>>486
レジストリモナー
0488デフォルトの名無しさんNGNG
ショートカットをスタートアップに入れられたら意味無さそう
0489デフォルトの名無しさんNGNG
C#がでてからいっそうDelphiが活気づいた気がする。
0490デフォルトの名無しさんNGNG
>>489

C#の設計者 = Delphiの設計者って聞いたけど、ホント??
(MSが暴乱度から引き抜いたとか・・・)
0491デフォルトの名無しさんNGNG
>>490
C#のライブラリ見てみれば何となくわかると思う。
VCL + Javaと言った感じ。
0492デフォルトの名無しさんNGNG
>>490
ホント。ヘジルスバーグ。
C#完成後は某に帰っていった。
0493デフォルトの名無しさんNGNG
メニューやツールバー用にイメージリストに取り込むビットマップを山ほどください。
0494デフォルトの名無しさんNGNG
Del6の無料版でつくったものは、ソースだけならくばっていいんですか?
0495デフォルトの名無しさんNGNG
>>494
バイナリ配っちゃダメだったっけ?
0496490NGNG
>>491-492
ありがと。
しかし、MSってほんとに引き抜きの好きな会社だね(w
(各球団の4番打者をえげつなく引き抜く長島巨人みたいだw)
0497デフォルトの名無しさんNGNG
良い人材を引き抜くのはビジネスの常識。
それを禁止されたら良い人材に正当な評価が出来なくなる。
0498デフォルトの名無しさんNGNG
何が正当なんですか? :-P
0499デフォルトの名無しさんNGNG
>>498
お前は一生その会社でただ働きだな。:3−)
0500デフォルトの名無しさんNGNG
>>498
ヘジルスバーグが某の文句言ってただろ。何が正当かは人次第だよ。:-P
ところでいつ某に戻ったんだ? 戻ってきてほしいの間違いだろ。
0501デフォルトの名無しさんNGNG
>>496
長島→長嶋
0502デフォルトの名無しさんNGNG
>>501
ご指摘ありがと。
でも、まあ堅いこと言うなや(w
0503デフォルトの名無しさんNGNG
>>502
せっかく指摘してあげたのに文句言うなや(w
0504デフォルトの名無しさんNGNG
当方OSはXP-Homeで、Delphi6Perを使っています。
以前OSがWin98SEだったときに作ったソフトがありまして、
ボタンを押すとMemo中の選択文字列を指定したタグで挟むようにしていたんです。

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

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

m(_ _)m
0506504NGNG
もちろん"じゃなくて'です…すいません。
0507デフォルトの名無しさんNGNG
>>デルふぁi6パーsonaru

シェアウェアにしたら駄目なだけだよ
0508デフォルトの名無しさんNGNG
アフォみたいな質問でつが、hoge.exeの内容を文字列として
function hogehoge(S: string): string;
に渡すにはどうすりゃいいんでつか。
0509デフォルトの名無しさんNGNG
>>505
誤ってすむなら警察いらねーんだよ。
0510デフォルトの名無しさんNGNG
>>508
アフォみたいな質問ですね(w
0511デフォルトの名無しさんNGNG
>>507
だよね。どきどきしたよ。
0512デフォルトの名無しさんNGNG
>>508
BASE64とかMD5とかの関数ですか?
0513508NGNG
>>512
MD5でつ。
0514デフォルトの名無しさんNGNG
>>513
MD5だと大変だぞ
0515508NGNG
>>514
どう大変?
0516デフォルトの名無しさんNGNG
    _, ._
  ( ゜ Д゜)
0517508NGNG
ttp://homepage2.nifty.com/kht0000/
ここで拾ったDLL使ってんだけどそれでも大変でつか?
0518デフォルトの名無しさんNGNG
「拾った」って表現を使うな
0519デフォルトの名無しさんNGNG
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;
0520デフォルトの名無しさんNGNG
とやればいいのだが、途中にNull文字が含まれることになる。
利用したい関数が、途中にあるNull文字を終端と見なすようなら、
お好みの1バイトに置換してやればいい。
0521デフォルトの名無しさんNGNG
Stringは普通にバイナリを扱えますが
PCharにするとnull文字を終端とみなされてしまいます。
0522デフォルトの名無しさんNGNG
バイナリがパイズリに見えた


自分でもワラタ
0523508NGNG
>>519
519殿は漏れにとって神でつ。
ありがとうございますた。

0524デフォルトの名無しさんNGNG
TEditなどにフォーカスがあたった時に
IMEのソフトキーボードを自動で表示するにはどうしたらいいですか?
0525デフォルトの名無しさんNGNG
>>523
それで正しい結果が得られているの?
0526524NGNG
>>524
Imm をUseして
Imm32SetConversionStatus(hImc, IME_CMODE_SOFTKBD, IME_SMODE_NONE);
でできました。
0527523NGNG
>>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

//サンプルは適当に選びますた。
0528デフォルトの名無しさんNGNG
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;
0529デフォルトの名無しさんNGNG
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;
0530デフォルトの名無しさんNGNG
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;
0531デフォルトの名無しさんNGNG
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);
0532デフォルトの名無しさんNGNG
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;
0533デフォルトの名無しさんNGNG
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);
0534 ◆MuQLEaWKLg NGNG
厨房質問でお茶を濁すぜ。

Del6personal@winXP。
Indyってのはプログラムからの通信を全部管理するんですか?
たとえばHTMLの表示にTMozillaBrowser.Navigateを使ったらIndy HTTP Clientに設定されているプロキシ設定とかが反映されるんですか?
ってことです。
0535デフォルトの名無しさんNGNG
>>534
馬鹿言うな
0536 ◆MuQLEaWKLg NGNG
馬鹿を言ってみたかったんだ(=゚ω゚)ノょぅ・・・

ってかIndy HTTP Clientと(゚д゚)ウマーな関係を作れるパーサはないかなぁ....
0537デフォルトの名無しさんNGNG
>>536
なんで?
0538 ◆deTS7/W6y2 NGNG
質問です。

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

極端に言えばただのポインタ変数なのでどうもしなくて良いです。
0540 ◆deTS7/W6y2 NGNG
>>539
レス、ありがとうございます。
そうですか。何もしないでいいんですか…。
私の挙げた例は別に変じゃないですか?
integerとかstringとかの「宣言しただけ」は、今までもほっておいたんですが(^^;。
クラスの宣言は勝手が違うのかと…。
0541デフォルトの名無しさんNGNG
>>540
まぁ、ポインタみたいにどこでも持って行けるのが便利って事で。
0542 ◆deTS7/W6y2 NGNG
>>541
そうですか。ありがとうございました!
※解決※
0543デフォルトの名無しさんNGNG
 縦書きビューワーコンポ(エディタコンポならまだいいけど)ってないですか?
0544デフォルトの名無しさんNGNG
>>543
RichEditに然るべきメッセージ。
0545デフォルトの名無しさんNGNG
>>543の日本語が難しい
0546デフォルトの名無しさんNGNG
>>545
それに関しては激しく同意。
0547デフォルトの名無しさんNGNG
>>540
stringも実態は参照カウンタ付きポインタだよ。
ただ、スコープが外れた時に勝手に開放されたりして、
「プログラマは何もしないでいい」だけで。
# クラスも無理やりinterface使えば、参照カウンタで管理することも出来るが・・・
0548デフォルトの名無しさんNGNG
>>544
RichEdit の縦書きサポートは W2K か XP でなくなりました。マジで。
0549デフォルトの名無しさんNGNG
Win9x系のriched32.dllを持ってくれば解決するがオススメしない。
0550デフォルトの名無しさんNGNG
スタートアップフォルダにあるやつを起動させてるやつは何者なんだYOOOOOOOOOOO
スタートアップフォルダ自体は単なるフォルダなんでしょ?
0551デフォルトの名無しさんNGNG
>>550
Windowsだろ。
0552デフォルトの名無しさんNGNG
ただのフォルダじゃなく選ばれたフォルダなんだよ
0553デフォルトの名無しさんNGNG
キングオブフォルダ
0554デフォルトの名無しさんNGNG
>>485
>>550
ttp://hp.vector.co.jp/authors/VA009712/take/delphi/kabesys.htm#getshellfolder
こんなんでどうでしょう?
0555デフォルトの名無しさんNGNG
>>554
またライブラリ厨か・・・
0556デフォルトの名無しさんNGNG
>>554
なんか使えそうですね
ありが�d
0557デフォルトの名無しさんNGNG
次はショートカットってどうなってんだYOOOOOですか?
0558デフォルトの名無しさんNGNG
CSIDL_PROGRAMSはProgram Filesフォルダではなくスタートメニューのプログラムフォルダです。
Program Filesの取得にはconst CSIDL_PROGRAM_FILES = $0026を使います。
0559デフォルトの名無しさんNGNG
ショートカットの件は克服できそうデス
0560デフォルトの名無しさんNGNG
エンターキーでパソコンの電源を入れられる伝説のコードを探せ
0561デフォルトの名無しさんNGNG
もうそうなってるし。スペースでも入るぞ。
0562デフォルトの名無しさんNGNG
「if A or B = C then」
これって、
A = CとB = Cが両方成り立ったときっていうことなの?
それとも、どっちかだけ?
っていうか、こういう書きカタってあるの?
0563デフォルトの名無しさんNGNG
>>562
いや、

AがtrueかつB=Cがtrueのとき。
0564デフォルトの名無しさんNGNG
>>563
わるい、かつじゃなくてもしくはだ。

まだ寝てるな・・・
0565デフォルトの名無しさんNGNG
>>562
or演算子の優先順位が高いから
AかBがTrueかつ、CがTrueの時じゃないのかなぁ。

>A = CとB = Cが両方成り立ったとき
「if (A=C) and (B=C) then」
とするのが(・∀・)イイ!
0566デフォルトの名無しさんNGNG
ってことは、
if A = C or B = C then
とすれば、どっちかが成り立った時になるわけか�d�d
0567デフォルトの名無しさんNGNG
>>565
やっぱりか。いつもはまるからor andするときは何があろうがかっこを付けることにしてるよ。
0568デフォルトの名無しさんNGNG
>>566
A = (C orB) = Cじゃないの?
0569デフォルトの名無しさんNGNG
>>566
(・∀・)カコツケYO!
if (A = C) or (B = C) then
0570デフォルトの名無しさんNGNG
{A = (C or B)} = C
0571デフォルトの名無しさんNGNG
括弧に入れれば間違いない無さそうだね
みんなどうも
0572デフォルトの名無しさんNGNG
なるほどなるほど
わかりますた()
0573デフォルトの名無しさん NGNG
NMHTTPを使いたいんですけど、通信してる途中重くて仕方がありません。
たとえばIEでページをロードしても別に重さを感じることはありませんよね?
でもNMHTTPを使ってるとボタンが押せないくらい重くなります。
これを防ぐ方法はありませんか?よろしくお願いします。
0574デフォルトの名無しさんNGNG
>>573
スレッド
0575デフォルトの名無しさんNGNG
重いならスレッド。
0576デフォルトの名無しさんNGNG
粉うかた無き混じれ酢だがIndy使え
0577デフォルトの名無しさんNGNG
>>573
ttp://damedame.ddo.jp/delphi/wininet.html
こんなのダメですか・・?

全然違う質問なんですけど、コードエディタで複数行にわたってインデントを調節したいときってどうすればいいんですか?
いつも使っているエディタだと、複数行選択してTabを何回か押すと、そのブロックごとインデントするんですけど、
Delphiのエディタだとざっくりと消えてしまうんです。
今は面倒だけど、一行ずつTab入れて調節しています。
0578デフォルトの名無しさんNGNG
^ki ^ku
0579デフォルトの名無しさんNGNG
>>577
行選択orブロック選択して
Ctrl + Shift + U
Ctrl + Shift + I
0580デフォルトの名無しさんNGNG
>>579
ありがとうございました。m(__)m
0581デフォルトの名無しさんNGNG
標準のTTimerをつかって一定間隔でイベントを起動させたいのですが、
たとえば、10分おきに更新するような場合に、手動でも更新できるようにしたいのです。
そのときは最後に更新したときからまたカウントをしなおしたいのです。

標準のVCLでは無理そうなのですが、そんなことができるコンポありますでしょうか?
0582デフォルトの名無しさんNGNG
>>581
自分で作るって選択肢は無いの?
いい機会だから継承とかいろいろ勉強したら?
0583デフォルトの名無しさんNGNG
>>581
Timer.Interval=1000にしてWindows.GetTickCountと変数一つ組み合わせれば実現できるよ。
0584デフォルトの名無しさんNGNG
test
0585デフォルトの名無しさんNGNG
>>581
timerのenableをオフにしてまたオンにするとカウントリセットされる。
0586デフォルトの名無しさんNGNG
>>582-585
皆様たいへんありがとうございました。
なにせ3からいきなり7に飛んでいますし、ここ数年GUIは手をつけていなかったので・・・
今作っているのはまったくの趣味ですが、人様が作ってくれたいろんな有用なコードを切り貼りしていると言っても過言ではないです。
自分でコンポまで作れればいいのですが、そこまで技術がなかなか伸びないままいつも途中で放り投げて・・・

今度は完成できるといいなぁ
0587デフォルトの名無しさんNGNG
あきらめずに続ければ、いつのまにか上達するものだよ。ガンガレ。
0588デフォルトの名無しさんNGNG
Indy HTTP Client でGetしたHTMLをTMozillaBrowserに表示する方法をご教授ください....

方々探し回りましたがやっぱりいったんファイルに出力しなきゃだめでしょうか?
0589デフォルトの名無しさんNGNG
>>573に便乗みたいなものですが、スレッドがうまく使えません。
ヘルプなどをみて、一通りスレッドの使い方は勉強しましたが、
実用的には使えません。

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

つまずいている点は、たとえばモード付きダイアログを出すと帰ってこないし、
モードなしだとユーザー操作で例外を出してしまう点とか、
一度開始したスレッドに、メインからどうやって連絡するかです。
0590デフォルトの名無しさんNGNG
>>589
モーダレスにしてみるとか。そもそもダイアログボックスをフォームで作ればいいのでは?その上でスレッド作って処理させる。
0591デフォルトの名無しさんNGNG
>>589
昨日考えたのは


while(WaitForSingleObject(stopflag,nowait) <> 0 do
begin
処理
end;

って感じ。
0592デフォルトの名無しさんNGNG
>>589
単純に考えるといい
1、グローバル変数 Hoge:boolean; を用意
2、Hoge:=false;
3、スレッドを作って走らせてから ダイアログを表示
   ->スレッドでは処理 if Hoge then 中断処理
4、ダイアログでボタンが押されたらHoge:=false;
0593デフォルトの名無しさんNGNG
質問なのですが、ヘルプに
if OpenDialog1.Excute then
Memo1.Lines.SaveToFile(OpenDialog1.FileName);
とか見るのですが、if と then が無くてもそれっぽく動くのですが
どうしてifとかthenとか必要なんですか?
0594デフォルトの名無しさんNGNG
>>593
ダイアログでファイル選択しないでキャンセルしたらどーなる?
0595DelpherNGNG
何方か教えていただけないでしょうか
Delphi6付属のServerSocketを使ってファイル送受信を実装しようとしているのですが
TFileStreamとTMemoryStreamを使い、TFileStreamでファイルを開いてそれで
TMemoryStreamにコピーしたあとヘッダーを追加し
TCustomWinSocketでSocket.SendStream( S )として送信をするのですが
小さいファイルをやり取りするには問題は無いのですが
16MBなどといったちょっと大きなファイルを送ろうとすると一定時間Formが応答
しなくなってしまいます(Formが固まってします)待てばよいのですが、これだと
ちょっと問題ありのような気がしまして..他の接続しているクライアントが応答
を受け取れなくなります

メーリングリストを読むと
>TWinSocketStreamを使うとFormは固まるものの、比較的わ
>かりやすく安全に処理できるような気がします。
とか書いてあるのですが、これは絶対に固まってしまうものなのでしょうか?
ServerSocketの特性なのでしょうか?

なんとかFormの固まりを回避したいのですがどなたかアドバイスいただけないでしょうか...
0596デフォルトの名無しさんNGNG
Indy使え
0597デフォルトの名無しさんNGNG
>>595
スレッド。

はい、次の方。
0598DelpherNGNG
うぅ
>>596
やっぱりそうですか....

>>596
スレッド!?
これはヒントなのですか?

厨房質問ですみません
0599デフォルトの名無しさんNGNG
>>598
そうだよ。2ちゃんねるにも沢山スレッドあるだろ。
0600デフォルトの名無しさんNGNG
構造体が動的配列で宣言されているとして、その構造体のメンバにも
動的配列を含める・・・ってのは出来ないようになっているんでしょうか?
シンプルなソースで試そうとしたのですが上手くいかないっぽいので
白か黒か気になってます。
0601デフォルトの名無しさんNGNG
>>600
出来ないでしょう。可変長の構造体なんて認められないんで。
0602デフォルトの名無しさんNGNG
任意次元の動的配列の確保の応用では駄目?

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);
0603デフォルトの名無しさんNGNG
601さん602さん、有難うございます。
特に困るわけではないのでメンバを静的配列にすることにします。
白黒ついてスッキリです。
0604デフォルトの名無しさんNGNG
Indyを使っておりまして、IdHTTP.GetにてHTMLを取得しているのですが
存在しないページ等をGetしようとすると、エラーが出て処理が中断します。
エラーを出さない方法
あるか無いかの判断をする方法
以上二つお願いいたします。
0605デフォルトの名無しさんNGNG
>>604
エラーと例外の区別を付ければあんたは伸びる。
しかし、エラーが出ると良いながらエラーメッセージを書かないところを見ると、才能がないようにも見える。
0606604NGNG
>>605
httpget.exeアプリケーションエラー
"0x61031957"の命令が"0x00000004"のメモリを参照しました。メモリが"written"
になることはできませんでした。
0607デフォルトの名無しさんNGNG
>>606
死んでるじゃん・・・
0608604NGNG
>>607
だから困っているのですが...
0609デフォルトの名無しさんNGNG
try
except
0610デフォルトの名無しさんNGNG
>>609
いや、それで回避しちゃダメな例外(と言うか出来るのか?)
0611デフォルトの名無しさんNGNG
>>604
んなこたないと思うけど。最小のサンプル作って再現できたらうpしてみなよ。
0612デフォルトの名無しさんNGNG
>>604
例外処理してみそ。

try
IdHTTP1.Get('aaa');
except
end;
0613604NGNG
606、608は私ではないのですが、
エラーは存在しないページだと302NotFoundです
今回はエラー内容よりも、エラーに対する処理ということでしたので
書きませんでしたが説明不足ですみません。

以前どこかで見つけたソースを使ってみたのですが
そのコードは応答コードを利用するものでした。WinInetを使う?
通常は200で302や404でたらGetしないという処理でしたが
最近自動で転送なのか、無いファイルを指定したときに自動的に
違うページを表示するような場合でも200を返してしまうので困っておりました。

exceptを使うとエラーは表示されなくなりました。
ありがとうございます。
URLの存在確認の決め手となる方法あらば教えて頂けませんでしょうか?

0614608NGNG
>>606
騙るなよ...
0615デフォルトの名無しさんNGNG
595氏のついでに便乗質問
Socket通信中ってApplication.ProcessMessagesってマズイの?
0616デフォルトの名無しさんNGNG
>>613
Except部でどんな例外が出たか調べるんだよ多分。
0617デフォルトの名無しさんNGNG
デルフアイにはエラーをスルーするコマンコありますか?
0618デフォルトの名無しさんNGNG
>>587
ありがとうございました。

けっこう出来るようになるもので、制作はじめに予定していた機能はほとんど完成に近付きました。

いま困っているのは、
電光掲示板みたいなコンポを載せたフォーム(タイトルバーなし)がマウスでD&Dできないことと、
プログレスバーを載せたステータスバー上のパネルに、文字列を表示するとプログレスバーの
表示が止まるまで表示されないということ
の2つです。

もうひとつ、通信系の問題で、サーバからcontent-lengthが返ってこない場合に、取得するファイル
サイズを事前に知る方法ってありませんか?

あとはトレイアイコンにしたり、そこから右クリックで電光掲示板出したり・・・いろいろ構想はありますけど

0619デフォルトの名無しさんNGNG
このスレでよく、
PerだったらPro買え、みたいなレスをよく見るけど、
ただ単にVCLが豊富ってだけなの?
Perでも自力で実装すれば、出来ない事は無いの?
0620デフォルトの名無しさんNGNG
Per Per いう奴が Per
Per には何も出来ません
0621デフォルトの名無しさんNGNG
ひとつ質問です。

1つのプロシージャ内でStatusBarのPanelにテキスト表示しているのですが
全部で24回同じ位置に表示するうちの最後のものしか表示されません。
このプロシージャは一瞬で終わるわけではなく、途中で関数を呼びながら
10秒くらい掛かるのですが、10秒間ほどの間23回の表示はまったく見えません。

念のためにBeginUpdate, EndUpdateで囲ってもみましたがダメでした。

何か手立ては無いでしょうか?
(直前にMemoコンポに同じ内容を表示してて、こちらはまがりなりにもスクロール
などしてあとから見ると全部表示されています。最中も一部は見えます)




0622デフォルトの名無しさんNGNG
>>619
某に儲けさせたいから
0623デフォルトの名無しさんNGNG
>>621
Application.ProcessMessages
を所々に入れてみるとか。
0624デフォルトの名無しさんNGNG
そうだな、4年タダみたいに使って6年廉くこき使って26で放出か、26なら再就職先あるだろ。
0625デフォルトの名無しさんNGNG
InternetCombineUrlを使った簡単なコードを教えて下さい
0626デフォルトの名無しさんNGNG
>>623

ありがとうございました。うまくいきました。m(__)m
0627デフォルトの名無しさんNGNG
ソフトからだした、ShowMessageをソフトから消すことって出来ますか?
0628デフォルトの名無しさんNGNG
ソフトにだした、ShowMessageをソフトに消すことって出来ますか?
0629デフォルトの名無しさんNGNG
>>628
sendmessage
0630627NGNG
>>629
出来ましたありがとうございます。
0631デフォルトの名無しさんNGNG
メニューアイテムのヒントを表示するには、どこをどう設定すればよいのでしょうか?
メニューアイテムには他のコントロールのようにShowHintプロパティが無いんです。
ヒントプロパティに設定した文字列を表示したいんです。
0632デフォルトの名無しさんNGNG
>>631
DelphiヘルプのTMenuItem.Hintを参照
0633ANGNG
>>619
ProにはVCLのソースがついてくるのが一番の違いだと思われ。
0634デフォルトの名無しさんNGNG
Delphiのツールメニューにhtmlファイルを追加するには、どうすればできるのかな?
0635デフォルトの名無しさんNGNG
>>634
タイトル:HTML
プログラム:ブラウザ.exe
作業フォルダ:
実行時引数:HTMLファイル.html
0636デフォルトの名無しさんNGNG
文字列から、最後の一字を省くにはどうすればいいんですか?

たとえば「あかさたな」から「な」だけ削除して表示するみたいなやつ。
この「あかさたな」はランダムで生成される文字列です
0637デフォルトの名無しさんNGNG
function DeleteLastChar( w : widestring ) : widestring;
begin
 if w = '' then Result := ''
 else Result := copy(w, 1, length(w) - 1);
end;
0638nanasiNGNG
Indyを使ったちょっとした通信ソフトみたいなサンプルソースありませんか?
chatでもファイル転送でも
0639デフォルトの名無しさんNGNG
某の web でも ML でも明示されていないけど、アップデート出てます。

Delphi 6 RTL アップデート #2
http://www.borland.co.jp/delphi/del6up.html

最新情報ページくらい更新しろよ > 某日
0640デフォルトの名無しさんNGNG
>>639
>某の web でも ML でも明示されていないけど

あれ?3日前Borland日本のサイトでそれダウンロードしたけど。
0641デフォルトの名無しさんNGNG
>>639
Delphi起動したときの案内画面に出てたが。
0642デフォルトの名無しさんNGNG
ソース付きのソフトウェアキーボードのコンポーネント(アプリでも可)を
置いてあるサイト知ってる人いたら教えてください
0643デフォルトの名無しさんNGNG
>>642
アクティブなウインドウにKEYDOWNメッセージでも送れば良いんじゃないの?
0644デフォルトの名無しさん NGNG
DELPHIで作ったWEBサーバーアプリケーションは、
CGIが使えるWEBスペースサービス(niftyとか)でなら実行できますか?
0645デフォルトの名無しさんNGNG
>>643
たとえばMicrosoftのスクリーンキーボードはボタンをマウスで押してもウィンドウがアクティブにならないですよね?
ああいうのはどうすれば出来るのか知りたいのです。
0646デフォルトの名無しさんNGNG
>>644
CGIの使えるUnix/Linuxサーバじゃ動かないだろ。
Windowsであることが必須。たしかGeoとかそうだったようなそうで無かったような。
0647デフォルトの名無しさんNGNG
GeoがWindowsなんか使うわけないだろう。
あそこはSolarisやFreeBSD
0648デフォルトの名無しさんNGNG
そもそもGeoはサーバサイドでプログラムを動かせない。
0649デフォルトの名無しさんNGNG
そもそもサーバーサイドはプログラムじゃない。
0650デフォルトの名無しさんNGNG
そもそもサーバーに中の人などいない。
0651デフォルトの名無しさんNGNG
しょうもない質問ですが、ラベルコンポでワードラップ可能にしたとき
強制的に折り返しの位置を指定する特殊文字ってありますか?
それとも1行目の末尾にスペースを入れて調整しないとダメですか?
0652デフォルトの名無しさんNGNG
#13#10 とか。
0653デフォルトの名無しさんNGNG
>>651
sLineBreak
0654651NGNG
>>652-653
あのぅ、お答えいただいて大変恐縮なのですが・・・
それはコードで動的に書く場合ですよね?
GUI設計時にプロパティ欄に入れる方法はないですか?

たとえば、エクセルだとCtrl+Enterで改行が入りますよね?
それと同じような感じでないですか?
0655デフォルトの名無しさんNGNG
>>654
D6以降ならテキスト形式のDFMファイルに直接
Caption := 'Label1'#13#10'改行テスト';
みたいに書き込んだら?
0656デフォルトの名無しさんNGNG
>>654
655さんに先に書かれてもうたけど・・・
フォームを「エディタで表示」にしておいて
Caption = 'First'#10'Second'
ならOK
0657デフォルトの名無しさんNGNG
まず、プロパティの型を string から TStringList に切り替える。
そうすればプロパティエディタ側は複数行編集可能になる。

TMemo では、コントロールが保持している文字列の代わりに Memo コントロールが
返してくる文字列をプロパティの値としている。
ここを書き換えて、常にコントロール側で保持している文字列を返すようにすれば
良いかと。
0658651NGNG
>>655-657
なるほど!こういう方法があったんですね。
ありがとうございました。

「エディタで開く」のやり方が良く分からなかったのですが、該当コンポ上を右クリックで
下から2番目にそのメニューが出てきました。(D7です)
0659デフォルトの名無しさんNGNG
Delモナーは?
0660デフォルトの名無しさんNGNG
>>659
日本法人の方針変更、規模縮小に伴いリストラされますた。
0661デフォルトの名無しさんNGNG
ゲームとかで、足元のY座標を調べて、小さいほうから作画すれば
ちゃんと奥行きが反映できますよね?
でも、その方法が思いつきません。
誰か(・∀・)イイ!!方法教えてください。
0662デフォルトの名無しさんNGNG
>>661 Zオーダーの事?

グラフィックコンポーネントは親の Components 順に描画されたと思うけど
0663デフォルトの名無しさんNGNG
TEditにTUpDownボタンをつけて数字を入力し、その数字をTIniFileを使って保存・読み込むという
仕組みを作りました。
TEditのOnChangeメソッドにIniFileへ数字を保存するコードを書きました。
TEditの貼り付いているFormのOnShowメソッドにIniFileから数字を読み込んでTEditに設定する
コードを書きました。

このようにしたら、OnShow時に(設計時と異なる)数字を書き換えることでOnChangeメソッドが
呼ばれてしまい、なぜか設計時の数値に置き換わってしまいます。

IniFileへUpDownで指定した数値が保存されたことは確認しましたし、トレースしてOnShowのあとに
OnChangeが呼ばれて、なぜかそのときにすでにTEdit.textの値が設計時の値になっていることも
確認しました。

なぜなのでしょう?
0664デフォルトの名無しさんNGNG
>>663
変更するごとにファイルに書き込むって言う仕様から変えた方が良いと思うけれど。
0665デフォルトの名無しさんNGNG
>>663
自己レスです。

はぁ、厨厨な質問でした。なさけねぇー。
UpDown.Positionの値にせっとすべきなのですた。はぁ〜
0666デフォルトの名無しさんNGNG
>>664

あ、すみません、レス付けていただいてましたね。

・・・というと、どうすればいいんでしょう?
いちおう設定のダイアログはあるんですけど、そのボックスだけは頻繁に変更する
たぐいの情報なので、いきなりメインフォームに張り付いているんです。
だから、変更したタイミングで・・・あ、そうか、UpDownボタンから離れたタイミングで
変更とかそういう仕様ですか?

でも、そうすると、Editで直接編集したときに変更するタイミングがなくなるような・・・

どうしたらいいんでしょう?
0667デフォルトの名無しさんNGNG
>>662
いや、グラフィックコンポーネントっていうかBitmap間のCopyRectの場合。
思いついたのはY座標でソートして、その順番で作画という方法。
ただ、恐ろしく重くなりそうでコードにする気力も起きない。
なんか、ビシッとすごい方法ないですかね。
0668デフォルトの名無しさんNGNG
>>667
だから ソートするのは Y座標じゃなくて Zオーダなんだろ?
0669デフォルトの名無しさんNGNG
 TreeView で指定したノード(下の階層にノードを持つ)だけをソートするには
どうしたらよいのでしょう。
0670デフォルトの名無しさんNGNG
>>668
Zオーダって何だYO!!!と思ったんで調べてみたけど、
確かにこれをソートすればできそうだね。
でも、これってコンポーネントの場合しかなくない?
それとも探し方が悪かったかな。
どうすれば、キャラのZオーダをソートできんの?
0671デフォルトの名無しさんNGNG
>>670
>キャラの
君への罵倒用の文句が20程思いついた。
0672デフォルトの名無しさんNGNG
>>671
凄いね。天才だね。
で、その20の文句を言ってみろよ。
本当に20もあるのならな(ハゲ
0673ANGNG
>>670
そのキャラってのが、どういう状態なんだか、ぜんぜん分からないけど
それらを管理するオブジェクトを作って、Zオーダー持たせればよいかと。
ソートが必要なのは、Y座標から計算、でも、Zオーダーでも同じだけど。
0674デフォルトの名無しさんNGNG
たびたびすみません

Form1からForm3Createを呼び出すときに、引数Sender: TObjectが必要なのですが
どのように書けばいいのですか?とくに呼び出し元の情報は必要無いので
nilと書いたり、省略したら怒られてしまいます。
0675デフォルトの名無しさんNGNG
>>674
Applicationでも渡しとけば?
0676デフォルトの名無しさんNGNG
>>674
>constructor Create(AOwner: TComponent); override;

なぁ?Senderじゃないんだけど。
0677デフォルトの名無しさんNGNG
あれ?こうなっていますよ。

procedure TForm3.FormCreate(Sender: TObject);

おかしいなぁ・・。

>>675
applicationを渡したら通るようになりましたが、Form3のCreateプロシージャ内で
Form3の内容がnilになってて、諸プロパティを設定させようとするとエラーが出ます。

showの前にcreateだけしてそのコンポに値をセットして送って出来ないんでしょうか?
というか、一般に設定ダイアログの生成ってどうやるんですか?

今作っている流れでは
メインフォームの作成・表示→設定ダイアログの生成→要求があれば設定ダイアログを表示
→INIファイルに設定保存→アプリケーション終了→再起動→INIファイルから設定読み込み→(繰り返し)

という流れなんですけど。

0678デフォルトの名無しさんNGNG
>>677
釣りじゃないと仮定して…
全然全くもって勘違いしてます。
「もしかして?」と思って書き込まなかったけど。
”それ”と”それ”は別物ですよ。
0679デフォルトの名無しさんNGNG
あ、それとも発想を変えて

設定は全てINIファイルで管理することにして、設定ダイアログはINIファイルを
いじるためだけの道具と考えればいいのかな?

そうすれば、Form1からはForm3ではなくINIファイルへアクセスすれば
いいことになりますよね。

つうかそれがふつうですか?
0680デフォルトの名無しさんNGNG
>>677
var
Form2:TForm2;
begin

Form2 := TForm2.Create(Self);
Form2.ShowModal();

〜

Form2.Free();
0681デフォルトの名無しさんNGNG
>>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;
0682デフォルトの名無しさんNGNG
>>680-681
見ず知らずの者にこんなにコード書いてくださってありがとうございます。
今読もうと思っているところですが、たぶん今の自分のレベルではなかなか
理解できないかなーなんて。
一つ一つステップ踏んでいくしかないと思ってますので、どうか温かく見守っていてください。n(__)n
0683デフォルトの名無しさんNGNG
>>673
ありが�d
なんかぼんやりと思いついてきたような。
これからソートのいいやり方探してきます。
0684デフォルトの名無しさんNGNG
>>683
簡単にやるなら、グラフィックコントロール継承にして、ビットマップとか枠とか持たせて
そのコントロールにZオーダのメンバーを持たせておいて
例えばパネルに描くなら、パネルCompomentsをZオーダでソートする
0685デフォルトの名無しさんNGNG
ある特定のファイルの名前を変更出来なくすることって可能なんでしょうか?
具体的にはコンテキストメニューやプロパティで名前を変更しようとしたときに「このファイルは名前の変更が禁止されています」と表示して、
ファイル名の変更を禁止したいのです
0686デフォルトの名無しさんNGNG
>>685
ReadOnlyにしとけばいいやん
0687デフォルトの名無しさんNGNG
自作コンポのアイコンってかビットマップかえるのって、
ttp://www.borland.co.jp/qanda/delphi/d0005108.html
これでいいんすよね?Delphi5.0なんですがうまくいかないっ!あう。
0688デフォルトの名無しさんNGNG
設計時パッケージのプロジェクトに.dcrを追加してみる。
それでも駄目なら{$R で無理やり埋めこむ。
0689デフォルトの名無しさんNGNG
>>688
おおでけたw さんくす!
でもフォームに配置すると・・・・・うはw かわんねえw
継承元のやつが出てくるなあ・・。
0690デフォルトの名無しさんNGNG
>>686
それでも変えられるやん
0691デフォルトの名無しさんNGNG
>>690
ずっと開いとけばええやん
0692デフォルトの名無しさんNGNG
>>691
屁理屈やん
0693デフォルトの名無しさんNGNG
レコード型の定数済定数を定義したいのですが

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 とかやってみたのですがだめでした。
よろしくおねがいします。
0694693NGNG
分けて考えたらできました
aa:((a:1), (a:2))
0695デフォルトの名無しさんNGNG
Delphi言語とPascal言語の違いを教えてください小一時間
0696デフォルトの名無しさんNGNG
Delphi言語=
 古代ギリシアで行われた、神託の儀式で使われる言語、
 Delphi神殿では、床から常時火山性ガスが吹き出している。
 巫女にそのガスを吸い込ませ、一種のトランス状態にさせる。
 そのときのお告げに使われる言語がDelphi言語という。

Pascal言語=
 真女神転生1というゲームで、主人公の飼い犬が話す言語。
0697デフォルトの名無しさんNGNG
CのHファイルを変換して、Delphiで使いたいのですが、
いいツールなどはありませんか?
0698デフォルトの名無しさんNGNG
h2pas
0699デフォルトの名無しさんNGNG
>>697
http://www.google.co.jp/search?q=H2PAS&lr=lang_ja

これを手がかりに検索していってみたら?
0700デフォルトの名無しさんNGNG
h2pasって、フリーパスカルのやつですよね。
あれのh2pasで変換したやつを使ったら、
ライセンスはGPLにしないといけないんでしょうかねぇ?
0701デフォルトの名無しさんNGNG
>>700 そういうネタはこっちで・・・・GCCでコンパイルしたらGPLになるってのより酷いネタだね

【殺しの】ライセンス【道で拾った】
http://pc2.2ch.net/test/read.cgi/tech/1045006087/
0702デフォルトの名無しさんNGNG
ファイルの保存にTSaveDialogを使っているのですが、
プログラム内では何も指定していないのに、前回保存した
フォルダが開いてくれます。
これはどこに情報が保存されているのでしょうか?
0703デフォルトの名無しさんNGNG
プログラム終了したら元に戻らないか?
0704702NGNG
>>703
終了して再起動しても覚えててくれてるのです。
これはこれで使う側には便利なのですが、謎です。
0705デフォルトの名無しさんNGNG
ムスカキタ━━━━━(゚∀゚)━━━━━!!!!
0706デフォルトの名無しさんNGNG
>>704
レジストリをフォルダのパスで検索して調べてみては?
0707702NGNG
>>706
やっぱレジストリですよね。いくつかそれらしき箇所が見つかりました。
使う側が意図しなくても暗黙に使われることがあるという事がわかりました。
0708デフォルトの名無しさんNGNG
何かDelphiの裏技はありませんか?
0709デフォルトの名無しさんNGNG
>>708
バージョン情報でAlt+T E A M
って昔も書いたな。
0710デフォルトの名無しさんNGNG
>>704
その「TSaveDialog」は何もしてなくても、他のもんでファイルオープンとかしてない?
そーすっと、勝手にそのフォルダになったりするよーな気が。
0711710NGNG
なんか頓珍漢なレスしたよーな気がしてきたので>>710は忘れて♥
0712デフォルトの名無しさんNGNG
>>709
Alt+ S A S A D U K A
0713デフォルトの名無しさんNGNG
レコード型という便利なものがあることを知りました。

レコード型の配列変数を作ったのですが、

たとえば
type Delphi: record
Object: integer;
Pascal: string;
end;

として
var Borland: array [0..100] of Delphi;
みたいなことをやったのですが、

この配列のBorland[0].Pascal から Borland[50].Pascal に同一の値を入れたい場合に
一気に入れるやり方ってありますか?
それともfor文でループさせるしかないですか?

0714デフォルトの名無しさんNGNG
>>713
ない。たいした手間じゃあるまい?

どんな構文を期待しているの?
0715デフォルトの名無しさんNGNG
>>713
それは 別の配列と51レコード文同じ配列を作りたいという事?
 そのやり方は、absolute で 別名を与える。 つまり、
 var Borland: array [0..50] of Delphi51 absolute Delphi50 ; //51レコード文の配列
 してこっちに代入すればいいという方法

あるいは1レコード目と残り50レコードを一致させたいという事?
 これならあったとしても、for文でループさせるのと効率は同じだし判り易いからそうすべきだと思う

0716デフォルトの名無しさんNGNG
>>712
もういいか。

Alt + サ サ ツ ゙ カ

NEC-98 のカナロック、または IME で半角カタカナ直接入力モードで。
0717デフォルトの名無しさんNGNG
>>714
ずらずらと書き連ねるのは面倒なので・・・コピーすれば良いんですけど、添え字の部分はて入力になってしまうし。
やっぱりfor文ですかね。

>>715
後者の意味です。
Borland[0].Pascalから始まって、Borland[1].Pascal,Borland[2].Pascal,...,.Borland[50].Pascalに至るまで
全部同じ値を入れたいんです。

「から・・・に・・・」って紛らわしい表現でした。お詫びします。
0718まだまだNGNG
Alt + DEVELOPERS
0719デフォルトの名無しさんNGNG
Alt + ANDY
Delphi1のみ
0720デフォルトの名無しさんNGNG
>>716
「焼肉食いてー」
だっけ?
0721デフォルトの名無しさんNGNG
Alt + MANKO

残念ながらモザイク有り
0722デフォルトの名無しさんNGNG
ALT+TEAMでスターウォーズみたいなオープニングがでてきましたが
これってどうやって描画しているのですか?
Delphiって3Dサポートしてましたっけ?
0723デフォルトの名無しさんNGNG
VBはWith文使うと明らかに実行速度が変わってきますが、
DelphiだとWith文使っても実行速度が変わらないって本当?
0724デフォルトの名無しさんNGNG
オーバーヘッドの大きいメソッドの呼び出し回数を減らすような
使い方をすれば速くなるしそうでなければ速くならない。
0725デフォルトの名無しさんNGNG
>>723
って言うかそんなもん最適化の時点でどっちも同じになると思われ。所詮はレジスタなりメモリなりのアドレスな訳で。
0726デフォルトの名無しさんNGNG
>>725
そうとも限らない。こんなケースではwithを使うと高速化されるよ。
with HeavyMethod.SlowMethod.HttpDownloadMethod('http://www.borland.com/') do
begin
 Memo1.Lines.Assigned(Strings);
 Memo2.Lines.Assigned(Strings);
end;
0727デフォルトの名無しさんNGNG
>>722
Open-GL.
0728デフォルトの名無しさんNGNG
>>726
あ、そのテクニックおいしすぎ。
値欲しいだけなのに変数宣言するの面倒だったりするもんな。
0729デフォルトの名無しさんNGNG
>>716 が気になる。
何が出るの?
0730デフォルトの名無しさんNGNG
>値欲しいだけなのに変数宣言するの面倒だったりするもんな。
C#ではこれが理由でwith廃止されてしまったんだよな。
any s = HeavyMethod.SlowMethod.HttpDownloadMethod('http://www.borland.com/');
みたいに型明示しないんならそれでもいいんだけど、そうでないからやっぱり面倒。

>>729
ネタ
0731デフォルトの名無しさんNGNG
//もっと強引なやり方

with TStringList.Create do
try
    Text := WatchString;
    SaveToFile('DEBUG.TXT');
finally
    Free;
end;
0732デフォルトの名無しさんNGNG
>>731
感動した。

c := x.Create('hoge').hogehoge();

とかしたい局面って結構あるからね。
0733イースターエッグNGNG
Alt + TEAM
Alt + DEVELOPERS
Alt + SASADUKA
0734デフォルトの名無しさんNGNG
With文は便利なんだが、
デバック時に変数のヲチがめんどくさいのが最大の欠点。
0735デフォルトの名無しさんNGNG
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
0736デフォルトの名無しさんNGNG
>>734
そりゃデバッガの問題のような。といったところで解決するわけでもないけど。
全体的にデバッガ機能が弱いよね。関数の戻り値すら教えてくれないのにはびっくり。
0737ビギナーNGNG
デルフォイってバージョン6で作ったやつを、
そのままで7でも続きを作ることが出来るんですか?
0738デフォルトの名無しさんNGNG
>>737
2→3→4→5→6
と引き継いできたアプリがあるよん
俺は7に上げてないけど→7も当然できると思うよん
0739デフォルトの名無しさんNGNG
>>736
?
ctrl+F7で普通にできるような
0740ANGNG
メインのHDDが壊れたのでDelphiを入れなおし…

Indy9.0をサイトから落としてきて、
指示どうりに、Fulld4.bat を実行。D4フォルダができて中にファイルが並ぶ。
コンポーネント-パッケージの追加 で、D4フォルダの dclIndy40.bpl を登録。
パレットにIndyコンポが並ぶ。

試しに、何も無いFormに適当にIndyコンポ(TIdTCPClient)を1つ乗せて
実行してみると、usesのところで、

[致命的エラー] Unit1.pas(7): ファイルが見つかりません : 'SyncObjs'

と出る…検索するとたしかに、そんなファイルは無いらしい。
これって、何?

バージョンは、Delphi4 Standard up3
環境オプションのライブラリパスはD4フォルダを通ってる。
0741デフォルトの名無しさんNGNG
>>740
Indy 9.0 は Delphi4 std をサポートしてない。
ダウンロードページにも書いてあるだろ。
ちゃんと読め。
http://www.indyproject.org/AnOpenLetterToD4StdUsers.html
0742ANGNG
>>741
うお。ほんとだ…
D4ができるからすっかり対応してるものだとばかり…
stdだけだめなのね。
8.0落としてくる…
0743デフォルトの名無しさんNGNG
TTimerコンポについて質問させてください(D7)。

エディットボックスの数値と連動させて、一定間隔であるプロシージャを呼ぶようにしたいのです。
問題は、アプリを起動して、カウントが始まるわけですが、
たとえば、12:00スタートで15分間隔、12:15が次回イベント発生時だったとして
この間、12:10くらいになって、エディットボックスをプラス5した場合、
新たに15+5=20をIntervalにセットしなおすと、12:20ではなくて、12:30にイベント発生が延びてしまう
のではないでしょうか?

次回イベント発生までの残り時間をセットできるプロパティは無いようなのですが・・・どうすれば良いでしょう?
あるいは前回起動時からの経過時間がわかれば、次回までは差分をセットしておいて、その後は新たな値を
フルでセットする・・・という方法も考えたのですが・・・。

0744デフォルトの名無しさんNGNG
>>743
タイマを2つ使う

いじょ
0745デフォルトの名無しさんNGNG
>>744
それはもしかして・・・ダイハードで公園の泉の脇にあった2つのボトルを使うパズルみたいな・・・頭を使う仕掛けですか?
漏れでも簡単に思いつきますか?
とりあえず一晩考えてみます。

http://piza2.2ch.net/tech/kako/1001/10010/1001035627.html
の224見つけたんですけど、リンク切れ・・・うぅ
0746デフォルトの名無しさんNGNG
>>745
元のタイマを一旦眠らせて
もうひとつのタイマに
「次回イベント発生までの残り時間をセット」
しておいて
そのタイマでイベントを発生させつつ
元のタイマを起こしてやるわけでし
これならどんな風にでも使えまし
0747デフォルトの名無しさんNGNG
>>746
えーーと・・・・うーーん・・・「次回イベント発生までの残り時間」って取得できるんでしたっけ?

タイマーイベントが発生するまでの経過時間を指定するにはInterval プロパティを使う
時間を指定したイベントを停止するにはタイマーコンポーネントのEnabled プロパティをfalse に設定する

使えそうなプロパティはIntervalしか見当たらないんですけど・・・
もしかして起動時から現在時まで差分を求めて、以後毎回イベント発生時にその時刻を変数に入れて
現在時と差分を取る・・・みたいなことをするんですか?

0748デフォルトの名無しさんNGNG
>>747
何とでもできるでしょ
1分刻みのタイマで時刻を指定するのもよし差分を使うのもよし

要するにエディットボックスの数値が変更されたときにだけ
普段は寝かしてあるもうひとつのタイマを起こして調整するということでし

がんばりませう
0749デフォルトの名無しさんNGNG
>>748
2つ使うという大ヒントを貰ったので、なんとか今晩がんばってみます。
どうもありがとうございました。m(__)m
0750デフォルトの名無しさんNGNG
>>743 >>449
エディットボックスの値とIntervalを一緒にしない方法も。
Intervalは1秒(1000)に固定。
変数n:Integerを用意して
タイマーがスタートしたときはn:=0にセット。
でOnTimer()のたびに、nを1増加。
このnが900(15×60)を超えれば15分経過したことになる。
nの値とエディットボックスの値を比較してやればよい。
0751デフォルトの名無しさんNGNG
タイマー使わないで、プログラムの処理を5秒間止めることって出来ますか?
0752デフォルトの名無しさんNGNG
手を使わずオナニーすることって出来ますか?
0753デフォルトの名無しさんNGNG
Sleep(5000)
0754デフォルトの名無しさんNGNG
>>752
口でも足でも色々方法はありますが、何か?
0755デフォルトの名無しさんNGNG
>>754
レスありがとうございます。
さっそく試してみます。
0756デフォルトの名無しさんNGNG
>>753
ありがとうございます
0757デフォルトの名無しさんNGNG
>>753

行末のセミコロン(;)が抜けてます。
0758デフォルトの名無しさん NGNG
HTMLの特殊文字を文字に直したりできるコンポーネントはありませんか?
0759デフォルトの名無しさんNGNG
begin
Sleep(5000)
end;

Compile ok
0760デフォルトの名無しさんNGNG
>>754
肛門にはどの程度まで指を突っ込めばいいのでしょうか?
0761デフォルトの名無しさんNGNG
>>758
自分で作ったら?
そんなにむずかしいとは思えないんだけど。
0762デフォルトの名無しさんNGNG
もしわかる方がいましたら、よろしくお願いします。
環境は Win2000、Delphi 6 Personal です。

メインフォームから開いたサブフォームを、メインフォームのパネルに埋め込んだ状態と
別ウィンドウの状態とで切り替えたかったので、下のような命令を書いてみました。

サブフォーム、埋め込みボタンクリック時
  self.Parent := MainForm.PanelSubForm;
  self.BorderStyle := bsNone;
  self.Align := alClient;

サブフォーム、解除ボタンクリック時
  self.Align := alNone;
  self.BorderStyle := bsSizeable;
  self.Parent := nil;

ところが上手く動く場合と、デスクトップの左上に張り付く場合と、
「コントロール 'SubForm' は親ウィンドウを持っていません.」
のようなエラーが発生する場合とがあって原因がつかめませんでした。
根本的なやり方が間違ってるのでしょうか?
0763Delフサギコ ◆A6VzDeLphI NGNG
  ∧,,∧  >>758さん
 ミ,,゚Д゚彡 HTMLの特殊文字って
 ミつ日(ミ  どんなものがあるですか?

&hearts;とか?
0764Delフサギコ ◆A6VzDeLphI NGNG
  ∧,,∧  >>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;
0765デフォルトの名無しさんNGNG
(´-`)。o ○ (特殊文字ってマジで何のことを言ってるんだろう?
まさか「改行」とか?微妙に気になる…)
0766762NGNG
>764
レス有り難うございます。
うーん、確かに上手く行く時は上手く行くんですが、既存のプログラムに追加すると
ダメだったり、新規にテストプログラムを作ってみても動いたりダメだったり……。
あと、エラーは出ないんですが状態が変わらないという現象も出ました。
「コントロール 'SubForm' は親ウィンドウを持っていません.」の場合、self.Parentに
セットする部分でそのエラーが起きてました。self.Parentを見たら"nil"だったんですが、
上手く動いてる方も同じく"nil"でした。

やり方としてはこの方法で間違ってなかったのでしょうか?
もしこのまま原因がつかめないようでしたら、代替手段を探してみます。
どうも有り難うございました。
0767デフォルトの名無しさん NGNG
>>765
http://www.pst.co.jp/Powersoft/html/htmlChar.htm
0768765NGNG
>>767
ああ、そーゆー意味か。
サンクス。
0769デフォルトの名無しさんNGNG
こんな深夜、しかも週明けに申し訳ありません。

別スレッドの中で新しくフォームを作成して・・ということをやっているのですが、
実行しても設定したプロパティ通りに表示されません。

自動で作成されたユニットとフォームを見ると、フォームファイル.DFMがあって
そこにプロパティは格納されているようですが、手動でフォームを動的に作成する場合
.DFMファイルの果たす役割はどう処理すればいいのでしょう?
0770デフォルトの名無しさんNGNG
TForm.CreateNewで作ると.DFMは読まない。
TForm.Createで作れば.DFM(の内容が入ったリソース)を読む。
自分が分かるのはここまでッス。

咳が酷くて眠れない…
0771デフォルトの名無しさんNGNG
>>770
ありがとうございます!
それがわかっただけでも大きな進歩です。

目の周りがだんだん引きつってきました・・・
0772デルファイの名無しさんNGNG
喉が痛いお仲間レス。
確かVCLは複数のスレッドからGUIを出せなかった気がします。
GUIスレッドは一本で、そこへ他スレッドがTThread.Synchronizeで同期を取る…みたいな。
0773デルファイの名無しさんNGNG
あれ?他のスレッドで作成しても、メッセージループをGUIスレッド(メイン)に任せてしまうなら問題無いのかな?
…と、なにかずれたことを言ってる気がする。
0774デフォルトの名無しさんNGNG
フォームのボーダースタイルをノーンにしたら立体感が損なわれますが、立体感を損なわずにノーンの状態にするにはどうするのが良いのでしょうか
0775デフォルトの名無しさんNGNG
>>774
立体感を損なわなかったら、ノーンの状態じゃないじゃん。

タイトルバー非表示で、ボーダー付きとかそういう意味なら、
NIFTY SERVE Delphi Users' Forumに載ってるよ。
0776デフォルトの名無しさんNGNG
>>773
自分が作っているのは、本体を最小化したときに電光掲示板みたいなウインドウで
情報を流すものなのです。ねじまき企画さんのコンポを使っているのですが、
なぜかフォーカスが当たってないとスクロールがぎこちないんですよ。
自分の実装の仕方がまずいのかも知れませんが、フォーカス当てれば滑らかなので
それならスレッド分ければフォーカス当ててるのと同じ効果出るのかなぁと思って。。。

それか、スレッドって通信系みたいなGUIとは関係無いパートにしか使えないのですか?
シンクロメソッドを使った操作は別フォームに対してもできるようですが、それをやると
スレッドにした意味があまり無いと、MLの過去ログに書いてありました。
0777デフォルトの名無しさんNGNG
>>776
 ぎこちないのは、CPU負荷下げるためにわざとやってるんじゃないの?

そういう動作の為にスレッド別ける設計はあまりよくない
タイマーでそこの部分にInvalidate を発行して
Paint メソッドで再描画させる方がいい。

 まあタイマー内で描画させてもいいけど・・・・
0778デフォルトの名無しさんNGNG
>>777
そうだったのですか・・・。
教えていただいた方法のほうが私みたいな未熟者でも簡単にコードかけますので
そうしてみます。やはり菊は一時の恥ですね。どうもありがとうございます。m(__)m
0779デフォルトの名無しさんNGNG
教えて君は死んでも教えて君。
0780デフォルトの名無しさんNGNG
TClientSocketを使うプログラムを作成しているのですが、
接続が確立できないIPを指定した場合に、
タイムアウトまでの時間が長く、ハングアップしたような感じになってしまいます。
なにか改善方法はありますでしょうか?
0781デフォルトの名無しさんNGNG
>>780
CreateThread
0782デフォルトの名無しさんNGNG
>>775
見つかりました。ありがとうございます
0783デフォルトの名無しさんNGNG
「nil」って無しってことですか?
あと、「nil」と「null」は同じ意味なんですか?
0784デフォルトの名無しさんNGNG
んだ
0785デフォルトの名無しさんNGNG
1009
0786デフォルトの名無しさんNGNG
ノーンってNONE?
0787デフォルトの名無しさんNGNG
フサギコの中の人は大変でつか?
0788デフォルトの名無しさんNGNG
馬鹿っ!NONEはノネだろ!
0789デフォルトの名無しさんNGNG
  ∧_∧
 ( ´∀`)<にるぽ
0790デフォルトの名無しさんNGNG
>>789
それ前やったけど全然流行らなかったよ・・・頑張れ!
0791デフォルトの名無しさんNGNG
IndyのidTCPServerって非ブロッキングソケットにできないの?
やり方教えてください
お願いします
0792デフォルトの名無しさんNGNG
最大化で起動するようにしたらタスクバーをも隠してしまうのはバグですか?
0793デフォルトの名無しさんNGNG
>>792
お前のな。
0794デフォルトの名無しさんNGNG
仕様です(ksw
0795bloomNGNG
http://www.agemasukudasai.com/bloom/
0796デフォルトの名無しさん NGNG
変数からn行目の文字を取り出すにはどうすればいいんですか?
0797デフォルトの名無しさんNGNG
>>796
1. どういう変数のことを言いたいのか分からない
2. n行目というからには文字ではなくて文字列ではないのか
以上のように質問に問題があるのだけど

TStrings型の変数aStringsのn行目の文字列ならaStrings[n-1]
0798デフォルトの名無しさん NGNG
>>797
TStringsではなくて、Stringの行を指定して文字列を取り出すことはできませんか?
0799デフォルトの名無しさんNGNG
>>798
Stringの行って・・・ナニ?
TStringListやTStringsでなく?
0800デフォルトの名無しさんNGNG
>>798
function GetLine(s:string;n:integer):string;
begin
 with TStringList.Create do try
  Text:=s;
  Result:=Strings[n];
 finally free;end;
end;
0801デフォルトの名無しさんNGNG
>>799
改行コードが含まれるString型の変数のことではなかろうか。
0802デフォルトの名無しさんNGNG
>>801
俺は素直にTStringListのTextに放り込むけどなぁ。
0803デフォルトの名無しさん NGNG
>>801
そうですそれです。
0804デフォルトの名無しさん NGNG
>>800
ありがとうございます!
0805デフォルトの名無しさんNGNG
彼(彼女)はTstringsの使用を潔しとしないのか
それとも使用できないのか
0806デフォルトの名無しさん NGNG
>>805
後者の方です
0807デフォルトの名無しさんNGNG
使用できないのに>800の方法はOKなのか?
よくわからん
0808デフォルトの名無しさんNGNG
PopupMenuをフォームの真ん中にポップアップさせるにはどうすればいいですか?
0809デフォルトの名無しさん NGNG
>>807
functionは分かるんで>>800さんのでも大丈夫ですよ。
0810800NGNG
>>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;

とするといい。
0811デフォルトの名無しさんNGNG
Imagingを使ったビューアを作成しています
画像サイズのことで教えて欲しいのですが、
例えば、解像度200dpi×200dpi・幅1664 高さ2338の画像を
ウインドウに合わせて表示したときの
拡大率が60%のときに、300%まで拡大率を上げて
ウインドウの大きさは全く変えてないとすると
表示されている部分の幅、高さは何ピクセルになるでしょうか?
すれ違いだとは思いますが、質問するところがわからず
delphi使用版なのでここで質問させてもらいます
0812デフォルトの名無しさん NGNG
>>810
ありがとうございます。ほんと助かりました。
0813デフォルトの名無しさんNGNG
>811
こんな感じじゃない?適当だけど
//ウインドウサイズ変更
Zoom := 60/100;
ImageWidth := 1664;
WindowWidth := ImageWidth*Zoom;

//ウインドウサイズ固定で画像をズーム
Zoom := 300/100;
PixelPerPixel := 1/Zoom;
VisibleImageWidth := PixelPerPixel*WindowWidth;
//VisibleImageWidthがImageの表示されている部分の実際の幅
0814デフォルトの名無しさんNGNG
>>813
レス有難うー
いまいちよく解らないけど、サンプル見ながらがんばってみますね^
0815デフォルトの名無しさんNGNG
>Tstrings

そもそも抽象クラスです。
0816813NGNG
>814
あ、いちおう言っておくと、>813の変数は何かのプロパティとかじゃなくて、
全部、適当に用意したやつね。
0817デフォルトの名無しさんNGNG
整数なら/じゃなくてdivじゃない?
0818デフォルトの名無しさんNGNG
>>815
このあたりのレスで使われている機能はTStringsから継承してるものだから
TStringsでいいんでないの?
実装とはまた別の話
0819デフォルトの名無しさんNGNG
>817
この場合、整数でdivでやるんじゃなくて、実数型で計算して、
最後にTruncってやらないと、欲しいのと全然違う値になっちゃうと思う。
もっと工夫すれば、整数でも計算できるのかもしれないけど。
0820デフォルトの名無しさんNGNG
60%にするなら普通にImageWidth * 60 div 100でいいとおもった。
0821デフォルトの名無しさんNGNG
四捨五入したいなら (ImageWidth * 60 + 50) div 100 かな
0822デフォルトの名無しさんNGNG
ディヴって何?
0823デフォルトの名無しさんNGNG
>>822
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%B3%E4%A4%EA%BB%BB&sw=1
0824デフォルトの名無しさんNGNG
夫人だろ。
0825デフォルトの名無しさんNGNG
パスカルでもdivを使えるとは知らなかった
逝ってきます
0826デフォルトの名無しさんNGNG
Edit1に入力した名前をデータベースから検索するのに
“DataSource1.DataSet.Locate('名前',Edit1.Text,[loPartialKey])”
と書いてるのですが、最初の一件しか検索できません。

次の候補を検索させるにはどうすればいいですか?
0827デフォルトの名無しさんNGNG
          Peal
うーん・・  +Perl
   +Pascal
эlforth
0828デフォルトの名無しさんNGNG
>>826
最初の一件を見つけるために使うのが Locate だから。
見つかったレコードに移動するだけ。

Filter かけるか Query 出すか。
0829デフォルトの名無しさんNGNG
マウスジェスチャーのポンコーネントください
0830826NGNG
>>828
そうですか。(´・ω・`)ショボーン
0831デフォルトの名無しさんNGNG
>> 830
なんで ショボーン するんだよぉ

Filter セットして FindNext をよびましょ
0832826NGNG
>>831
Filterって、完全一致でないと駄目なんじゃないですか?
例えば、“名前”に“加藤”を含む加藤一郎、加藤二郎、加藤三郎を
表示させるのは、Filterで出来ます?
部分一致で、検索するかフィルタするかしたいんです。
0833デフォルトの名無しさんNGNG
TEditで文字列を真ん中や右に揃えられないの?
0834デフォルトの名無しさんNGNG
>>833
TMemo(だったっけ?)を使うが吉。
0835検索くらい(略)NGNG
>>833
検(略)
0836デフォルトの名無しさんNGNG
ポート番号がわかりません。
どうやって知ることができますか?
0837デフォルトの名無しさんNGNG
>>836
どうもこうも。
0838デフォルトの名無しさんNGNG
>>836
ライブラリは何使ってるの?
0839デフォルトの名無しさんNGNG
>>836
ポートスキャンしてください。
0840デフォルトの名無しさん NGNG
タイ━━━━||Φ|(|´|Д|`|)|Φ||━━━━ホ!!
0841デフォルトの名無しさんNGNG
>>832
最近はSQLばっかでフィルター使ってないんだけど・・・
OnFilterRecordの中で
Accept:=(AnsiPos('加藤', フィールド名.Value)>0);
みたいにすればいいんでないのけ
0842デフォルトの名無しさんNGNG
スレッドってfunctionとして定義できますか?
例を見てみるとprocedureとして書いてあるのだけなんですけど・・
0843デフォルトの名無しさんNGNG
MicrosoftとBorland、共同でDelphi.NET開発中だそうだ。
0844デフォルトの名無しさんNGNG
>>842
と、言うか素直にTThread使った方がよく無くないですtか?
0845826NGNG
>>841
ありが�dございます、できますた!
よかったら、後学のためにSQLでの書き方も教えてもらえないですか?
ヒントだけでも。
0846デフォルトの名無しさんNGNG
>>842
 スレッドって API で直接実行する方法の場合は
   int型の帰り値を持たせてる方法と
  ExitThreadで終らせる方法があるから

前者の方法を使うなら function でなくちゃ
0847デフォルトの名無しさんNGNG
>>845
DBによってまちまちで
 SQL-Server:CONTAINS、FREETEXT(CONTAINSTABLE、FREETEXTTABLE)
 Oracle:INSTR、INSTRB
 Firebird(InterBase):CONTAINING
をそれぞれWHERE句で使うんでないかい(SQL-Serverの括弧内はFROM句)
・・・Firebird以外は自信なし

お使いのDBで調べてくさい
0848826NGNG
>>847
分かりました。ありが�dございますた。
0849デフォルトの名無しさんNGNG
>>843
ソースは?
0850オシエテちゃんNGNG
HyperCardのwin版ってないのでしょうか?
お願い!詳しい人教えてくださいな!
0851デフォルトの名無しさん NGNG
>>849
ワロタw
0852デフォルトの名無しさんNGNG
>>850
ばーか
0853842NGNG
日本語になってませんでした。すみません。
やろうとしていたことは、WinAPI使ってURIデータを送受信する部分のスレッド化だったのですが
実装してみたら使えませんでした。もうお分かりかと思いますが、データが返ってくる前にそのデータを
待ち受けているべきメインスレッドが先に進行してしまって・・・(笑
>>844
TThreadは使っていたのです。それのexecuteをprocedureではなくfunctionとして書きました。
(それ自体は成功しました)

>>846
APIを使う方法は試してません。そこまで力無いです。

ありがとうございました。

0854デフォルトの名無しさんNGNG
StringGridで列単位に入力を制限する方法って
ありますか?
0855デフォルトの名無しさんNGNG
>853
TThread.OnTerminateイベント使ったら?
0856デフォルトの名無しさんNGNG
jconvertってもう落とせないのでせうか…
0857デフォルトの名無しさんNGNG
>>856
ワラタ
0858デフォルトの名無しさんNGNG
>>849
1年前の情報なら発見
http://ascii24.com/news/i/topi/article/2002/05/21/635897-000.html
0859842NGNG
>>855
それも実装してみたのですが・・・
とにかくスレッド化してしまうと、スレッドを分けた分岐点から処理が先に進行してしまう・・・
あ、そうか、OnTerminateの部分にメインスレッドの先を書けばいいのか・・・あぁ、どうしてそれに
気付かなかったのだらう・・・あのユニットもう消しちゃったよ・・・うぅ
0860デフォルトの名無しさんNGNG
>>854
特定の列だけ入力できないようにしたいって話なら、
OnSelectCellでOptionsにgoEditingを付けたり外したり。
EditorModeも変える必要があったかもしれん。
0861デフォルトの名無しさんNGNG
>>860
それやったんだけど
goAlwaysShowEditorをTrueにしてる場合だと
たまに入力できる状態になったりする。
マウスをドラッグした時とか・・・

0862854NGNG
>>861
MouseUpとKeyUpでgoAlwaysShowEditorを変更するようにしたら
できました。
0863デフォルトの名無しさんNGNG
procedure TFormMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if MessageDlg('終了しても良いですか?', mtConfirmation,[mbOK, mbCancel], 0) = mrOK then begin
Exit;
end;
end;

こんな感じでやってみましたが、キャンセル押しても終了されてしまいました。
キャンセル押したときに、終了を無効化できることはできないんですか?
0864863NGNG
解決しました
0865デフォルトの名無しさんNGNG
FindFirst関数で使うfaArchiveとはどういうファイルのことなんですか?
0866デフォルトの名無しさんNGNG
>>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
0867デフォルトの名無しさんNGNG
ツールバーコンポのように設計時にボタンを追加したくてTComponentEditorをいじってるんですが、
ExecuteVerbでTButton.Create(Component).parent := TPanel(Component)
としても追加はできてもプロパティの変更等ができません。
どうしたらよいでしょうか?
0868ねこまNGNG
>>867
IFormDesigner.Edit
0869デフォルトの名無しさん NGNG
戦争反対!!戦争反対!!戦争反対!!戦争反対!!戦争反対!!
戦争反対!!戦争反対!!戦争反対!!戦争反対!!戦争反対!!
戦争反対!!戦争反対!!戦争反対!!戦争反対!!戦争反対!!
戦争反対!!戦争反対!!戦争反対!!戦争反対!!戦争反対!!
戦争反対!!戦争反対!!戦争反対!!戦争反対!!戦争反対!!
0870ANGNG
TTreeViewについて質問

ツリーを作ることはできるのですが、特定のノードへアクセスできません。

例えばルート(レベル1?)の3番目の5段目ノード(レベル5?)にアクセスするとか
複雑に枝分かれしたある場所のノードへアクセスするのがさっぱり。
0871デフォルトの名無しさんNGNG
teditor でハイフンと半角英字の混ざった単語を色分けするにはどうすればいいでしょう。
a-b、みたいなやつを別色にしたいのですが…
0872デフォルトの名無しさんNGNG
>870
TTreeNode.Itemプロパティとか、これらのメソッドとかを使えば、きっとなんとかなる。
getFirstChild GetLastChild GetNext GetNextChild
getNextSibling GetNextVisible GetPrev GetPrevChild
getPrevSibling GetPrevVisible
とりあえずヘルプをよく読むことをお奨めする。
0873ANGNG
aaa
0874デフォルトの名無しさんNGNG
>>872
つうかDOMじゃん。
0875デフォルトの名無しさんNGNG
ZAKUじゃん
0876デフォルトの名無しさんNGNG
MIDIキーボードからの入力を受け取るにはどうすればいいんですかね?
0877しったかてふてふ◎三(゜д゜ ) ◆1xsES22i66 NGNG
>>876
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=mmsystem.h+midi+in&lr=lang_ja
0878デフォルトの名無しさんNGNG
アイコン変えたら、元に戻せなくなりました。
あの新規プロジェクトの時に付いてるアイコンは一体どこにあるのですか?
0879デフォルトの名無しさんNGNG
Delphi32.exe
0880デフォルトの名無しさんNGNG
メモリの解放っていつやればいいんですか?
0881デフォルトの名無しさんNGNG
要らなくなった時
0882デフォルトの名無しさんNGNG
>>880
OSにまかせちゃえ
0883デフォルトの名無しさんNGNG
>>882
GC搭載してるOSってなんかあったっけか?
0884デフォルトの名無しさんNGNG
プロセス終了時に開放するって意味だろう。
0885デフォルトの名無しさんNGNG

TCharFormat、TCharRange ってどのunitにはいっていますか?
0886デフォルトの名無しさんNGNG
>>885
プッチモニ。


……すまん。
0887デフォルトの名無しさんNGNG
>>886
ミニモニ。に謝れ。
0888デフォルトの名無しさんNGNG
>>886-887
モーヲタキショイ

>>885
メロン記念日
0889デフォルトの名無しさんNGNG
教授!メニューバーの項目を右寄せする方法教えてください
0890デフォルトの名無しさんNGNG
教授て誰?
天才柳沢?
チャールズ・エグゼビア?
0891デフォルトの名無しさんNGNG
>>889
しなくていいです。そんなことしてるソフトは絶滅危惧種です。
0892889NGNG
やっぱDelphiじゃ出来るわけ無いか
0893デフォルトの名無しさんNGNG
・・・・・んぁ?
0894デフォルトの名無しさんNGNG
勘違いされてるようなんで一応書いておくと、
インターネットエクスプローラのようにメニューバーの右端にマークを付けたいだけです
0895Delphi初心者NGNG
Delphiでは主に何が作れるのですか?ほかの言語に比べて、作りやすいですか?
0896デフォルトの名無しさんNGNG
Windowsのプログラムが作れます。慣れれば作りやすいです。
0897Delphi初心者NGNG
.exeファイルも作れますか?
0898デフォルトの名無しさんNGNG
Q1 Delphiでは主に何が作れるのですか
 いわゆるWindows アプリ全般
 無料のものでも外部コンポーネントを使えばクライアントアプリも作れる
 お金を出せば
 ActiveXもつくれるし
 イントラサーバ側や、データベースを利用したアプリも簡単に作れる

Q2 ほかの言語に比べて、作りやすいですか?
 作りやすいかどうかは他人には判らない
 文法はシンプルで厳格かつ柔軟
 応用力のある人には覚える事が少なく楽だろう。
 キー打鍵数は比較的多い方だろう
 コンポーネントを使ったVBに似たお手軽プログラミングも可能。
 ただ、VBと違って、学ぶ姿勢があれば、
 構造化スタイルからオブジェクト指向まで容易に習得出来る。
0899デフォルトの名無しさんNGNG
>>897
 32bitWindows用の Exe 又は DLLが作れます
 お金を出せば NTサービスも作れるそうです
0900Delphi初心者NGNG
レス有り難うございました。ところで、みなさんはDelphiを使っているのですか?
0901デフォルトの名無しさんNGNG
Delphi自体には不満が無いが、ボーランドジャパンの弱体化ぶりが
気になる昨今。(開発者は英語力鍛えとけよ・・・って事で。)
0902デフォルトの名無しさんNGNG
>>899
タダのやつを使ってもAPI使えばNTサービスも作れるよ。
NTサービスは、それほど難しくない。
0903デフォルトの名無しさんNGNG
>>894
CoolBarじゃねえかドルァ
0904デフォルトの名無しさんNGNG
ただし情報が少なすぎてプログラミング自体初心者は他言語より苦労します
0905デフォルトの名無しさんNGNG
>>904
インターネットが普通に検索できる人間なら別に問題なし。
教えて君にならずに自分で何でもやってみることだな。
0906デフォルトの名無しさんNGNG
後、Cも平行して覚えればAPIに関しては何の心配もいらないと思われ。
0907デフォルトの名無しさんNGNG
>>904
むしろ自分で情報探さなきゃいけない分、
ほかの言語より厨房度は低いような・・・
0908デフォルトの名無しさんNGNG
>>906
Cも平行して覚えられるのなら、厨とかその程度のレベルには居ない資質の人間かと思われ。
0909デフォルトの名無しさんNGNG
>>908
お褒めにあずかり光栄ですw
0910デフォルトの名無しさんNGNG
最後に触った言語はQuickBasicでその前がファミリーベーシックだ…。
0911デフォルトの名無しさんNGNG
>>910
VBにいかずにDelphiにしようと思ったのは如何に?
DelphiはBASICじゃないぜ?
0912デフォルトの名無しさんNGNG
>>911
QuickBASICのBASICではないが。それ以前にVBもBASICじゃないだろ。もはや。
0913デフォルトの名無しさんNGNG
Delphiのtryとexceptで例外を処理するときに、
どのメソッドがどんな例外を発生するかどうやって調べれば良いんでしょうか?
Javaのようにコンパイラが教えてくれたり、リファレンスに書いてないので分からないんです。
0914デフォルトの名無しさんNGNG
>>913
ヘルプに載ってますけど。
0915913NGNG
>>914
ヘルプってVCLリファレンスのことですか?
それとも別の物?
たとえばTStringsのSaveToFileメソッドを使ったときに、
起こり得る例外などリファレンスのどこを見ればいいんですか?
0916デフォルトの名無しさんNGNG
>>915
書いてない->投げない

0917デフォルトの名無しさんNGNG
>>916
アフォ

>>915
書いていない例外は経験と勘と後付のエラー対応とVCLソース解析で対処。
0918デフォルトの名無しさんNGNG
>>917
あふぉと言われたので荒らすことにします。























0919デフォルトの名無しさんNGNG
 




                                               
             



                                






                                   procedure
0920tanteiNGNG
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 直通  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  [email protected]
   グローバル探偵事務局 

0921910NGNG
>>911
なんとなくカコイイから…じゃ駄目ですか?
もうDelphi7Pro買ってきちゃったよう・゚・(ノД`)・゚・。
0922デフォルトの名無しさんNGNG
Delphiの説明がされているお勧めのHPってありますか?
0923デフォルトの名無しさんNGNG
>>922
http://www.inprise.com
0924デフォルトの名無しさんNGNG
>>923
ありがとうございます
0925デフォルトの名無しさんNGNG
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0926デフォルトの名無しさんNGNG
>>925
おぉーありがとうございます。
0927デフォルトの名無しさんNGNG
某日だけinpriseのドメインが通らないのは某日のやる気の無さと考えてよろしいですか?
0928デフォルトの名無しさんNGNG
>>927
.co.jp を持てるのはは1企業1ドメインのみ
0929デフォルトの名無しさんNGNG
D6Perでまともに使えるウェブブラウザコンポありませんか?
0930デフォルトの名無しさんNGNG
>929
TEmbeddedWB
0931パソナラーNGNG
始めた理由:タダだったから。

>>930
外人さんのコンポって、たとえフリーでもちょっと敬遠しちゃうな…。
embeddedwbって素晴らしいコンポーネントだと思うけど、
「タダ!利用して配布してもタダ!文句言わないよ!勝手に使ってね♥」
ってでっかく書いといてくんないかなぁ(^^;。
利用規約がどのあたりに書いてあるのかよく分からない…。
0932デフォルトの名無しさんNGNG
アリガ�d
0933デフォルトの名無しさんNGNG
日本産のUIWebBrowserより便利だコレ
0934デフォルトの名無しさんNGNG
DelphiでP2Pアプリを組みたいんですが、どこかにサンプルみたいなのありませんか?
タダ版のServerSocketを使うやつでいいんだろうか…
0935デフォルトの名無しさんNGNG
Indy使え
0936デフォルトの名無しさんNGNG
テキストで計算結果を文字列の最後に追加したいです

商品 個数 合計
100  5
200  3
150  3
これを元に以下のように

商品 個数 合計
100  5  500 
200  3  600
150  3  450

という風に出来ますか


0937デフォルトの名無しさんNGNG
バイナリデータをファイルに書き出したいのですが、どのようにすればいいのでしょうか?

HEX表示で 01 23 45 67 89 AB CD EF みたいなデータがあるとして

BinDate := IntToHex( $0123456789ABCDEF )
AssignFile(BIN, 'bindata.bin');
ReWrite(BIN);
Write(BIN, BinData);
CloseFile(BIN);

みたいなことをしたのですが、HEX文字列がそのままテキスト形式で出てきただけでした。
0938デフォルトの名無しさんNGNG
>>936
出来ます
0939デフォルトの名無しさんNGNG
>>936
出来ます
0940デフォルトの名無しさんNGNG
どういう風にすればよいのでしょうか

TStringList[0]に商品 個数 合計として
TStringList[1]に100 5 
配列に入れて合計を出します。これは出来るのですが

その後TStringList[1]に追加する方法が分かりません


0941????NGNG
IntToStr(合計値)
0942デフォルトの名無しさんNGNG
DataLirt:TStringList
として

DataList.String[1]:=DataList.String[1]+','+IntToStr(合計値)
はできるのですが、合計値をループまわして皆に入れようとすると
エラーがでます
0943デフォルトの名無しさんNGNG
>>942
for i := 0 to list.count - 1 do
0944デフォルトの名無しさんNGNG
for i:=0 to 0 do
と1回まわす分にはいけるのですが

for i:=0 to 1 do
とするとだめです
0945デフォルトの名無しさんNGNG
>>944
絶対インスタンス作ってないに一票。
0946デフォルトの名無しさんNGNG
関係するソースを全部さらせ。
0947デフォルトの名無しさんNGNG
>>946
VCLのソースが転載されるに8スレッド
0948デルNGNG
テキストデータやCSVデータをエクセルの様に色々計算させたいのですが
TStringGridを使えば出来るのはわかるのですが、これはフォーム上に
STringGridを置いて使うものなのでしょうか?

データを配列に入れて、計算した結果を列を追加していきたいのですが、
掲示板でサンプルを探しているのですがなかなかありません。

STringGridの良いサンプルがあれば教えてほしいのですが
デルファイ歴 1週間です
0949デフォルトの名無しさんNGNG
>デルファイ歴 1週間です
まだ質問するにも早すぎるな。
0950デルNGNG
まあそういわずに
0951デフォルトの名無しさんNGNG
>>948
Excelのように使うのは無理だが(計算機能がないから)、
CellsプロパティにIntToStrで値を入れてやるってのが普通かなぁ。
0952デフォルトの名無しさんNGNG
Delphi中毒(末期)の漏れが言うのもなんだけど、何事も適材適所。
セルの計算がしたいだけならExcelで組むのがいいとおもうよ。

新人さんにこそよくよく聞いて欲しいんだけど、どの設計方針で組むのが
一番コストがかからないのか、組み始める前にじっくり考える癖をつけて欲しい。

それでもDelphiにしたいならまた来てよ。そのときは歓迎するよ。
0953デルNGNG
Excelは遅いからDelphiにするんですけど

Excelで1つのファイルのデータを貼り付けて計算して結果出すのに
30秒から1分かかります。4000ものファイルを計算させるととんでもない
ことになります。

最初に作ったのは1つのファイルのデータを4000のファイルに振り分けるものです
Excelでは40分から50分かかります。
delphiでは25秒でした。

Excelはファイルオープン、クローズに時間がかかります。
だからDelphiにするのですが、いけませんか?
0954デフォルトの名無しさんNGNG
>>953
だからと言ってプログラミング歴1週間ではいかんともしがたいぞ。
0955デルNGNG
そうですね。
一応サンプル探して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 とする
// 以下は同等の処理の繰り返し
0956デルNGNG
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.
0957デフォルトの名無しさんNGNG
どのようなエラーが出たのかを書けないと意味ないね
0958デフォルトの名無しさんNGNG
Imageコンポーネントにあるpictureを消す場合って、単純に
> Image.picture := nil
で良いのでしょうか?

試しに、Image1.picture:=nil;
if (Image1.picture=nil) then showmessage('ほげ'); ってやってみても何も出てこなかったのが
非常に気になっているのですが・・・。
0959デフォルトの名無しさんNGNG
>>958
きっとメモリリーク起こしてます。
0960デフォルトの名無しさんNGNG
Image1.picture=nil ←これいくない。
Not Assigned(Image1.picture)←こちらを奨める

理由はヘルプ嫁
0961デフォルトの名無しさんNGNG
try‥finallyの使い方間違ってますし、
数値に変換するのに2バイト文字というのは意味不明。
0962デフォルトの名無しさんNGNG
CommaTextでも使え。
0963デフォルトの名無しさんNGNG
クラスAとクラスBがあって、
クラスAのメンバにクラスBのオブジェクトを宣言して
クラスBのメンバにクラスAのオブジェクトを宣言するにはどうしたらいいのでしょうか?

A = class
private
    bbb:    B;
end;

B = class
private
    aaa:    A;
end;

こんな感じですがクラスAを宣言する時にクラスBが定義されていないので
エラーになってしまうのですが、どうすればよいのでしょうか?
0964デフォルトの名無しさんNGNG
Aを宣言する前に
B = class;
とforward宣言しておく。
0965デフォルトの名無しさんNGNG
>>958
.visible := False;
0966デフォルトの名無しさんNGNG
>>964
ありがとうございました
また1つ勉強になりました。
0967デルNGNG
>>957

デバッガ例外が発生
EAccessViolationクラスの例外を生成しました。
アドレス00000000でアドレス00000000に対する読み込み違反がおきました。

です
0968デフォルトの名無しさんNGNG
つーか1週間やっただけでExcel越えようと思うのは妄想が激しすぎると思ふ。
0969デフォルトの名無しさんNGNG
>>968
なんでもやり始めというのは壮大な夢を持つものさ。特にプログラミングは。
プロと同じツールを使うわけだからね。

だからと言って、他人を巻き込むなと言いたいわけで。
0970デフォルトの名無しさんNGNG
むか〜しD3Professionalを使って、Paradoxのデータベースのアプリをかじった
のですが、再び始めようと思ってます。

無償配布のD6PersonalはD3proのDataAccessやDataControlsのような機能が
ないようなんですが、やっぱり有料版を使わないと駄目なんでしょうか。
Borlandのサイトではデータベース機能を利用するにはProfessionalでないと
駄目みたいなことが書いてあるんですが、他にやり方とかあるんでしょうか。
0971デフォルトの名無しさんNGNG
>>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は消えてるんですが・・・。(ノД`)?
0972デフォルトの名無しさんNGNG
バイナリファイルにテキストデータを付け加えたいのですが

AssignFile(f, 'test.txt');
Append(f);
Write(f, textdata);

で行なうと、以前書き込んだバイナリデータの上に上書きしてしまいます。
つまり、appendを使ってもファイル末尾に書き込んでくれないのですが
どうすればいいのでしょうか?
ヘルプを読むと、末尾128バイト以内に云々と書いてありますが・・
0973デルNGNG
>>969

>だからと言って、他人を巻き込むなと言いたいわけで。
じゃあでてくるなよ

最初は誰でも素人
デルファイが伸びないのは、あなたのような人がいるからかもしれないね

0974デフォルトの名無しさんNGNG
>>971
Picture.FreeとしないとAssignedではFALSEにならんよ

Image1.Picture.Graphic.Assign(nil);
if Image1.Picture.Graphic.Empty then
としてみてはどう?
0975デフォルトの名無しさんNGNG
>>972
Append は ctrl+Z の後に追加するのでそうなります。

TFileStream を使って、書き込みポインタを最後にもってきてから書くといい
0976デフォルトの名無しさんNGNG
>>975
はい、チャレンジしてみます。ありがとうございました。
0977デフォルトの名無しさんNGNG
>>975
・・ってバイナリデータの書き込みの際にTFileStreamは使っているので
それをそのまま使ってみます。

WriteBufferでバイナリデータは書いていますが、
テキストデータの場合、どうすれば書き込めますか?
var
TextData: string;
FileStream: TFileStream;
である場合、どうなるのですか?

FileStream.WriteBuffer(TextData, length(TextData));

ではうまき行きませんでした。

0978デフォルトの名無しさんNGNG
>977
FileStream.WriteBuffer(TextData[1], Length(TextData));
0979デフォルトの名無しさんNGNG
次スレどこ〜?
0980デフォルトの名無しさんNGNG
>>978
そんなことだったのですかぁ・・・・あああ
全然理解していなかった私・・・
どうもありがとうございました。m(__)m
0981デフォルトの名無しさんNGNG
>>963-964
後方参照できないところがC言語にちょっとだけ似ていないこともない。
0982デフォルトの名無しさんNGNG
>>981
PascalとCはいとこみたいなもの(Pascalの方がちょっと年上)
0983デフォルトの名無しさんNGNG
TActionListって何のために使うんですか?
0984デフォルトの名無しさんNGNG
>>983
メインメニュー、ポップアップメニュー、ボタン
などで共通の動作をさせるときに一元管理できるようにしたもの
(分類して管理できる)

だけどメニューのキャプションとボタンのキャプションは同一ではないので
結局思ったほど便利じゃなかった罠
0985デフォルトの名無しさんNGNG
ActionList使ってみたけど、あんまし使いかってよくなかったな。
へんてこなコンポいらんから新しいhファイルの変換して素早く公開するくらいのことしてほしい。
0986デフォルトの名無しさんNGNG
Action/ActionListのメリットが理解できない奴は抽象的な思考に不自由な奴が多い。
0987デフォルトの名無しさんNGNG
TStreamクラスとその派生クラスのWriteメソッドとWriteBufferメソッドはどう違うの?
何か使い分けとかあるの?
0988デフォルトの名無しさんNGNG
>>987
Writeメソッドは抽象オブジェクトなので、
派生オブジェクト上でWriteを使って必ず同じ動作をするとは限らない。
素直にWriteBuffer使っておけ。
0989デフォルトの名無しさんNGNG
ウンコンポは要らない!
0990デフォルトの名無しさんNGNG
>>989をラッピングしてみたんですが・・・いらないですね。
0991デフォルトの名無しさんNGNG
DelphiのIDEのように
上のMenuを隠さないような最大化を
実現するにはどうするのでしょう?

大きさはTSizeConstraintsで制御出るようですが
X,Y座標の設定をどうするのか悩んでいます

よろしくお願いします。
0992デフォルトの名無しさんNGNG
>>991
ウインドウメッセージ取るとか、タスクバー領域に指定しちゃうとか。
0993デフォルトの名無しさんNGNG
>>992
すみません。
私の技量が足りなくて、言葉だけの説明だけでは
理解できません・・・

現在、上にメニュー。下にワークフォームを用意しています
タスクバー領域に指定とは
上のメニューをOSにタスクバーと認識させると言った解釈で
よろしいのでしょうか?
0994デフォルトの名無しさんNGNG
ステップ実行し、変数ウォッチすればわかる。
0995デフォルトの名無しさんNGNG
WM_GETMINMAXINFO メッセージを処理するメソッドを定義して、
ウィンドウの位置を調整する。
D6 以降なら、{Public 宣言} の真下あたりで Ctrl-Space 押して wmgetmin って打つと
"procedure WM_GETMINMAXINFO...." ってのが出てくる。これをリターンで確定すると
WMGetMinMaxInfo メソッドが定義されるから、Shift-Ctrl-C でクラス定義を補完。

実装部分に、たとえば
 Message.MinMaxInfo.ptMaxSize := 600;
って打つと、最大化ボタンを押しても幅 600 どっとになる。
0996デフォルトの名無しさんNGNG
>>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;
0997デフォルトの名無しさんNGNG
続き

このソースでは
MaxPoint.Y := frmSDIMenu.Top + frmSDIMenu.Height;の部分では
うまくいくものの
X座標指定の
MaxPoint.X := frmSDITool.Left + frmSDITool.Width; //Err...
でエラーが出ます

どうやらToolForm = nilの様なのですが(Assignedで調べました)
このWorkFormを作成するときには既にToolFormは存在しています

何か見落としている点がありませすでしょうか?
0998987NGNG
>> 988
サンクスです。
0999991NGNG
自己解決しました

どうやら原因はfrmSDIToolLeftの変数を使って
インスタンスを作成していませんでした

お騒がせしてすみませんでした
1000デフォルトの名無しさんNGNG
1000!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。