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

Borland Delphi初心者用お勉強スレ

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
Windows最強の開発環境とも言われるDelphiを学びたい初心者のためのスレッドです。
超初心者的な質問でも気兼ねなくしてみよう。
でも、最低でもgoogleで検索したり、FAQページ等で探してからね。

親切な中・上級者が答えてくれる…かもしれません。
過去ログ、参考リンクは>>2-10
0002デフォルトの名無しさんNGNG
このスレの前身
Borland Delphi 6 Personal をダウンロードした
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998878393

兄弟スレ

Delphi相談室その2(中級者向け)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=995950803

Delphi/Kylix Tech 2nd(上級者向け)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=993005709

( ゚Д゚)ノ Delギコ猫のプログラミング相談室part2(中・上級者向け)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=999482946
0003デフォルトの名無しさんNGNG
これでDelphiに関しては初・中・上級と揃ったので、
これ以上はとり合えずスレを立てないようにしましょう。
乱立と言われてしまうので。
0004公式ページNGNG
Borland Delphi
http://www.borland.co.jp/delphi/

Borland - Q&A:Delphi
http://www.borland.co.jp/qanda/delphi/

Borland Delphi Tips
http://www.borland.co.jp/tips/delphi/
0005Tips集NGNG
 前スレのDelギコ氏作成のリンク集をお借りしたぞー

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧ ∧   マターリ
   (,,゚Д゚)∫
   /  つ旦O
 〜(__n n[ ̄ ̄ ̄.]
         ̄ ̄ ̄
初心者向け
Do It YourSelf---Life with Delphi http://home.onestop.net/mineko/index2.html
ゼロからDELPHI講座 http://www.text2music.com/mine/delphi/index.html

VBから
Switching Delphi / VB http://member.nifty.ne.jp/deepforest/vbdel.htm
Visual Basic から Delphi/Kylix への移行ガイド http://www.borland.co.jp/delphi/papers/vbtodel/

Tipsサイト
Delphi Acid Floor  http://homepage2.nifty.com/boheme/top.html
Leafel's note Programing  http://hp.vector.co.jp/authors/VA015850/program.html
日本Delphi振興会  http://hp.vector.co.jp/authors/VA009712/take/delphi/kabetop.htm
Delphi神殿Tips  http://nug.nasu-net.or.jp/~sakai/delphi/index.html
M&I Tips  http://member.nifty.ne.jp/m-and-i/tips/tipspage.htm
Gen'sDelphiLabo  http://www2.biglobe.ne.jp/~sakai/gensfaq2.htm
FDelphi  http://www.nifty.ne.jp/forum/fdelphi/faq/title.htm
Borland Q&A Delphi  http://www.borland.co.jp/qanda/delphi/index.html
Borland Tips Delphi  http://www.borland.co.jp/tips/delphi/index.html
RG VEDA DELPHI TIPS  http://homepage1.nifty.com/beny/delphi.html
Sky Engine by Delphi  http://www.geocities.co.jp/SiliconValley-SanJose/7625/index.html
AboutDelphi  http://www2.big.or.jp/~osamu/Delphi/
Win32 API by Object Pascal of Delphi  http://halbow.cool.ne.jp/top.html
COSMIC TOWER DELPHI MILLION TIPS  http://homepage1.nifty.com/cosmic/delphi/delphitips.html
Delphi広場faq  http://www.sakaki.keiaikai.or.jp/faq.html
としのホームページTIPS  http://hp.vector.co.jp/authors/VA003525/tips.htm
STUDIO MU Delphi Q&A  http://www.para.tutics.tut.ac.jp/~ohno/mu/devroom/delphi_qa_g.html
中村の里  http://www.asahi-net.or.jp/~HA3T-NKMR/delphi.htm
進め!中級プログラマ  http://www.asahi-net.or.jp/~GV4J-SGUR/narik/susucyu.htm
Ken's Software Delphiの話題  http://homepage1.nifty.com/kens-hp/delphi.htm
Katsuya's Home  http://www.apionet.or.jp/~tubokura/k_tips.html
Ak's Laboratory[Delphi Construction]  http://www2s.biglobe.ne.jp/~aks-lab/delphi_lecture.htm
MADIAのVB研究室|Delphi Page  http://homepage1.nifty.com/MADIA/Delphi/Delhpi.htm
DEKO Delphiによるテクニック&アルゴリズム  http://homepage1.nifty.com\ht_deko\techalgo.html

初心者から上級者まで御用達
 DelphiML検索 http://www2.big.or.jp/~osamu/Delphi/
 Delphi広場 http://www.sakaki.keiaikai.or.jp/
 BorlandManiacs http://member.nifty.ne.jp/h_kova/

コンポーネントのことなら
 DelphianWorld http://home1.infonia.ne.jp/~delphian/delphi/
 DelphiSuperPage http://delphi.icm.edu.pl/

環境のカスタマイズなら
 GExperts http://www.gexperts.org/
 フリーカーソル無効化アドイン http://homepage1.nifty.com/fuu/

書籍案内
Delphi 書籍ランキング
http://home1.infonia.ne.jp/~delphian/delphi/history/book.html
http://home1.infonia.ne.jp/~delphian/delphi/history/bookrank2/book.html
Delphi初心者のための道しるべ  http://www.valley.ne.jp/~masaiku/index1.htm
0006前スレ944NGNG
こんなものでしょうか?スレ建て初めてなんで、不備がないかちょっと心配…。
さて、僕も初心者なので、みんなで一緒にお勉強しましょー。
0007デフォルトの名無しさんNGNG
おつかれでーす>>1
0008デフォルトの名無しさんNGNG
早速質問…。
Delギコスレとかで話題になっている、サブクラス化ってどういうことをやってるのか皆目見当もつかない…。
「既存のコントロールのWindowプロシージャを自前のものでのっとる」ってイメージでいいのかなあ?
0009デフォルトの名無しさんNGNG
Kylixへの移植もできるのかな?>サブクラス化
0010リンク集に追加NGNG
他人様の作ったソースを読んで勉強しよう。

ソフトウェア開発者のためのIT情報総合サイト ― Layer-8
http://www.layer-8.com/
0011デフォルトの名無しさんNGNG
Delギコの悪影響を受けないで下さい>>8,9

サブクラスとコールバック関数やメッセージと関係ありません。
また、Delphiの良いところは、コールバック関数やメッセージを綺麗に隠しているところです。
001211NGNG
新しいクラスを作った場合、メソッドやプロパティの実装に以下の方法があります。

a)クラスがクラスを持っていて、持っているクラスに処理をやらせる・・・サブクラス
b)クラスを派生する(スーパークラスの処理がはじめからくっついてる)

※そんなの知ってるよっていう突っ込みなしね
001311NGNG
「a)」のサブクラスに処理を委託する場合、
クラスのメソッドやプロパティをコールするだけで良いのです。
Windowsのメッセージを使ったりするのは、
オブジェクト指向のメリットである隠蔽を台無しにするだけです。
0014デフォルトの名無しさんNGNG
ここで言ってるサブクラスというのは どっちかというとフックですね

本当なら継承して作ればいいんだけど(そういうふうにVCLは出来てるけど)
A->B->C->Dと継承した後に Aのところで修正しなければ出来ないような
機能を追加したくなる場合がある。 すると B,C,Dも2重に作り直さなくちゃいけ
ない。

そんな時に、Aの持ってるWindowsのメッセージの流れに割り込んで(つまりフックすれば)
実現出来てしまう場合がある

つまり、本当ならイベントで定義出来るようになって欲しいような機能を無理やり後付け
するようなイメージかな?

ただ、イベントだと設計時には反応出来ないけど、サブクラスでフックした場合は設計時に
も色々と出来て便利という事
0015DelギコNGNG
      ∧∧  >>11 ナンカ カンジワルー
      ( ゚Д゚)
      ∪ |
     〜   つ
       ∪"'

誰も、全部が全部サブクラス化しろなんていってないよーだ。
使う必要がある場合に使えばいいだけっしょ。

>>14サンクス。その通りです。
VCLのサブクラスしかしらないので、サブクラス=フック
と思ってました。ちがうのかな。
0016デフォルトの名無しさんNGNG
>VCLのサブクラスしかしらないので、サブクラス=フック
>と思ってました。ちがうのかな。

サンクスじゃねーだろ!サブクラス=フックは大間違い。
0017デフォルトの名無しさんNGNG
オブジェクト指向用語では サブクラスは継承して出来たクラスの方の事だけど

Windows用語ではメッセージフックテクニックの事を指すという理解でいいんじゃないの?

というか初心者スレにはその程度の理解でいいと思うが・・・
0018DelギコNGNG
>>16
            ∧ ∧ ムカムカ
      〜′ ̄ ̄(#゚Д゚)つ
        UU ̄ ̄U
______∧________________
>>14にサンクスと逝ってるのは

> A->B->C->Dと継承した後に Aのところで修正しなければ出来ないような
> 機能を追加したくなる場合がある。 すると B,C,Dも2重に作り直さなくちゃいけ
> ない。
> そんな時に、Aの持ってるWindowsのメッセージの流れに割り込んで(つまりフックすれば)
> 実現出来てしまう場合がある

こういう事を説明してくれてるからだ

で、人の間違いを指摘して言いっぱなしかよ。

つまらん煽りするくらいなら、MLに帰れ(ワラ
0019デフォルトの名無しさんNGNG
煽りじゃないんだ>>18

派生出来ないCOMや他アプリなんかへのメッセージをフックするなら、
メッセージフックプログラミングと言えよう。
VCLのクラスをそれぞれ派生させながら、
それらにフックを持たせるのは間違ったプログラミングなんだ。
読んでる人みんなに害があるぞ。
002019NGNG
メッセージが綺麗に隠蔽されている(処理を変える場合は、
メッセージハンドラオーバーライド)ので、
それ以外のプログラミングに専念出来るのがDelphiなのに、
このスレを見た人が間違って、
フックをコードに取り込んだらどうするんだよ。
また、これらのコード見た初心者はDelphi使わなくなるよ。
0021DelギコNGNG
 ∩ ∩
 | ∪ | ネコ ハ ネコ ナリニ スナオ
 |  〜
 | ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |( ,,゚Д゚) < >>19-20 おっしゃること、わからずともないです。はい。
 U U   \________

 VCL デハ アンナ コト シテナイ ノカナ

 初心者スレっぽくないので、あっちでやらニャーかい?
0022デフォルトの名無しさんNGNG
確かにVCLでの正しいサブクラスの使い方は WndProc を override する事だと思う

サブクラスに関係なくメッセージフックは確かに便利だ。
どちらかというとC++の多重継承を動的にやる感覚だな。

でも初心者は暫く遠ざかった方が賢明なのは確かだ
0023デフォルトの名無しさんNGNG
VBからDelphi6に移行しようと勉強中なのですが、
複数列のリストボックスに値をセットするには、どうすればよいのでしょうか?

// 3列のリストボックスに値を追加
ListBox1.AddItem('あああああ,いいいいい,ううううう',ListBox1);

上の記述だと、1列目に'あああああ,いいいいい,ううううう'とセットされて
2列目、3列目に何もセットされません。
| も試しましたが同じでした。

何か区切り記号が必要なのでしょうか?
0024デフォルトの名無しさんNGNG
>>23
AddItemを使うのなら単にバラだ書けばいいだけ
ListBox1.AddItem('あああああ',nil);
ListBox1.AddItem('いいいいい',nil);
ListBox1.AddItem('ううううう',nil);
0025デフォルトの名無しさんNGNG
自分も初心者ですが。

>>23 AddItemを何度もやればいいとかそういうことではなく?
002625NGNG
かぶった…。スミマセン。
0027デフォルトの名無しさんNGNG
>>23
どうしても一度にやりたいのなら
ListBox1.Items.CommaText := 'あああああ,いいいいい,ううううう';
0028@NGNG
モロ、無修正画像サイト発見!

http://www.sex-jp.net/dh/01/
http://www.sex-jp.net/dh/02/
http://www.sex-jp.net/dh/03/
http://www.sex-jp.net/dh/04/
0029>23NGNG
これもありかも。最初は使わない方がいいけど。
ListBox1.Items.CommaText := 'あああああ,いいいいい,ううううう'

# どうでもいいけどAddItemの第二引数にデフォルト値nilを設定して欲しい。
003023NGNG
>>24-27>>28
ありがとうございました、早速、試してみました。

|ああああ|いいいい|うううう|

と言う具合に表示させたかったのですが、

ああああ
いいいい
うううう

と表示されます。
リストボックスのColumnsプロパティは2に設定していますが、
他に何か設定を変更しないとダメなのでしょうか?

>どうでもいいけどAddItemの第二引数にデフォルト値nilを設定して欲しい。

ご指摘の通り修正しました。
でも、何が違うのかわからないので、後から調べてみます。
m(__)mペコリ
0031デフォルトの名無しさんNGNG
>30 大きさを変えてみましょう
003223NGNG
>>31
リストボックスを縦横に大きく広げてみましたけど、一緒でした。
大きさって、リストボックスの大きさですよね。
0033デフォルトの名無しさんNGNG
>>32
逆。縦に縮めてみ。
0034デフォルトの名無しさんNGNG
おぉ、嬉しいスレができてる!
ほとんどのことはGoogleればわかるけど、本当に細かいテクは
探すのが難しいからねぇ。
003523NGNG
>>33
ありがとうごいます、できました。

ちゃんと表示されて気づいたのですが、
リストを複数列に分けて表示するものなんですね。

てっきり、Accessのリストボックスみたいに、
1データを複数項目で表示させるものかと思ってました。
0036デフォルトの名無しさんNGNG
>35 もしかして オブジェクトインスペクタの Itemesをクリックした事がないとか?
0037デフォルトの名無しさんNGNG
>>35
複数列表示するものって、もしかしてListViewのことかな?
003823NGNG
>>36
クリックしたことがありませんでした・・・
ここに書き込めたんですね。
VBでも同じ事はできたので、最初に探すべきでした。
003923NGNG
>>37
VBには、リストボックスの複数行表示という機能がないので、
てっきり、ListViewとリストボックスの複数行表示は、
同じ機能なのかな・・と勘違いしてました。

ListViewは、ヘルプと書籍を頼りに、
なんとか思った通りに表示させることができました。

みなさん、親切に答えていただいて、ありがとうございます。
m(__)m
004023NGNG
何度も質問ばかりですいません。

プログラムでDBを使用する場合、
それがスタンドアロン限定であれば、DBは何を選択されてますか?

VBで開発していた場合は、基本的にはAccessのMDBを選択してましたが、
Delphiユーザーの皆さんはいかがなのでしょうか?
0041デフォルトの名無しさんNGNG
スタンドアロン限定ならParadoxでしょう

必要なら他のも使えるけど
004223NGNG
>>41
Delphiに付属されているからですよね?
Paradoxを基本的に使用するってことで、勉強していきます。

私が使ってる、Delphi Personalには付いてないみたいですけど・・・
0043デフォルトの名無しさんNGNG
Paradoxってまだあるの?
コーレルかどっかに売ったんじゃなかったっけ?
0044デフォルトの名無しさんNGNG
そもそもPersonalではデータベースできんのじゃないの?
いや、自前なら可能か?
004523NGNG
>>44
いろいろ探しましたが、できないみたいです。

Delphiユーザーの方は、どのエディションを使われているのですか?

Delphi 6 Professional と Delphi 6 Enterprise の違いって、
大きく影響する物なのでしょうか?
0046デフォルトの名無しさんNGNG
Delphi6 Personal/Professional/Enterprise機能比較
http://www.borland.co.jp/delphi/del6/features.html
0047デフォルトの名無しさんNGNG
>>45
できるっつーの。
0048デフォルトの名無しさんNGNG
ここ、ぜんぜん初心者スレじゃない気が…
ListBoxの話くらいかなぁ。

初心者ってのは
「1.Dephiのことを右も左も分からない」
        +
「2.プログラミングさえよく分かってない」
人のことじゃないかな?

2.が分かる人は自力で何とかできる知恵があると思うのだが。
めんどくさがって初心者スレで聞くと一気にレベルがあがってしまうよ。

あと、データベースの話は中・上級スレの方がいいよ。
0049デフォルトの名無しさんNGNG
>>48
Del初心者の方がDBに話を振ったのでしゃーないだろ。
005023NGNG
>>47
すいません、そうなんですね。

どうやってできるんですか?
調べたのですが、わからなくて
0051デフォルトの名無しさんNGNG
>50
できないっつーの
46のリンク先見てみな
005223NGNG
>>48>>49
ごめんなさい
DataBaseはSQL-Serverやmdbなど色々とVBの頃に使っていたので、
Delphiではどうなのかなと思ったのでした・・・

まだ、Delphiに触れて間もないので、質問を中級とかに
あげにくかったのでした。 m(__)mすいません
0053デフォルトの名無しさんNGNG
>>50
oo4oとかadoは使えると思われ
DOA(だっけ?)とかはTDataSet継承してるから
Personalだと使えないのか?
0054デフォルトの名無しさんNGNG
この際なんで聞いちゃいますが
Delphi Proに標準でついてくるデータベースはいくつかありますが
それぞれ特徴、性能、利点などを比較した表のようなものは無いでしょうか?
0055デフォルトの名無しさんNGNG
>>54
いくつかって・・・
IBの他にも何か付いてるの?
0056デフォルトの名無しさんNGNG
>55
TTableで扱えるデータベースの形式(dBase, Paradox, ...)のことです。
0057sageNGNG
Delphi 6 エンタープライズ 60日体験版
を下記キージェネを使えば製品版になります
ぜひご利用ください
http://www.crackbest.net/chcrack/crack/delphi6.exe
0058sageNGNG
Borland J Builder5J Enterprise 60日体験版
を下記キージェネを使えば製品版になります
ぜひご利用ください
http://www.cracks.am/d.x/Borland_JBuilder_4.0-5.0.zip
当然オーサライズ可能です
低能言語のDelphiからJAVAに乗り換えてみてはいかがでしょう?
0059デフォルトの名無しさんNGNG
>>57,58
かわいそうに...
も少し放置 Play !
0060デフォルトの名無しさんNGNG
でも、こんなのでこのスレが下がったらいやだな。
とりあえず上の怪しいのは使わないように。

PSネットワークが出してる「わたしにもできるDelphi初心者奮闘記」
ってのを買ってみました。
まだちゃんと読んでないけど、この本の評判はどうでしょう?
0061デフォルトの名無しさんNGNG
ListBoxのマルチカラムはTABで区切る。
0062デフォルトの名無しさんNGNG
>>57
>>58
これってやばいんじゃない?
削除依頼出したほうがいいぞ
0063デフォルトの名無しさんNGNG
まずageるなyo>>62
0064デフォルトの名無しさんNGNG
新スレになったからか盛り上がりませんな。
みんな初心者卒業?
それとも挫折?
0065デフォルトの名無しさんNGNG
だからタイトルにパソナルを入れろっての。
0066デフォルトの名無しさんNGNG
あまりに初心者すぎて聞くのも恥ずかしい状態なんだな。
0067デフォルトの名無しさんNGNG
>>66
それでも良いから質問しなよ。
匿名の利点を最大に。
0068デフォルトの名無しさんNGNG
正直何を作ればいいのかわからない
0069デフォルトの名無しさんNGNG
>>68
そうでなくて、作りたいものはないのか?
0070デフォルトの名無しさんNGNG
それでは勇気を出して書いてみます。
メモ帳を作ってるんですが、テキストファイルを関連付けて
テキストファイルのダブルクリックで立ち上げたり、ドラッグ&
ドロップで立ち上げたりできるようにするやり方がどうしても
わからないんです。
ドラッグ&ドロップのやり方とかいろんなTipsを見るんですけど
それを実際にどうプログラムに反映させていいのかが謎で…。
0071デフォルトの名無しさんNGNG
コンポーネントつくってDelphianWorldに載せたい。
でもコンポーネントって難しい。
なんかいい本ないですか?
0072デフォルトの名無しさんNGNG
>>70
過去ログを読みなさい。
00731RubyユーザNGNG
糞スレ。
0074デフォルトの名無しさんNGNG
>>70
望む二つは全く別の事柄なので,答えも別になる。

テキストファイルのダブルクリックで立ち上げ
http://www.nifty.ne.jp/forum/fdelphi/faq/00097.htm

アプリケーション起動後,ParamStr にファイル名がわたってくる。
ParamCount を見て,引数があるかどうかを確認して ParamStr を
見ること。
0075デフォルトの名無しさんNGNG
>70
関連付けやDDで開いた場合ParamStr(1)にファイル名が入ってるよ。
既に開いているメモ帳にDDした場合はまた別の処理が必要になる。
0076デフォルトの名無しさんNGNG
>>70
こんなんあるぞ。
ファイル拡張子関連付けコンポ ver1.0(8KB)
http://homepage2.nifty.com/t-katochin/compos.html
0077デフォルトの名無しさんNGNG
>>71
コンポーネントってそんなに難しいかい?
0078デフォルトの名無しさんNGNG
>77
コンポーネント作成するにはOOP理解してないといけないから
単純なアプリ作成とは別次元の難しさがあると思うよ。

>71
開発者ガイド読め。じゃ駄目?
0079DelギコNGNG
  ∧ ∧    /
  ( ゚Д゚)っ < .txtへの「関連付け」と
  |''U ̄|   \exeアイコンへのDrag&Dropと
  | ̄ ̄|     起動済みのFormへのDrag&Dropとは
 /    ゙ヽ   各々別の処理が必要なのだ。
(   ゚Д゚  )
人____ノ

・関連付け >> レジストリの設定
・exeアイコンへのD&D >> ParamStr
・FormへのD&D >> WM_DROPFILESを使う。

こんなんでDO?
008070NGNG
質問の書き方が悪かったみたいです。
関連づけ自体はwinのフォルダオプションで手動でするのでも
かまわないんです。
テキストファイルをダブルクリックしても、その内容が
書き込まれないで白紙の状態のメモ帳が立ち上がるのを
なんとかしたいんです。なんか本当に基礎のところからわかってなくてすみません。
008170NGNG
みなさんのレスによれば、どうやらParamStrってのの使い方を
まず勉強する必要があることがわかりました。
ありがとうございます、がんばってみます。
0082DelギコNGNG
 ∧ ∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (,,゚Д゚)  <  >>80それならParamStrでしょ。
 し  |つ  \___________
〜|  |
  ∪∪
0083DelギコNGNG
 コンポ作成本は2冊くらいしかない

・Delphiコンポーネントプログラミング
・Delphi & C++Builder即戦力コンポーネントライブラリ

 上の方はオススメ

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
   ∧ ∧ 開発者ガイトは難しい
   (,, ゚Д゚)
   ノつ l⌒|⌒l
 〜(._⊃⊃⌒⌒
0084デフォルトの名無しさんNGNG
>>80
これを見るのがよろし。

http://www.borland.co.jp/qanda/delphi/d0005010.html
008580NGNG
>>84
うわっ、本家のサイトにそのものズバリ書いてあったんですね。
調べ方がまだまだ不十分でした。ありがとうございました。
0086天オNGNG
xorって何よ?
0087デフォルトの名無しさんNGNG
>>86
歯痛的論理輪
0088デフォルトの名無しさんNGNG
Form間での参照・更新について質問です。

FormAのボタンをクリックした時に、FromBのエディットボックスに
'ABC'とセットしたいのですが、どのようにすればよいのでしょうか。
(参照はそれの応用と思ってます)

VBと違って、オブジェクトを参照する場合は、
必ずCreateを行うことまでは判ったのですが、
具体的な方法がわかりませんでした。
0089>88NGNG
[プロジェクト|オプション]フォームの自動生成の対象にFormBを指定して
procedure TForm1.Button1Click(Sender: TObject);
begin
FormB.Edit1.Text := 'ABC'
end;
ってやればよい
0090天オNGNG
>>87
なるほどそういうことか。
的確な回答をありがとうございます。
0091デフォルトの名無しさんNGNG
Delphiマガジンって本があるらしいけど、
初心者でも大丈夫かな?
0092デフォルトの名無しさんNGNG
>>88
サブフォームを作るとデフォルトでは「自動作成の対象」になっているから自分で
コンストラクタを呼ぶ必要はないよ。
「選択可能なフォーム」にした場合は次のように作ります。

// Application に破棄させる場合は
FormB := TFormB.Create(Application);

// 自分で破棄するときは
FormB := TFormB.Create(nil);

のような感じ。Application のところはメインフォームなどでもOK。
当然 var FormB: TFormB; をどこかで定義しておく。
0093デフォルトの名無しさんNGNG
>>91
Delphiマガジン
http://dmj.psnet.ne.jp/index_j.html
ビギナーなら
・純正マニュアルとヘルプ
・ネット上の有用なページ群
を参照すればたいてい事足ります。
各種雑誌に載ってる記事は短くて中途半端なので特にビギナーにはほとんど
参考にはならないでしょう。
0094デフォルトの名無しさんNGNG
作ったアプリケーションの設定をiniファイルに保存する方法で詳しく書かれているHPを教えてください。
初心者です。
0095デフォルトの名無しさんNGNG
>>94
ここの時計の作り方とか?
ttp://www2s.biglobe.ne.jp/~hatena/delphi/index.html
0096デフォルトの名無しさんNGNG
>>94
初心者かどうかしらんが,保存したいアプリケーションの情報が何か
わかっているんだろうな?
0097デフォルトの名無しさんNGNG
オンラインヘルプで TiniFile を調べなさい。>>94
自分で試しもしないで質問するのはだめな人間です。
少年よ、己から切り開け!
0098DelモナNGNG
         ______    __________
        /     / . | /
  ∧_∧ /     /.  |< おはようモナー
  ( ´∀`;)    /   |  \__________
  |    つ__/    |
┏(_  ヽ ──┐  │
┗┳┛  ノ    │  |
  ┴  ~└──┴─┘

>94
ヘルプ見るだけじゃかわいそうだからちょっとだけヒントを教える。

uses inifiles;


ini:=TINIFile.Create('c:\ore.ini');

読み込み
ini.Read?????();
書き込み
ini.Write?????();

ini.Free;

Read????の????の部分は置き換えてくれ。
ヘルプ見ながらガンバレ
0099デフォルトの名無しさんNGNG
http://register.borland.co.jp/register/
ユーザー登録の欄がないのですが
どうやったら、登録できるんですか?
0100デフォルトの名無しさんNGNG
>>97
そんなせこい事言うな。
ここは初心者スレ。おまけにアマが殆ど。
基本的にヘルプを使えるレベルではないと心得るべし。
0101DelモナNGNG
      ___________〆
     _|___|_ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ロ  (´∀`ノ) < みんなD6Personalやってるかモナー?
   | |⊂(w:w:w ) │
  ( O )| | |  \__________
  (  )(___(___)

>ぐるぐる99
ttp://register.borland.co.jp/delphi_personal.htm
ここで登録してくれい
010299NGNG
>>マターリ101
サンクソ、登録した世
今日からオイラはdelマスターだ
0103INIファイルの使い方NGNG
>>94
まずはUnit1.pasと同じディレクトリにMyLib.pasというファイルを作る
↓↓↓ここから
unit MyLib;

interface
uses
Windows, Classes, SysUtils, Inifiles;

var ini: TInifile;

implementation

initialization
// exeと同名のINIファイルを作成
// 例: 'c:\myapp\project1.exe' -> 'c:\myapp\project1.ini'
ini := TInifile.Create(ChangeFileExt(ParamStr(0), '.ini'));
finalization
ini.Free;
end.
↑↑↑ここまで

よく使うコードはどんどんMyLib.pas(名前は何でもいいけど)に放り込んでいけば
同じコードを何度も書かずにすむので楽になるよ。

で、これをフォームから呼び出す。
これはフォームの座標(Left, Top)とEdit1の内容を保存するサンプル。
↓↓↓ここから
unit Unit1;

interface
(中略)
implementation
uses
MyLib; // iniを使用可能にする
{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
// INIファイルから読み出し
Left := ini.ReadInteger('Form1', 'Left', Left);
Top := ini.ReadInteger('Form1', 'Top', Top);
Edit1.Text := ini.ReadString('Form1', 'Edit1', Edit1.Text);
end;

procedure TForm1.FormHide(Sender: TObject);
begin
// INIファイルへ保存
if WindowState = wsNormal then
begin
// 最大化・最小化時は保存しない
ini.WriteInteger('Form1', 'Left', Left);
ini.WriteInteger('Form1', 'Top', Top);
end;
ini.WriteString('Form1', 'Edit1', Edit1.Text);
end;

end.
↑↑↑ここまで
0104DelモナNGNG

 ∧_∧〃つ / ̄ ̄ ̄ ̄ ̄
(  ´∀`)/ < 良スレの予感だモナー
( つ   /   \_____
|  ⌒|
|  (__)
(__)
0105デフォルトの名無しさんNGNG
94です。
答えてくださった皆さん、お返事ありがとうございます。
初心者スレとうたっておきながら、質問したら、ヘルプを読めというのは筋違いではないでしょうか?
そのような回答をしていると、このスレッドの存在する意味がないと思うのですが・・・
0106デフォルトの名無しさんNGNG
>61
その程度なら固定長配列&力技=コピペで十分
クラスbとbのインスタンス管理クラスを分けてもいいかも
0107デフォルトの名無しさんNGNG
調子にのんな>94
ここは初心者用スレだが厨房用のスレではない事を知れ、屑厨
0108デフォルトの名無しさんNGNG
>>94
   λ
   ( ヽ  / ̄ ̄ ̄ ̄ ̄
  ( ゚Д゚ )< Rubyはクソです。ゴミ箱逝きです。 いじょ
 (____) \_____
   ヽ(´ー`).ノ
     (  へ)
      く



                      - = ≡三  λ
                  _ = ≡三     ( ヽ  / ̄ ̄ ̄ ̄ ̄
       (´ー`)          = ≡三    ( ゚Д゚ )< この発言をコピペしていただければ幸いです。
      ( ヽ ヽ)         - = ≡三   (____) \_____
      /  >             - = ≡三
0109デフォルトの名無しさんNGNG
そのような回答をしていると、このスレッドの存在する意味がないと思うのですが・・・
0110デフォルトの名無しさんNGNG
どうせ105は騙りでしょ。
・・・本物だったらどうしよう
0111DelモナNGNG
    ‖
   ∧‖∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( -д-)  < そんなにみんな怒るなモナー
   |''''''''''''')    \____________
(( |∪| ∪ ))
  (_)_)

>94
わざと人を逆上させるような事を言うのはやめなさい。
と言うか、もっと高度なことを答えたいと言うこと。
TIniFileも、Yahoo!で検索すれば大量に解説ページが出てくる。
自分で調べても分からない場合に聞くべき。
そういう意味では、自分で調べていない94の質問には「ヘルプ見ろ」
としか言えない。
俺はちょっとヒントをあげたけどね。

さあ、どんどん逝こう
0112デフォルトの名無しさんNGNG
こんな事でアゲるな。バカ。

どの製品にもついてくるヘルプに載っていることは質問するな。
「ヘルプを読め」と罵倒されるだけありがたいと思え。
2ch でちまちま説明するより、ヘルプをまとめて読んだ方が理解が早いはずだぞ。

どの分野でも、ある程度の基礎知識の存在を前提にしないと、毎度用語から説明しなきゃ
いけなくなる。そんなことをしたくないし、する義務もないから、最低限ヘルプは眺めろ。
質問する前にざっと読め。

Ini ファイルやレジストリの存在を知らないのであれば、勉強不足と罵られても仕方はないが
誰かが「Ini ファイル/レジストリを調べろ」といってくれるよ。そしたらそれを調べろ。

ここは Delphi 初心者用ではあるが、教えて君部屋ではない。
0113DelギコNGNG
 ∧ ∧
 (,,゚Д゚)  マターリ イコウゼ
 (|  |つ
〜|  |  
  ∪∪  
「初心者です。詳しく教えてください」というセリフは
どんな分野でもかなり嫌われるのでヤメレ
詳しく教えて欲しいという甘えを回答者に押し付けるような
感じがするのだ。

見知らぬ人間に、1〜100まで教える人はいないからね。
「初心者です、パソコンの購入方法教えてください。
 パソコンのプロになれるまで詳しく教えてください」
って質問されたら誰だってイヤだろ?

だから折れは他言語/他ツールBBSで質問するときは
絶対自分の事を"初心者です"なんて言わない。

質問している以上、自分が初心者だろうが初心者であるまいが
適切な回答なら理解できるから。

TIniFileって聞いたら、そのHELPは読もう
それで、更に調べて「こうしてみましたが正しいでしょうか」と聞くとよろしい

元から初心者スレなんだから、初心者を表明せずとも
適度に質問するとよいでしょう。
0114デフォルトの名無しさんNGNG
Borland Delphi Personal「超」初心者なんでも教えてクレクレスレ
がひつようだな
0115DelギコNGNG
>どの製品にもついてくるヘルプに載っていることは質問するな。
      ∧∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 @' ― (,,゚Д゚) < それは言い過ぎだろう。
   し― し-J   \___________
  イクラナンデモ

>「ヘルプを読め」と罵倒されるだけありがたいと思え。
 ナンデヤネン 罵倒されて喜ぶならマゾだろう。罵倒する方はサドか?

  MSDNに載っていることは質問するなとか
  ヨノナカに出回っている本にスコシでも書いている事は質問するなとか
  webに掲載されちる事はたとえそれがスワヒリ語の資料だったとしても質問するなとか
そんなん言われたらイヤだな。

人によって、作れるものにもスキルの限界があるが
同じように調べることの出来る資料にも限界がある。

          Halbow氏あたりに"DOM"の一言で済ます
          どこぞのダレカみたいには成田区内。

   ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜''~(;゚Д゚) < しかし、なんで2chでこんな事かいてるんだ?
  UU'UU    \________
  ヒトトシテ ジョウシキノ ハンイデ ハナソウヤ

 ジンセイ ノ ショシンシャ ダッタラ ヤダナ
0116デフォルトの名無しさんNGNG
>>103
それをコンポーネント化すればもっとスマートになるよね。

コンポーネント仕様例)
・ini ファイル名は ParamStr(0) を元に拡張子を ini に変えたものにする。
・1フォームあたり1コンポーネントまでに制約。
・このコンポーネントを置いたフォームのデータは自動的に ini ファイルに保存・復元する。
・ウィンドウ位置、サイズ、表示状態など TForm 共通のデータをコンポーネント側で管理する。
・各フォーム固有の情報は OnFormLoad, OnFormSave みたいなイベントハンドラでやる。

ini ファイル例)

Project1.ini (Project1.exe の)
-- begin --
[Form1]
BoundsRect=10,10,100,100
WindowState=wsNormal
...
Form1CustomDataA=...
Form1CustomDataB=...
...

[Form2]
BoundsRect=20,20,200,200
WindowState=wsMinimized
...
-- end --

・当然アプリで他のセクション名も自由に扱えるようする。

ってな感じでどうよ?
0117デフォルトの名無しさんNGNG
説教くさい2ちゃんねらーは氏ねといいたい
ウザかったら無視してりゃいいだろ
0118DelモナNGNG

        ( ̄) ̄)
       / / /    
       | ∧○∧
 ゴォー    | ( ´∀`)
   ー   ∪ ∪
   ー   | ̄ ̄/
   ー   @─@

Del初心者のみんなはちゃんと調べてから質問しようモナー

>116
DelphianWorldにIniFileのコンポーネントなかった?
0119-NGNG
その画像ならココ
http://members.tripod.co.jp/bingo852/
0120DelギコNGNG
         ∩ ∩
        / // /
        |  〜
        | ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ゴォー.    |(,;゚Д゚) < にゃ・・・にゃーー
   ー    U U   \________
   ー    | ̄ ̄/
   ー   @─@
>DelphianWorldにIniFileのコンポーネントなかった?

TEditorの作者の方のかな。使いやすそうだけど
TIniとかTRegIniって
ソンナニ面倒じゃないから使ったことない。

>・このコンポーネントを置いたフォームのデータは自動的に ini ファイルに保存・復元する。
沢山のFormを管理するときは非常に便利そうだね。
0121116NGNG
>>118
このくらいのコンポーネントなら特に難しくはないから、
まーどこかにゃあるだろうな。
「クラスの作りからは知っているけど、コンポーネントの作り方は知らない」
ってような人には勉強がてらやってみたらいいんじゃないかい。
0122DelモナNGNG
   四 | ∧_∧  四  / ̄ ̄ ̄ ̄
  /非L+( ´∀`) | < おばんですモナー
  |∞  /  〒 \|つ   \____
   〕〔  U ‖ |  |
  / 〕 /_‖_| |

>116
確かに、練習用には良いかもね。コンポーネントって自分で作るようになると
色々応用範囲広がるし、何より楽できる。

ノートPC欲しい今日この頃
0123デフォルトの名無しさんNGNG
               
     
――――――――――――――――――――――
番組の途中ですが、臨時ニュースです。
「Rubyはクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
___________   __________
             ‖ \|________   
             ‖ | ON AIR.|
             ‖  ̄ ̄ ̄ ̄
        ./ ̄ ̄θ Λ_Λ
      .../   //(´∀` )/|
     ./      ̄/⊂    ||_/
     | ̄ ̄ ̄ ̄ ̄|  (  ━┳┛
     |_____| /ヽ」┘┻
0124103NGNG
>>116
>それをコンポーネント化すればもっとスマートになるよね。
公開はしていないけど実はもう作ってたりして。
それ使うと>>103のサンプルコードはこう書けるようになる。

procedure TForm1.Inifiler1Synchronize(Sender: TObject);
begin // 読み書き兼用イベントハンドラ。[Self.Name]セクションにアクセス。
 with Inifiler1 do begin
  Sync(Self); // Form1の形状保存
  Sync([Edit1, Memo1, CheckBox1]); // それぞれ適切に保存
  MyValuel := Sync('MyValue', MyValue); // Integer, Stringなど
 end;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
 Inifiler1.LoadFromFile; // 読み出しモードでInifiler1Synchronizeを呼ぶ
end;

procedure TForm1.FormHide(Sender: TObject);
begin
 Inifiler1.SaveToFile; // 書き込みしモードでInifiler1Synchronizeを呼ぶ
end;
0125デフォルトの名無しさんNGNG
――――――――――――――――――――――
番組の途中ですが、臨時ニュースです。
「Rubyはクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
___________   __________
             ‖ \|________  
             ‖ | ON AIR.|
             ‖  ̄ ̄ ̄ ̄
        ./ ̄ ̄θ  ∧_∧
      .../   //(´∀` )/|
     ./      ̄/⊂    ||_/
     | ̄ ̄ ̄ ̄ ̄|  (  ━┳┛
     |_____| /ヽ」┘┻
0126デフォルトの名無しさんNGNG
DELギコのほうで相手にされなかったのでこちらに書き込みます。

どなたか以下のコードを検証していただけないでしょうか。

もっと頭の良いやり方があれば、知りたいのです。

DELギコの前スレ 524, 551

>ShellTreeView で、指定したフォルダを
>開いている状態にするにはどうするんだろうか。
>たとえば、 C:\Windwos と指定すると。
>デスクトップ→マイコンピュータ→C→windows
>が展開されて、かつスクロールインする感じ。

↓の2のコード。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1000404430
0127デフォルトの名無しさんNGNG
こんなプログラム作ったんですけど・・・

// 行番号(0から)を入力してボタン1を押したらその行を選択する
procedure TForm1.Button1Click(Sender: TObject);
var
i,len: integer;
col: integer; // ←目的の行番号
begin
len:=0;
col:=StrToInt(Edit1.Text); // ←行番号はEdit1で指定
for i:=0 to col-1 do
begin
len:=len+Length(Memo1.Lines[i])+2; // ←改行の分(+2)
end;
Memo1.SetFocus;
Memo1.SelStart:=len;
Memo1.Perform(EM_SCROLLCARET, 0, 0);
Memo1.SelLength:=Length(Memo1.Lines[col]);
end;

Memo1.WordWrap=Falseならばこれで行の選択ができるが、
Memo1.WordWrap=Trueのときで一行が折り返されて複数行になるときにうまく選択できません
何か良い方法ありますか?
0128デフォルトの名無しさんNGNG
スペースが消えて見にくくなってしまいました
すみません。
0129DelモナNGNG
 みなさんこんばんわんこそばモナー
\________ _____/
      ┏━┓ |/
      ┛━┗
      ( ´Д`)
     (]づ∀´]つ
     / / :ヽ|
     ´(__)_)
盛岡に行ってわんこそば食おうとしたら大渋滞に巻き込まれて
行けなかった過去がアル

>127
Memoだと問答無用で行を切られるのでたぶんムリ。
RichEditだと大丈夫じゃない?やってないから分からないけど。

>126
やっぱり一々、TreeViewのアイテムを見ていくしか方法は無いかも。
速度的に問題が無いのならこのまま行きましょう。
俺としては、このルーチン以外でやる方法は思いつかないが。
0130126NGNG
>>129
> 速度的に問題が無いのならこのまま行きましょう。
うーむ、やはりそうですか…
結構悩みどころなんです。

Win3.1 タブの FileList や DirectoryList を使うと
簡単に、高速に実現できるのですが、ユーザにとっては
使いにくいUIです。

ShellTreeView を使うこの方法だと、UIは非常に
分かりやすくなるのですが、パスを指定してから
フォルダが開くまでのタイムラグが…
0131DelモナNGNG
      ○
      |  \
     [二二二]
 γ⌒ヽ(λ´∀`)   、∞
 /   ∩3\,,,,/[]つ□□
 |   Y__:_)
  \_〔__)__)
サンタモナー。ボランティアでサンタやったことあるモナー。泣かれたモナー。

>126
ウィンドウズが用意しているものは結局遅いです。汎用性が高い分だけ速度が犠牲に。
自前で処理を書いちゃったほうが速くて使い勝手も作りこめば良くなります。
まあ、大変ですが、そこまでやる必要性があれば、やったほうがよろしいかと。
0132デフォルトの名無しさんNGNG
TSellTreeView使うとエラーがでるんですけどなぜですか?
0133127NGNG
>>129
回答ありがとうございます。
TMemo以外で試してみます。
0134デフォルトの名無しさんNGNG
エラーって、どんなメッセージがでるの?
それを書かなきゃ相手にされないYO、YO、YO
チェキラ
0135デフォルトの名無しさんNGNG
未定義の識別子だろ(藁
0136デフォルトの名無しさんNGNG
>>134
ObjctTypes読み込みエラー:プロパティが無いって言われるYO!
0137デフォルトの名無しさんNGNG
>>136
Sage る必要を感じないが...

TShellTreeView の間違い。ってつっこみはおいといて。
コンポーネント貼るだけでエラー?実行時?
0138デフォルトの名無しさんNGNG
>136
パッケージをインストールしていないって事か?
0139DelギコNGNG
  ∧ ∧    /
  (,,゚Д゚)  < >>126 ごめんね。
  |⊃ ,⊃   \
〜|  |  ワルギハ ナインダヨ
  ∪∪
ヤッテミルカ
0140デフォルトの名無しさんNGNG
今だ!!140ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
0141140NGNG
         
Rubyはクソです。ゴミ箱逝きです。 いじょ
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
0142140NGNG

この発言をコピペしていただければ幸いです。
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
0143デフォルトの名無しさんNGNG
ブラウザ(あるいはダウンローダ)をデルファイで作る時に参考になる
ページ、御存知無いですかね。
0144デフォルトの名無しさんNGNG
>>143
実戦あるのみ。
TWebBrowser と、その Navigate メソッドを参照のこと。
0145143NGNG
>>144
ダスか…。
0146>145NGNG
こことか
http://members.jcom.home.ne.jp/monazilla/

ちょっと効率悪いかもしれないけど
0147143NGNG
あ、「ブラウザはIE使ったりする方向で」って書くの忘れた…。
とりあえず、ありがとうござんす>>146
ネスケって、まだ支持されてんですかね?
アレ作ってるとこって収入あるのかなぁ?
0148デフォルトの名無しさんNGNG
キーボードの入力をフックするのって、サブクラスかしないとだめ?
っていうか、サブクラス化って何?
0149 NGNG
別にフック使えばいいのでは?
0150デフォルトの名無しさんNGNG
Delphi で IE 使いたいならここ。

http://plaza21.mbn.or.jp/~takoyakusi/
http://plaza21.mbn.or.jp/~takoyakusi/delphi/Internet%20Prog.html
0151デフォルトの名無しさんNGNG
Delphi入門者にとっては入門書の存在しないDelphi6 Personalよりも
入門書から詳細なリファレンスまで出揃っている
Delphi5 Learningの方が価値が高いのではないかな。
なのでBorland JapanはDelphi5 Learningの無償ダウンロードを検討すべきだね。
0152デフォルトの名無しさんNGNG
>>151
入門レベルなら、5でも6でも大差ないのでは?
0153デフォルトの名無しさんNGNG
それにしても
Listbox1.Items[Listbox1.itemindex];
ってやるのが冗長だと思う。
Listbox1.selectedItem;
とかにならない物だろうか
もう一個のリストと比べるときに

index:=Listbox1.Items.IndexOf(Listbox2.Items[Listbox2.Itemindex]);

こんなコード見ていると頭が・・・
誰か簡略化できるんなら教えてください・・・
0154DelモナNGNG
    ∧_∧!   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
__( ;´Д`)__< お、おはようモナー
|  〃( つ つ   |  \_______
|\ ⌒⌒⌒⌒⌒⌒\
|  \           \
\  |⌒⌒⌒⌒⌒⌒|
  \ |______|
夜はちゃんと寝ようね。健康に悪いぞ。

>151
D5とD6もほとんど変わらんが。D6の方が新しいから良いと思うが。
ネタ?

>153
俺もそんなながーく書いている。
簡略化も何も、ぜんぜんマシじゃない?
もっとヒドイのもあるぞ。たとえばこんなのとか。
BitBlt(BackImage.Canvas.Handle,X * 32, Y * 32, X * 32 + 32, Y * 32 + 32, TempImage.Canvas.Handle, ChipPos[ChipData[x, y]].X * 32, ChipPos[ChipData[x, y]].Y * 32,SRCCOPY);
32をrとか置いてやれば良いとは思うが、それでも長い。
複雑怪奇になるのは仕方ない。見やすいようにスペース入れるなり工夫すれば良いんじゃない?
0155 NGNG
つうかBorlandって会社なのか?
何かんがえてんだ?
0156ななしヘタぐらまNGNG
>>153
たしかにSelItemとかいうプロパティ,あってもいいですね.
TreeViewやListViewにはあるのに….
私だったら数行に分けてでも見やすくするほうを選ぶと思います.
015788NGNG
>>89
教えてもらったとおりに、自動生成の対象にして
コーディングしたのですが、
「未定義の識別子:Form2」とコンパイルエラーが発生します。

他に何か原因があるのでしょうか
0158デフォルトの名無しさんNGNG
>>157
あれ?
コンパイルする時に
「未定義のForm2を参照しています。追加しますか?」
みたいなの出なかった?
0159デフォルトの名無しさんNGNG
>>153
with ListBox1 do
 Hoge := Items[ ItemIndex ];
0160デフォルトの名無しさんNGNG
いやそれより SelItem を自分で追加した方が早いかもね・・・

まだ初心者でそこまで手が回らないなら関数を作りましょう

function GetListSelItem( list : TCustomListBox ) : strings;
begin
if list.itemIndex <0 then abort;
Result := list.items[list.itemindex];
end;
0161デフォルトの名無しさんNGNG
汎用にするのはヘタレだからこんな方法しか思いつかないけど
function GetSelItem( list : TObject ) : string;
begin
 if list is TCustomListBox then begin
  if list.itemIndex <0 then abort;
  Result := list.items[list.itemindex];
 end;
end;

たしか、プロパティにItemIndexがあるかどうか検索してくれるようなのが無かったかな?
0162DelギコNGNG
uses に TypInfo を追加して

procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
  p : PPropInfo;
begin
 for i := 0 to ComponentCount - 1 do
 begin
  p := GetPropInfo(Components[i].ClassInfo,'Caption');
  if P <> nil then
    ShowMessage(Components[i].Name);
 end;
end;

  ∧ ∧    /あるけど、お勧めしないです
  (,,゚Д゚)  < 各クラス別に書いた方がよいかと・・・
  |⊃ ,⊃   \
@|  |
  ∪∪
0163デフォルトの名無しさんNGNG
日ソフの「Delphiへおいでよ!」が来月で終わるそうだ。
付録にもD6パーソナルは付いてなかったし、
どうも日ソフはDelphiを相手にしてないようだ。
これで各雑誌ともDelphiの連載は壊滅?
どこか新たな連載始めるだろうか?
0164デフォルトの名無しさんNGNG
雑誌の Delphi 記事って全然役立たない内容ばっかだよね。
もっと1つ1つ実用性がある内容にしてほしいよ。
実際に雑誌みて参考にしている人っているのかな?
0165デフォルトの名無しさんNGNG
>>164
ページ数が限られてるのが問題なんでしょう。
また、プロ・上級者とアマ・初心者では「役立つ」レベルが違うので
難しいところ。
まだまだ貧弱な俺は「ふ〜ん」という感じで読んでる。
たまに「ほぉー」とか「へぇー」というのもあるけど。
0166DelモナNGNG
  ∧_∧        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |\´ー`)/|  < もっとデルファイの良さを知ってもらうモナー
 ○  \/ζ ○   \__________
 |   |旦 |
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
  |              |

どうしても知名度が低いから資料も少なくて連載もあんまり無いんだろうね。
俺もライブラリとか公開してるけど、そんなにたくさんは採用されていないし。

VBの限界を悟った人が大量に流れ込んでくることを期待age
0167デフォルトの名無しさんNGNG
Delphi使ってる人って新しい言語とかコンパイラを作れるの?
0168DelモナNGNG
 ( ̄ ̄) ̄)
 | | |
 (    )    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧   < ネタかモナー?
 (υ´A´ )フゥ  \____________
   U U

>167
別にデルファイ使っていなくても、作れる人は作れます。
俺も勉強してコンパイラみたいの作りたいよ。
ネタにマジレスはイヤだなあ。
0169167NGNG
いやネタじゃなくて、
Delphiプログラマーって
開発環境に頼りきったGUIプログラミングしか出来ないの?
それじゃVB厨房と同じだね。
0170デフォルトの名無しさんNGNG
VC使っててもgcc使ってても開発環境に頼らざるを得ないと思うけど。
まさかGUIライブラリを一から構築しなきゃいけないとでも?
0171デフォルトの名無しさんNGNG
デルファイってプログラミングというより
オーサリングやビルディングって感じだよな
0172デフォルトの名無しさんNGNG
メモ帳でpasファイルを書いてコマンドラインからコンパイルすればご満足?
苦行みたいだね。
0173DelモナNGNG

 ∧ ∧        ==∧ ∧
● ´∀`)==●) 〃==゚_●)=◎
|   |=● =● ==つ   =∪
(_)_) =●  =⊂ ==∪


167は煽り。無視進行で
0174デフォルトの名無しさんNGNG
>>167は機械語が完璧に使えるのか。
すげえな。
0175デフォルトの名無しさんNGNG
前からデルファイ使ってる人は少なくともVB房のように
周りに流されないし、選択する目を持っている人です。
なんでVBにしたの?と聞けば
「使ってる人が多いから」とくるからね。
0176デフォルトの名無しさんNGNG
VBと対決してもフレーム合戦になるだけで不毛なので終了。
俺はVB、VC++、Delphiどれも使ってるし。
0177デフォルトの名無しさんNGNG
開発環境に頼り切らない方法も使えるし、非GUIもできるなんて
みんな知ってる。アホがあおっても無駄。
0178デフォルトの名無しさんNGNG
Personal使ってみてるんだけど。
これってUDP使うコンポーネントってないの?
0179DelモナNGNG
   ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ´∀`) <  明日から会社モナー。イヤだモナー
┌∪┐  )つ  \________
└─┘ ヽ
〃(__人__ノ

>178
ttp://www.kobira.co.jp/sakura/d_net_winsock.htm
フリーのコンポーネントを使えば良いんじゃない?
0180デフォルトの名無しさんNGNG
>>178
Indy 使おう
http://www.nevrona.com/Indy/
0181デフォルトの名無しさんNGNG
どうしてもコンパイルがとおらね〜。と思って見返したら、

for i = 0 to 10
なんて書いてた。鬱。エラーメッセージわかりにくいよう。
0182デフォルトの名無しさんNGNG
>179,180
おお、サンクス。早速見てみるわ。
0183143NGNG
>>150
遅レスですが、ありがとう!
0184デフォルトの名無しさんNGNG
あれ?Personal って Indy 入っていないんだっけ? >>178, 180
0185デフォルトの名無しさんNGNG
178,180じゃないけど。
入ってないと思う。
Personalインストールしたての勉強したてのホヤホヤ君だけど。
0186デフォルトの名無しさんNGNG
入ってないから言ってるんだろ178と180は。
0187デフォルトの名無しさんNGNG
TClientSockがあったような
0188デフォルトの名無しさんNGNG
>>178
Personal 使うということは Delphi ビギナーですね。
WinSock 使いましょう。
おれは Delphi 党だけど WinSock 使ってる。
0189Delphi ビギナーNGNG
>>188
Delphiで、WinSock使う場合、詳しい解説があるページ知りませんか?
0190デフォルトの名無しさんNGNG
http://www.asahi-net.or.jp/~nk2w-ishr/winsock0.htm
0191Delphi ビギナー NGNG
>>190
うわー。まさにバッチリなページっすね。ありがとう!
つーか、検索すれば良かったな…。スマソ。
0192デフォルトの名無しさんNGNG
>>189
別に C 使った解説書とかで充分です。Pascalに置き換ればいいから。
ちなみにお勧め書籍は、
基礎系)
・WinSock による Windows ネットワークプログラミング (ISBN4-7561-1609-4)
・インターネットのための WinSock プログラミング (ISBN4-7741-0371-3)
ともにC/C++サンプルあり。
応用系)
・インターネットプログラミング (ISBN4-88135-305-5)
これらは WinSock 1.1 まで対応のため 2.2 の機能が使いたければ他書も必要です。
(1.1 で充分だと思うけど。)
・WinSock 2.0 プログラミング (ISBN4-7973-0688-2)
以上はおれ自身が持っているもからだから他にも良書があるかと思います。

ちなみに Delphi で WinSock を使う場合は WinSock ユニットを uses させます。
ただしこれは WinSock 1.1 のインポートユニットだから、2.2 の機能を使いたければ
C のヘッダファイルを元に自分でインポートユニットを作成する必要があります。
探せばネット上のどこかにあるとは思うけど。
0193Delphi ビギナー NGNG
>>192
ありがとうごぜぇやす。詳しいっすね。
0194デフォルトの名無しさんNGNG
「はじめてのDelphi 技術評論社」を一通り終わったあと
次に読むべき書籍はどのようなものが良いんでしょうか。

塚越氏の残り2冊の続編はどこを探しても無いみたいですね。
ヤフ億でもかなりの高値がついている様子。。。。。

書籍に関しては他スレで書籍ランキング等にリンクがされていて
そちらも覗いたのですが、いまいち現状に合うものが分かりません。
アドバイスをお願いします。
0195デフォルトの名無しさんNGNG
TStringList 内にある任意の文字列のある行を探したいのですが
ヘルプを見るとIndexOfは完全一致だそうで。

「部分一致を検索するには自分で文字列リストを繰り返し処理する
必要があります」

の意味がよくわかりません。
具体的にどのようにしたらいいのでしょうか?
0196デフォルトの名無しさんNGNG
>>194
自分の作りたいものに挑戦するべし。
何を作ったらいいか分からない、というのであれば、
TIPS本で色々な動作を試してみるのがよいかと。
0197デフォルトの名無しさんNGNG
OutputDebugStringの出力先はどこですか?
0198デフォルトの名無しさんNGNG
>>197
表示−デバッグ−イベントログ
0199デフォルトの名無しさんNGNG
>>195
一行一行Pos関数使って調べろ、って事では。
0200デフォルトの名無しさんNGNG
>>195
for i := 0 to Mylist.count - 1 do begin
 if AnsiPos('moji',Mylist.strings[i]) > 0 then begin
  // 当たり
  break;
 end;
end;
こんな感じで自前でチェック白ってことかな
0201>197NGNG
Personalにないんですが...
0202デフォルトの名無しさんNGNG
>>200
まさか本当にそうだとは。
ありがとうございました。
0203デフォルトの名無しさんNGNG
>>201
?WindowsAPIだけど・・・
0204デフォルトの名無しさんNGNG
n := AnsiPos('moji',Mylist.text );

って得られらた n から
EM_LINEFROMCHAR みたいに行位置が判ったらチョット便利かな?
0205>203NGNG
>表示−デバッグ−イベントログ
ないのはこっちです
0206デフォルトの名無しさんNGNG
>>204
Copy(MyList.Text,1,n)してMyList.Countするか
#13を数える
0207デフォルトの名無しさんNGNG
GExpertsのDebugWindowは?
っていうかこっちもPersonalじゃ使えんのか・・・
0208初心者マンNGNG
なんで「:」を付けさせるの?「=」の前に。
0209デフォルトの名無しさんNGNG
>>208
いくらなんでもそれはないだろ
ヘルプ嫁ヘルプ嫁
0210デフォルトの名無しさんNGNG
>>209
そんなのヘルプに出てるの?
「代入文」の説明とかはあっても、
「:」をつける理由は書いてないような気がする。
なんで?と聞かれると区別するため、としか・・・
0211デフォルトの名無しさんNGNG
そういうの言い始めるときりないので、そのまま受け入れること。

C で = と == のように使い分けているのと同じだし、じゃ比較を == に
したのはなぜ? といわれても、そう決めたから。としかこたえられまい?
0212初心者マンNGNG
そーそー。「決めたから」が答えだとは思うけど、
何かあんのかなー?と思ってね。
0213デフォルトの名無しさんNGNG
:=
は数学界でも使われていたと思いますが。
0214デフォルトの名無しさんNGNG
:=は金物(私語)表現だろふ。
アルゴル系言語は印刷物上では→とか↑とかASCIIでない
記号を使うのだ。
0215ひろゆき&MAILNGNG
どうもです。
0216デフォルトの名無しさんNGNG
何がだ(藁
0217デフォルトの名無しさんNGNG
インストールしたコンポーネントって削除出来ないの?
0218デフォルトの名無しさんNGNG
[コンポーネント|パッケージのインストール]でパッケージを削除するか、
パッケージ編集で目的のコンポーネントを削除して再構築。
0219デフォルトの名無しさんNGNG
>>218
ふーむ…。ありがちょ。
0220デフォルトの名無しさんNGNG
タイマーセットしてカウントダウンさせたいんだけど
その時間を表示させるにはどうしたらええの?
0221デフォルトの名無しさんNGNG
メーリングリストのカコログ見てたら
マッサージや家事をやってくれるプログラムを作ろうとしている人
がいたんですができるんですか?
0222デフォルトの名無しさんNGNG
>220
10, 9, 8... でいいの?

>221
インターフェースが用意されていれば出来る。
0223デフォルトの名無しさんNGNG
>>222
ういっす。
羅面大麻を作ろうかと。
ご教授お願いしまっす。
0224デフォルトの名無しさんNGNG
>223
TTimerでIntervalを1000にセットする。
OnTimer イベントで、Dec(残り時間(秒))し、
ラベルにでも残り時間を表示すれば良いのでは?
0225超初心者XNGNG
Delphiの開発環境はEDLINより使いやすいでしょうか?
みんな、同じようなもんだって言ってますけど?
0226切込隊長&MAILNGNG
どうもです。
0227DelモナNGNG
  ∧_∧
 (´∀`)
 (   )
  U ̄U
煽りが多すぎモナー。アンチDelphi厨房がいるようだモナー

ttp://www2.nsknet.or.jp/~azuma/e/e0032.htm
ここにEDLINは最悪なエディタと書いてある。
EDLINなんてはじめて知ったぞ。
0228超初心者X NGNG
Delモナちゃん、もうすこし話広げてくれよ。
でも、厨房グラマが1日で作れるような
メモ帳なみエディタって・・・Delphiキモ-イ
0229デフォルトの名無しさんNGNG
そんなIDEのエディタがなんて最高でなくてもさ、
初心者から上級者まで満遍なく トータルで
大きなストレスなく使える環境だって事が肝心だと思うよ

とりあえず 編集+コンパイル&goがストレスなく出来れば十分さ
0230デフォルトの名無しさんNGNG
>>224
ありがとやんした。
他のソースからぱくっちゃいました。

http://www.tok2.com/home/runadon/raumen.LZH

所々っていうか全体的におかしいんだけど
なんとか作れた・・・ラーメンタイマー如きで徹夜しちゃった。てへっ。
0231デフォルトの名無しさんNGNG
copy con でやってた身としては EDLIN は衝撃的な使いやすさだったが何か?
0232デフォルトの名無しさんNGNG
>>231 ネタだろ CP/MならED MS/DOSならEDLINは最初からあったじゃん!
0233デフォルトの名無しさんNGNG
EDITマンセー

とりあえずあおりは無視の方向で
0234デフォルトの名無しさんNGNG
>>218
確かにコンポーネントの削除は初心者にはわかりづらい場所にあるな。
それと削除したいコンポを選択して削除すると普通は思ってしまう
ところが、何故かわざわざ削除画面が別に出てそこで新たに選択しなくては
ならないのはUIとして適切でないと思う。

あそこら辺は改良したほうが良いと思われ
0235デフォルトの名無しさんNGNG
>>確かにコンポーネントの削除は初心者にはわかりづらい場所にあるな。

初心者じゃないが、使い難い。
0236デフォルトの名無しさんNGNG
でるぴってよんじゃった、てへ
0237デフォルトの名無しさんNGNG
>>236
はげしくがいしゅつ
0238デフォルトの名無しさんNGNG
>>228-229
あのエディタを短期間で作るなんて無理
フリーカーソルだから慣れるまで嫌われるだけであって・・・
0239DelギコNGNG
>>234
   ∧∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   (,,゚Д゚)  < コンポを右クリックして削除選んでミー
 @/つ且~~  \___________
  (__ _)
  ダレモガ マチガウ UI カイゼンシテ クレ >>某
0240デフォルトの名無しさんNGNG
IDEでTABキー入力した後左カーソルで戻ると
TABコードして戻らずに、TAB幅分のスペースとして戻る時があるんですが、
これってどういう条件のときになるの?

ctrl + I でインデントするときもTABコードじゃなくて半角スペースが
挿入されて嫌なんですが。

どうもTABの扱いがおかしいきがします。
0241デフォルトの名無しさんNGNG
>>240
オプティマルフィルONにしても駄目?
0242デフォルトの名無しさんNGNG
ラーメンタイマーな人です。

ラーメンが出来たって表示してビープ音ならして
そのまま閉じたいのですが closeさせると即効で消えてしまって
メッセージが見えません。ウェイト?のやり方を教えてくださいませ。
0243240NGNG
>>241
オプティマルフィルONにしても ctrl+I では半角スペースが
挿入されてしまいます。

テキストエディタ慣れしているとTABコードの間にカーソルが
入るのにすごく違和感を感じますが、これは慣れの問題なので
いいですが、インデントが半角スペースになってしまうのは
ちょっと困りものです。(TДT)
0244デフォルトの名無しさんNGNG
Timer1.Interval := 1000;
ってやってイベントハンドラ内でclose
0245デフォルトの名無しさんNGNG
>>243
Ctrl+Iの挙動は俺もマイッタ。
結局、Tab文字は使わず全部半角スペースにすることにした。
でも半角スペースだといろいろ面倒なんだよなー。
0246デフォルトの名無しさんNGNG
>>244
ん?
Sleepの方がいいのでわ?
0247デフォルトの名無しさんNGNG
>246
フォームが固まるから駄目
0248デフォルトの名無しさんNGNG
>>245
ちゃんとヘルプ読もうぜ
オプティマルフィルは並んだ空白をタブに置換してくれるもの。
タブをタブとして使うのは「タブ文字の使用」
インデントをホンとのタブにしたけりゃスマートタブもきらにゃいけないかな?
0249デフォルトの名無しさんNGNG
>>244
あいわかりもうした。
ってそっちではもうやったのでした。
なにか一命令で逝けるのかと思った。

>>246
ほうほう。
Sleepですな。

>>247
ほうほう。
固まるからダメと・・・。
0250DelモナNGNG
    ∧_∧
    ( `∀´)
    | つ、つ、
    | _ |ヽヽ、./ ̄\
    _ゝ_ ̄ヽヽ/ ;´ー|
 ヽ/二> (__)/   /
  _|======/_  _/
 (_ノー―ゝ_)_)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
10/3まで緊張状態だモナー。辛いモナー。

>249
ムリにTTimer使わなくても出来る方法はある。
まあ、色々試すと勉強になって良いと思うよ。

i:=GetTickCount;
while i+10*1000<=GetTickCount do begin

Application.ProcessMessages;

//ココにカウントダウンしたかったら適度に入れればヨシ
If ((GetTickCount-i) div 1000)=0 then begin
j:=GetTickCount-i;
form1.Caption:=IntToStr(j);
end;

//ココにサウンド鳴らす関数でも入れれば。


//また1秒分でも待つようにして

//閉じればヨシ
Close;

end;

適当だが、こういう方法もあるんでないかい?
タイマーコンポーネントばかりに頼ると他の用途で使えないとき
困るかもしれない。
タイマーコンポーネントを使わないでアイドル時に自分で時間計測
するときには上のやつを知っておくと良いかも。
俺はゲーム関係を主に作ってるからビジネス系はちと弱い。
0251デフォルトの名無しさんNGNG


procedure Wait(const MSec:Cardinal; const AProcessMessages:Boolean=False );
var
s:Cardinal;
begin
s:=GetTickCount;
if AProcessMessages then
while GetTickCount<s+MSec do
Application.ProcessMessages
else
while GetTickCount<s+MSec do;
end;
0252CだけどNGNG
WinMain関数内でSleep使いましたが何か?
0253デフォルトの名無しさんNGNG
>250-251
イベント駆動なアプリケーションではイベントハンドラからすぐに抜けるのが基本。
安易にループまわしてApplication.ProcessMessages呼びまくっちゃ駄目だよ。
while True do Application.ProcessMessages;はCPUを100%使い切ってしまうはず。
# もちろんゲームなら許されるけど。
0254241NGNG
>>248
オプティマルフィルは空白のタブ変換でしたか。
あと「タブ間のカーソル移動」をオフにしたら移動がラクになりました。

しかし相変らず ctrl+I は半角スペースだ。
これはなんともなんないのかねぇ。
VBみたいに選択範囲でタブやるとインデントというほうが
Windows的だと思うのだが。
0255デフォルトの名無しさんNGNG
>>253
横道それるが、ゲームスレみてて思ったけど
CPU100%使い切るのはダメみたいに言うやつもいるんだよな。
まったくどうにかしてほしいよ。
0256デフォルトの名無しさんNGNG
パソナルにはTo-Do リストは無いの?
ヘルプを見ると表示メニューにあると書いてあるんだが。
0257デフォルトの名無しさんNGNG
今だ!257ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ

…じゃなくて。
Delギコ氏が(・∀・)イイ!! sample作ってくれてルーヨ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1001489683

もしかしてヒマなのかな…。いや、感謝感謝。
0258253NGNG
>>255
>CPU100%使い切るのはダメみたいに言うやつもいるんだよな。
将棋やフルスクリーンの3Dゲームはリソース100%使い切ってくれてかまわないけど
光栄三国志がCPU100%使い切るのは確かに納得いかないぞ(藁
おかげでUD Agent進まないし...
0259デフォルトの名無しさんNGNG
コーエーじゃなくて光栄の頃のなら100%ならんじゃないの。
5インチフロッピから読んでさ。
ゴリゴリ読み込んで遊ぶヨロシ。
0260デフォルトの名無しさんNGNG
>253
Application.HandleMessageはどぉ?
0261253NGNG
>260
それだと精度が低くて時間どおりにループを抜けられないような。
つーかなぜに空ループにこだわる?
TTimerそんなにイヤか?
0262Del??NGNG
O   ダバダバ
  ノ[]ヽ
   ノ)

>>250
Delモナちゃんありがとー。
いまからやってみるね。

>>251
ふむふむ(わからない)

>>252
なにが?

>>253
タブーなのね。
0263デフォルトの名無しさんNGNG
数秒で強制的に閉じる程度ならsleepでもそんなに問題ではないな。
動かねえってあがきはじめた段階で閉じてしまうから。
その場合そのダイアログからはOKボタンやclose boxは消しておくと良い。

もっと長いスパンだったり、閉じる以外の目的で時間見るんであれば
まずはTTimerとかを使うアプローチを考えたほうがいいが。
0264デフォルトの名無しさんNGNG
そーゆーデリカシーのないUIを作る人はVB使ってください。
0265263NGNG
>>264
対話目的(Dialog)ではなく、通知目的(Notification)だろ?
どんな実際的な問題があるってんだ?
SleepはCPUを占有するわけでもないしな。
0266デフォルトの名無しさんNGNG
それが分からないようでしたらあなたにはHSPがお似合いです。
0267デフォルトの名無しさんNGNG
>>266
HSPをバカにするな!お前は「ぴゅう太」がお似合いだ!
0268デフォルトの名無しさんNGNG
>267
あんたにはファミリーベーシックがお似合い。
0269デフォルトの名無しさんNGNG
>>268
お前にゃ電子プロックがお似合い。
0270デフォルトの名無しさんNGNG
ぜんぜん初心者スレっぽくないぞよ。
0271263NGNG
話を戻して(笑)、補足。

実際にsleepするのならその前にUpdateとProcessMessagesを
一回呼んで描画の更新の完了などはさせないといけない。
sleepする時間もせいぜい3秒以内が限度。

コードはこんな風になる。
NotifyDialog.Show; // モーダルにはしない
NotifyDialog.Update; // 描画を完了させる指示
Application.ProcessMessages; // 描画の完了を待つ
Sleep(2000); // 2秒
NotifyDialog.Close; // 閉じる

また他に同時に別のウィンドウ操作できるようにしたいのなら
そっちも固まってしまうのでこの手は使えない。
その上で、単機能タイマーの通知に限定した話だからこういう手も
十分使えるということ。まあ、初心者スレっぽくないか(笑)


ところでそもそもの前提として、勝手に閉じるというUI自体が問題を
はらんでいることは注意したほうが良い。
確実に知らせたいのなら、確認を示す意思表示としてボタンを
押させること。
そうでないと画面のそばにいなかった時にすでに終わったということ
自体を気づかないことがあるからな。
0272ラーメンタイマーNGNG
>>271
> ところでそもそもの前提として、勝手に閉じるというUI自体が問題を〜
あーならいまのままがいいですね。
確かにその方が親切ですし。

んで今度は時間が来たらウィンドを最前面に出してやりたいのです。
って教えて君ですな・・・調べてきまっす。
0273263NGNG
>>272
最前面に出すという行為も、何かユーザーが操作している
最中に出てくるとユーザーを邪魔することになってしまうので
問題があるんだよね。
そのために、Win98以降では従来の方法で最前面に出そうとしても
タスクバーで名前が点滅するだけに終わるように変更されている。

最前面に出す機能は、主に手前に置きっぱなしにするソフトに、
ユーザーの意思によって設定可能にするだけにしたほうが良い。

ということを言っておいた上で(笑)

従来の方法で最前面に出すだけならばFormStyleプロパティを
fsStayOnTopにしておくだけでOK。
0274デフォルトの名無しさんNGNG
データベースの質問です。
IBTableのfilterありますよね。
あれ使って日付型の項目からレコードの絞り込みしたいんですけど
どうやったらいいんですか?
0275DelモナギコNGNG
    ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜´ ( ´∀`)< かなり良い感じーモナーギコー
  uu u u   \_______

俺が変にGetTickCountとwhileでのループ技書いたから
CPU処理%について論議が・・・・。みんなの言う通りだよね。
最近は、CPU処理の方にも気を使ってるつもり。でも使いまくり。
某エロゲーとかはつねに60%とかだから、どうやってるのかなあ
とか考え込んでしまってもいる。

>274
データーベースは分からないので答えられない・・・。
他の人ヨロシク
0276274NGNG
自己レス こんな風に書いたら動きました。
I_DATE>'8 20 2001' AND I_DATE<'9 21 2001'
0277デフォルトの名無しさんNGNG
>>275
MAMEみたいなエミュレータをノートPCで走らせるとファンが回りまくりで
どうしようもない。CPUの使用率って制御できないものか私も知りたい。
0278デフォルトの名無しさんNGNG
別スレッド作ってそっちでSleepし、Sleepが終わったらメインスレッドに
終了コード投げて自分も終わるというのはどうだろうか。

…あほらしいか。
0279デフォルトの名無しさんNGNG
TMemoの内容をINIファイルに書き出したいと思いますが
---------
gikogiko
monamona
---------
という内容を以下のように記述すると

SL := TStringList.Create;
SL.Text := Memo1.Text;
iniFile.WriteString( 'CATEGORY', 'ITEM', TMemo1.Text );

↓のように書き出されてしまいます。
---------
[CATEGORY]
ITEM=gikogiko
monamona

monamona

---------

逆にこのINIファイルを読み込ませてTextプロパティに入れると
最初の行「gikogiko」しかMemo1に表示されてくれません。
どのようにしたらよいのでしょうか?

また、Memo1の内容に「Name=Value」がある場合そのまま
書き出されてしまいますが、これは問題ないのでしょうか?
INIファイルに同じ項目がある場合、読みだし時に誤動作しそうな・・・。

そもそもTMemo内容をINIファイルに書きだそうとするのが間違いですか?
0280デフォルトの名無しさんNGNG
>>279
iniFile.WriteString( 'CATEGORY', 'ITEM', TMemo1.Text );
じゃなくて
iniFile.WriteString( 'CATEGORY', 'ITEM', SL.Text );
ですね。
書き間違えすいません。
0281>>279NGNG
>そもそもTMemo内容をINIファイルに書きだそうとするのが間違いですか?
間違いでしょう。一行に対する最大長制限もあるし,95/98/NT で微妙に動作が違うし。
ファイルの読み書きでしかないから速度も遅いしね。

.ini にはパスを入れるだけにするとか。
0282279NGNG
>>281
TMemoの内容だけ別ファイルに書き出すことにします。
ありがとうございました。
0283ラーメンタイマーNGNG
>>273
ほうほう色々とむつかしいんですな。
ならタスクバーをチカチカさせるだけでいいのかな?
まー実際にラーメンタイマーなんて使わないと思うし(笑)
0284デフォルトの名無しさんNGNG
ラーメンタイマー、
そもそも、なんで自動で閉じたいの?
0285デフォルトの名無しさんNGNG
INIファイルには、改行文字を含める事は出来ません。
そこで、制限の無い TMemIniFile を使う。
改行文字を含めず、引用符とカンマ区切りで1行1行を区別する。

with TMemIniFile.Create( '****.ini' ) do
begin
 WriteString( ***, ****, Memo1.Lines.CommaText );
 Flush;
 Free;
end;

with TMemIniFile.Create( '*****.ini' ) do
begin
 Memo1.Lines.CommaText := ReadString( ***, ***, '' );
 Free;
end;
0286ラーメンタイマーNGNG
>>283
タスクバーじゃなくてタイトルバーだ(;´Д`)

>>284
連続で使う事はあまりないかなと思って。
でも263さんの言う通り 不親切なのでやめますた。
0287279NGNG
>>285
TMemIniFileですか。なるほどっ!
まさに思い通りのコトができました。
ありがとうございますっ!
0288デフォルトの名無しさんNGNG
オープンソースのソフトで、オブジェクト指向プログラミングのいいサンプルないですか?
いくつかフリーソフトのソース見てみたんですが、結構手続き指向?を使ったものがほとんどなので。
0289デフォルトの名無しさんNGNG
>>288
Delphiスレでこういう質問をする意図が読めぬが、
これがDelphiのソースとしてそういうものを読みたいという要望なら、
DelphiのComponentのソース公開されてる奴を探して(いっぱい有る)
そのソースを読むとよかろうと思う。
Component作りは、OOPは避けて通れないので。

特に、1つの配布セットに、互いに関連の強い複数のComponentが
入ってる奴は狙い目だ。単体より「相互関係」を学ぶことに
色々と意義があるので。継承とか委譲とか色々。

拙作(内緒)は20個もゴミみてーなComponentが入っている。
ゆえに、さぞかしタメになるだろうな。わははははは。。。。。
0290DelモナNGNG
       ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(|_(|  ( ´∀`)< すげえ良い物見つけたモナー
(. .\ ⊂   )_\__________
(● ノ   ̄ノ ノ   川
   '''|| (|__)ー|||川
   (_(__)  (_(__)

既出っぽいよーな気がするが、見たこと無いのでリンク
ttp://glscene.org/
にある
ttp://glscene.sourceforge.net/misc/CodeWarp.zip
ってソフトは良いね。
コードエクスプローラーの代わりになるので非常に便利。
なんで、このソフトを発見できなかったのか悔やまれる。

リンクスレの「環境のことなら」のところにリンク張っておいてくれい。

>288
自分がオブジェクト指向でプログラムしてるのかそもそもよく分かっていない・・・。
まあ、結果良ければオッケーっと言うことで。

>289
ウチのコンポーネントは全然オブジェクト指向じゃないっぽいので
参考にならないかも・・・。関数をガンガンつけまくっているだけだし。
0291雑魚NGNG
Del6のSampleタブにあるShellListViewを使いたいんですが、
使いかたはどこで調べればいいんですか?
ヘルプに何も書いてないですよね?
0292DelギコNGNG
  ∧ ∧    />>290 リンク先のアドイン
  (,,゚Д゚)  < モードレスで
  U  ,つ゛  \Formの位置調整が出来るようにしたいです。
〜|  |
  ∪∪ モーダル & ScreenCenterは ツライッス
>>288
ホットゾヌなどは?大きすぎますか?

>>291
Sampleの中のものは伝統的悪しき週間により
HELPはつきません。ソースがあるので
それを見ながらガンバルしかないです。

 ガンバルンバ!
0293デフォルトの名無しさんNGNG
ホトゾヌ依存コンポーネント多すぎてコンパイルできぬ・・・かなしい
0294デフォルトの名無しさんNGNG
具体的にはTUIWebBrowserのコンパイルでつまる・・・
0295デフォルトの名無しさんNGNG
TUIWebBrowserインストールしようとしたらrequires vclieのところでつまるし…。
パーソナルではインストールできないとか?
0296DelギコNGNG
 ∧ ∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (,,゚Д゚)  <  ホットゾヌは依存Compoが激少で
  | つ[|lllll]). \_ 折レは驚いていたけど…
〜|   |
  ∪∪ タコタコ サイト シラベテミル

タコタコの説明によるとD5まではTWebBrowserを継承していなかったから
StdやLernでも利用できたみたい。
D5からComの継承が可能になったみたいで
D6用のはTWebBrowserから継承しているみたいだけど・・・

PersonalはTWebBrowserないから不味そう__
詳細わからないので、作者さまに要連絡がよろしいと思われ
0297デフォルトの名無しさんNGNG
>>3ドリルちんちんだ。
0298デフォルトの名無しさんNGNG
ボタン操作などでTPageControl上にある特定のTTabSheetを
開けなくしたいのですが、Enableプロパティ、Visibleプロパティを
変更しても変化しません。

TCheckBoxとかTMemoとか他の要素はEnableをオフにすることで
使用不可状態にできたのですが、TTabSheetでは出来ないのでしょうか?
0299デフォルトの名無しさんNGNG
派生すれば良いと思います>>299
0300DelギコNGNG
今だ!300ゲットォォォォ!!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ

 >>298TabVisibleをFalseにしてみたらど・かしら?
0301デフォルトの名無しさんNGNG
MDIアプリケーションの子フォームを全て閉じるにはどうすればいいですか?
0302デフォルトの名無しさんNGNG
HELP に、そのまんま「例」としてのっているのですが。




■VCL リファレンス
TCustomForm.MDIChildren


MDIChildCount, MDIChildren, Close 例
--------------------------------------
以下のコードは,Form1 の MDI 子フォームをすべて閉じます。

var

I: Integer;
begin
with Form1 do
for I := MDIChildCount-1 downto 0 do
MDIChildren[I].Close;

end;
0303デフォルトの名無しさんNGNG
>>296
TWebBrowser って、IE のタイプライブラリからインポートしたものなんだけど。
Personal でもタイプライブラリのインポートはできると思ったが。
0304デフォルトの名無しさんNGNG
では質問。
何故Delphiが最強なの?
0305デフォルトの名無しさんNGNG
>>302
HELPにのってたんですか。探しが足りなかったです。
ありがとうございました。
0306DelギコNGNG
   ∧∧   / ̄ >>303 サンク--スソデシタカ
@_(,,゚Д゚) <  とりあえずD6Proではタイプライブラリトリコミして
⊂,,__つつ.  \_ ソースをちょこっと修正してライプラリパスを通したりしてたら
             TUIWebBrowserのインストは出来たよ。

タイプライブラリ取り込みの説明はTUIWebBrowserインストール説明の
D5のものを参考にしよう。>>295

ちがうかな?
0307DelギコNGNG
     _     >>304
    | ∧ ∧   コンパイルが早いから
    | ( ゚Д゚)
    | ⊂ |  とか逝ってみる。
    | ⊂__ノ@
    | |
0308デフォルトの名無しさんNGNG
>>300
あ、TabVisibleでしたか。
ありがとうです。
0309デフォルトの名無しさんNGNG
単にDLLファイルだけが与えられている場合、どのようにしてこのDLLで定義されている関数名や型を知り利用するのでしょうか?
0310デフォルトの名無しさんNGNG
>>309
名前は知ることができますが、引数や戻り値の型や呼び出し規約は知ることができません。
適当に当てずっぽうで推測したり、逆アセンブルして解析したり、作者に訊いてみたり、あきらめたりするしかありません。
0311295NGNG
皆様ありがとう。
タイプライブラリのインポートは出来たみたいなんですがやはりTUIWebBrowserが
インストールできません…。
どこが悪いのかも把握できてないんでもう少し調査してみます。

…他にもIEコンポを使えるようになるコンポーネントってあるんだろうか…。
0312デフォルトの名無しさんNGNG
パソナルってほとんどのコンポがインストできないよね
0313DelモナNGNG

       (>312)
           \从//
         \ヽ   // ボン!
          <     >∧_∧
          <   l⌒l´∀` )
             /ヽ ヽ   つ
             ((( \_   ノ
                  \ ヽ
                   し''
>312
アンチデルファイ厨房、マジで消えてくれ。
とっととプログラム板から消えてくれ。

>311
IndyとかでIEコンポをいじれなかった?
Ieコンポだったらmonazillaを参照するといいかもネ。
ttp://members.jcom.home.ne.jp/monazilla/
0314デフォルトの名無しさんNGNG
つい最近はじめて見ました。結構ハマりますね。
質問なのですが、ユーザーがウインドウのサイズ変更、
最大化をできなくするにはどのようにしたら良いでしょうか?
0315デフォルトの名無しさんNGNG
>>314
プロパティ変えるだけ
0316デフォルトの名無しさんNGNG
ウィンドウがアクティブになってない時にキー入力を取得するにはどうすればいいんでしょむか?
0317デフォルトの名無しさんNGNG
>>316
アクティブにすれば良いと思われ
0318デフォルトの名無しさんNGNG
>>317
そ、そうじゃなくて、、
ウィンドウが消滅しててバックグラウンドで動いていてあるキーを押すと
ひょこっとウィンドウが現れるように作りたんです
0319デフォルトの名無しさんNGNG
フック。
0320デフォルトの名無しさんNGNG
http://www.text2music.com/mine/delphi/2.html.
このページを見ながら乱数発生器を作っているのですが、
「オブジェクトスペクターの上のタブ "Event" を選んで、その中の"OnCreate"をダブルクリックしてください。」
という説明がでてきました。
ところが、私のDelphi Personal には、OnCreate というものが見当たりません。

なぜでしょう?

ちなみに、上記の解説サイトを作っているのは、ひまわりの作者さんみたいです。
0321デフォルトの名無しさんNGNG
>>320
なんか2ちゃんからの直りんを禁止してるみたいなので、URL をコピペしてください。
ttp://www.text2music.com/mine/delphi/2.html.
0322デフォルトの名無しさんNGNG
>>321
違いました。
URL の最後にどっとが入っていたからでした。
正式URL
http://www.text2music.com/mine/delphi/2.html
0323デフォルトの名無しさんNGNG
>>320
絶対あるはず。
左にあるオブジェクトインスペクタのコンボボックスからForm1を選ぶ。
そしてイベントタブのなかにOnCreateはある。
0324デフォルトの名無しさんNGNG
OnCreateならフォームをダブルクリックしたらすむんじゃないかな
0325デフォルトの名無しさんNGNG
>>323
ありがとうございます。
言われた通りにやったらできました。
コンボボックスに別のものが入っていたので表示されてなかったようです。
0326・∀・NGNG
・∀・
0327317NGNG
>>318
> ウィンドウが消滅しててバックグラウンドで動いていてあるキーを押すと
> ひょこっとウィンドウが現れるように作りたんです

この用途なら RegisterHotKey が良い
0328遅レスNGNG
>295 :デフォルトの名無しさん :01/09/28 09:24
>TUIWebBrowserインストールしようとしたらrequires vclieのところでつまるし…。
>パーソナルではインストールできないとか?
パーソナル0円プログラミング派だけど、TWebBrowserインストールして
ヘッポコブラウザ作って遊んでますが…。
つーか、スーパー初心者なんで、「TUIWebBrowser」と「TWebBrowser」は
別物?勘違いしてるかな?オレ。
0329316NGNG
見なさムありあとうございました。
なんとか方向性は見えてきましたハイ。
0330キティガイNGNG
マッサージしたり料理を作ってくれるようなトータルライフサポートアプリケーションを作成したいのです。
しかし標準のコンポーネントではマッサージや料理ができません。
Delphiってだめですね〜。
VC++だと簡単にできるんですよね♪
0331デフォルトの名無しさんNGNG
>>330

おもろないぞ! やっぱ養殖もんはダメだねえ
やっぱ天然 もんのキレが全く無い
0332チョコボーイNGNG
関数 手続きが,まだ理解できません

税抜き
消費税
税込み と 3つの答えを DBEdit に 格納したいのです

別フォーム で作りたいです。

おしえてください、また なにか参考に出来るもの おしえてください
0333デフォルトの名無しさんNGNG
俺はクラスとオブジェクト指向が理解できてない。
でもアプリつくれるデルファイマンセー。
解ってないからコンポーネントなんかつくれんがな
0334デフォルトの名無しさんNGNG
>>333
Delphi使ってればそのうちなんとなくわかると思われ。
TButton とか TCheckBox とかがクラス。
Button1 とか Button2 とか CheckBox1 とかがオブジェクト。
0335デフォルトの名無しさんNGNG
>>332

税抜き、消費税、税込み、3つともわからんなら、どうやって求めるんだ。そもそも。
0336デフォルトの名無しさんNGNG
>>332質問の意味が違ってたらごめん

var
Form1: TForm1;
//手続きの宣言
procedure aaa(zeinuki:Currency ; Zei_ritu:Single);
implementation

uses Unit2; //betuformのユニット名

{$R *.DFM}
procedure aaa(Zeinuki:Currency ; Zei_ritu:Single);
var
Zeikomi,Zei:Currency;
begin
//消費税の計算
Zei:=round(Zeinuki*(Zei_ritu/100));
//税込価格の計算
Zeikomi:=Zeinuki+zei;
//Betuformというフォームに張ってあるDBEditに表示する
//税抜きをDBEdit1に表示
Betuform.DBEdit1.text:=FloatToStr(Zeinuki);
//消費税をDBEdit2に表示
Betuform.DBEdit2.text:=FloatToStr(Zei);
//税込みをDBEdit2に表示
Betuform.DBEdit3.text:=FloatToStr(Zeikomi);
end;

//ボタンを1個張り付けて手続きを呼んでみる
procedure TForm1.Button1Click(Sender: TObject);
begin
//別フォームを表示
betuform.visible:=true;
//税抜き100000,消費税率は5パーセント
aaa(100000,5);
end;
0337DelギコNGNG
      ∧∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 @' ― (,,゚Д゚) < TUIWebはTWebの変なところを改善している
   し― し-J   \___________
 TWebBrowser
 ショートカットキーがうまく動かなかったりしないかな?

 >>314
 GetMinMaxInfoという単語を調べるてヨシ
0338デフォルトの名無しさんNGNG
337のGetMinMaxInfoや70あたりに出てきたファイルのD&Dなどは
Delphiのどうこう言うよりWindowsAPIとかShellの話になってきますよね
その辺参考になる書籍、HP等ありましたら教えていただけると幸いです。
0339デフォルトの名無しさんNGNG
コンソールアプリケーションで
“次の処理まで○秒待つ”という処理をさせたいんですが
どう記述すればいいのかわかりません。

waitさせたいと言ったほうがわかり易いでしょうか。
ご教授お願いします。
0340DelモナNGNG
    ∧_∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ◯( ´∀` )◯ < 今日は色々あって楽しかったモナー
   \    /   │
    |⌒I、│    \__________
   (_) ノ
      ∪
     ∬

>339
251で書いてあることを使えばどう?
0341デフォルトの名無しさんNGNG
コンソールアプリならSleep(1000)で1秒止める、とかでいいんでねすか
0342チョコボーイNGNG
>>332
改めて自分の質問を読んだら わかりずらかったです 済みませんでした。

336さんのお答えのような物を求めていました。
本当にありがとうございました。

335さん。 それぞれの求め方は分かるのですが、関数として別フォームで扱いたいと言うことでした。
たしかに伝わりずらかったと思います。 すみませんでした。
0343デフォルトの名無しさんNGNG
ActiveXコントロールってさ、勝手にフリーソフトとかでつかっちゃっても
いいものなの?
0344デフォルトの名無しさんNGNG
そのコントロールのライセンスによるんじゃないの?
配布権とか。
0345339NGNG
>>340-341
>>251を見てみましたが、何が書いてあるのかさっぱりわかりませんでした。
なので、とりあえずSleepを使う事にします。
ありがとうございました。
0346デフォルトの名無しさんNGNG
すげえDelphi。
ネイティブだよネイティブなんだよ。
おいら感動して眠いよ。
0347デフォルトの名無しさんNGNG
フォームにfsStayOnTopってありますよね?
あれ、ひとつだけフォーム表示してる時は機能してるんですけど、
二つ目のフォームを表示させると後ろにまわっちゃうんですが、
常に前に表示するにはどうしたらいいんでしょうか?
0348デフォルトの名無しさんNGNG
間違ってsageてしまった…
0349デフォルトの名無しさんNGNG
>>347
ShowModal で表示したときのこと?
それなら呼び出し元フォームが前になっちゃまずいよ。
0350347NGNG
>>349
言葉足らずですみません。そうですShowModalで呼び出した時です。
フォームが一個の時は常に手前に表示されるんですが二つ目のフォームを出したとき、
両方のフォームが他のウィンドウの後ろにまわっちゃうんです。
呼び出し元と呼び出したフォームの前後関係を変えないで、他のウィンドウより前に出したいんです。
0351デフォルトの名無しさんNGNG
>>350
SetWindowPos API 使えばいいんじゃないかな。
例えば Form2 を前面に表示させたければ、
 SetWindowPos(Form2.Handle, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE or SWP_NOSIZE);
のように呼び出すとかして。
ただ常に前面で表示されている保証はないけど。
0352デフォルトの名無しさんNGNG
TStringGridって、直接入力できますか?
0353デフォルトの名無しさんNGNG
>>352
もっと具体的に書いてくれ(;´д`)
0354デフォルトの名無しさんNGNG
>>352
ObjectInspector で Options の goEditing を True にすればできる。
& goAlwaysShowEditor=Trueで常に入力キャレットが出ている状態にすることもできる。
ちゃんとヘルプ読んでるのかい?
このくらいのことはヘルプ見ればわかることだと思うよ。
0355デフォルトの名無しさんNGNG
>>354 まあ、初心者スレだから

>>352 でも、354の言うとおりだよ
必要なコンポーネントについてはヘルプに目を通して
何ができるのか把握することから始めましょう
0356352NGNG
>>353-355
ありがとうございました。
これからは、きちんとヘルプ見ます。
0357347NGNG
>>351
できました。両方共最前面表示できました。
ありがとうございます。
今度はForm1がVisible=Falseになってる状態で同じ事をやろうとしたんですが、出来ません(;´Д`)
0358デフォルトの名無しさんNGNG
>>357
>今度はForm1がVisible=Falseになってる状態で同じ事をやろうとしたんですが、出来ません(;´Д`)

以下のようにするとOKだったよ。

・Form1.FormStyle を fsStayOnTop にしておく。
・Form2.FormStyle を fsStayOnTop にしておく。
・Form1.OnShow ハンドラを以下のように実装する

  procedure TForm1.FormHide(Sender: TObject);
  begin
   Application.NormalizeTopMosts;
  end;

・Form2.OnShow ハンドラを以下のように実装する

  procedure TForm2.FormShow(Sender: TObject);
  begin
   SetWindowPos(Handle, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE or SWP_NOSIZE);
  end;

これで Form2.ShowModal する前に Form1.Hide しても前面に出るようになったけどね。

テストコード)
procedure TForm1.Button1Click(Sender: TObject);
begin
 Visible := False;
 Form2.ShowModal;
 Visible := True;
end;
0359358NGNG
訂正
誤)・Form1.OnShow ハンドラを以下のように実装する
正)・Form1.OnHide ハンドラを以下のように実装する
0360347NGNG
>>358
おおっ!!出来ました。
ありがとうございますヽ(´ー`)ノ

Application.NormalizeTopMostsは気が付かなかったです…。
0361デフォルトの名無しさんNGNG
RAS接続しているかどうかを判定したいんですが wininet.dllを
使えばいいんでしょうか?

http://homepage1.nifty.com/~suzuki/delphi/wininet.html
にそれらしいやり方はあるのですが、
例えば↑にあるIsGlobalOfflineを使ってみようとして
LANにぶら下がっておらず、ダイアルアップ接続もしていない
環境で試してみましたがFALSE(接続している)が返ってきてしまいます。
0362DelギコNGNG
http://members.jcom.home.ne.jp/monazilla/document/wininetdel.html
 これでダメなら折れしらない。
\___  _________
      ∨
♪   ∧ ∧ ♪
    (,,゚Д゚).  ♪
     |つ[|lllll]).
   〜|  |    Indyにはそういうのないの?
    U U
0363デフォルトの名無しさんNGNG
三本柱が一本になってしまった…。
0364デフォルトの名無しさんNGNG
>>363
誤爆?

ボーランド株式会社が Delphi/CBuilder を捨てて JBuilder に
傾いていることをいっているの?
0365361NGNG
>>362
やはり接続できない状態にも関わらず「接続できるよ」になってしまいます。
これってなにをもって「接続できるよ」って判定してるんでしょね?

やはりRASが動いているかどうかでチェックしたほうが確実っぽいです。
しかしその方法が見つかりません・・・
0366デフォルトの名無しさんNGNG
↑のほうでPersonalでTUIWebBrowserを使おうとしてた者ですが…。
タイプライブラリの取り込みがよくわからないままいろいろやってたんですが、
何とかTWebBrowserは取り込むことが出来ました。
ただ、Professional版とはクラス名とかが違う?ので、Pro向けに書かれたコンポとかはかなりソースを修正しないと
インストールできないみたいです。これからチャレンジしてみます。

3行しかコードを書いてないのにブラウザもどきができてちょっと感動。
0367366NGNG
TUIWebBrowserのインストールにも成功しました。
コンパイル指令を書き換えて、要求するパッケージ名を書き換えたらできました。

これでパソナるでも色々遊べる〜。
0368D6マンNGNG
パーソナル(無償DL版)と無償じゃないヤツの違いってのは、
シェアウェアを作っちゃダメ!ってことだけでやんしたか?
詳しい違いを書いてるページは御存知無いでしょーか?
0369デフォルトの名無しさんNGNG
>>368
残念ですが,パーソナルは有償版と無償版は全く同一です。
・印刷されたマニュアルがつくかどうか
・IE5.5 が収録されているかどうか
この二つ以外はバイナリも同じ。ライセンスも同じです。

パーソナルは有償版でも,それで利益を得てはいけません。
0370D6マンNGNG
>>369
ありがとザマス。
あら、一緒ザマスか…。
なんか、まだまだ入手したてで全然分からんので遊んでるだけなんだけど、
「『Controls.pas』があらへん」って怒られますのんや。
で、無償版はファイルが足らへんのでは?と思いましたドスエ。
0371デフォルトの名無しさんNGNG
>370
Controls.pasは付いていませんよ。
Controls.dcuがあるフォルダへのパスを設定していないのでしょう。

普通にインストールすれば、問題無いと思うのですが。
0372D6マン NGNG
>>371
はれま!たびたびありがとザマス。
そーですか…。うーむ。やってみまふ。
どーもです。
0373デフォルトの名無しさんNGNG
>>366
TWebBrowser
TUIWebBroeser
のインストール方法教えてください。
0374デフォルトの名無しさんNGNG
TWebBrowser を用意してから
TUIWebBroeser をインストールします。
0375373NGNG
TWebBrowserは

コンポーネント>ActiveX コントロールの取り込み

からでいいんでしょうか?
0376DelモナNGNG
          ∧ ∧
   ∧ ∧    (´Д`* )
  (*´Д`)  (     )
  ./  |/ ̄ ̄ ̄ ̄∧ ∧
〜(_ ∧ ∧     (´Д`*)
  /_(*´Д`)_/ (UU )〜
  || ̄/  | ̄ ̄||/┌───────―――
  ||, (___ノ   || <  そうだモナー >375
  /         └───────―――
0377デフォルトの名無しさんNGNG
僕は今の時代のアプリケーションはアイコンが全てだと考えます。
どんなに性能の良いアプリケーションでもアイコンが悪いと糞以下の存在になると思います。
また、どんなに性能の悪いアプリケーションでもアイコンがよければすべて良しということになると思います。
そこで、カコ(・∀・)イイ!アイコンはどうやって作ればいいのでしょうか?
0378デフォルトの名無しさんNGNG
>377
カコイイアイコンが出来るまで、アイコンを描く。
0379366NGNG
TWebBrowserインストール方法。
タイプライブラリの取り込み、またはActiveXコントロールの取り込みを使ってMicrosoft HTML Object Library(Version 4.0)
とMicrosoft Internet Controls( Version 1.1)を取り込む。
すると、コンポーネントパレットのActiveXページにScriptlet, WebBrowser_V1, WebBrowserというコンポーネントができるはず。

次に、TUIWebBrowserのインストール。
ダウンロードしたファイルのDelphi6のディレクトリをどこかライブラリパスの通っているところに置く。(置いたところに通す)
次にソースを修正する。
UIWebBrowserPG.dpkをエディタで開き、requires vcl, vclie; となっているがvclieを消す。
その上に{$IMPLICITBUILD OFF}というコンパイラ指令があるので、{$IMPLICITBUILD ON}と書き換える。
UIWebBrowserPG.dpkをDel6で開き、インストールボタンを押す。するとあちこちでコンパイルエラーがでるので、該当ソースの
uses節の、ShellDocVWをShellDocVW_TLBと書き換える。すべて書き換え終わったらコンパイルが通ってインストール終了。


以上だったはずです。よくわかってない初心者の書くことなので鵜呑みにはしないでね。
詳しい人は捕捉してくれるとありがたいです。
0380366NGNG
あ、もちろん↑の記述はDelphi6 Personal版にインストールするときのことです。
Pro以上にインストールするときはソースの修正、タイプライブラリの取り込みは要らないはずです。
0381デフォルトの名無しさんNGNG
>>377
・その1
ドット絵を学ぶ。
del付属のイメージエディタは激烈に使いにくいので、
ちゃんとしたドットエディタを使う。

・その2
画像加工を学ぶ
ドット絵がかけなくても、大きめに絵を書いて
フォトレタッチソフトで縮小してその後また加工して調整。

オレは、両方併用派
0382デフォルトの名無しさんNGNG
>>379
ありがたい。
pro版ユーザーだけどインストールできなくて困ってた
0383DelギコNGNG
>uses節の、ShellDocVWをShellDocVW_TLBと書き換える。すべて書き換え終わったらコンパイルが通ってインストール終了。

   ∧ ∧     /
   ( ゚Д゚)   < Pro版ならIFDEF VER130を IFDEF VER140に変えると
.=| |==U=U==.| |= \よさそうです。
 | | |  |  | |
 | | ノU U.  | |
 | |      .| |
0384デフォルトの名無しさんNGNG
Del5ラーニングからDel6パーソナルへの移行はどんなメリット、(&デメリット)がありますか?
0385D6マンNGNG
>>379
そんな面倒なことしなくても、アチキ、D6無償ザンスが、
インストール出来たんですが…?
はて?
それしないとインストール出来ないんじゃ、アチキにゃ入れられないっスよ。
0386373NGNG
>Delモナさん、366さん

ありがとうございます。
TUIWebBrowserは「vclieが見つかりません!!!」
とか言われてインストールできなかったので、助かります。

vclieを消せばよかったのね。vclieって何のためのものなのかな?
0387D6マン NGNG
アチキの面目丸つぶれ(藁
おかしいなー??
普通に入ったけど。何が普通かよく分からんが。
ま、いっか。
vclieってナニ?そんなこと言われなかったなぁ。
0388デフォルトの名無しさんNGNG
379の書いたとおりにしても「ShellDocVW_TLB.douが見つかりません」って怒られるんだけど…
何でだろう?
0389デフォルトの名無しさんNGNG
C:\Program Files\Borland\Delphi6\ImportsにShellDocVW_TLB.pasとかdcuとかはある?
なかったらタイプライブラリの取り込みが出来てない。
0390D6マンNGNG
「SHDocVw_TLB.pas」ってのはありますな。
dcuもありまふ。
不思議だ。
0391デフォルトの名無しさんNGNG
>>390
インストールしたんじゃないのか?
0392D6マン NGNG
>>391
書き方が悪かったザマス。スマソでございます。
「vclieが無いわよアハン」とも言われないし、
何か複雑な書き換えもしなかったのに、インストール出来たのが不思議だと…。
つーか、不思議不思議言うてても意味無いので、アチキはこのネタはこれで終わりにしまッソ。
失礼おば。
0393デフォルトの名無しさんNGNG
Delphi6パーソナルをインストールしようとしたら
インストーラーがページ違反(モジュールKERNEL32.DLL)してしまった。
インストールは続行出来そうなんだが、俺の環境が腐っているのか?
0394デフォルトの名無しさんNGNG
>>393
常駐全部外しても、それが出るんなら腐ってるのかもな。
0395デフォルトの名無しさんNGNG
>>393
どこら辺で落ちたんだ?
多くの製品が使っている Windows Installer なんだから環境の方に
問題があるんだと思う。
0396デフォルトの名無しさんNGNG
>>392
典型的な役に立たない通りすがり。
いや,2ch だし悪いとはいわないよ。
0397デフォルトの名無しさんNGNG
>>396
役立たず発見!
0398D6マンNGNG
>>396
すいませんねぇ。役立たない通りすがりで。
アンタのくだらねーレスも同じってことで、ひとつ。
0399393NGNG
>394-395
おぉ、優しい方サンクス。
インストーラークリック一発でページ違反が2回。
その後、ファイルの保存場所を聞いてくる。
とりあえず常駐とっぱらってインストールしてみますです。m(__)m
0400 NGNG
>399
ファイルが壊れているのかもしれませんわ。
0401デフォルトの名無しさんNGNG
たぶん関係ないけど Win9x なら IME を MS-IMExxx に。
0402デフォルトの名無しさんNGNG
>>401
俺、ATOK。無事インストール。

>>393
もしDLしたヤツで、ファイル壊れてるんなら
今月号のテックウィンに付録で付いてるよ。
俺それでインストールして何事も無かったよ。
0403デフォルトの名無しさんNGNG
TListView の OnSelectItem イベントなんだけど、
これってクリックして選択した後に一回だけ起きる?
何か2回起きてるんだけど。
しかも、右クリックでも起きるし。
0404デフォルトの名無しさんNGNG
行間が空いていないメモ帳のようなものではなく、Outlook Expressの
メール本文のように行間が空いているテキストエディタを作りたいのですが、
どうやればテキストボックスの行間を設定できるのでしょうか
0405デフォルトの名無しさんNGNG
>>403
一回目のは選択解除されたとき(Selected=False)
2回目のは選択されたとき(Selected=True)のイベント
0406デフォルトの名無しさんNGNG
>>494
シェアウエアでよければ
ttp://member.nifty.ne.jp/~katsuhiko/

のTEditorを使えば マージンの設定が出来ますよ
0407デフォルトの名無しさんNGNG
StringGridのセル内文字列の左右中央寄せってどうすれば設定できますか?
0408デフォルトの名無しさんNGNG
現在レコード型を利用してファイルアクセスを行っています。
これをクラスにして見通しを良くしようと思うのですが
(ファイルアクセスを行うのはこのクラスのみにしたい)
どのように記述すればよいのでしょうか?
クラスのprivate部にレコード型の定義を記述するとエラーが出るようなんですが...
0409393NGNG
>>400-402
常駐とっぱらって、Borlamdとベクターか数回ダウンするもクリック一発ページ違反へようこそ。

環境腐ってるみたいだ・・・逝ってきます。
アドバイスくれた方サンクス。
0410テックウィンから入れた人NGNG
>>409
そっかー。残念。雑誌からインストール試してもダメなら
いよいよ環境がマズいかもね。
メモリ周りとかは?
0411404NGNG
>>406
レス有難うございます。確かに行間の設定は出来ましたが
プロポーショナルフォントが正常に表示されないのはちょっと・・・
もう少し自力で探してみます
0412デフォルトの名無しさんNGNG
>>407
TStringGridを継承してDrawCellをoverrideするところかも

procedure TStringGrid.DrawCell(ACol, ARow: Longint; ARect: TRect;
AState: TGridDrawState);
begin
if DefaultDrawing then
Canvas.TextRect(ARect, ARect.Left+2, ARect.Top+2, Cells[ACol, ARow]);
inherited DrawCell(ACol, ARow, ARect, AState);
end;

このCanvas.TextRectで描画位置を調整するとよろしいかと・・・
文字列の巾・高さはCanvas.TextExtentで求めるべし
(あとは自分でバンバン)
0413412NGNG
追記(ここは初心者スレだった)
やりかたが分からなければ「初心者にはちょっと早かった」ということで
納得しましょう
412のはコンポーネントを作るとういことだからね
0414 NGNG
1.DelphiからOLE使ってExcelにデータはく。
2.Excel閉じる。
3.1をもう一度する。→Delphiアボーン!

ってなるんだけどどうすりゃいいの?
0415デフォルトの名無しさんNGNG
>414
Excelのバグでは?
0416403NGNG
>>405
おお、謎は全て解けた!ありがとう!
0417DelギコNGNG
>>411
>プロポーショナルフォントが正常に表示されないのはちょっと・・・

 ∧ ∧   /TEditorはギコペにも使われているから
 (,,゚Д゚) < そんなこと無いと思うけど。
  |つ つ  \
@|  |
  ∪∪ シラナイケド
0418デフォルトの名無しさんNGNG
右寄せStringGridの例だよ

procedure TRightStringGrid.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
var
 oSize : TSize;
begin
 oSize:=Canvas.TextExtent(Cells[ACol, ARow]);
 Canvas.TextRect(ARect, ARect.Right-oSize.cx-2, ARect.Top+2, Cells[ACol, ARow]);
end;
0419407NGNG
>412 ,>418
どうもありがとうございます。まだよく分からないレベルなんですけど、
わかるまでレス保存しておきます。
0420フリーカーソル無効化NGNG

ttp://homepage1.nifty.com/fuu/software/nonfreecursor.htm
0421Cマニア(デル初心者NGNG
Delphi パーソナルDLしてみた。
おー!?マウスをクリックするとHello world!の
文字列がたくさん(驚
0422デフォルトの名無しさんNGNG
わーい。
パソナルでもフリーカソル無効にできるようになたよ。
0423ななしヘタぐらまNGNG
>>404
海外モノですがTRichEdit98というコンポがあります.
Windowsのリッチエディット2.0をコンポ化したもので,
設定無しで行間があきます.
ただ,日本語処理では一部バグがあるようですし,
Delphi5以降ではソースの修正が必要かもしれません.
サイトの場所は失念したのですいませんが検索エンジンで探してみてください.
0424ななしヘタぐらまNGNG
>>407
WindowsのAPI,DrawTextを使う方法があります.
以下はTStringGridでCells[]の内容を右寄せ表示する例.

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
// Rect を周囲1ピクセル縮小(Windows API)
InflateRect(Rect, -1, -1);
// デフォルトの描画を一部塗りつぶして消す
StringGrid1.Canvas.FillRect(Rect);
// Cells の描画(Windows API)
DrawText(StringGrid1.Canvas.Handle,
PChar(StringGrid1.Cells[ACol, ARow]), -1, Rect,
DT_NOPREFIX or DT_RIGHT);
end;

DT_RIGHTをDT_CENTERに変えるとセンタリングになります.

縦のセンタリングや下寄せ,ワードラップの機能もあります.
詳しくはAPIのヘルプを見てください.
編集画面でDrawTextにカーソルを移動してF1キー,
0425ななしヘタぐらまNGNG
>>424
補足.これはTStringGridのOnDrawCellイベントです.
0426デフォルトの名無しさんNGNG
質問させてください。
Delphi6Personalを使ってプログラミングを勉強しようと思うのですが、
その手の本が、まだ5までしか出ていませんよね。
過去スレを眺めてきたのですが、差はないから、という声もあがっていて、
Delphi5入門本で代わりになりそうかな、とも思ったのですが、
これから出るであろう、Delphi6入門本を待ったほうがいいのかな、とも思いました。
Delphi使いの方々に、どちらがいいのか聞いてみたいです。
0427DelギコNGNG
入門時には何度も繰り返し反復して勉強しないと覚えられないので
D5の本を買って、勉強して
D6の本が出たらまた買って勉強して
なんども同じような事を復習して学んだ方がいいと思います。
D6本を待つ必要はありません。

また、本当にD5とD6は差がないと思っていいです。

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
   ∧ ∧  ヒビ ベンキョウ
   (,, ゚Д゚)
   ノつl⌒|⌒l
 〜(._[ ̄ ̄ ̄.]
       ̄ ̄ ̄
0428デフォルトの名無しさんNGNG
質問なんすが・・・
DataType = array[0..7] of byte;
TData = class
Data : DataType;

てなときに
  for i:=0 to 7 do data2[i]:=TMydata.data[i];

みたいなことができないのはなぜ?
コンパイルは通るけど実行するとエラーになる????
わけわかめ
0429デフォルトの名無しさんNGNG
>>427
レスありがとうございます。
わかりました、まずはDelphi5入門本を買ってやってみることにします。
0430デフォルトの名無しさんNGNG
>>428
var TMyData:TData ;
なの?

TMyData:=TData.Create;
with TMyData do
try
 for i:=0 to High(data) do data2[i]:=data[i];

finally Free;end;
0431デフォルトの名無しさんNGNG
感謝age
0432デフォルトの名無しさんNGNG
Delphiは入門本よりTips本の方がオモシロイNE!
0433デフォルトの名無しさんNGNG
  ∧ ∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,,゚Д゚)  < 画像貼り込むと大きくなるんです(当然
  U  ,つ   \____________
@|  |
  ∪∪

画像を無圧縮Bitmapでリソースに入れておくと
当然実行ファイルが大きくなっちゃいますが、
内部に圧縮画像として持たせる方法ってありますか?
0434デフォルトの名無しさんNGNG
type TStatus = ( A, B, C, D );
var Now : TStatus;

みたいに定義してある状態で

if Now in ( A, B ) then

みたいにやることって出来ますか?

if (Now = A) or (Now = B) then

ってやるしかないのでしょうか?
0435デフォルトの名無しさんNGNG
>>434
inまで発見できてるのならもう一歩ですな。
if Now in [A,B] then
0436デフォルトの名無しさんNGNG
>>433
Jpeg 使えば劇的に小さくなるが。
0437DelモナNGNG
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< 久しぶりだモナー
  (    )  \_____
  | | |
  (__)_)

>433
DelphianWorldに[圧縮保存機能付イメージコンポ]ってのがあるから
それを使うとPNG並に小さくなるよ。と言うかZLib使ってるからねえ・・・。
0438デフォルトの名無しさんNGNG
>>435
()ではなく[]でしたか!
ありがとうございます。
0439デフォルトの名無しさんNGNG
EXEをUPXで圧縮というのは後ろ向きかな?
リソースのbmpとかは圧縮効かないのかな?
0440434NGNG
>>435
度々すいません。

if Now in [A,B] then
の「A,B」の部分を引数としてもってくることは出来るのでしょうか?

start( [A,B] );

procedure start( var ST:??? );
begin
 if Now in ST then

のような感じに・・・。
このへんってマニュアル読んでも見つからないので。
0441DelギコNGNG
    ∧∧   / ̄
  _(,,゚Д゚) < 集合型です
乙,,__つつ.  \_

type TStatus = (A, B, C, D)
   TStatusS = set of TStatus;

procedure start( var ST:TStatusS);
begin
 if Now in ST then
0442434NGNG
>>441
うう、なんか順序型と集合型の使い方がわかんなくなりました。

type Status = ( A, B, C, D );
var Now : Status;
〜
という「現在の状態を記録するもの」を用意しておいて

Now := A;
現状を記録して

・現状が「A or B」なら実行
・現状が「A or B」でないなら実行
とやりたい。そしてこの条件は引数で指定したいわけです。

if 〜 else if 〜 よりか
case of 〜
のがスッキリした記述になるから順序(集合?)にしたんですが、
なんか stringで if 使ったほうがいい気がしてきました。(TДT;)

自分で書いててなにがなんだか。
0443デフォルトの名無しさんNGNG
>>442
集合型なら
 type Status = set of (A, B, C, D);
でしょう。

>・現状が「A or B」なら実行
 if Now = [A,B] then
  ...

>・現状が「A or B」でないなら実行
 if not (Now = [A,B]) then
  ...


ちなみに型名の頭には T を付ける慣習があるので、
付けるようにした方が見やすいよいと思います。
あと集合型の名前の末尾は s が付くようにした方がよいでしょう。
Delphiで定義している集合型と列挙型の名前を参考にしてみれば
よいと思います。
0444デフォルトの名無しさんNGNG
ギコスレはレベル高いのでこちらで質問します。
よろしく
0445 NGNG
すいませんが質問です。

チュートリアルに

「コンポーネントパレットの[Additional]ページにある ActionManager コンポーネントを
 ダブルクリックして,フォームに配置します。このコンポーネントは非ビジュアルなので,
 フォームのどこに配置してもかまいません。」

って書いてあるんだけど、[Additional]には

BitBtn、SpeedButton、 〜、ColorBox とあるんだけど、ActionManagerはありません。
これってどういうことなんでしょうか?
0446デフォルトの名無しさんNGNG
[Additional] に ActionManager あるよ。
pro版使ってるけど。
0447デフォルトの名無しさんNGNG
整数(Word)を実数(Extended)にキャストするには?
0448446NGNG
>>445
CLXアプリのときはないね。
0449デフォルトの名無しさんNGNG
キャストなんて出来ないよ・・・
0450デフォルトの名無しさんNGNG
>>447 キャストの結果どちらをお望みですか?

1)整数の値をExtendedにしたいなら単に代入すれば大丈夫です
2)内部のビット情報をそのまま移動する abosolute で別の変数を同じアドレスにする
  か record で case を使う
 ただし、ビット幅が違うので無意味です
0451デフォルトの名無しさんNGNG
>>450
質問をいろいろ間違えてました。すみません。
Sec : Word;
x,y,r : Integer;
なときに、
x := r * Cos(2*Pi/(Sec/60) )
をやりたいのです・・・
0452デフォルトの名無しさんNGNG
x := floor(r * Cos(2*Pi/(Sec/60) ))でとおると思う人ー
0453デフォルトの名無しさんNGNG
ふーん
x := r * Cos(2*Pi/(Sec/60) )
こういうのVBだととおるんだねー
0454デフォルトの名無しさんNGNG
>>453
すんません。Cでも通ります。ほんとすんません。

>>452
Truncというのを使うことにしました。
Floorは未定義とか言われて弾かれました。ごめんなさい。
0455DelギコNGNG
      ∧∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 @' ― (,,゚Д゚) < みんな面倒がって説明しないけど、
   し― し-J   \___________
>>445
超外出で、チュートリアルの記述ミスです。

なんとか自分で工夫してみてくれ。
0456 NGNG
>>446
どのボタンの間にあるんですか?
0457 NGNG
>>455
ありがとう
0458デフォルトの名無しさんNGNG
>>456
ActionManagerはPro版とEnt版のみです
(Delphi6バージョンアップ案内の機能一覧より)
0459 NGNG
>>458
なるほど、ありがとうございます。
0460デフォルトの名無しさんNGNG
TImageでいろいろ書いたのをアイコンにしたいです。
やり方がわかったらここに書きます。
0461434NGNG
>>443

>>・現状が「A or B」なら実行
> if Now = [A,B] then
これは「A and B なら実行」になってしまうのではないでしょうか?

あと、 case でスッキリ書くことを目的とするならばやはり
集合じゃなくて順序になるんでしょうか?

しかし大きなヒントを得ることができました!
ありがとうございます。

ちなみに VBを使っていたクセで「intInteger、strString、prcProcedure」
みたいに型を頭に付けるようにしてます。
0462433NGNG
>>437
圧縮保存コンポ探してみるです。Thx!
0463460NGNG
だめだ・・・さっぱりわからないです。
TIconはファイルまたはストリームからしか設定できず、
TImageはそのどちらにも出力できないですよね?
0464デフォルトの名無しさんNGNG
hInstanceはvarのところに定義しなくても使えるようですがなんで?
0465デフォルトの名無しさんNGNG
>>463
TImage.Picture.SaveToFile(const FileName: string);
とか
TImage.Picture.Icon.SaveToStream(Stream: TStream);
とかあるけど・・・
0466デフォルトの名無しさんNGNG
>>464
定義済み変数のひとつです(所在はSysInit)
0467460NGNG
>>465
ありがとうございます。で、さっそく

iconStream : TMemoryStream;

Image1.Picture.Icon.SaveToStream(iconStream);
Application.Icon.LoadFromStream(iconStream);

として実行してみたところ、

ソースパスが見つかりません
Graphics.pas

といわれてしまいました。
ライブラリか何かを指定しなければならないのでしょうか?
0468デフォルトの名無しさんNGNG
>>466
定数じゃないんですよね。
その管理とかをしなくても、必要なときに使って問題ないんでしょうか?
0469デフォルトの名無しさんNGNG
>>468 全然問題ないです
VCLの中でも実際に使われています
(CreateWindowExとかで)
0470デフォルトの名無しさんNGNG
>>467
uses の中に Graphics が入っていないとか?
(Formを使っていれば自動的に書かれているはずですけど)
0471467NGNG
>>470
usesの中にはGraphicsは入ってました。

ここで無いと言われたGraphics.pasというファイルは、検索しても
確かにありませんでした。
ライブラリかなんかのソースだと思うんですけど、
Delphi6のPersonal版にはついてないんですかね。

で、ためしにコンパイルして実行してみたところ、
アイコンイメージが不正です
といわれてしまいました。
どこか致命的なミスがあるんでしょうね・・・どこでしょう。
0472ななしヘタぐらまNGNG
>>433
リソースって,リソースファイル?それとも設計時にイメージコンポにいれちゃうこと?

前者ならどんな種類のWindowsビットマップでも読み込めます.
イメージコンポはD5以後だとDIBやJPEGのイメージをそのままの形で格納するようになったようです.

ちなみにD5はRLEの読み込みができないバグがある.要アップデート.
0473470NGNG
違った・・・usesにGraphicsが入っていなければそのメッセージはでないものね
誰かHELP!
0474470NGNG
>>471
>アイコンイメージが不正ですといわれてしまいました。
Imageコンポーネントへ絵を読み込んだ時
オブジェクトインスペクタのPictureが(TIcon)となってないと駄目みたいですね
0475デフォルトの名無しさんNGNG
>>469
ありがとうございました。
これで気兼ねなく使えます(w
0476467NGNG
>>474
どもです。

Imageコンポーネントに絵を読み込んでるのではなく
自分でまるとか三角とかを描いてるんですけど
そういう場合はアイコンに出来ない、ということでしょうか?
0477DelモナNGNG
        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`) < 最近、気が抜けて駄目だモナー
/)www)   \_______________
'`∨∨´
  ^ ^

>467
ttp://www.users.gr.jp/ml/archive/Delphi/46147.asp
これは、どう?
0478470NGNG
>>477 参考になりました
イメージリストを使うとは思いつきませんでした
CreateIcon APIでしこしこやるしかないかと思ってましたけど

いずれにせよ初心者スレのレベルを越えてますね
0479467NGNG
>>477
ありがとうございます。
で、そこを参考にアイコンをまずビットマップに描き、そのあと
ico := TIcon.Create;
il := TImageList.CreateSize(bm.Width, bm.Height);
il.GetIcon( 0,ico );
Application.Icon.Assign(ico); ★
としてみたところ、変な四角がアイコンに設定されてしまいました。

ためしに★部分を
ico.SaveToStream(iconStream);
Application.Icon.LoadFromStream(iconStream);
としてみたところ今度はアイコンイメージが不正、となってしまいました。

う〜ん。あともう少しっぽいなぁ
0480467NGNG
>>478
私はまだDel2日目の初心者です。if文も書いたこと無いです。
CやJavaなら少しできるけど・・・
0481467NGNG
>>479
アイコンが本当に出来ていないのかどうか SaveToFileメソッドで
外部に保存して確認してみたところ、きちんと生成できていました。

というわけで、Application.Icon にアイコンを設定するところが
まずかったようです。

Personal版だから・・・なんてことは多分関係ないですね。
0482467NGNG
ico.SaveToFile('e:\tmp\test.ico');
Application.Icon.LoadFromFile('e:\tmp\test.ico');

のように、外部に一度保存したアイコンを読み込むようにしたら
設定できました。
できれば外部ファイルを使わないで済むいい方法を考えます。
0483467NGNG
これで最後の書き込みです。
il := TImageList.CreateSize(32, 32);
il.GetIcon( 0,Application.Icon );
と、直接放り込んだらうまく行きました。ありがとうございました。
0484デフォルトの名無しさんNGNG
>>461
オレは状態の保持によく順序型をつかってますがなにか?

type
 TStatus = (sYes, sNo, sMakura);
var
 Status: TStatus;

Staus := sYes;

if Status in [sYes, sMakura] then begin
 :
end;

case Status of
 sYes: ;
 sNo: ;
 sMakura: ;
end;

他にもっとエレガントな方法ないかね。

>ちなみに VBを使っていたクセで「intInteger、strString、prcProcedure」
>みたいに型を頭に付けるようにしてます。
ハンガリアン記法はMSがよく使ってるけど、あまり言い評判はきかないね。
オレはPointer型のときにpつけるぐらいかな。
あとはVCLのソース風にしてる。
0485デフォルトの名無しさんNGNG
VCLって何?
0486デフォルトの名無しさんNGNG
>>485
Visual Component Library
ネタ?
0487デフォルトの名無しさんNGNG
TThread使っているのですが、あるスレッドではprocedure宣言がちゃんと
出来るのに、もうひとつのスレッドでは「未定義の識別子」と言われてしまいます。

type
 TMyThread = class(TThread)
 public
  procedure SetConfig(var S:String);  // ここだと「未定義」
end;
procedure SetConfig(var S:String);  // ここだと通る
〜〜〜〜〜
procedure TMyThread.SetConfig(var S:String);
begin
 〜
end;
〜〜〜〜〜
procedure Foo;
begin
 SetConfig('A');
end;

のように書いてます。
しかしTMyThreadの定義の外に書いて、「TMyThread.」を消すと
コンパイル出来るようになります。
これはどのような違いなのでしょうか。
0488デフォルトの名無しさんNGNG
>>487
説明がいまいちよくわからんのだが、
とりあえずスレッドの前に覚えることがたくさんありそうだな。

オブジェクト指向言語は初めてか?
クラスとかスコープとかメソッドとかわかるか?
なんかの参考書でもう少しObject Pascal勉強すれ。


位置から説明すると大変なので、とりあえずヒントを出しておくと。。。
スレッドのオブジェクトは生成してるか?

MyThread1 := TMyThread.Create(False);

とかしていてそのオブジェクトがスコープの範囲内なら

MyThread1.SetConfig('A');

でいける。がんばれ。
0489488NGNG
>位置から説明すると大変なので、とりあえずヒントを出しておくと。。。

一からだな。
0490487NGNG
>>488
説明ヘタですいません。(汗
とにかく実践してみてわからないとこがあったら調べるということをやってるので
スコープ、クラス、継承などは浅い理解しかありません。

TMyThread.Create(False);はしてあります。スコープという言葉をヒントに

procedure MyThread.ProcTest;
begin 〜 end;

procedure MyThread.Execute;
begin
 ProcTest; // コンパイル通る
end;

なるほど。同じ MyThreadの範囲でなら大丈夫なのですね。
今作っているのが3つのUnitに別れてまして、

Unit1(MyThread1 を作成)
↓ スレッド起動
Unit2(MyThread2 を作成)
↓ スレッド起動
Unit3

そして Unit3 の中に MyThread2 の内容が書かれています。

Unit2 から MyThread2.ProcTest を呼び出すことは問題なし。
これは Unit2 内で MyThread2 を作成しているから、という理解でいいでしょうか。

問題となっているのは、 MyThread2.ProcTest を Unit1 から
呼び出そうとしている時だったのですが、MyThread2 は Unit2 から
作り出されるものだから Unit1 から見えない場所にある。
これがスコープ範囲外ということなのでしょうか。

そして
type TMyThread2 = class(TThread)
の定義外に書くということは TMyThread2 のものではなく、
プロジェクト全体のグローバルな関数になる。

正しい理解ではないかもしれませんが、なんとなくスコープというものが
わかったような気がします。
0491長くてスマンNGNG
スコープとは・・・

unit ...;

interface

uses ...;

type
 TFoo = class
  // デフォはpublic.
  procedure ...;
 private
  // クラス(実装部)の内側か,同一ユニットでのみアクセス可.
  procedure ...;
 protected
  // ほぼprivateと同様.但しユニット外からでもサブクラスであればアクセス可.
  procedure ...;
 public
  // どこからでもアクセス可.
  procedure ...;
 published
  // ほぼpublicと同様.実行時型情報を持たせるための物.
  property ...;
 end;

var
 // 他ユニットからアクセス可.
 ...;
const
 // 同上.
 ...;

implementation

var
 // ユニット内でのみアクセス可.
 ...;
const
 // 同上.
 ...;

procedure ...;
var
 // 手続き,関数内でのみアクセス可.
 ...;
const
 // 同上.
 ...;
begin

end;

end.

だいたいはこんなもんだと思うけど,
間違ってたら誰かつっこんでくれ.
0492デフォルトの名無しさんNGNG
TImageでアニメーションをさせようとしているのですが、
再描画の際にちらついてしまします。
これってどのようにしたら回避できるのでしょうか?

for i := 0 to 10 do begin
 ImageList1.Draw( Image1.Canvas, 0, 0, i );
 Image1.Refresh;
end;

googleって探してるのですが
いまいちこれという回答が見つかりません。
0493デフォルトの名無しさんNGNG
Image1.DoubleBuffered := True;
0494492NGNG
ありがとうございます。
Image1.DoubleBuffered := True;
だと未定義になりますが、DoubleBufferedで調べてみたら
http://www.users.gr.jp/ml/archive/delphi/51536.asp
を見つけました。

Form1.DoubleBuffered := True;
とすることでちらつかなくなりました。
0495ななしヘタぐらまNGNG
>>485
Visual Component Library(びじゅある こんぽーねんと らいぶらりー)の略.

ライブラリーっていうのはプログラミングの世界では
あると便利なプログラムの部品みたいなものを集めたもののこと.
あらかじめ用意されているものは特に基本ライブラリーといわれたりします.
VBとかだとエディットもボタンも言語の一部だけど,
他の言語ではたいてい,基本的な命令や関数以外は基本ライブラリーの形を取っています.

コンポーネントは説明不要ですよね.
エディットコンポ,ボタンコンポ,タイマーコンポ,…その他もろもろです.

ビジュアルというのはここでは
エディットやらボタンやらを実行時と同じイメージで
ポコポコ貼り付けられること.
びじゅあるべーしっく(VB)のびじゅあると同じ意味.
ただし『びじゅあるしぃーぷらすぷらす』(Visual C++)は
なまえこそびじゅあるですが実際は全くそんなことはないので要注意.


>>486
わからなくても無理はないと思うな.

最初に始めた言語がCとかなら別ですが
BASICやDelphiだったりすると
『基本ライブラリ』などという概念を意識することはないでしょうから.
※BASIC系だと意識しない,以前に全てが言語仕様なので
 『基本ライブラリ』自体存在しない…はず.
0496デフォルトの名無しさんNGNG
Delphi6personalとそれ以外の違いは?
ネット上のフリーのコンポーネントをインストールしようとして、
できないのが多い。
vclieとかfileutil.pasがないと怒られる
0497DelモナNGNG
  ≡  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ≡( ´∀`)< JAVA勉強中だモナー
  ≡ ( つ=つ \_________
   ≡| | |\
   ≡(__)_)\
 ≡ ◎ ̄ ̄ ̄ ̄◎

>492
俺は、Form.CanvasにBitbltで直に書き換えている。
バックバッファも自分で管理。面倒だけど自由度あがるしね。

>496
俺もコンポーネント作っているが、エディションに依存するような
コンポーネントは書かない。そもそも使っているのがPersonalだからだけど。
作者に頼んで改良してもらうとかしてもらおう。
それでもダメなら問題個所を修正してしまうのが良いかと。
0498496NGNG
personalにないファイルを他人から貰うとやばいの?
ていうかフリーのコンポーネントの中に、personalにないが他のエディションに
入ってるファイルを一緒に入れてるのがあったが。
ゴメン、Delphiは使い出したばかりでもっと勉強してから聞きます
0499デフォルトの名無しさんNGNG
>personalにないファイルを他人から貰うとやばいの?
やばいよ。完全なライセンス違反。
Borlandユーザに犯罪者はいらん。
0500デフォルトの名無しさんNGNG
>>496
vclieってTWebBrowser関連?
それだったら上のほうで回避策が載ってる。
0501Delはじめて物語NGNG
「はじめてのDelphi」にかいてある、
「ラベル」っつーのが、Del6personalには無いような気がするんだけど。
どこにあんの?
わかんないんで、StaticTextとか言うやつで代用してる。
ま、それでいまんとこ問題ないけど。
0502デフォルトの名無しさんNGNG
[Standard]のAって書いてあるやつだよ。
0503Delはじめて物語NGNG
鬱だ…
こんなもんも見つかんなかったのか…
目の前じゃねーか…
0504Delはじめて物語NGNG
ちなみに、
LabelとStaticTextって、どう言う風に使われるべきものなの?
「はじめての〜」やった限りでは、
同じように動いてんだけど。
0505デフォルトの名無しさんNGNG
>>504
>TStaticText はフォーム上にテキストを表示するウィンドウコントロールです。
>
>ユニット
>
>StdCtrls
>
>説明
>
>TStaticText コンポーネントは TWinControl から継承されているためにウィンドウハンドルを持っていることを除けば TLabel に似ています。
>ActiveX のプロパティページのように,コンポーネントのアクセラレータキーがウィンドウコントロールに属さなければならないときは,TLabel のかわりに TStaticText を使います。
0506デフォルトの名無しさんNGNG
Personal使っているんですが、
FormatMaskText ってないの?
LightReport2 を組み込もうと思ったらFormatMaskTextが未定義ってでるんだよな・・・
0507名無しさんNGNG
class foo{
static int var;
};
みたいなのはどうすればいいのでしょうか?
0508デフォルトの名無しさんNGNG
>>507
言語が違うということは,実装方法そのものを変えなきゃいけない。ということ。
「みたいなもの」を何をするために使うの?
その内容によって答えも変わる
0509496NGNG
>500
TUIWebBrowserの話です
上で思い切りガイシュツだった・・
おかげでインストールできました
この板に感謝!

ただpersonalだからか分かんないけど
インストールできんコンポーネントが多いんだよね・・・
delphian worldにあったextmemoは速攻でインストールできたけど。
作るならリッチテキストエディタの当たりか?
テキストエディタは多すぎるから
0510>507NGNG
FAQだね。Delphiだとやけに長くなる。
property使わずにTFoo_Value変数に直接アクセスすれば簡単だけど。

interface

type
 TFoo = class
 private
  class function GetValue: Integer;
  class procedure SetValue(const Value: Integer);
 protected
  property Value: Integer read GetValue write SetValue;
 end;

implementation

{ TFoo }
var
 TFoo_Value: Integer; // TFooで使いまわす共通の変数

class function TFoo.GetValue: Integer;
begin
 Result := TFoo_Value;
end;

class procedure TFoo.SetValue(const Value: Integer);
begin
 TFoo_Value := Value;
end;
0511デフォルトの名無しさんNGNG

            
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
0512507NGNG
propertyという修飾子のところを勉強することができました。
ありがとうございます。>>510
Delphiを触りだして2日目なので勘弁してください。>>508
0513DelモナNGNG
|
|_∧  モナーッ
|´∀`)
|  /
| /
|/
|

みんな、元気にプログラミングやっているかモナー?

質問とか無いけど、無いことはいい事だ。
みんな悩んでいない証拠だからね。
0514デフォルトの名無しさんNGNG
人間悩むことをやめたら,それは堕落の始まりである(かもね).
0515デフォルトの名無しさんNGNG
コードの記述についての質問です。
例えば、変数を宣言する時の記述ですが

1.var i: Integer; // コロン(:)の右側に半角スペース
2.var i : Integer; // コロンの両脇に半角スペース
3.var i:Integer;  // コロンの脇に半角スペース無し
4.var
    i : Integer; // 改行あり

など、人によって記述がまちまちで、
どれを使えばいいのか、混乱してます。
“正しい記述”みたいなものはないんでしょうか。
0516デフォルトの名無しさんNGNG
>>515
ありません。
0517デフォルトの名無しさんNGNG
比較的その手の規制が厳しい C に比べて

元が教育用言語のpascalなので、
 極端な書き方さえしなければ 可読性を損なう事は少ないですから

あまり気にする必要はありませんよ >>515
0518デフォルトの名無しさんNGNG
Del使いは現行Pascal(Borland独自)が標準化されてない点に
ついてとか危惧したりしないの?
将来を不安がったり。
Borland無くなったら、それで終いよ?
0519デフォルトの名無しさんNGNG
>>518
プログラム言語は別に何でもいい
その時点でもっとも効率が良いと思われるツールを使うだけ

Del使いにはそういうスタンスの人が多いと思うけど
0520デフォルトの名無しさんNGNG
おまえらVCLが無いと、なんにも出来ないもんな。
0521デフォルトの名無しさんNGNG
Delphiスレ一つにしろっていっとろうが!
そんなにDelスレ上げまくって楽しいのか?
0522デフォルトの名無しさんNGNG
何か作ろうとする度に、こういうコンポあります?とか言ってるもんな。
0523デフォルトの名無しさんNGNG
>>519
同意
0524デフォルトの名無しさんNGNG
 あっちのスレでまた始まってるよ はやくお戻り >520
0525デフォルトの名無しさんNGNG
早く某ランドが潰れないかなぁ
0526Del萬年初心者NGNG
>>519
同意。EXEのみで動くという点でDelを使うことにした。
0527802NGNG
みなさん数学およびコンピューターサイエンスも忘れずに
0528デフォルトの名無しさんNGNG
>>522
車輪の再開発を出来るだけ避けたい、ということだから
むしろそういう姿勢は奨励されるのでは?

もちろん、無い時点であきらめる人はダメダメだと思うけどさ。
0529デフォルトの名無しさんNGNG
カーネルハッカが少ないか、ディストリビューションがないと何もできない
のね、とか、そんな感じ。
0530デフォルトの名無しさんNGNG
MyThread.OnTerminate := procedure;
みたいにイベント発生時のプロシジャーを指定しますが、
ここで引数を指定する方法はないのでしょうか。

MyThread.OnTerminate := procedure('A','B');
みたいに。

受け渡したいものは事前にグローバル変数に値を入れておいて、
それを読ませるとか素直にやるしかないのでしょうか。
0531デフォルトの名無しさんNGNG
TMyThreadのフィールドとして持たせればよい。
TMyThread=class(TThread)
public
a, b: Integer;
end;

MyThread.a := 10;
MyThread.Execute;
0532デフォルトの名無しさんNGNG
>>531
ううむ、やはり引数指定は無理ですか。
教えたいただいたように
TMyThread内のpublicに記述してやるようにします。
0533名無しヘタぐらまさんNGNG
>>530
>>531 さんの方法でよいと思いますが
(フィールド変数はプロパティにしたほうがいいと思う)
もし引数を渡すイベントがほしいのでしたらそういうイベントを定義して,
継承したクラスに追加します.
以下は処理中の進行をあわせて発生するイベントの例.

TMyProgressEvent = procedure (Sender: TObject; Done, Count: integer) of object;

TMyJob = class(TObject)
private
FOnProgress: TMyProgressEvent;
protected
procedure Progress(Done, Count: integer); virtual;
public
procedure Execute; virtual;
property OnProgress: TMyProgressEvent read FOnProgress write FOnProgress;
end;

// 処理
procedure TMyJob.Execute;
var
i: integer;
begin
for i := 0 to 9999 do
begin
if (i mod 100) = 0 then
Progress(i + 1, 10000);
// 作業
end;
end;

// イベントハンドラが割り当てられていたらそれを呼び出す
procedure TMyJob.Progress(Done, Count: integer);
begin
if Assigned(FOnProgress) then
FOnProgress(self, Done, Count);
end;
0534Delはじめて物語NGNG
Quick Startとかいう付属ドキュメント見てんだけど、
ActionMenuBarとかActionManagerとかActionToolBarとかが
Personalには付いてないの?
それ使いまくってるんだけど。
そんで見つかんなかったんで、
何か似てる感じのMainMenu,ActionList,ImageList,ToolBarを使ってんだけど。
これで代替可能なんでしょうか?
ドキュメントで言うとおりの挙動にはしたけど。
何かだましだましやってる感じがしてるんで、ちゃんと知っときたいんです。
0535名無しさんNGNG
Delphi 6 Parsonal を使うにあたってすごくわかりやすいチュートリアルってどこかにありませんか?

ヘルプのヤツって Personal 向けじゃないところがあって・・・
0536530NGNG
>>533
なるほど、イベントを自分で定義してしまうわけですか。
重要そうなので覚えておくことにします。

すいません、もうひとつ質問です。
例外処理についてなのですが

--------------------
procedure TMyThread.Execute;
begin
 proc0;
 proc1;
end;
--------------------
procedure proc0;
begin
 try
  〜処理〜
 exception
  ErrCode := 1;
 end;
end;
--------------------
というコードで、proc0内部で例外を起こし ErrCode := 1; に入りました。
ここまではいいのですが、何故かその後 proc1 まで実行してしまうのです。
残りはパスして TMyThreadを終了し、メインスレッド内にあるエラー表示処理に
とばしたいのですが継続実行されてしまうのです。

http://www.nifty.ne.jp/forum/fdelphi/faq/00236.htm
を見る限りでは exceptionを書かなければエラーフックしないので
素通りすると思っていたのですが。

ひょっとしてこれは TMyThreadというスレッドのルートで実行
しているからなのでしょうか?
0537530NGNG
>>536
「exception」→「except」ですね。
0538デフォルトの名無しさんNGNG
finally と 勘違いしてるように思うよ >>536

エラー処理(except内部)が終ったらその次から実行されるから
その次の隠れたexitを実行して、return するのが正解
0539デフォルトの名無しさんNGNG
>>536
エラー表示処理というのがよくわかんないが勝手に想像して書くと。

procedure TMyThread.Execute;
begin
 try
  proc0;
  proc1;
 finally
  エラー表示処理(同期処理すること)
 end;
end;

procedure proc0;
begin
 try
  〜処理〜
 exception
  ErrCode := 1;
  raise;// 例外再生成
 end;
end;
0540539NGNG
「exception」→「except」
間違い。
コピペしたままだった。
0541530NGNG
>>539
ありがとうございます。わかりました、「raise」でした。
exceptの中を実行して「例外じゃなくなったよ〜」っていう
状態になってたのですね。
raiseで例外再生成することで思い通りの処理になりました!
0542539NGNG
>>541
わかってよかったな。
エラー表示は同期処理しろよ。
0543515NGNG
>>516-517
返事が遅れましたが、ありがとうございました。
0544デフォルトの名無しさんNGNG
なんか書き込みがないな・・・
0545デフォルトの名無しさんNGNG
じゃあ書きます。
TListboxでhintを出しているのだが
セル(?)を移動してもhintは更新されない・・・
メーリングリストの例でもいまいち理解しきれんかったので誰か教えて・・・

実際aplication.cancelhintを使うタイミングも解らないし・・・

ヒントが出ているかどうか調べるプロパティがあれば処理できるんですが
ヘルプ探しても見つからなかったもので・・・
0546デフォルトの名無しさんNGNG
sageてどうするよ・・・
0547デフォルトの名無しさんNGNG
>>545
VCL のヒントは、デフォルトではコントロール単位に定義されている。
マウスポインタをのっけると「私はファイル名一覧でござい」と出るわけだ。
リストボックスの場合、各行はそのままユーザーに見えているので、
(たとえばリストボックスにファイル名が出ているとして)
sample.txt を選択状態にして「sample.txt」というヒントが出ても
別にうれしくないよね?

どの状況でどのようなヒントを出すべきなのかはある程度状況が決定しないと
決められないので、そこまで VCL として対応きれない。
0548デフォルトの名無しさんNGNG
>545
WM_MOUSEMOVEでは?
0549545NGNG
自己レス
例ですが、こんな感じでできました。
マウス動かすたびにパパパっとヒントの文字列が変わる・・・感動だ

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
listbox1.Hint:= inttostr(listbox1.ItemAtpos(point(x,y),true));
Application.ActivateHint(point(x,y));

end;

ヘルプ調べまくりー。
ヒントくれたおかげだかなんだかたどり着けました。
かまってくれてありがとうです。
0550デフォルトの名無しさんNGNG
スレッドの中からアプリケーション終了処理をさせようと
思ったのですが

Application.Terminate;

をやろうとすると未定義の識別子と言われてしまいます。
メインフォームのほうでは問題ないです。
スレッドの中からは終了させられないのでそしょうか?
0551デフォルトの名無しさんNGNG
>>550
Applicatoin が未定義なの?
Terminate が未定義なの?
0552Delあめ猫にゃNGNG
>>550
uses Forms; ある?
0553550NGNG
>>551
未定義なのはApllicatironです。
情報少なくてすいません。(汗

>>552
あ、ヘルプのユニットのところに Formsって書いてありますね。
uses に Forms 追加で動作しました。
ありがとうございます。
0554デフォルトの名無しさんNGNG
スレッドからアプリケーション終了していいんか?
0555デフォルトの名無しさんNGNG
メインスレッド以外からApplication.Terminate呼ぶのはまずい。
中で呼ばれてるCallTerminateProcsで呼ばれる、登録されていた
終了関数の中に誤動作するものがあるかもしれない。

単にPostQuitMessage(0)するならそういう問題はなさそうだけど
今度はCallTerminateProcs自体が呼ばれない?

メインウィンドウにWM_CLOSEをPostするとかが無難かな?
0556550NGNG
>>555
スレッド内で処理するデータの中に「これを読んだら終了しなさい」
というキワードを入れておいて、それを読んだら完全にアプリケーションを
終了させたいと思っています。

この場合は TThread.OnTerminate で指定されてる処理をする必要もないので
直接終了させても問題ないかなと思ったのですが、そうでもないのですか。

>メインウィンドウにWM_CLOSEをPostするとかが無難かな?
とは具体的にどのようにやるのでしょう?
0557デフォルトの名無しさんNGNG
Synchronize でやればそんな気にしなくていいように思うけど? >555

>>556
PostMessage( Handle, WM_CLOSE,0,0);
0558555NGNG
>>557
けど? と言われても。
確かにSynchronize使えばVCLのスレッドで実行してくれるので安全だね。
0559550NGNG
>>557
synchronize(CloseQuit);

procedure TMyThyread.CloseQuit;
begin
 PostMessage(Application.Handle, WM_CLOSE, 0, 0);
end;

とやって確かに終了はしますが、アプリケーションエラーが
発生してしまいます。

例外を発生させて途中の処理を省きスレッドをで終了させ
メインスレッドで終了させたほうが安全でしょうか?
0560デフォルトの名無しさんNGNG
>>559
PostMessageを使うのならsynchronize使わないで
直接実行できるよ。

あと、スレッドはスレッドで自分で終了しないと…
0561Delあめ猫にゃNGNG
>>559

560さんに追加するにゃ

555 さんが メインウィンドウにって書いてるにゃ

 渡すハンドルは Form1.Handle にゃ
0562550NGNG
>>561
Form1.Handle でできました。
ありがとうございます!
0563550NGNG
>>557
ひょっとして、
PostMessage( Form1.Handle, WM_CLOSE,0,0);
やった場合って Form1 の OnCloseは実行されないのですか?
最後の状態が保存されないのでひょっとしてと思いまして。
0564_NGNG
パーソナルのパッケージ版を4800円で買えば正規登録ユーザになれるの?
将来アップグレードのときにProfessinal版が安く買えるようになるのかな。
だれか買った人いないですか?
0565Delあめ猫にゃNGNG
>>563
  PostMessage(Form1.Handle, WM_CLOSE, 0, 0);
 だけなら OnCloseも OnCloseQuery も呼ばれる

 PostQuitMessage(0); やってると 呼ばれないよ

どっかでやってるとか?
0566550NGNG
>>565
そうですか。ありがとうございます。
もうちょっと原因を調べてみます。

「あめ猫」…20年前に流行った「なめ猫」を思い出した。(笑
0567デフォルトの名無しさんNGNG
PostMessageは綺麗じゃないな。

Form1にCloseByThreadメソッドみたいなの作っといて、
そのメソッドで全スレッド終わったか確認して、Form1自身を閉じれば良いじゃない。
0568550NGNG
>>567
type EExitApp = class(Exception);

〜スレッド内〜
raise EExitApp.Create('ExitApp');

例外作って「終了コマンド受けました」画面を出して
ちゃんと終了させるようにしました。
Delphiが持つ例外処理の考え方って素晴らしい。^_^
0569デフォルトの名無しさんNGNG
初心者質問で、すいません

FormをCloseで閉じた後、Showで再表示すると
閉じる前に入力していた値が残ってしまいます。

これは、仕様なのでしょうか?

Formを再表示すると、値をクリアしたいのですが、
どのようにすればよいのでしょうか・・・
0570Delあめ猫にゃNGNG
あめ猫は消極的反対だにゃ ・・・ どっちでもいいけど・・・・
0571Delあめ猫にゃNGNG
間違えた・・・

>>569
showは画面表示だけなんで実際には消えてない

だからOnShowイベント内部で初期化のコードを
0572569NGNG
Delあめ猫にゃ さん、ありがとうございます。

OnShowイベントに初期化のコードを書いて解決しました。

VBからDelphiに移ろうとしているのですが、
画面の初期化って面倒なんですね。
VBは画面が完全に消えるので、何にも考えてませんでした。

逆に、画面が残っているDelphiの利点ってあるのでしょうか?
Delphiユーザーの方は、みなさん、初期化のコードを書かれている
のですか?
0573デフォルトの名無しさんNGNG
>>572 正直消えない方が良い。
今日ずっとcloseしたらreleaseされると思いこんでて
どうやって処理しようかと考えていたが・・・ただShowすればいいだけだと今気がついた。

必ず消えるとなったら消えるだけだが、
消えないとなれば必要なときに消せるという選択ができるのでよい。

>FormをCloseで閉じた後、Showで再表示すると
>閉じる前に入力していた値が残ってしまいます。
create と release を使えば次呼んだとき必ず初期化されてない?
初期化コード書くよりは楽だと思うけど・・・どうだろ
0574デフォルトの名無しさんNGNG
>>572
おらの場合はVBの方が扱いにくい。
Unloadしてもメモリに残ってるし。

DelやBCB(つーかVB以外の言語)みたいに
表示のみなら.Show & .Hide
完全に初期化したいなら.Destroy & .Create(delete & new)
って明示的に宣言した方が管理しやすいと思われ
0575574NGNG
>>572
追加。

Show & Hideはツールボックスみたいなのを使うとき便利。
AdobeとかMacromediaのUIみたいなやつ。
0576初心者NGNG
Delphiって、Rubyみたいにオブジェクト指向プログラミングができますか?
0577デフォルトの名無しさんNGNG
>576
Rubyとはどんな言語なのか、見たことも触ったこともないのですが、
SmallTalkとは、ちょっと違っていて、C++/C#、Javaとはよく似ている
オブジェクト指向言語を搭載しています。
0578デフォルトの名無しさんNGNG
SetWindowRgn を使ってリージョンは成功したのですが、
これを戻す方法がわかりません。
そんな方法ってありますか?
0579デフォルトの名無しさんNGNG
>>578
SetWindowRgnのhRgnパラメータをNULLにすればいいんでないの?
0580デフォルトの名無しさんNGNG
>>579
nilはダメだったのでウィンドウサイズのリージョン作って、戻したように
見せかけてみました。

で、また切り替えボタンでリージョン設定するとなんか形がおかしなことに。
リージョンって何回も変更できないのですか?
0581デフォルトの名無しさんNGNG
>580
nilはどうして駄目だったの?
0582デフォルトの名無しさんNGNG
>>581
SetWindowRgn(Handle, nil, True);
とやってみたのですが

[エラー] main.pas(574): 'HRGN' と 'Pointer' には互換性がありません

と言われてしまったのです。ううむ。
0583Delあめ猫にゃNGNG
>582 そこでくじけないで
 nilがダメなら 0を試そうよ
0584デフォルトの名無しさんNGNG
dbExpressを利用してOracleに接続するアプリケーションを作成したのですが、
dbexpora.dllも一緒に配布するのが面倒です。

ヘルプを読んだところ静的リンクをすれば、単一のEXEだけで配布できて(・Д・)ウマーかなと思うのですが、
具体的にどうやればいいのかわかりません。

教えてください。
0585デフォルトの名無しさんNGNG
CSV形式のテキストファイル(カンマ、改行区切り)は、
どのように行えばよいのでしょうか?
0586デフォルトの名無しさんNGNG
>>585
CVSファイルに「何を」行うんですか?

分からんので読み書きの方法でも。

読むときは
TStringListのLoadFromFileで読んで、各行をさらに
行用のTStringListのCommaTextで分解、かな。

書くときも同様。SaveToFileで書くだけ
0587585NGNG
>>586

すいません、読み書きの方法を聞くつもりでしたが、
書き込みの時に、きちんと書いていませんでした。
m(__)mすいません

でも、つたない文章から読み取って頂いて助かりました。
ありがとうございます。
0588デフォルトの名無しさんNGNG
C++かじってからこっちに来ましたが、

var
const a:Integer=100;{←ここだけ定数で}
b:Integer;{←これは変数のつもり}

とかやって10分ほど悩んだのは私だけでしょうか?
0589デフォルトの名無しさんNGNG
>>588
悩むのは勝手。
他人の思い込みを書き込まれても共感しないよ。
0590デフォルトの名無しさんNGNG
どこがおかしいのか2分間気がつかなかったよ
0591デフォルトの名無しさんNGNG
age
0592デフォルトの名無しさんNGNG
節ない。
0593578NGNG
>>583
「0」で戻せました。nilでダメだったと思考が止まってました。

ところでリージョンのデータって一度使用されると破棄されてしまうのでしょうか?
中村拓男氏の NkBitToRgn.pas を使って Bitmapから
リージョンデータを作成し、一度目はうまくいくのですが、
再度そのデータを使ってリージョンをきろうと思ったのですが
反映されてくれないのです。

private、public、protected のどこで定義してもダメでした。
0594デフォルトの名無しさんNGNG
>>593
APIマニュアル読めー。
一度設定すると所有権がOS側に移るので勝手に解放されるし、
もう自分で操作してはならない。
0595578NGNG
>>594
ありがとうございます。
ううーん、本格的に組むわけではないのですが
APIマニュアルとかやっぱり必要みたいですね・・・。
0596デフォルトの名無しさんNGNG
>>595
まずは Delphi 付属の日本語ヘルプを眺めてみることを勧める。
ネットワーク接続が気にならない環境なら、オンライン版 MSDN 日本語版。
ただし、こちらもすべての API が載っているわけではない。

何も最新の API だけを使いたいわけではないだろうし、Win98/Me で動かしたかったら
古いヘルプに載っている範囲の API を使うしかないんだし。
0597デフォルトの名無しさんNGNG
Tstringlistから空白行を削除したかったのですが

while (stringlist.Items.IndexOf('') >0 ) do
stringlist.Items.Delete(stringlist.Items.IndexOf(''));

とやっても削除されなくて・・・
indexofだと空白は検索されないようですがいい方法ありませんですかね。
もう一つstringlist作って空白じゃなければaddってやるしかないかな・・・
どうも格好悪い気がする。
0598デフォルトの名無しさんNGNG
For i := stringlist.count - 1 down to 0 do
if StringList[i] = '' then StringList.Delete(I);

動作確認とっていないけど、Sort していなければこれで十分では?
0599597NGNG
>>598 ありがとうございました。
downto なんて忘れてました・・・
stringlist.items.deleteの時は便利ですね。 indexOf に拘りすぎてたかな・・・
0600デフォルトの名無しさんNGNG
>0
だと 0 の時は入らないよ。
0601デフォルトの名無しさんNGNG
>598
その場合も空白は見つけられないよ。
0602597NGNG
えっ駄目!?
いまほかのところを修正中だからまだ実験してないのでした・・・うーん・・・
0603デフォルトの名無しさんNGNG
ところで空白行ってどういう行?
そのへんがあいまいな気がします。
0604デフォルトの名無しさんNGNG
>603
Length(s)=0であるような文字列s
0605597NGNG
やっぱり>>598で出来たようです。
初心者としてはでかいプログラムになってきたので把握が・・・1000行程度なのになぁ
0606デフォルトの名無しさんNGNG
>604
それなら
while (stringlist.Items.IndexOf('') >0 ) do
stringlist.Items.Delete(stringlist.Items.IndexOf(''));
で最初の行以外はいけるとおもうけどな。
効率は悪いけど。

598でもOK。
0607デフォルトの名無しさんNGNG
For i := stringlist.count - 1 down to 0 do
if StringList[i] = '' then StringList.Delete(I);
0608607NGNG
>>607
げ、操作ミス失敬。コードコピーしていじろうとしてたら送信してしまった。鬱
0609デフォルトの名無しさんNGNG
while (stringlist.Items.IndexOf('') >= 0 ) do
stringlist.Items.Delete(stringlist.Items.IndexOf(''));
でうまくいかない理由が知りたい。
0610デフォルトの名無しさんNGNG
>>609
">="ならうまくいくっしょ。
">"だから先頭行が見えないだけ。
0611デフォルトの名無しさんNGNG
>>609
いや例えば
_index:=stringlist.Items.IndexOf('');
だと _index には必ず -1 が入ってるみたい
空白行があろうが無かろうが。
0612デフォルトの名無しさんNGNG
無意味に長くしてみたYO(アホ)

firstEmpty := stringlist.IndexOf('');
if firstEmpty >= 0 then
begin
 stringlist.BeginUpdate;

 (* 空行以外を前に詰める *)
 newCount := firstEmpty;
 for i := firstEmpty to stringlist.Count-1 do
  if stringlist[i] <> '' then
  begin
   stringlist[newCount] := stringlist[i];
   Inc(newCount);
  end;

 (* 後ろを全部消す; 一発削除があればいいのに *)
 for i := stringlist.Count-1 downto newCount do
  stringlist.Delete(i);

 stringlist.EndUpdate;
end;
0613デフォルトの名無しさんNGNG
>611
>_index:=stringlist.Items.IndexOf('');
>だと _index には必ず -1 が入ってるみたい

それは、長さ0の行が無いという事です。
0614デフォルトの名無しさんNGNG
ありゃ、じゃあデバッグ用のshowmessage入れるところ間違えたかな・・・
ちょっと実験してくるYO。
0615デフォルトの名無しさんNGNG
StringList.IndexOfはEmptyStrに対応していなかったと思う。

検索文字がEmptyStrならforで頭からEmptyStrを探し
非EmptyStrならIndexOfの値を返すNULL文字対応IndexOf関数を作るとよさそう。
0616デフォルトの名無しさんNGNG
TStringGrid で任意の行を削除する方法はないのでしょうか?
0617615NGNG
嘘だった。StringsもStringListもIndexOfはEmptyStrにも対応しているな。

>>616
TStringGridのprotected属性にDeleteRowがあるので
継承して見えるようにしたらよいかも。

type
 TOpenStringGrid = class(TStringGrid);

procedure TForm1.Button1Click(Sender: TObject);
begin
 TOpenStringGrid(StringGrid1).DeleteRow(1);
end;

これだけ1行目が削除されるた。
0618デフォルトの名無しさんNGNG
>>617

ありがとうございます、行削除できました。

でも、RowCountを増やして行を追加すると、
削除した行が出てくるんですね。(^^;;)びっくり

私の技量では解決できそうもないので、
行を削除する前に、全ての項目値を消してから、削除するようにしました。

お陰で、削除ができました。
ありがとうございます。
0619デフォルトの名無しさんNGNG
IndexOfの挙動が記憶とどうしても違うので調べてみました。

function TCustomComboBoxStrings.IndexOf(const S: string): Integer;
begin
 Result := SendMessage(ComboBox.Handle, CB_FINDSTRINGEXACT, -1, LongInt(PChar(S)));
end;
なんだよ、このソース!!(unit StdCtrls;)
ComboBoxのItemはIndexOfがAPIだからEmptyStrが誤動作していたのか。
(バグがあったのはComboBoxを使っていた時)
HELPみてもこんなのわからないよ

ListBoxについてもこのようなソースがあるので調べていませんが誤動作しているかも。
このような問題があるので注意です。
function TListBoxStrings.IndexOf(const S: string): Integer;
begin
 if ListBox.Style in [lbVirtual, lbVirtualOwnerDraw] then
  Result := ListBox.DoFindData(S)
 else
  Result := SendMessage(ListBox.Handle, LB_FINDSTRINGEXACT, -1, LongInt(PChar(S)));
end;

ComboBox.Itemsに対して
TCustomComboBoxStrings.IndexOf
ではなく
TStrings.IndexOfを実行させたいと思い
キャストしてみたのですがコンパイルエラーでうまく記述できません。
実際にはどのようにするのがよいのでしょうか?

>>618
StringGrid1.Rows(i).Text := '';
行の項目削除は上のように一行で済みそうです。
StringGrid.Selectionの選択範囲なども気にすると少々面倒になります。
考えてみてください。
0620デフォルトの名無しさんNGNG
質問ばかりで、すいません。

StringGridで固定行をクリックして、並び替えを行いたいのですが、
固定行をクリックした時に、コマンドボタンのように凹んだような
動作は可能なのでしょうか。
0621sageNGNG
OwnerDraw でできます
0622620NGNG
>>621
回答ありがとうございます。
初心者なりに、OwnerDrawについて調べてみました。
デザインや色を変更するなんですね。

これで、クリックの際に凹凸(ボタンの様な動き)と描画するという
ことなのでしょうか?
0623おにためNGNG
HSPとどっちをやったらいいでしょうか?
0624_NGNG
>>623
タダだし両方試してみたら?
0625おにためNGNG
>>624
はい。
HSPあきたらやってみます。
0626デフォルトの名無しさんNGNG
今日、何度も質問してますが、よろしくおねがいします。
m(__)m

VBからdelphiに移行しようと勉強しているのですが、
どうやれば、VBよりも高い生産性を出せるのでしょうか?

delphiのUnitとVBのグローバルモジュールの違いも、
よくわからない初心者なのです。

マニュアル片手に悪戦苦闘していますが、
delphiってスゴイって体験できる機能を使ってみないと、
いつまでもVBに留まってしまいそうなので・・・
私と同じようにVBから移行された方は、
delphiのどの機能を使って高い生産性を得られているのでしょうか?
0627デフォルトの名無しさんNGNG
>>626
こないだまでちょろっとVBいじってみましたけど、
何かやるたびにDLLが必要という理由で離れました。

ローカルな環境だけならいいのですが、一般への配布を
考えると DLLのインストールって敷居が高いですから。
バージョン違いの問題とかもあるし。
0628626NGNG
>>627
回答ありがとうございます。
VBで受託開発をやってますけど、MS-Officのバージョン、
IEのバージョンで全く動作が異なり、私も何度も泣かされました。

配布する事を考えるとexeだけでの配布ができるというのは、
環境に影響されないので、とても魅力的です。

ただ、生産性について、まだ見えないことが多くて・・・
0629デフォルトの名無しさんNGNG
type
 TFunc = function: boolean of object;

TTest = class
function Func: boolean;
   :
end;

procedure TTest.HogeHoge;
var p: Pointer;
begin
 p := @Func;
  :
end;
エラー: 変数が必要です。

procedure TTest.HogeHoge;
var
 p: Pointer;
 f: TFunc;
begin
 f := Func;
 p := @f;
  :
end;

だと、オッケー。
こんなもんなの?
関数参照使えばいいんだけど、リストなんかの項目でPointerでないとダメだと思って下せえ。
0630デフォルトの名無しさんNGNG
あげ
0631629NGNG
 p := @Func;
だとFuncの返却値(boolean)のアドレスになってちまうから仕方ないのか。
0632デフォルトの名無しさんNGNG
>>626 >>627
一度、VB の事をすっかり忘れると良いと思うな。
VB でああやっていたのに.. と考えちゃうとそこから先に行かない。
VB に限らないけど。

あと生産性云々はコンポーネントを書き換えたり新しく作成できるようにならないと
分からないと思う。転がっているコンポをただ使うだけで満足できるのなら VB の方が
良いかも。
0633sageNGNG
TMethod
0634デフォルトの名無しさんNGNG
>>626
おお、同士!
俺は取敢えずVB的でも良いから一つ作ってみる事にしたよ。
OOなんかはその次からって事で...
0635デフォルトの名無しさんNGNG
>>626
かなり語弊があるかもしれんが
従来のプログラムだと1から10までコーディングして、
OOの場合(VBも含むが)は既存のコンポの機能追加&改造
のみをコーディングするっていうイメージかな。

この辺の扱いを実践出来るようになると、生産性が大幅に上がるYO!
0636デフォルトの名無しさんNGNG
単純にTStringList、TIniFile、TRegIniFile、TListあたりから
使っていくと便利に思えるのではないでしょうか。
AnchorプロパティやConstrainプロパティなども便利かも。
0637デフォルトの名無しさんNGNG
>629
@@
はどぉ?
0638デフォルトの名無しさんNGNG
VBにDelphiのPanelに相当する部品ってあったっけ?

フォームをデザインする際
PanelのAlignプロパティはかなり便利だと思うけど
0639デフォルトの名無しさんNGNG
>>619
>ComboBox.Itemsに対して
>TCustomComboBoxStrings.IndexOf
>ではなく
>TStrings.IndexOfを実行させたいと思い
>キャストしてみたのですがコンパイルエラーでうまく記述できません。
>実際にはどのようにするのがよいのでしょうか?
>

type
TIndexOfMethod = function(const S: string): Integer of object;

procedure TForm1.Button1Click(Sender: TObject);
var
P: TIndexOfMethod;
begin
P := ComboBox1.Items.IndexOf;
TMethod(P).Code := @TStrings.IndexOf;
Caption := IntToStr(P(''));
end;
0640デフォルトの名無しさんNGNG
「ヘルプ」の「トピックを検索」で
単語を入力しても一覧に現れないんです。
'ExtactFilePath' とか 'TString' とか。
そのくせ、エディタ上で TString と書いてから F1 を押すと
ちゃんとヘルプが表示されます。

なんとかなりませんか。
0641デフォルトの名無しさんNGNG
仕様です
0642DelphiNGNG
まずはバージョンを言いなさい
0643ななしヘタぐらまNGNG
>>640
綴り,間違ってるヨ.
"ExtractFilePath"
"TStrings"
ヘルプを見るときは正しく売っていたのかもしれませんし
原因が別にあるかもしれませんが
とりあえずもう一度挑戦してみては?
0644デフォルトの名無しさんNGNG
バージョンは Delphi6 Pro です。
0645デフォルトの名無しさんNGNG
>>644
さてはOSはWindows9x系だな?
0646デフォルトの名無しさんNGNG
>>645
ああ、そうそう Kylix ではなくて Delphi です。
どうすればよいのですか。
0647デフォルトの名無しさんNGNG
サポートに電話しろ。
次の書き込みは、電話してからね♥
0648デフォルトの名無しさんNGNG
>>626
APIを使うときにいちいち宣言する必要がない。
VBつかってたの2までだから今どうなのか知らないけど。
0649Delphi超絶技巧キボンヌNGNG
>>639
わおぅ、わたしのような厨房には超絶技巧にしか見えん
0650ななしヘタぐらまNGNG
>>626
生産性という意味ならどちらも差はないと思います.
フォームを書くのに見ため通りに作れるし,
自分で書かなければならないコードも少ない.
生産性という売りはVBに対しての言葉じゃないと思う.

ただ,エラー処理という点ではどうですか?
VBは2しか知らないのですが
特にファイルを開く処理に失敗したときのエラー処理,

・デフォルトだとプログラムが終了してしまうので
 エラー処理ルーチンを書かなければならない.
・しかも開く場所ごとに書かなければならない
 (VBはローカルエラー処理はなかったでしょうか?でもそれなら発生場所ごとに分岐が面倒かも)
・エラー処理コードは結構長くてソースが汚い.なんのコードかわかりにくい.

でもDelphiだと

procedure TForm1.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Image1.Picture.LoadFromFile(OpenDialog1.FileName);
end;

このままでOK.読み込みに失敗したらイベント待ちに戻ってくれる.

他のケースで処理ルーチンを書かなければならない場合もありますが,
その場合でもはるかに簡潔にわかりやすく書けますし,
挙動も確実です.
エラー処理でドツボにハマった経験はDelphiでは一度もありません.
0651デフォルトの名無しさんNGNG
ココハホントウニショシンシャスレナンデスカ?
0652デフォルトの名無しさんNGNG
>>651
Delphiは初めてだけど、他の環境ではかなりの経験がある
という人も混じっているようですね

プログラムの初心者はモナースレの方がいいのかも
0653デフォルトの名無しさんNGNG
もう1つ新しいDelphiスレッド立てようよ
0654明日デビューNGNG
Delphi Personalなんてものがあったんですね
今日登録してきました
VisualC++によるWindowsアプリの開発で
自分の限界を知ってしまったので
大学入学を機会にプログラミングを止めてしまったのですが
Del厨なるものを大量発生させるDelphiならば
案外楽しめるかもと思い、挑戦してみます
0655626NGNG
>>632>>634>>635>>636>>638>>648>>650
みなさん、レスありがとうございます。

TStringGridやTIniFileは昨日使って試しました。
かなり便利だと思います。

土日でdelphiに必死に触れてみましたが、生産性については、
よくわかりませんでした。
ですが、私と同じように移行された方がいらっしゃる事と、
いつまでもこのままでは、ずっとVBで悩まされ続けるので、
本格的にdelphiを習得しようと思います。

継承など便利な機能があるのは本から知りましたが、
まだ良さを理解できない初心者なので、
みなさんが言われるように、生産性ってのは
後から実感できるものかもしれません。
(開発するアプリによっても異なるでしょうし)

大変参考になりました。
ありがとうございます。
m(__)m

ちょくちょく質問を書き込むかもしれませんが、
よろしくお願いします。
がんばります。
0656Delはじめて物語NGNG
汎用関数の作り方が分かりません。
付属ドキュメントにもなんも書いてない。
オーバーロードは書いてあるからあると思うんだが。
どうしたらいいんだろう。
0657デフォルトの名無しさんNGNG
>>656
テンプレート?
無いよ。
0658 NGNG
なぜか突然クラスを理解できた。override と overload も。
これでやっとオブジェクト'思考'出来るようになったかもしれない
parsonal にもクラス補完機能が欲しい
0659デフォルトの名無しさんNGNG
質問でつ。
当方VBしかやったことないんですが、移行(フリーのやつへ)は簡単ですか?
操作性が全然違かったりするのでせうか?
0660デフォルトの名無しさんNGNG
プロフェッショナルへの逝行は簡単です。コンポーネントが増えますから。
フリーのやつは、データベースコンポーネントがカットされてるので、
難しいのではないでしょうか。
0661デフォルトの名無しさんNGNG
>>660
どうもありがとうございました。
0662Delはじめて物語NGNG
汎用関数ないんじゃ、
どうやってそれと同じようなことすんの?
やっぱそれなりに必要なもんだと思うけど。
0663デフォルトの名無しさんNGNG
そんな事するなよカッコわりーな
0664デフォルトの名無しさんNGNG
すれ立てるほどでもないスレから引っ越してきました。
MediaPlayerで音楽を聴くときに出てくるみょわーんとした
画像ありますよね。あの手のを作りたいのですが、
参考サイトとかありますでしょうか? あまり凝らないで良いです。

ソフトの背景に使いたいのです。
0665Delあめ猫にゃNGNG
>>664

 平滑化という処理判るかにゃ?
 Pixels[X, Y] の四方八方の点から 例えば (中央*4+上+下+左+右)/8 みたいにゃ計算の事

オフスクリーンのビットマップTBitmapを2つ用意しといて交互に
 これを繰り返すとモワーとなるにゃ

 動かしたいなら重みを替えてみるにゃ 上の重みを大きくすると上に動くにゃ
 中央にだんだん動くようにしたいなら 重みを中央に向くように変更しておくにゃ
   |
   | ∧
   |⌒∂ にゃ
   | ┃))
   |ー ミ
   |⊂)
   |⌒)   AA貼ると叩かれるかにゃ?
0666 NGNG

      ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 @' ― (,,゚Д゚)つ < AA貼るなゴルァ
   し― ∪     \____________________________
0667デフォルトの名無しさんNGNG
>>665
この手の処理はMMX使うと早いんだよね。
Del5じゃ使えなかった記憶があるんだけど、
Del6Perとかじゃどうなのかな…


>>666
  ∧_∧  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< オマエモナー
 (    )  \_____
 | | |
 (__)_)
0668デフォルトの名無しさんNGNG
>>667
D5迄だって DB に置換すれば使えたけど
D6からは
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1002267809&st=237&to=237&nofirst=true
と直接書ける
0669デフォルトの名無しさんNGNG
>>665
AAより「〜にゃ」口調の方がたたかれると思われ…
0670Delあめ猫にゃNGNG
>>669 了解・・・でも時々は使わせて

ところで フォルダオプション->ファイルタイプで出来る関連付けをDelphiのコード
からやりたんだけど 手軽な方法は?

やりたいのは VC++,BCB4,Delphi5,Delphi6 とインストールしてるもんだから
マウス右クリックに open以外に openVC とかを増やしてるんだけど
これインストールの都度やるのメンドクサイ(入れてるフォルダも違うし)から
0671デフォルトの名無しさんNGNG
VBからだと
Memo1.Lines.LoadFromFile('C:\autoexec.bat');
だけでも便利!と思ったんだがどうよ?
ListBox1.Items.LoadFromFile('C:\\autoexec.bat');
とかも。
0672DelモナNGNG
          �凵@  ∧_∧  / ̄ ̄ ̄ ̄ ̄
        �刧� \(´∀` )< 久しぶりだモナー
      �刧刧凵@⊂\⊂ )   \_____
    �刧刧刧�  | |\|
_�刧刧刧刧凵Q(_(__)\______
\  モナー号 一世      ̄          /
  \_______________/

>667
MMXはインラインアセンブラ使うとき。
いくらなんでもアセンブラで書くのは大変でしょ。

俺は、Scanlineを使ってる。
でも、ボカシの処理はどうしても重くなるからアセンブラでやったほうが
良いと思うがやり方が分からないのでやっぱりScanLineでやってる。

重みなんていう考え方があったんだ。はじめて知った。
早速、試してみる。
0673Delあめ猫にゃNGNG
>>670 はやっぱりレジストリでやるしかないみたい。
 で、以下のようにして関連付けに追加は出来た
 あと、Delphiのパスを自動的に取得出来ないかな


uses Registry;
function GetExtTypeName(ext:string):string;
begin
Result:='';
with TRegistry.create do try
   RootKey:= HKEY_CLASSES_ROOT;
       if OpenKey(ext, false) then begin
       Result:=ReadString('');
       CloseKey;
       end;
finally Free;End;
end;

procedure AddExtAction(ext,actionName,exePath:string);
var typeName:string;
begin
typeName:=GetExtTypeName(ext);
if typeName='' then raise Exception.Create(ext+'が未登録');
with TRegistry.create do try
   RootKey:= HKEY_CLASSES_ROOT;
 if not OpenKey(typeName, false) then
  raise Exception.Create(ext+'に'+typeName+'が未登録');
   OpenKey('shell\'+actionName+'\command', true);
   WriteString('', exePath+ ' "%1"');
   CloseKey;
 finally Free;End;
end;

使用例
 AddExtAction('.dpr','openDelphi4','C:\Borland\Delphi4\BIN\Delphi32.exe');
0674DelフサギコNGNG

      ∧∧____   / ̄ ̄ ̄ ̄ ̄
    /ミ,,゚Д゚ミ ./\< Delphiパスはレジストリ決めうちかも。
  /| ̄∪∪ ̄|\/  \_____
    |____|/ トコトコ
     ,,,,∪∪,,, ,,

HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\App
の値がこれでした
C:\Program Files\Borland\Delphi6\Bin\Delphi32.exe
0675Delあめ猫にゃNGNG
>>674
 だめだった D5 にゃ  App なかった

 Delphi32.exe のファイルを検索してパス名で処理しようかな
0676( ´∀`)さんNGNG
>>675
昼に>>670へのレス書き込もうとしたら書き込めなかった鬱。

>>672
>MMXはインラインアセンブラ使うとき。
>いくらなんでもアセンブラで書くのは大変でしょ。
確かに、漏れみたいにアセンブラ書くスキルがないと大変だけど、
ネットを探せばだいたいサンプルコードとかあるでしょ(w
雑誌でもいいし。

>>673
>Delphiのパスを自動的に取得出来ないかな
Del5Pro Update1。
HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Delphi\5.0
の名前
App
にDelphi32.exeのフルパス発見。
0677Delあめ猫にゃNGNG
>>676 おっは〜

そうそうゲームスレで
 http://www.microsoft.com/japan/developer/library/jpgdipf/_win32_alphablend.htm
 こんなの見かけた。 これを1ドットづらしながら実行したら モワモワは出来そう


で、後半の話、やっぱりDel6にはApp あったけど Del5には無かったよ
 なんか>>679関数のテストしてる間に全部登録出来ちゃったからもういいかって


ところで、このスレ なんか常連専用スレになってない?
0678( ´∀`)さんNGNG
>>677
>やっぱりDel6にはApp あったけど Del5には無かったよ

>>676では Win2k SP2 + Del5 Pro Update1 で確認。
今、Win98 + Del5Pro(Update無) でも確認したけど、やっぱりあったよ。
間違えて消したか、何かの拍子に消されたか、
もしくはインストールに失敗して作成されてなかったか。

同じキーの RootDir って名前の値をとって、しっぽに '\bin\delphi32.exe'
の文字列を足す、いうのは?
漏れはやはり両方で存在を確認したけど。

もしくは実は HKEY_CURRENT_USER と HKEY_LOCAL_MACHINE の間違いだったとか?

とりあえず解決したならそれでヨシ、か。


>ところで、このスレ なんか常連専用スレになってない?
漏れは、Del猫引退(?)の後遺症かしらないが、
ここのところDelスレ全体が活気が少ない気がする。
0679Delあめ猫にゃNGNG
確かに後遺症あるよね
 なんか話広げるようなレスは躊躇してしまうというか
 答えだけしか書けないというか
0680Del初めて物語NGNG
>>663
は?
0681デフォルトの名無しさんNGNG
>>677
>ところで、このスレ なんか常連専用スレになってない?
そんないことないですよ。
結構頻繁に利用させてもらってます。

そろそろ新しいアプリに挑戦してみたいので
そしたらまたお世話になりたいと思います。
0682デフォルトの名無しさんNGNG
たまにバジョージョン情報ダイアログで
http://www.〜 とか作者のサイトが書かれてて
それがwebへのリンクになっているラベルとかありますけど、
ああいうコンポーネントってDelphiではあるのでしょうか?
0683デフォルトの名無しさんNGNG
>>682
Del6だとTBrowseURLアクション
0684DelモナNGNG
 ┏━━━━━━━━━━━┓
 ┃100モナ / ̄\ ∧冂∧ .┃
 ┃     |    |( ´∀` )o ┃
 ┃     \_/ (∪   φ) ┃
 ┗━━━━━━━━━━━┛
Del6updateしたモナー。アップデートする前のDelでコンパイルしたEXEは
1301KBだったのに、update後では1200KBまで下がったモナー。
ふざけんじゃないモナー。Debugコードなんか入れて出荷するなモナー。

>682
俺は、TLabelで、カーソル変えさせて色を変えてアンダーバーをつけて、
クリック時に
ExecuteFile('ttp://www.yahoo.co.jp/','', '', SW_SHOW);
みたいにやってるが。似たようなことでmailto:[email protected]みたいなことも
出来る。
ただし、対象マシンで、ブラウザとメーラーがちゃんと設定されてないと出来ないが・・・。
0685デフォルトの名無しさんNGNG
>>683
残念。TLabel には Action プロパティないんだ。
0686デフォルトの名無しさんNGNG
>>685
Actionプロパティになくても
ActionListにBrowseURL標準アクションを追加して(BrowseURL1とする)
LabelのOnClickで
BrowseURL1.URL := Label1.Caption;
BrowseURL1.Execute;
するだけっしょ。
フォントとかカーソルとかもそれっぽくプロパティいじれば完了。
0687682NGNG
なるほど、いくつかやり方があるのですね。
勉強になります。
0688デフォルトの名無しさんNGNG
>>Delはじめて物語
汎用関数ってどういう関数のこと言ってる?
0689デフォルトの名無しさんNGNG
グローバルな関数・手続きの事だったりして。
0690デフォルトの名無しさんNGNG
C++のSTLみたいなのではなく?
0691del若葉3日目NGNG
プログラムとは違うのですが、
同じ某ランドのc++Builderとdelphiは言語の記述以外に、
何が違うのでしょうか?

delphiを必死に勉強しているのですが、
周りからは「何でc++builderじゃないの?」って聞かれました。

あまり詳しくないので、delphiの評判だけで選んだのですが、
皆さんは、どうしてdelphiを選ばれたのですか?
0692デフォルトの名無しさんNGNG
質問です。
stringgridで特定のセルの背景色を変えるにはどうしたら良いのでしょうか?
brushというのを使っても変わってくれないのですが・・・
0693デフォルトの名無しさんNGNG
>>691

某ランドは、Turbo Pascalの昔から Pascalコンパイラの
コンパイル速度が速かった。
今でも、DelphiはC++Bより断然速い。

でもって、新技術の投入は通常まずDelphiで行われ、
それから数ヶ月たってからC++Builderのバージョンに反映される。

そもそも、C++Builderは歴史が浅い。
USではDelphiをVer.1から使っているような連中のコミュニティが活発で、
そこからサードパーティ製のコンポーネントなどが出ているが、
彼らの共通語はObject Pascal であってC++ではない。

C++の方が馴染みがあるというだけでは、
C++Builderのデメリットに勝てない。

かく言う自分は、元C++プログラマで、
GNU C++ => UNIX C / VB / VC++ => Delphi と移ってきたけど
Delphiが一番プログラミングが楽。
なれれば文法は気にならない。
0694デフォルトの名無しさんNGNG
新技術ってほどでも無い。
ただのマイナーチェンジ・・
0695_NGNG
>>692
OnDrawCellイベントでCanvasを使って塗る
0696デフォルトの名無しさんNGNG
質問です。

画面に画像のみを表示するプログラムを作りたいのですが、
新規作成→フォームを削除→project1.dprを編集
で、Image1:=TImage1.Create(?);
のときの「?」の部分にオーナーコンポーネントが必要ということなので、
それも生成しようと考えたのですが、そこでもオーナーコンポーネントが必要ということなので、
もう、どうしたらよいのやら・・・
0697通りすがりNGNG
>>691
Borlandの好きなように拡張できるからだろ。拡張に変な制約がない。
C++は標準ゆえに言語仕様に手を加えることができない。
C++がCのしがらみもあって、現代的には複雑&低機能な言語仕様のままになってしまっている。

それに比べるとJava,C#,ObjectPascalなんかは「現代的な」機能を備えている。
グローバル関数があったり、GCがなかったりの違いはあるけどね。
0698デフォルトの名無しさんNGNG
ダイアログのコンポーネントが豊富だけど、なしてフォルダ選択は
標準で付けないの?
何か理由があるのだろうか?
いろんなページでサンプル見たけど、「プラットフォームに依存しまっそ!」って
注意される「なんか古くさい形」のヤツ以外はけっこう複雑(オレには)な
ことしないとダメなのねぇ。不思議。
0699通りすがりNGNG
SelectDirectory()じゃないのか?
0700デフォルトの名無しさんNGNG
旧版 SelectDirectory は、デスクトップなどの論理構造を再現できない。
新版 SelectDirectory は、デフォルトで開いているフォルダが指定できない。
0701デフォルトの名無しさんNGNG
>>696
TImage.Create(nil);
0702デフォルトの名無しさんNGNG
>>700
sFolder:='C:\なんたらかんたら';
FOptions:=[sdAllowCreate, sdPerformCreate, sdPrompt];
SelectDirectory(sFolder, FOptions, SELDIRHELP);
では?
0703デフォルトの名無しさんNGNG
ハヤオキスレ
0704Delあめ猫にゃNGNG
フォームに、
Win 3.1タブにある
DirectoryListBox
DriveComboBox の2つを貼り付けて
DriveComboBox1.DirList を DirectoryListBox1 に

・・・・ていうのじゃダメですか?>>698
0705デフォルトの名無しさんNGNG
Object Pascalの言語仕様的にいけてない所、改良・拡張してほしい点などは何かありませんか?
0706デフォルトの名無しさんNGNG
>>705
begin〜end を {〜} に変更して欲しい。
0707デフォルトの名無しさんNGNG
>>705

★クライアントサイド最強の Delphi に物申す★
http://piza2.2ch.net/test/read.cgi/tech/1001442200/

 こっちのスレが適当と思います
0708705NGNG
>>707
THANX
0709デフォルトの名無しさんNGNG
無料になったBorland Delphi 6 Personal

初めて使った方々、 使い勝手とかどうですか?
0710デフォルトの名無しさんNGNG
>>706
なんかそれやられたらPascalらしくないなあ。
C#にいっちゃうかも俺。(W
0711デフォルトの名無しさんNGNG
括弧はいやだ。なぜって?

try
〜
finally
〜
end;

が、

try{
〜
} finally {
〜
}
になってしまうではないか。

try{

finally

}
だと変だろ。
finally が finally begin の意味もかねているから、
begin が存在せず end だけがあっても違和感がないのだ。

括弧なんぞ利用すると、try , finally .. end に複数
命令を書くときはいつでも括弧でくくらなきゃいかん。
0712デフォルトの名無しさんNGNG
物事には始めと終わりがあるのです。
0713デフォルトの名無しさんNGNG
Delphi系スレッドだれかロギングしてる人いる?
0714>713NGNG
google
0715名無しヘタぐらまさんNGNG
>>691
Delphiを選んだ理由.当時はまだC++Builderはなかった(笑)から.
私は元々仕事でもBASICを使っていたので
Cにこだわる理由はなかったのです.
「C++以外はなじめない」
とか
「C++でないといやだー」
「多重継承マンセー」

というのでなければ
Delphiのほうが良いのではないかと.
VBの実行とほぼ同じ感覚でコンパイルが終わってしまうのは驚異的.

>>698
全く同感.コンポーネントにして標準装備してくれればいいのにね.
結局自分でフォルダ選択コンポを作りました.
(まだバグ有りですが)
ちなみにフリーのフォルダ選択コンポがあったとおもいましたが
あれはフォルダの初期指定,出来たかなぁ..
0716デフォルトの名無しさんNGNG
>701
とりあえず、実行できました。

ParentにCanvasを持った何か指定しないと表示できないようです?
0717698NGNG
いろいろ意見レスどうもです。
やっぱり、そー思ってる人はいるんだ。
自分だけかと思った(^^;。
まだ始めたばかりなんで。つーか、無料にしたってのはやはり
大きいなぁ。スゲーぜ>ボー
無料じゃなかったら絶対関心持たなかったもんな。
>>715
コンポーネント自作っスか!スゴイっスね!
なかなか難しいこってす。ハイ。
0718通りすがりNGNG
>ちなみにフリーのフォルダ選択コンポがあったとおもいましたが
>あれはフォルダの初期指定,出来たかなぁ..

できたよ。
0719_NGNG
SHBrowseForFolderでいいじゃん
0720デフォルトの名無しさんNGNG
>>698
これの拡張子をpasに変えてusesすればよろしい。
http://www.geocities.com/Milano/1121/dat/browsefolder.txt
0721デフォルトの名無しさんNGNG
アドレス間違えた。
http://www.geocities.co.jp/Milano/1121/dat/browsefolder.txt
0722デフォルトの名無しさんNGNG
>716
bitbltでハンドル使えば転送できるよ
0723( ´∀`)さんNGNG
>フォルダ選択コンポ
m&i氏のサイトにたしかそんなコンポがあった記憶が…
0724デフォルトの名無しさんNGNG
だめ、もうわからん。
目的に似たことができるコンポーネント拾って使います。
0725DelフサギコNGNG
         _________
  ∧,,∧   /
 ミ,,゚Д゚彡<  これ、フサも使っています
  ミつ つ  \
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U

FolderDialog
http://member.nifty.ne.jp/m-and-i/tips/tipspage.htm
0726698NGNG
結局、既存のコンポーネントを組み合わせて作っちゃいました<フォルダ選択
やり方のtipsの分かりやすいページがあったんで。
感謝感謝だなぁ<解説ページ
まだまだ分からんこと多いけど(^^;。

>>724
何が分からんのか、どのスレの人か書かんと分からんよ(笑
0727698NGNG
訂正。「レス」だ…。
0728デフォルトの名無しさんNGNG
FormのBorderStyleをbsNoneにしたときのフォームの移動でなんかいい方法ありませんか?
0729デフォルトの名無しさんNGNG
ボーダーが無いウィンドウをマウスで移動したいのなら、どこを
つかんだら移動状態にしたいのかを考えてみなされ。
0730デフォルトの名無しさんNGNG
フォームをつかんだらってことで、OnMouseDown、Upで
UpのときにTopとLeft変えて移動させてみたんですけど
ボーダーをつかんで移動させるようにはいかないのかな?と・・・
0731デフォルトの名無しさんNGNG
「タイトルバー ない ウィンドウ 移動」 by google

これ?
http://nt.sakura.ne.jp/~miwaki/progtips/dialog/movedlgbymouse.shtml
0732デフォルトの名無しさんNGNG
ニフより
if ssLeft in Shift then
begin
ReleaseCapture;
SendMessage(Handle, WM_SYSCOMMAND, SC_MOVE or 2, MakeLong(X, Y));
end;
をOnDownへ (ただし、上にはみ出さない?)
0733デフォルトの名無しさんNGNG
ニフチってまだ人いるの?
0734デフォルトの名無しさんNGNG
ニフ、まだまだいるよ。
FDELPHIもまだ結構書き込みあるよ。
あそこは優しい人が多いね。
0735デフォルトの名無しさんNGNG
>>728
「D6が無料になったんで勉強しだした者」なんですけど(^^;、
不定形リージョンについて解説してるページで解決できそーだと思うんですが、
どーでしょう?

※ここのスレって、どういう時にsage進行にしてるの?
0736DelフサギコNGNG
|   |  |     |  | |
|  |゜⌒/..| \ | ゜|
゜ ⌒// ..| ゜ \  ゜  |
| / / | | |ヽ゜ \⌒゜ |
| . ̄ ̄ ̄ ̄|| ̄ ̄ ̄ ̄
 |  ∧ ∧||   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|   ミ,,゚Д゚彡 < ずぶぬれた。寒い!
゜ | ミ∪ Φ  \______________
 | | .ミ ,, ミ   |   |
___.U..U____     ゜


http://www.borland.co.jp/qanda/delphi/d0002348.html

だけどこれだとForm上にコントロールがあるとダメなので

例えばPanel1を押して動かしたいのなら

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
begin
 if (Msg.hwnd = Panel1.Handle)
  and (Msg.message = WM_LBUTTONDOWN) then
 begin
  SendMessage(Self.Handle, WM_SYSCOMMAND, SC_MOVE or 2, 0);
  Handled := True;
 end;
end;

このようにしてもいいかも。
でも>>732さんの方法の方がもっともよさそう。

SendMessageをPanel1.Handleとしても面白い。

>>735
気ままにsage進行
0737DelフサギコNGNG
 ∩ ∩
 ミ ゙''゙〜
 ミ∧,,∧  /
 ミ,,゚Д゚彡 < >>730、Formのボーダー?
 U U   \そりは難しい・・・・・・
0738デフォルトの名無しさんNGNG
WM_NCLBUTTONDOWNひっかければいいと思われ
0739デフォルトの名無しさんNGNG
>※ここのスレって、どういう時にsage進行にしてるの?
会話が成立している間はsage
話し相手が欲しければage
0740デフォルトの名無しさんNGNG
基本的な質問ですみません。
宣言した関数を別のオブジェクトで呼び出すにはどうすればいいですか?
0741デフォルトの名無しさんNGNG
>>740
??
議論対象になりうる具体例きぼん
0742デフォルトの名無しさんNGNG
>>740
interface 〜 implementation の間で定義した関数類は
その xx.pas のファイル名を uses すると 使う事が出来ます
0743デフォルトの名無しさんNGNG
procedure TForm1.Button1Click(Sender: TObject);
var
moji:string;
begin
moji:='aiueo';
label1.Caption:= moji;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
moji :string;
begin
label1.Caption:= moji;
button1をクリックした後に同じ関数のmojiを使っているButton2を
クリックしても結果が表示されないのですが・・
0744デフォルトの名無しさんNGNG
>>743
ネタですか?
0745デフォルトの名無しさんNGNG
>>743 名前が同じでも メソッド内部に書かれた変数同士は独立です
メソッドの外に書くか、こういう場合は
クラスに書きましょう

付属のサンプルコードを良く見てみましょう
0746デフォルトの名無しさんNGNG
疑問1

>>743 のコードを見る限り、moji は関数ではない。
変数の事を、単に「関数」と呼び間違えただけなのか、それとも
関数を使おうとして、間違ったコードを書いてしまっただけなのか。

743 のコードが正しいならば、moji をグローバル変数にすれば
良いだけの話ではないか?
0747デフォルトの名無しさんNGNG
>>746
グローバル変数ですか?
N88-BASICしかやったことの無い自分は昨日
Delphiの無償版を入手したばかりで・・
ありがとうございました。
0748デフォルトの名無しさんNGNG
>>747 いや、だから クラスのメンバーに書きなさいって
  というかまず、Delphi6\demos の下にある DPRを順に開いてみては
色々試してみては?
0749デフォルトの名無しさんNGNG
コードの一番上の変数宣言で出来ました。
>>748 ありがとうございます(__)
0750デフォルトの名無しさんNGNG
タブ型のメモ帳やブラウザなんかをつくるには
TTabControlを使ってるのだと思うが
やっぱりページごとの内容を配列で保存してるのかな?
0751デフォルトの名無しさんNGNG
TMemoのインスタンスをタブ毎に生成して
TTabControl.Tabs.Objectsに対応するメモを代入しておく
0752デフォルトの名無しさんNGNG
>751
なるほど。
その場合、タブが1,2,3とあって2を閉じた場合うまくいきますか?
0753デフォルトの名無しさんNGNG
2を閉じる直前に
(TTabControl.Tabs.Objects[1] as TMemo).Freeする
インスタンスの管理はTTabControlが負うってことにしとけばいいよ
0754デフォルトの名無しさんNGNG
>753
その方法でやってみます
どうもありがとうございました
0755デフォルトの名無しさんNGNG
ネット対戦のゲームつくりたいんですけどTClientSocketとTServerSocketをつかえばいいんですよね。
ヘルプはリンク切れ、グーグルはヒットせず……。
すいませんがTClientSocket等の基本的な使い方を教えてください。お願いします。
ひょっとして4800円のパッケージ版には説明書いてます?
0756デフォルトの名無しさんNGNG
>>755
ソケットとか TCP/IP の知識もってるの?

ないんなら DirectX つかえ
0757デフォルトの名無しさんNGNG
昨日のTTabControlの続きです。

・ TMemoの親にTTabControlを指定して後処理をまかせる
・ タブを増やすときと減らすときにTabIndexに気を付ける(−1にならないように)
・ 同様にタブの数を0にしないように
・ 切り替え時(OnChange)にTabIndex以外のVisibleをFalseに

と、いった感じに作ってみました。


そこで、新しくタブを増やすときに
procedure TForm1.Button1Click(Sender: TObject);
var
Memo1: TMemo;
begin
 :
 : タブ生成(Create)
 :
TabControl1.Tabs.Objects[TabControl1.Tabs.Count-1]:=Memo1;

としたのですが、これで問題ないでしょうか?
0758デフォルトの名無しさんNGNG
Memo1 := TMemo.Create(TabControl1);
TabControl1.Tabs.AddObject('newtab', Memo1);
0759デフォルトの名無しさんNGNG
>>755
正直、コンポーネント(のヘルプ)に頼る必要性はないというか、
それ以前にソケットを意識せずにまともなもん作れんから注意ね。
0760デフォルトの名無しさんNGNG
>>756
>>759
TCP/IPとソケットですね。そっちから勉強してみます。
サンプルとかあればすぐにできるかなぁと、ちょっと甘かったようです。
ゲームならやはりDirectXなんですね。
でもDelphiXがDelphi6に対応してない…と思ったら方法がありました。
http://turbo.gamedev.net/delphixd6.asp

どうもありがとうございました。
0761デフォルトの名無しさんNGNG
あのぅ・・・、StringGridのスクロールバーがいつも同じ長さで
マックみたいに使いにくいのですが
あの長さをIEとか普通のアプリみたいに動的にするには
どうすればいいんですか?
それともできないのでしか?
0762デフォルトの名無しさんNGNG
>>761
Mac でも、サムの幅は変更できるぞ?というか今はほとんどそうだが。
0763デフォルトの名無しさんNGNG
>>761
そういやそれオレも欲しいでし(藁
0764デフォルトの名無しさんNGNG
>758
なるほど、そういうやり方がありましたか。
0765DelフサギコNGNG
         _________
  ∧,,∧   / >>761 普通はできません。
 ミ,,゚Д゚彡<  前から挑戦しているのだけど上手に作れないの。
  ミつ つ  \ 簡単に実現するならStringGridのScrollBarの真上に
〜ミ  ミ.     ̄TScrollBarを配置して値を設定する方法がいい。
  U U

だから、TScrollBar側からStringGridフックしたり
する必要があったり、いろいろなのね。

一応、ソースを置いておきます。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=28


いまなら標準スクロールバーの挙動がわかったから
TScrollBarなど使わずに
StringGrid付属のスクロールバーをコントロールできるかもなあ。

Halbow氏のページを見て勉強したら
俺よりうまく作れるかもね。
0766デフォルトの名無しさんNGNG
Kylix で C の system の代用になるものって
あるのでしょうか?
C++ Builder からの移植でそこでつまってしまって...

Pascalって TurboPascal 6.0 以来..(^^;
0767デフォルトの名無しさんNGNG
>>766
Libc.System は?
0768デフォルトの名無しさんNGNG
>>767

おかげさまで通りました。
ありがとうございます。
0769デルファイの名無しさんNGNG
ところで、クラスで定義した関数群は、Create でインスタンスが生成されると言うことですが、
同じソース内のクラスで定義していない関数や変数はどうなんでしょう。
Create しなくても、インスタンスは存在してるんでしょうか。
また、複数、Create すると複数のインスタンスが出来るものと思っていますが、その場合は、
クラス定義外の関数は一つだけのインスタンスなんでしょうか。

Delphi を使い出してそこそこ長いんですが、そこんところがちょっと分かっていません。
0770デフォルトの名無しさんNGNG
>ところで、クラスで定義した関数群は、Create でインスタンスが生成されると言うことですが、
「クラスで定義した関数群」をメソッドだと仮定すると、「Create でインスタンスが生成される」
ことはありません。Create以前に存在し、複数のインスタンスを生成してもメソッドは1つしか
存在しません。

>同じソース内のクラスで定義していない関数や変数はどうなんでしょう。
>Create しなくても、インスタンスは存在してるんでしょうか。
意味がわからない。

>クラス定義外の関数は一つだけのインスタンスなんでしょうか。
「クラス定義外の関数」をメソッドではない手続き・関数だと仮定すると、コードは一つしか存在
しません。

コードとデータの違いがわかってないようですね。
通常、コードは実行時に変更されることはないので、複数持つ必要はありません。

自分の言葉でなくObjectPascal言語ガイドに定義されてる用語を使ってもらえると
理解しやすいんだけど。
0771デルファイの名無しさんNGNG
どうも意味不明なようですんません。。。

そしたら、コンポーネントなどの類も、uses で記述した時点でそのオブジェクトは
実行ファイルの中に組み込まれる、と言うことでいいんでしょうか?
0772デフォルトの名無しさんNGNG
>>771
D5で「アプリケーションの新規作成」で出来たプロジェクトをコンパイル。
実行ファイルサイズ 292,864 バイト
上のプロジェクトのuses節にmath、contnrs、mmsystemを追加してコンパイル。
実行ファイルサイズ 292,864 バイト

不要なユニット(手続き・関数・クラス等が呼び出されていない)はリンクされない。
769とは別の話だと思う。
0773デルファイの名無しさんNGNG
すんません。。。説明が足りないですね。。。。

実は、今、コンポーネント作りにはまってるところでして、コンポーネント中の
クラス定義のメソッドの類は、Create する事で使えるようになるけども、
そのソース中のクラス定義外(グローバルな?)の関数は、そのまま使えるじゃないですか。

>不要なユニット(手続き・関数・クラス等が呼び出されていない)はリンクされない。

とのことですが、このクラス定義外の関数はどうなのでしょう。

1.uses に記述した時点でリンク
2.実際に使用した時点でリンク

のどちらなのでしょう。

また、interface 部で定義していない(つまりは他のソースでは利用できない)
クラス定義外の関数はどうなのでしょうか。
0774デフォルトの名無しさんNGNG
スマートリンク。って用語で調べるとよし。
0775デフォルトの名無しさんNGNG
>>773
お願いだから用語を ObjectPascal に準拠しておくれ。

「クラス定義のメソッド」と言わないで単に「メソッド」で通じる。
また 「クラス定義外の関数」と言わないで単に「関数」で通じる。
0776デフォルトの名無しさんNGNG
とても初心者スレの内容じゃないな。

>とのことですが、このクラス定義外の関数はどうなのでしょう。
>1.uses に記述した時点でリンク
>2.実際に使用した時点でリンク
そこまでは知らないんだけど、恐らく関数やクラス単位でなくユニット単位でリンクするか
どうか決めてると思うので2が正解じゃないかな。

>また、interface 部で定義していない(つまりは他のソースでは利用できない)
>クラス定義外の関数はどうなのでしょうか。
これも同じだと思う。例えばinterface部に定義されたクラス等を他ユニットが参照して
いればimplementation部もまるごとリンクされると思う。

interface部にクラスを定義、implementation部に関数を定義、他ユニットからそのクラスを
参照というプロジェクトを作る
(1)クラスから関数を呼び出してコンパイル。
(2)クラスから関数を呼び出さないでコンパイル。
この(1)と(2)で出来た実行ファイルのサイズを比べてみればわかりそうな。
0777デフォルトの名無しさんNGNG
>>773
IDE 上でコンパイルするとソースコードの左側に行単位でちっちゃな○が
出たりでなかったりするよね。

それはその行がリンクされたかどうかを示しています。
0778デルファイの名無しさんNGNG
>>各位。ご回答ありがとうございます。

リンクに関してはそうでしたね。使われた時点でリンクされるんですね。
#昔、アセンブラやってたのでそれは分かります・・・

なんかいつのまにやら、質問の方向が変わってしまったようで、改めてお願いいたします。

>>769 の質問に戻りますが・・・・
コンポーネントなどでは、Createでインスタンスが生成されますが、そのクラスに
登録されていない関数のインスタンスはどういうタイミングで生成されるんでしょうか。

1.最初からすでに(恒久的に?)存在している。
2.使用する時点で生成される??

で、ここで、uses された時点で生成されるのか?と思っていたんですが、使用されない
限りはリンクされないので関係ないですね。
#先の質問は無駄ではなかった・・・・

また、そのコンポーネントが複数生成された場合は、インスタンスも複数生成されますが、
そういう登録外の関数のインスタンスは一つだけなんでしょうか。
0779初級〜中級レベルの通りすがりNGNG
>>778
たとえば、こんなユニットがある。

unit Unit1;
interface
uses windows, classes;
type
TMyClass = class(TObject)
protected
procedure Method1;
public
constructor Create; override;
destructor Destroy; override;
end;
implementation

procedure NoClassMethod1;
begin
//クラスの外の関数の処理
end;
{ TMyClass }
constructor TMyClass.Create;
begin
inherited;
end;
destructor TMyClass.Destroy;
begin
inherited;
end;
procedure TMyClass.Method1;
begin
//処理1
end;
end.

んで、別のユニットからこのUnit1がusesされ、
TMyClassが使われているとする。
で、コンパイルしたとき
procedure NoClassMethod1;
がリンクされているか、という質問だと理解した。

答えは、リンクされない=exeには含まれない。
関数が使われていない以上、コンパイル時には無視される。

だが、だからといって何でもかんでもusesしたままにしておくのはオススメしない。
initializationなどで使われていると、usesしただけでリンクされてしまうからだ。
(もっともわかりやすい好例はformsユニットだと思われ。一気に300Kは増える。)

長文&多分スマソ。漏れの理解が間違ってたら突っ込み歓迎。
0780初級〜中級レベルの通りすがりNGNG
× >長文&多分スマソ。
         ↓
○ >長文&駄文スマソ。

本当に駄文でウトゥだ(;´Д`)
0781DelフサギコNGNG
  ∧∧  / ̄ ̄ ̄ ̄
  ミ゚Д゚ミ< 関数のインスタンスという言葉が変です。
〜ミUUミ  \____
  ∪∪

関数自体は処理がかかれているだけなので
コンパイル時に決まった値を
プログラム実行時、最初に確保されるに決まってるでしょう。

ただ、関数内でオブジェクトを生成するコードなどがあるばあい
または関数内で構造体を設定する場合などは
どうなるのでしょうね。

こういうときは関数内(で生成した)オブジェクトのインスタンスとか
いうような言い方がいいかと思います。

関数内ローカル変数/ローカルオブジェクトなどは呼び出された時に
確保されているのかな...

関数を出た瞬間、破棄されるなら何も気にすることはないと思います。
0782通りすがりNGNG
>>778
「登録外の関数」とかいう変な言葉を使ってるから分からなく
なるんじゃないの?ただの関数だよ。Cなどと同じく。
クラスに属する「関数」はメソッド。それだけ。

関数もメソッドも静的に存在してるはず、だが、それがいつメモリ上に
ロードされるかはコンパイラしか知らなくていい。
0783デフォルトの名無しさんNGNG
>>778
>コンポーネントなどでは、Createでインスタンスが生成されますが、そのクラスに
>登録されていない関数のインスタンスはどういうタイミングで生成されるんでしょうか。

関数のインスタンスってのが全然意味が分からないんだが。
「インスタンス」以外の言葉を使って説明してよ。

>>781
>コンパイル時に決まった値を
>プログラム実行時、最初に確保されるに決まってるでしょう。

これも意味が分からない。関数はあくまでもコード(CPU命令列)だよ。

>関数内ローカル変数/ローカルオブジェクトなどは呼び出された時に
>確保されているのかな...

関数内のローカル変数はスタックに取られますので、関数に突入した時点で
確保されます。スタックなので当然退出時に自動的に解放されます。

ローカルオブジェクトとは object 型? class 型の事だったら自分で
Freeメソッドを呼ばない限り解放されない。
0784デフォルトの名無しさんNGNG
関数を動的に作る事も当然可能です。
しかし Delphi内部で実際にそれをやっているのは
 MakeObjectInstance  だけです

これはしかし関数を作るというより、関数からメソッドを呼び出す為の
非常に小さなコードを作るだけです
0785デルファイの名無しさんNGNG
リロードしたら、いきなりこのスレ、行方不明になるんだもん・・・・・


>関数のインスタンスってのが全然意味が分からないんだが。

すみません。私自身、あんまし意味が分かっていないようで。

// ソース1
procedure hogeproc1;
procedure hogeproc2;

ThogeUnit = class(TForm)
   ;
   ;
   ;

がある時に、


// ソース2
var hoge1,hoge2:ThogeUnit;
begin
  hoge1:=ThogeUnit.Create(Self);
       //←hoge1 のインスタンス(?)が存在している
   
  hoge2:=ThogeUnit.Create(Self);
       //←hoge1 とhoge2 のインスタンス(?)が存在している
   
  hogeproc1;
   
  hoge2.free;
       //←hoge1 だけ。
  hoge1.free
       //←ない。
end;

あ、インスタンスって、実行時リソースのようなもの?実行オブジェクトはインスタンス
には含まれずに一つだけ?なのかな?
そしたら、非常に納得のいく結果なのだが・・・・

#勝手に納得すいません・・・・
0786(゚д゚)ウマーNGNG
(゚д゚)ウマー
0787デフォルトの名無しさんNGNG
>>785
なんか中途半端な用語の使い方だなぁ。

あなた自身の理解を確認するためにも
・実行時「リソース」ではない「リソース」とは何?
・実行「オブジェクト」では無い「オブジェクト」とは何?
0788デルファイの名無しさんNGNG
すみませんすみません。
私の理解が怪しいというのは、すでに暴露されているように十分に自覚しております・・・

今まで、漠然として、

hoge1:=ThogeUnit.Create(Self);

とすると、hoge1 に、Thogeunit のオブジェクトもリソース(と言うよりメモリだな)
もどこかからか(コレが重要)コピー/確保されるという理解でおりました。
で、それがインスタンスと称されると・・・

そうすっと、クラスに属してない procedure や function はどこから出てくるのかと、
不思議に思ったわけで。。。

すみませんすみません、こんなお馬鹿につきあっていただきまして、
ありがとうございます。。。
0789通りすがりNGNG
そんなに卑屈になるなよ
理解できたんなら良かったじゃないか
0790デフォルトの名無しさんNGNG
TRichEditにEM_AUTOURLDETECT送ってみたんですが
まったく反応なしです。URLを検出するにゃどうすりゃいいんでしょう?
0791ななしヘタぐらまNGNG
>>769
DelphiのPascal言語はクラスの存在しない従来のPascal言語の上位互換になっていて,
クラスとは無関係の単独の関数・手続きや変数を持たせることができます.
これらはプログラムが始まってから終わるまで存在しつづけています.

これらは“クラスではない”ので“クラスの実体(インスタンス)”という形では存在しないのです.
0792タダD6の名無しさんNGNG
タダになったから始めた者なんですが、
「パッケージ再構築の、実行時パッケージを使って構築」って
具体的にどーゆー意味なんでしょうか?
これにチェック入れるとexeのサイズが小さくなりますよね。
「使ってないモノはexeに入れないでコンパイルしますよ」って意味かと
思うんですが、違ってますか?どーもヘルプは読みづらい…。
読解力が無いとも思いますが…(^^;。
レスよろしくお願いします。
0793デフォルトの名無しさんNGNG
「実行時パッケージ」のヘルプを読むよろし
0794タダD6の名無しさん NGNG
>実際には,vcl と rtl は vcldb の Requires 節で参照されるため
>vcl と rtl は入力する必要がありませんこのため,vcl と rtl が
>[実行時パッケージ]編集ボックスに含まれているかどうかにかかわらず,
>アプリケーションは同じようにコンパイルされます。
サパーリ分がんね(藁
0795DelフサギコNGNG
   ∧,,∧   / ̄
@,,,ミ,,゚Д゚彡 < 自信ないんだけど
⊂,,,,,,,,,つつ.   \_

>これにチェック入れるとexeのサイズが小さくなりますよね。

VBみたいにランタイムが必要なモードになるのじゃないかな。
他のマシンに実行時パッケージ(パッケージ=DLLと考えてよし)
が入ってないと動かないexeかな。

チェック入れたことないからしらにゃい
0796タダD6の名無しさん ◆/ao0MelA NGNG
>>795
レスありがとうございます。
あ、「当たらずとも遠からず」ってとこでしょうか?
0797デフォルトの名無しさんNGNG
>>788 一言
>私の理解が怪しいというのは
わからないのならそれは構わない。誰でも通る道だから。それを理解しようと
質問してるわけでしょ?
質問するときは用語を統一してくれ。頭の中で考えている時は自分語でも
いいけど、他人に説明する時には一般的な用語に翻訳してほしい。コンポを
自作するレベルで用語をあわせられないなら先行きは暗い。

宿題:ObjectPascal言語ガイドを10回通し読み
0798デフォルトの名無しさんNGNG
>>796
使ってるモノもexeに入れないこともあるけどな。
0799デフォルトの名無しさんNGNG
>>797
この本が復刊されれば丁度いいのにねえ。
大き目の図書館探せばあるかも。
http://www.fukkan.com/vote.php3?no=4407
0800デフォルトの名無しさんNGNG
>>792-796
Delphiのバージョンアップを考えると、通常はチェックを入れないほうが無難だよ。

以前、ネットワークもMOもない環境へフロッピーで入れていたとき
フロッピー1枚に収めるためにパッケージを別にしたことがあったけど
Delphiのバージョンを上げてコンパイルすると動かなくなった。

新しいバージョンの同等のファイルを入れてやるとちゃんと動くようになったけど
必要なファイルの調べるのが少し面倒だった。

結局、MOが使えるようになったのでチェックは外したよ。
0801デフォルトの名無しさんNGNG
>>800みてふと思ったので押しつけTips。

UPX+(Lzh, Zip, RAR等のアーカイバ)は強力だよ。
単にEXEをLzh, Zip等で縮めただけより縮まる。
漏れ、回線が低速なので、EXEを公開する人はUPXと
他のアーカイバを併用してくれるとうれしい…
0802デフォルトの名無しさんNGNG
UPXって推奨なんスかねぇ?どーもうさんくさいんだよなぁ…失礼だけど(^^;。
あのそっけない配布元しか無いのかなぁ?
日本製は?
0803デフォルトの名無しさんNGNG
> 日本製は?

ハァ?
0804デフォルトの名無しさんNGNG
>>802
>和製
昔PC-98用に diet などがあったね。
0805デフォルトの名無しさんNGNG
>>803
いや、予想通りのレスでナニだけど(藁
「日本製の、似たようなのが無いかいな?」ってこと。
804さんは分かってんじゃん。
分かってくださいよー。2つで十分ですよー。
0806デフォルトの名無しさんNGNG
UPX、英語でしかもコマンドラインツール。
だが、こんなモノ
http://www.vector.co.jp/soft/win95/util/se139612.html
もある。
0807デフォルトの名無しさんNGNG
http://home1.infonia.ne.jp/~delphian/delphi/compo/applicat.html#AP0050
こんなものもある。
0808デフォルトの名無しさんNGNG
別に圧縮しなくていいから
ResHacker とかでリソース見られちゃうの防ぐ方法ってないですか?
0809デフォルトの名無しさんNGNG
>>808
別ファイルか暗号化(もしくは両方併用)したものにする。
やはり、そもそもリソース形式にしないのが手っ取り早いかな。
0810デフォルトの名無しさんNGNG
'を変数に代入したいんですけどどうすればいいですか?
s := ''';
なんてのはもちろんダメだったし……。
よろしくお願いします。
0811デフォルトの名無しさんNGNG
>>810
「'」を書きまくれば分かるよ(w
0812デフォルトの名無しさんNGNG
>>810
おしい。'を出すには、'x2書く。つまり、s := ''''
0813デフォルトの名無しさんNGNG
>>810
文字列がハッキリ分かるようにエディタの色設定をするといいよ
俺は背景に灰色を使ってる
0814デフォルトの名無しさんNGNG
>>813 追加
S:=''';
と
S:='''';
では ; の色が違うので判別できる
0815デフォルトの名無しさんNGNG
>>811->>814
なるほど、あと一個書けばよかったんですね(^^
これを機にエディタの色設定も凝ってみたいと思います。
ありがとうございました。
0816デフォルトの名無しさんNGNG
TListBoxのアイテム選択でマウスの右ボタンでも選択できるようにするには
どうしたらよいでしょうか?
0817DelフサギコNGNG
            ∫    _________
   ∧,,∧     ∬   /
   ミ,,゚Д゚彡っ━~  < これでいい?
_と~,,  ~,,,ノ_.  ∀   \
    ミ,,,,/~), │ ┷┳━   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ .じ'J ̄ ̄| ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄  ┻
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 if [ssRight] = Shift then
 begin
  ListBox1.Perform(WM_LBUTTONDOWN, MK_LBUTTON , Makelong(X, Y));
  ListBox1.Perform(WM_LBUTTONUP, MK_LBUTTON , Makelong(X, Y));
 end;
end;
0818デフォルトの名無しさんNGNG
シツモソ
TShellListViewで特定の拡張子のファイルだけ表示させるには
どうすればよかですか?
プロパティにフィルターはなかったし・・
0819デフォルトの名無しさんNGNG
>817
左と同じ動きになりました!
あとは、左右区別用フラグでもつけてと・・・
0820DelフサギコNGNG
   ∧∧   />>818
〜''ミ ゚Д゚ミ < どなたかが2chで解決されてましたよ。
"UU'UU"   \

//uses StrUtilsを追加
procedure TForm1.ShellListView1AddFolder(Sender: TObject;
AFolder: TShellFolder; var CanAdd: Boolean);
var
 Ext:string;
begin
 //フォルダは表示する
 if AFolder.IsFolder then Exit;

 Ext := ExtractFileExt( AFolder.PathName );
 CanAdd := AnsiMatchText( Ext, ['.jpg', '.jpeg', '.bmp' ] );
end;
これで、jpg/bmpファイルだけ表示
0821デフォルトの名無しさんNGNG
ありがとうございやす
でも単にその手続きを追加しただけではだめなのですね
追加だけではコンパイル通るのに実行はもとのまんまです
これいかに?
ヘタレですいません
0822デフォルトの名無しさんNGNG
>>821
ShellListViewのAddFolderイベントに割り当ててないとか?
0823デフォルトの名無しさんNGNG
いろいろいじってたらできました
イベントにせていしなきゃならんのね
アリガチョー
0824デフォルトの名無しさんNGNG
ActiveXをとりこんだコンポーネント使ってEXEを作ると、
出来たEXEには、そのDLLは入ってるの?それとも入ってないのかな?
どちらでしょーか?
うまく質問出来てるかな…。
0825デフォルトの名無しさんNGNG
一般に、Win標準ではないDLL、OCX等を使ったのなら、
EXEとは別にそのDLLを配布する必要があるかと。
0826824NGNG
>>825
ありがとうございます。やっぱり別途入手する必要(先方が)があるんですね。
0827デフォルトの名無しさんNGNG
memo(TStrings)にedit(String)を代入するには、
型の変換をどうすれば良いのでしょうか?
↓の場合はエラーが出てしまいます。
memo1.Lines:=StrToTStrings(edit1.text)
0828デフォルトの名無しさんNGNG
memo1.lines.text := edit1.text;
0829デフォルトの名無しさんNGNG
>>828
ありがとうございます。
ただ、この逆をするとエラーがでるのですが・・
edit1.Text.Lines := Memo1.Lines;
0830ド素人NGNG
ストリングの変数に入りますね。
var a:string;
begin
a:=edit1.Text;
label1.Caption:=a;
end;
ああ、ド素人の始めたばかりなのにレスしちゃった。てへ★
0831デフォルトの名無しさんNGNG
>829
まずあなたがやるべき事は、
エラーのヘルプを見る。
何というエラーが出ているのか書く。
0832デフォルトの名無しさんNGNG
>829
Edit1.TextはTStrings型じゃない。String。
TStringsには、直接代入するのは超初歩的ミス。

行を指定して代入するしかない。

Edit1.text:=Memo1.Lines[829が代入したい行];

文字列を全て代入したければ、
Edit1.Text:=Memo1.Lines.Text;

変数・クラスの違いを勉強し直したほうがいい。
ちなみに、TStrings同士でコピーするには、Assignを使うのが良いです。
後は、初心者本からもっと上の本を買って勉強しながらやりなさい。

初心者本にも書いてある内容だと思うが、初心者スレなので一応説明したぞ。
0833デフォルトの名無しさんNGNG
VBのではよく掲載してありますが、
Delphiでコモンダイアログから取得したフルパスから
ファイル名だけを抜き出すにはどうすればよいのでしょうか?
0834DelフサギコNGNG
| ExtractFileName
\____   ____
        \/
    ∧,,∧      V/
   ミ,,゚Д゚ミっ8<  ‖
__ (つ旦,,ノ _   ノ"ヽ
    .ミ,,,/~),   |  ミ ゚ー゚彡
 ̄ ̄ ̄ .し'J  ̄ ̄| ━┳━

  ニラ 茶 ノ オテイレ
0835ななしヘタぐらまNGNG
>>829
逆になっていませんよ〜.
逆はこうですよね.
edit1.text := memo1.lines.text;

ただし,memo1のテキストが2行以上になっていたり
1行でも最後で改行されていると
”・・”というゴミが入ってしまう.

>>830
始めたばかりであろうとなかろうと他人に教えるのは非常に良いことです.
それによって教える側も色々な意味で勉強になります.
0836ゆみNGNG
Delphaiのバージョンアップを考えているんですけど
今4を使っていて大学と同じ6にしたいんですけど
どのようにすればいいのか教えていただけませんか?
0837デフォルトの名無しさんNGNG
learning版ならダウンロード出来る。
雑誌のCDにも載っていた。
0838デフォルトの名無しさんNGNG
>>837 それはPeraon…ゴホッゴホッ
0839838NGNG
タイプミスしてた宇津氏。
Personalですな…
0840下っ端応援団員NGNG
押忍!失礼します!
DBLookupListBox で、選択されてるレコードがリストの
トップに表示されるようスクロールさせたいのですが、
どうやるでありますか? 押忍!
0841デフォルトの名無しさんNGNG
あげ
0842デフォルトの名無しさんNGNG
前にコンポーネントの削除の仕方を教わったんですけど、
どーも何か理解出来てないんでもう一度(^^;。
「空じゃないと削除させないよ」って言われるんですけど、
この「空」ってどういう意味ですかね?
自分でインストールしたコンポーネントの話です。
レスよろしくお願いします。
0843DelフサギコNGNG
   ∧,,∧   / ̄ >>842
\,,,,ミ,,゚Д゚彡 < パッケージ開いてプロジェクトから削除?
⊂,,,,,,,,,つつ.   \_

>「空じゃないと削除させないよ」って言われるんですけど、
なんの事でっしゃろ?
0844842NGNG
えっと、何か公開されているコンポーネントをインストールしたとして、
それが不要(私の場合は使えなかった)とします。
それを削除しようとすると、「空の場合だけ削除出来る」みたいなことを言われるんですよ。
うまく伝わらないでしょうか(^^;。
うーむ…。
0845デフォルトの名無しさんNGNG
エラーメッセージは正確に書き写しましょう
0846842NGNG
>>843
とりあえず、
>パッケージ開いてプロジェクトから削除?
を当たってみます。ありがとうございました。

>>845
そっスね。
0847デフォルトの名無しさんNGNG
まん丸のフォームやボタンは作れますか?
0848デフォルトの名無しさんNGNG
>>847
作れます。
0849848NGNG
・・・だけにしとこうかと思ったりもしたんだが、
やっぱり不親切かなぁと思わなくもなかったんで、帰ってきました。

CreateEllipticRegion で円形リージョン作って、
SetWindowRgn でフォームにセットすれば、丸いフォームになります。
ボタンも同様でいいけど、丸い枠は描かないといけないな。
0850DelフサギコNGNG
         ________
  ,ヘ ヘ   /タイミングはどこでやるのがいいか知りませんが
  ミ,,゚Д゚ミ<
  ミ,,,,,,,,ミノ \Delフサスレの184をどうぞ
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0851デフォルトの名無しさんNGNG
Delphi6のpersonal版を使っています。
OggVorbisエンコーダのフロントエンドを作ろうと思うのですが、
自分のプログラムから他のプログラムを起動する方法を教えてください。
0852デフォルトの名無しさんNGNG
function ExecuteFile(const FileName, Params, DefaultDir: string;
ShowCmd: Integer): THandle;

これ使えばヨシ。
意味が分からんと言われたらアレだから一応例を書くと

ExecuteFIle('c:\windows.notepad.exe','c:\windows','c:\windows\oreore.txt',SW_SHOW);
0853DelフサギコNGNG

  ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < ExecuteFileって、自作関数かな?
  ,;゙  ミ     \_____________
 ミ.  ミ
/゛゛゛゛

ShellExecuteでこんな感じにどぞ


uses ShellAPIを追加

TargetFileに該当ファイル名をフルパスで入れる
var
FileName, FilePath: String;
begin
FileName := ExtractFileName(TargetFile);
FilePath := ExtractFilePath(TargetFile);
ShellExecute( 0, 'open', PChar(FileName), nil, PChar(FilePath), SW_SHOW);
end;
0854DelフサギコNGNG
   ∧,,∧   / >>853 修正
\,,,,ミ,,゚Д゚彡 < CreateProcessの方がいいのかもしれません
⊂,,,,,,,,,つつ.   \ こんな感じでしょうか?

procedure ExecuteFile(ExeName, TargetFile: String);
var
 si: TStartupInfo;
 pi: TProcessInformation;
begin
 FillChar(si, Sizeof(TStartupInfo), 0);
 si.cb := Sizeof(TStartupInfo);

 CreateProcess(nil,PChar(ExeName +' '+ TargetFile),nil,nil,
        True,0,nil,nil,si,pi);

// 起動したプログラムの終了を待ちたい時はこの行を追加
// WaitForSingleObject(pi.hProcess, INFINITE);
end;
0855852NGNG
>854
FMXUtilsっていうライブラリを使ってるんです。
0856DelフサギコNGNG
         _________
  ∧,,∧   / >>855
 ミ;゚Д゚彡<  なな、なんかかっこよいですね
  ミつ つ  \ >>FMXUtils
〜ミ ,, ミ.     ̄
  ∪∪   
0857分かってもらえるかな?NGNG
begin
end
begin
end
begin
end.......
もうイヤになっちゃう(藁
0858デフォルトの名無しさんNGNG
ファイルを比較するという処理を単純に
TFileStreamを2つ使って、2つのファイルを交互に4バイトづつ読みとる
というようにしてみたのですが、やたら時間がかかります。
高速化する方法ないですかね
0859デフォルトの名無しさんNGNG
>>858
10KBつづ読む。
0860デフォルトの名無しさんNGNG
CreateMappedFileを使う。
0861858NGNG
>859
即レスありがとうございます。
10kB読み込ませるには配列へのポインタを渡すのですか?
0862858NGNG
>860
CreateMappedBmpですか?
0863デフォルトの名無しさんNGNG
CreateFileMappingでしたごめんなさい
0864858NGNG
>863
CreateFileMappingでマッピングしてMapViewOfFileで読みとるということで
よいのでしょうか?もう少し調べてみます。
0865デフォルトの名無しさんNGNG
>>861
ごめん冗談。
でも4バイトずつだと読み書きがバッファリングされてるにせよ
ディスクアクセス、関数呼び出し、比較回数が多い分遅くなる。

前の二つは FileMapping で解消できるとして、
比較そのものはアルゴリズムの範疇だね。
テキストだったら比較アルゴリズムが色々あるよ。
(↓は C で書いてあるけど)
http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/
0866858NGNG
FileMappingの使い方を勉強して
アルゴリズムを変えることを検討、実践してみます。

どうもありがとうございました。
0867デフォルトの名無しさんNGNG
>>855
FmxUtilsをDel6でコンパイルできないのは自分だけだろうか・・・
(Constsが変わっているだのCopyFileのoverloadが曖昧と言われるだので)

それと、ExecuteFileの中身はShellExecuteだね
0868デフォルトの名無しさんNGNG
stringlistをpablicで使うことはできないのですか?
良く分からないからpablicにstringsの変数を作って、
それにstringlistのデータを一行タブコード一行……の形に変えて入れて、
procedureごとに、stringsからstringlistに戻しているのですが、
もっと良い方法がありそうな気がして。
0869デフォルトの名無しさんNGNG
Delスレで「アルゴリズム」はNGワードです(藁
0870デフォルトの名無しさんNGNG
質問の意味がよくわからないsage
0871デフォルトの名無しさんNGNG
pablicじゃ、コンパイルが通らないだRO!
0872デフォルトの名無しさんNGNG
>>868
pablic -> public。pas ファイル一から手書き100回の刑。
それはいいとして、差し支えない程度にコードを載せてみれ。
0873868NGNG
ぐ!googleでpablicが通ったので自信が無いまま書いてみれば・・・
質問の目的は、publicレベルで文字列リストを宣言したいのです。
二つ以上のprocedureでstringlistを使うのですが、
中身のデータは同じなので、stringlistを共有したいのです。
0874デフォルトの名無しさんNGNG
>>868
コンストラクタで
 FStringList := TStringList.Create;
し、デストラクタで
 FStringList.Free;
しないと駄目。
0875デフォルトの名無しさんNGNG
TStringList.Textも見れ。
0876デフォルトの名無しさんNGNG
>>873
クラスを作ってそのフィールドにすればいいのではなく?
その procedure 群は グローバルじゃないとダメなのかな。
0877868NGNG
コンストラクタ、デストラクタ始めて知りました。
これで、楽にできると思います。多謝
0878デフォルトの名無しさんNGNG
おせーてください
サンプルのShellListViewで選択したファイル名の取得はどうすればよいですか?
ItemとかSelectedとかDetailsとかいじってみたがだめでした
ソース見たけどどのぷろばてーか関数を使うのかよくわからんかった
ものすごく単純なことだと思いますがよろしくご指導のほどお願い
ヘタレでスマソ
0879デフォルトの名無しさんNGNG
ttp://www.torry.net/vcl/filedrv/filedrvbrowsers/ftree.zip
これってDelphi6で使えないのかな?
コンポ登録は出来るけどコンポ貼り付けてコンパイルすると
エラーになるYO
0880デフォルトの名無しさんNGNG
delphiて本あまりないよねえ
0881847NGNG
訊き方間違えてごめんなさい。
出来るようになりました。
ありがとうご
0882デフォルトの名無しさんNGNG
すみません。質問なのですが、
Delphi6でコンパイルしようとすると
「[致命的エラー] ShlObj.pas(8): ファイル 'OLE2.dcu' が見つかりません]
と表示されます。
Delphi6を起動してフォームしかない時にコンパイルしてこのエラーが出ます。
なぜでしょう?
0883デフォルトの名無しさんNGNG
>>880
んだねぇ。
6で無料版出来たんだし、増えてもいいのに。
0884 NGNG
>>878
shellListView1.SelectedFolder.PathName

>>882
環境オプションのライブラリで、$(DELPHI)\Lib
が抜けてるのかもよ
0885882NGNG
>>884
レスどうもです。
とりあえず環境オプションの方はちゃんと書いてありました。
それでとりあえず、Sourceフォルダの中からOle2.pasをLibにコピーして
コンポーネントのパッケージのインストールの設定の
「実行時パッケージを使って構築」をチェックして何とか使えるようになったのですが
この方法で問題とかないですかね?
0886デフォルトの名無しさんNGNG
Delphi 6 で作成したアプリを Windows XP で起動させても、
Luna スタイルが適用されず、一部が古いスタイルのままです。
Luna スタイルにする方法はありますか?
Delphi のバージョンアップ待ちでしょうか。
0887デフォルトの名無しさんNGNG
>>886
それは VC で作っても同じだが。
manifest ファイルを作ってリソースに追加。

なお、Delphi6 Update1 は必須。
0888デフォルトの名無しさんNGNG
>>880
最近クソな技術本が多すぎるから一見そう見えるが
実は一つの会社が出してる製品でこれだけ出ているのは
多い方じゃないか?バージョンアップの方が早すぎ。特に海外で
出てる書籍は分量が多いので翻訳作業だけで半年かかりそう。

ところでせっかく雑誌に試用版や無料版つけるならついでに購入券
も付けて書店やコンビニのカウンターで支払い済ませば数日後自宅
に製品が届くとかすればもっと売れそうな気がするのだが・・・・
言語製品じゃ無理か?
0889デフォルトの名無しさんNGNG
begin〜endってのやめてほしい(条件分岐で自分で書いててワケワカメ)。
「:」とか「;」も、どーにかしてほしい。
ヘルプも、もすこしどーにかならんもんか。
サンプル、説明無さすぎ。

無料でもらったくせに、要望出すとこんなもんか。
タダだから、文句言えないけど。素人だし。
0890デフォルトの名無しさんNGNG
begin, endなんて表面の問題でしかないし、慣れればいいだけ。
{, }のほうが奇怪だ、ともいえるよな。

しかしmanifest...Del6Up1でもListViewが死ぬ。
comctrls.pas修正技はbpl分離には使えん。Up2はまだか(;´д`)。
0891デフォルトの名無しさんNGNG
>>889
気に入らないなら他の言語やれば?
0892デフォルトの名無しさんNGNG
試しに言語の歴史を辿ってみてください。
begin endを使う言語がいかに多いかわかります。

C++ Builderってソフトを選ばないあなたが不思議です。
0893デフォルトの名無しさんNGNG
>>890
英語版,日本語版?どっち使ってる?
0894デフォルトの名無しさんNGNG
仕様にどうこういっても仕方ないだろうが
ダウンロードする前によく調べんかい
0895デフォルトの名無しさんNGNG
>>889
Begin, Endは元々が良くも悪くもPascalだからどうしようもないよ。
C++Builder使うのはどう?
0896デフォルトの名無しさんNGNG
俺は>889が「Delphiあればあんなソフトやこんなソフトが作れてウハウハだぜ」と
思いつつダウンロードしたはいいが、まともにプログラムなどしたこともなく
いきなり作れるためしもなく、気に入らない目に付いたところを上げただけだと思われる。
だからたぶん、BorlandC++Compiler使っても同じ文句、いや、それ以上の文句を言う。
文字列変数がないとか。あと、角度とか。
0897デフォルトの名無しさんNGNG
まーた、どこにでもいる、自分の頭が悪いことを認められず、、
使っているツールに責任転嫁している馬鹿がでた。

begin〜end の使い方すら調べられない程度の頭なんだから、
プログラムなんか辞めた方がいいよ。プログラムする前に
勉強しなきゃいけないことがいくらでもあるはずだ。

馬鹿につきあっている方も馬鹿だな。こういうことも
ネットワーク資源の無駄使いだ。ってことに気が付け。

そもそも彼は Delphi に不満があるのではなく、自分の
考えたとおりにおもちゃが動かなかったから泣き叫んでいる
ガキでしかない。ガキに理屈が通るはずもあるまい?

泣いていれば、次の新しいおもちゃが手にはいると
思っているんだよ。
0898デフォルトの名無しさんNGNG
ではどっちもどっちという事でよろしいですね?
0899デフォルトの名無しさんNGNG
>>897
Copyright(C) by pcode
0900ガキNGNG
大人の身勝手な論理だ!
0901デフォルトの名無しさんNGNG
>>897
>馬鹿につきあっている方も馬鹿だな。こういうことも
>ネットワーク資源の無駄使いだ。ってことに気が付け。
みんなこう思ってるからあえて書かなかっただけ
0902889 NGNG
ありゃ。思わぬ反響。
つーか「無料でもらったくせに、要望出すとこんなもんか。」の一文が
読めねーかな?
アホ?「要望」って分からんのかな?「ここがもっと○○だったら
もっといいかな?」ってことだよ。
理解できた?面白いな。こんなに反響があるとは思わなかったよ。
しかも、アホみたいに「文句あんなら使うなよ」ってヤツが。
「要望」と「文句」の区別(書いてあるにも関わらず)が付かないなんて…。
あ・ほ♥
って、書いてやると、今度は何て返すかな?
0903デフォルトの名無しさんNGNG
>>902
もっと落ち着いた日本語を書きましょう。
昨今の若者の乱れた日本語は嘆かわしいばかりです。
0904デフォルトの名無しさんNGNG
889は数年後自分の恥を知ることでしょう。
0905デフォルトの名無しさんNGNG
>>902

あんたそれ、

「Vicual C++で使える言語がC++じゃなきゃいいのに。」

って言ってるのとイコール。
0906デフォルトの名無しさんNGNG
私も889さんの意見に賛成です。
0907デフォルトの名無しさんNGNG
>>889
>「:」とか「;」も、どーにかしてほしい。
の意味が分からん。
0908デフォルトの名無しさんNGNG
>>907

代入演算子(:=)とelseの直前は";"が付かないことかな?

「なんで一行一行行末に";"を付けるんだ!BASICにはいらなかったぞ!」

とかなら最悪。
0909デフォルトの名無しさんNGNG
HSPじゃねーの? (ププッ
0910ななしヘタぐらま ◆B18Bks.Y NGNG
>>889
あれ,会社でレス入れたつもりが入ってない(泣).

条件分岐の記述のわかりやすさ,間違いにくさの点では
Pascal, C/C++ より QuickBASICやVBのほうが優れていると思う.

Pascal は基本的に複数の文のブロックは
なんでもかんでも begin 〜 end じゃないですか.
このために,わかっているだけでふたつの問題が起きます.

1.end を入れ忘れたときに発見しづらい.
2.case 文で行数が長くなってしまう.

1.

end を1か所入れ忘れるとコンパイラはず〜っと後ろのほうで
『endがないぞゴルァ』エラーを返してきてしまいます.
(しばしば最後の行がエラーだったりする)
begin 〜 end が何重にもなっていたり
さらにそれが何十行にもなっていると
どこに間違いがあるのか結構迷います.

QB/VBなら End If,End Select,End Sub といった具合に
ブロックの終わりの名前が区別されているので
わかりやすいしエラーが起きてもすぐに問題点がわかります.

問題のある行がエラーの起きた行の近くに存在するからです.

2.

case 文で条件ごとにブロックを使うと1か所につき2行多くなります.
例を書いたら改行が多すぎると叱られたので省きますが
10か所使ったら20行の差が出るのです.
0911デフォルトの名無しさんNGNG
>>910

} を1か所入れ忘れるとコンパイラはず〜っと後ろのほうで
『}がないぞゴルァ』エラーを返してきてしまいます.
(しばしば最後の行がエラーだったりする)
{ 〜 } が何重にもなっていたり
さらにそれが何十行にもなっていると
どこに間違いがあるのか結構迷います.

それ、ブロックを作る言語すべてにいえることでは?
0912デフォルトの名無しさんNGNG
lispやschemeなんて括弧しかないぞ
0913デフォルトの名無しさんNGNG
ごめん。ミス。
0914デフォルトの名無しさんNGNG
取りあえず、

「Pascal開発環境で改善してほしいところはPascalです。」

という「言語的田舎者発言」は二度と吐かないように。

どうしても実現したかったらBorlandじゃなくてもっとすごい学会にでも論文を提出しなさいな。
ここでこれだけ笑われたんです。学会に行けば一流のコメディアンになれますよ。
0915デフォルトの名無しさんNGNG
>>914
んーでも、自分の顔が気に入らなくて整形する人もいるんだし。
Borland も ノーマルの Pascal じゃ Delphi に使えないから Object Pascal 作ったんだし。
889 は自分の気に入るような言語を自作するといいんじゃないかな。
0916ななしヘタぐらま ◆B18Bks.Y NGNG
>>889
ヘルプがタコでサンプル,説明が無さすぎというのには同意.だと思うんだけど,
Delphi使いに限って賛同の声ってないんだよなぁ.
いつまでたっても改善されない理由はここにあるのかも.

すでにプログラミング経験が豊富な人間なら
すでにやりたいことが明確なので
これはこうすればいいのかな?って自分で進めていけるけど
プログラミング初心者だとサンプルが無いっていう時点で
そこで止まっちゃうんだよな.

>>894
タダなんだからとりあえず落として使ってみるのはアリだと思うんだけどな.
それにボーランドのサイトを見たって言語仕様のことなんてわからないし
情報を探すといってもこれはこれでスキルを要することだと思う.
プログラミング経験がそれなりにあれば
何をどうやって探せばよいかは見当がつくと思いますけど.
0917デフォルトの名無しさんNGNG
>>916

なれれば使い安いですよ。
例も十分。
0918ななしヘタぐらま ◆B18Bks.Y NGNG
>>911
そのとおりです.C/C++にもいえることです.
だからなかなかわかってもらえないのでしょうけど.
「そんなものだろう」「なんでそんなことに不満を感じるの?」みたいな.

でも“この部分で”もっと優れた言語を知っている人間から言えば
「なんじゃこりゃ!?」「不便」ってなるわけです.
QBは何年も使っていましたがこの手の問題で迷った経験はないのです.

>>915
プログラミング初心者とかだったらどうするのですか?
プログラムを書く人間はみんな技術者だという発想に問題があると思うのですが….
0919デフォルトの名無しさんNGNG
>>918
初心者だったら気に入る文法の言語を使えばいいだけじゃないカナ。

文法的な不具合は慣れで解消されるよ。
Windows も慣れれば使いやすいのと同じで。
それが良いわけではないけども。
0920デフォルトの名無しさんNGNG
初心者そっちのけの雑談はフサスレでやるよろし
そろそろ次スレの季節だね
0921デフォルトの名無しさんNGNG
>>918
あなたが単に最初の方に使ってQBに慣れたからでしょ。

QBは知らないがVBだと
・改行毎に"_"つける言語仕様が嫌でござる。
・callつけないと引数指定に括弧付けられない仕様は不便
 なんとかしてくれ。

って言われてまともに相手できますか?

それにPascalの上位互換なのだから
どうしようもないって事はわかるでしょう?
>>914禿げ同

サンプルが少ないとかHELPが不便というのは
MSに比して開発資金も人員も乏しいBorlandに求めるのは酷だと
みんな知っているから、FDelphiかDelphiMLかDelphi広場に逝ってよし・
0922デフォルトの名無しさんNGNG
>>915
プログラマ初心者なら初心者なりの使い方がある。
我慢して使うか、他の言語に乗り換えるか、だ。
そこまでして、Delphiを使うおうとする気が知れない。
VCL使いたければ、C++Builderもあるし。
0923デフォルトの名無しさんNGNG
そういや、俺もQBからの移行者だったんだが(数年前の話しな)、
GUIアプリ作りやすい、OOやりやすいぜマンセーって感じで、
あまり気にならなかったな。慣れるのは苦労したけどイヤじゃなかった。
0924922=923NGNG
ああ、それと、Delphi使うならDelphiだけ読めても駄目だぜ。
なんだかんだいって資料は少ないからさ。
C/C++読めた方(とりあえず書けなくても)が圧倒的に有利だよ。
だって、そこら変からコード拾って来れるし、回りのプログラマにも聞けるし。
0925デフォルトの名無しさんNGNG
初心者だからこそDelphiが向いているんだがなあ。
C++はできることが多すぎて戸惑う。
0926デフォルトの名無しさんNGNG
>>910
>1.end を入れ忘れたときに発見しづらい.
ブロックを先に書いてから中身を書けばそういうミスは殆ど無くなるよ。
C系でも同じ事だけどね。
>QB/VBなら End If,End Select,End Sub といった具合に
Pascalの次にヴィルトが作ったModula-2は必ず制御文はブロック終端
が必要になるんだっけ?
俺は長くなるブロックには次のようなコメント付けるよ。
end; { while }
0927デフォルトの名無しさんNGNG
1、begin〜end であって {} でない事について
  これは、C/JAVAのように {} に比べて1行に深いネストを書くのを防いで
  くれています。 一見 Cスタイルの方が楽そうでも、グループ開発になる
  と、インデントがどうたらこうたらコーデングスタイルが喧しくて、結局手間
  の元。

  それに、深いネストを書いてしまいそうになったら関数内関数にするとか
 構造化するように自然に促してくれるメリットもありますしね


2、End If,End Case,End Procudure でない事について
  これがそんなに便利だと思えば、926さんのようにご自分でルールを作って
  それを検証するツールを作っておけばすむ事でしょう
  もともと深いネストを書かなければそもそも混乱の原因にならないと思います 
0928ななしヘタぐらま ◆B18Bks.Y NGNG
>>921
QBは慣れるも何も最初から迷わなかったのです.
DelphiやCは慣れてもQBのレベルにはならなかった.

これは慣れればある程度解決する問題ですし,
Pascalの上位互換のだからというのも理解してるつもりなので,
ボーランドは言語仕様を変えるべきだとは全く思っていません.

Delphiはこの問題点を無視できるほど良いツールだと思いますし,
実際,Delphiを初めて以来,他のツールは一切使っていなかったりします.
0929ななしヘタぐらま ◆B18Bks.Y NGNG
>>889
話を脱線させてしまったので改めて建設的なレスを.

●セミコロン(;)について
文の終わりを示す記号.
BASICのように改行をもって文の終わりとすることもできるのですが
この場合はどんなに長い文でもひとつの行に入れなければなりません.
PascalやCでは『;』を文の終わりと解釈するので,
文を複数の行に分けてソースコードを見やすくすることができるのです.

(のちにBASICも行末に『_』を入れることで
 ひとつの文を2行以上にかけるようになったようです.
 VBは統合環境でも使えるのかな?)

● begin 〜 end について
詳しくは知らないのですが恐らくもともと
if (条件) then (文) ;
という文法があって then 以後に2つ以上の文を入れるためのキーワードとして
begin 〜 end が導入されたのではないかと.
case の各条件に続く文も恐らく同じだと思います.

これについては近代のBASICのほうがスッキリしていると思いますが
基本的な文法を変えちゃうとも今まで世界中の人が作ってきた
たくさんのソースコードがむだになってしまいますので
そう簡単には変えられないのです.
(Pascalは日本ではマイナーですが世界ではそうでもない)

●コロン(:)について
英語ではある事柄について,場合分けして説明するときに使うことがあります.
英語圏の方にはわかりやすいけど日本人にはさっぱりなのですが.
でも今の話でコロンを使う意味はわかっていただけたのではないかと.
0930デフォルトの名無しさんNGNG
C系では「;」は文の終わり
Pascalでは「;」は文の区切り
こればっかりはどうしようもないので慣れてください。
いろんな言語があります。慣れりゃどうってことないです。

Delphiに関しては豊富な標準コンポや豊富なオンラインコンポ、
スキルアップしやすい環境など、
初期の違和感を補って余りある利点があります。
もうちょっと頑張ってその段階まで到達しましょう。
0931922NGNG
>>929
930も書いてるけど微妙に意味が違うので、詳しくはヘルプの
「Object Pascal 言語ガイド」の「Object Pascal の文法」ってところを
見とけばよいよ。

でもなあ、俺もif then の後に<文>はあまりすぎじゃないね。
perlとかBASICの if then <文リスト>が好きだね。
0932デフォルトの名無しさんNGNG
まあ字面が気に入らなきゃC#かRubyでもやるこった
0933もういいだろNGNG
バカに説法したがるやつの集まりかよここは
正直、うんざり
0934デフォルトの名無しさんNGNG
構文を自分で作りたい奴にはlisp/schemeを薦める。
括弧だらけになるがな。
0935デフォルトの名無しさんNGNG
if(((((i = 0))))) then

Pascalも負けませんよ♪
0936DelフサギコNGNG
   ∧,,∧   / ̄
\,,,,ミ,,゚Д゚彡 < ここみて参考にしよーう
⊂,,,,,,,,,つつ.   \_

http://member.nifty.ne.jp/h_kova/procomp.htm

Pascal使いがC++/Java/VBを使うときも
いろいろ感じたりしますね。

それぞれいろいろあって、おもしろーいんじゃないですか?

関係ないけど、関数型言語って難しいです。
0937デフォルトの名無しさんNGNG
あと5分でダウソ終わります…
0938DelフサギコNGNG
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < そういえば、俺もJBuilderダウソしなければ。
  UU"""" U U    \_______________
0939デフォルトの名無しさんNGNG
>関係ないけど、関数型言語って難しいです。
なんかいろんなものに手だしてるみたいだけど
全部撃沈してねーか?
DUnitの使い方はマスターしたのか?(藁
0940デフォルトの名無しさんNGNG
>>939
単に新ものずきなだけだったり・・・
「温故知新」って言葉の意味も考えてみようね。
0941DelフサギコNGNG
   ∧,,∧   /ばれたか。>新ものずき。
@,,,ミ,,゚Д゚彡 < いろいろやってたのしいよ。
⊂,,,,,,,,,つつ.   \

 DUnitはザセーツ(ヤバッ
0942_NGNG
バイナリファイルの一部(ヘッダ)部分だけを抜き出すにはどうすれば
良いのでしょうか?
0943デフォルトの名無しさんNGNG
>>941
ほんじゃ新しものずきのDelフサ君にここを教えてあげよう。
http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool.html
0944 NGNG
>>942
バイナリファイルのヘッダはバイナリファイルの数だけあります。
0945デフォルトの名無しさんNGNG
新規作成のダイアログってフォームだったんだね
0946 NGNG
DelphiがDelphiで作られている以上そうだろうね。
0947デフォルトの名無しさんNGNG
>>942
TFileStreamじゃな。
0948デフォルトの名無しさんNGNG
誰が私をポップアップしたかわかりますか?
0949デフォルトの名無しさんNGNG
ヘルプの TPopupMenu にのってますよ (^^
よく読めやゴルァ!
0950デフォルトの名無しさんNGNG
>>938
>そういえば、俺もJBuilderダウソしなければ。
JBuilderをDelphiで作ってくれれば、pro版買ってもいいかな。
今のJBuilderだと、Athlon 1.4GHz Mem512MB でも遅くてイライラするよ。
スクロールマウス対応してないし。
0951DelフサギコNGNG
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < (男と女は)スレ違い〜♪
  UU""" U U   \_______________

と、思うですが、

>スクロールマウス対応してないし。
JBWheelというアドインがあるかと…
ホイルマウスはピュアジャバが対応していないのちゃうかと、小一時間問い詰め…

あと、ブレットだか、ビュレットだかという
Java開発環境がDelphi製でどこか日本の会社が出していたような。
0952デフォルトの名無しさんNGNG
>あと、ブレットだか、ビュレットだかという
>Java開発環境がDelphi製でどこか日本の会社が出していたような。

google で探せども見つからず…
kylix でビルドして Linux 版とかいうのもあればいい鴨
0953DelフサギコNGNG
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < 俺の妄想だったかな。
  UU""" U U   \_______________
全然見つからない…
0954デフォルトの名無しさんNGNG
FireBirdにIBXで接続するISAPIアプリケーションを作っています。
IBDatabaseをひとつのクライアント(WEBブラウザ)
が開いてしまうと、他のクライアントが開けなくなってしまいます。
複数クライアントの同時接続はできないのでしょうか?
Win2000+Delphi6Pro+IIS5.0です。
0955デフォルトの名無しさんNGNG
著作権侵害で訴えられたんじゃなかったけ?
0956デフォルトの名無しさんNGNG
ほれ(紛らわしい社名だ)
http://www.saninc.co.jp/
俺はJBuilderでいいと思うが・・・
0957デフォルトの名無しさんNGNG
>>955
と思われそうなほどDelphiと酷似しているね…
これとBorlandの関係はどうなっているのかな?
0958デフォルトの名無しさんNGNG
Bluette

http://www.saninc.co.jp/

会社名は Sun そっくり。
開発環境は Delphi のパクリ
さすが韓国製。
0959デフォルトの名無しさんNGNG
ワラタ
ここまでパクるとなんだかすがすがしい。
0960デフォルトの名無しさんNGNG
ttp://www.saninc.co.jp/Bluette/Images/3.gif
0961デフォルトの名無しさんNGNG
ボーランドがうちの真似したニダ!
0962ハセヨ!NGNG
飛んでる人は何の意味ニダ?
0963リサイクラーNGNG
割り込みでお知らせ

一時期のお祭り騒ぎも収まったのでDelphiスレも統合していきましょう
分散してると下がりがちなので。

とりあえずこのスレは
Delphi相談室その2
http://pc.2ch.net/test/read.cgi/tech/995950803/l50
に移動しましょう。
次のスレ名はどうしましょ?

過去のスレは探して↓にまとめてみました。
http://pc.2ch.net/test/read.cgi/tech/1002469894/951-

Delphi Tech と Kylix相談室が見つからないんで誰か教えてください。
Googleのキャッシュでも避難所でもなんでもいいです。
0964デフォルトの名無しさんNGNG
Delphi Tech
1 名前: D使い 投稿日: 2000/10/04(水) 05:57

http://piza.2ch.net/tech/kako/970/970606624.html
0965デフォルトの名無しさんNGNG
kylix相談室
1 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/12/03(日) 20:02

http://piza.2ch.net/tech/kako/975/975841367.html

玄タン....
0966リサイクラーNGNG
あーGoogleで探せばよかったですねー
自分で言っといて忘れてました。
Thanxです。>>964-965
0967リサイクラーNGNG
え〜ちょっと考えていたのと違ったようです。
相談室スレは初心者用でスタートしたと思ったんですが
ほっておくとDelスレは際限なくレベルが上がっていくようで・・・
どう考えても初心者向けじゃないので、

初心者→このスレ(の後継)
初心者以外→相談室スレ
マターリ→フサスレ

な感じでいいですかね?
ん?すると今と変わらないのか・・・
0968デフォルトの名無しさんNGNG
いいんじゃないんかな
統合スレってことで
0969デフォルトの名無しさんNGNG
統合しますか。
0970デフォルトの名無しさんNGNG
 ∧ ∧
( ´∀`)( モナーのスレもよろしくモナー )
http://pc.2ch.net/test/read.cgi/tech/1003113413/
0971もったいないのでネタNGNG
pcharを、「ぴーちゃー」って読んだっていいじゃないか。
pcharを、「ぴーちゃー」って読んだっていいじゃないか。
0972デフォルトの名無しさんNGNG
>>971
そう読んでますが何か?
0973デフォルトの名無しさんNGNG
ピーキャラ♪ピーキャラ♪パッパパラパー♪
ピーキャラ♪ピーキャラ♪パッパパラパー♪
0974デフォルトの名無しさんNGNG
キャラ物系スレはランク・分類を乱すので廃止がよいな
0975デフォルトの名無しさんNGNG
Pet "Programming Pronunciation" Peeves
http://www.undu.com/Articles/991021a.html

によると、ピーケァーと読むべきなのか。
09761001NGNG
 
0977小室カバーすんな。曲書けバカ!NGNG
つーか結局「初心者」の次スレは
http://pc.2ch.net/test/read.cgi/tech/995950803/
なの?このスレも終わりそう…。
「初心者2」は立てると怒られるワケ?
0978デフォルトの名無しさんNGNG
休日のDelスレの下がりようといったら・・・
0979デフォルトの名無しさんNGNG
>977
立てていいよ。俺様が許可する
0980デフォルトの名無しさんNGNG
>977
現在Delphi関係のスレが3〜5あってその内1〜2スレしかまともに機能してないから
どのみち建てても書き込みがないと思われ
0981デフォルトの名無しさんNGNG
時期的に >>979 はMS厨の煽りのような気がするけどどう?
0982デフォルトの名無しさんNGNG
相談室スレとフサスレの2本立てで行きましょう。
過去スレ一覧のDelスレは書き込みが900超えのが多い。ネタスレは除いて。
0983デフォルトの名無しさんNGNG
(フサ)ギコがDelスレ私物化する前は
きっちり棲み分けできてたのにまったく迷惑なこった
0984デフォルトの名無しさんNGNG
>>983
それよりTechがMLウォッチスレになったのが痛い(藁
0985デフォルトの名無しさんNGNG
MLウォッチスレを別に作れば?
裏 ML として機能するでしょ。

「ギコがDelスレ私物化」とはねぇ。話題を作れないからといってねたむことはないだろう?
0986デフォルトの名無しさんNGNG
ウォッチはネトヲチ板かマ板で。
0987デフォルトの名無しさんNGNG
>>983 あれだけ活動的に動いた&動かしたんだから評価されてしかるべきだな。
0988デフォルトの名無しさんNGNG
>>985
どーみたって私物化だろ、ありゃ。(w
0989DelフサギコNGNG
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ;゚Д゚彡 < ありゃ、叩かれてる?
  UU""" U U   \_______________

いやあ、流星きれいっすね。

すいません、私物化しちゃって、
できれば、どこかの何かで貢献したいものですが…

貢献といえば、マ板off会でも、2chの存続とかで
例の閉鎖騒ぎの話題で結構、いろいろネタが出てまして
P2P2chの進捗などを報告(誰に?)しなけりゃいけないことになってます。
0990デフォルトの名無しさんNGNG
pcharに1足すと二文字目が出てきますか?
0991デフォルトの名無しさんNGNG
>>990
1Byte文字ならね。
2Byte文字なら先頭かケツか考えなきゃダメ。

で、結局初心者スレはこれで終了かな?
一応誘導になりそうな物張っとくか。

ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室
http://pc.2ch.net/test/read.cgi/tech/1003664165/

モナーの *やさしい* Delphi質問スレ
http://pc.2ch.net/test/read.cgi/tech/1003113413/

techは止めとく(w
0992デフォルトの名無しさんNGNG
Delphi相談室その2
http://pc.2ch.net/test/read.cgi/tech/995950803/l50
0993デフォルトの名無しさんNGNG
1000!!
0994デフォルトの名無しさんNGNG
1000
0995デフォルトの名無しさんNGNG
1000!!
0996デフォルトの名無しさんNGNG
さっさと取れよ(ワラ
09971000!!NGNG
1000!!
0998千と千尋の!NGNG
千と千尋の!
0999千住のオバサンNGNG
千住のオバサン
1000shigeNGNG
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。