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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
 (    ) .| Delモナーは時に私であり、時には別の人。
 | | |  | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 (__)_)  \_________________________

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

>>2-10あたりに関連情報あり
○過去スレ
○関連スレ
○Delphi製品情報
○関連リンク
○質問者へ
○ソース置き場案内
0002デフォルトの名無しさんNGNG
  _____________
 (つかえねぇ奴らだな。氏ね!!)
   ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   | ̄ ̄ ̄ ̄ ̄|             ___________
   | ∧_∧  |    ∧_∧   /
   | ( ´∀`)  |    (´∀` ) <オマエモ・・・オレモナー??
   | ( ???:bI ) .|    ( Id:??? )   \
   | | |  |  .|    | | |       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   | (__)_) .|     (_(__)
   . ̄ ̄ ̄ ̄ ̄

※偽者防止のため、IDは必ず出しましょう。
0003デフォルトの名無しさんNGNG
上の前スレ案内は間違い。スマソ。

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

■過去スレ

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

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

モナーの *やさしい* Delphi質問スレ Ver4(HTML化待ち)
http://pc.2ch.net/test/read.cgi/tech/1016467137/

モナーの *やさしい* Delphi質問スレ Ver3(HTML化待ち)
http://pc.2ch.net/test/read.cgi/tech/1014474727/

モナーの *やさしい* Delphi質問スレ Ver2(HTML化待ち)
http://pc.2ch.net/test/read.cgi/tech/1011649179/

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


0004デフォルトの名無しさんNGNG
■関連スレ
一番上が新しいスレです。書き込みは新しいスレに。

○ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室
Delphi や Borland に関する話題、雑談や質問をしながらマターリくつろごうや
�A http://pc.2ch.net/test/read.cgi/tech/1013298748/
�@ http://pc.2ch.net/test/read.cgi/tech/1003664165/ (HTML化待ち)
( ゚Д゚)ノ Delギコ猫のプログラミング相談室
DelphiやBorlandに関する雑談や質問しながらみなーで、くつろごうや
part4 http://pc.2ch.net/tech/kako/1002/10024/1002469894.html
part3 http://piza2.2ch.net/tech/kako/1001/10010/1001039863.html
part2 http://pc.2ch.net/tech/kako/999/999482946.html
part1 http://piza2.2ch.net/tech/kako/997/997348797.html

○Delphi相談室 現在その3
Delphi関連のTips Q&A はこちらです。
その3 http://pc.2ch.net/test/read.cgi/tech/1010153466/ (HTML化待ち)
その2 http://pc.2ch.net/tech/kako/995/995950803.html
その1 (逝ってしまったようです)
(続く)
0005デフォルトの名無しさんNGNG
■関連スレ(続き)

○***すれ立てるまでもない質問はここで***
どのスレッドに質問したらいいか、わからないときはここで質問してみよう。(略)
第13刷 http://pc.2ch.net/test/read.cgi/tech/1018752281/l50
第12刷 http://pc.2ch.net/test/read.cgi/tech/1016631412/ (HTML化待ち)
第11刷 http://pc.2ch.net/test/read.cgi/tech/1014478527/ (HTML化待ち)
第A刷 http://pc.2ch.net/test/read.cgi/tech/1012536901/ (HTML化待ち)
第9刷 http://pc.2ch.net/test/read.cgi/tech/1010673275/
第8刷 http://pc.2ch.net/test/read.cgi/tech/1008908052/ (HTML化待ち)
第6刷 http://pc.2ch.net/tech/kako/1004/10041/1004183881.html
第5刷 http://pc.2ch.net/tech/kako/1001/10019/1001998049.html
第4刷 http://pc.2ch.net/tech/kako/998/998403891.html
第3刷 http://piza2.2ch.net/tech/kako/993/993933402.html
第2刷 http://piza.2ch.net/tech/kako/990/990082077.html
第1刷 http://piza.2ch.net/tech/kako/975/975576060.html

○Pascal の初心者用の質問・相談所
コンソールのみ。GUI は扱いません。
http://pc.2ch.net/test/read.cgi/tech/1009903617/

○kylix相談室(閑散)
2 http://pc.2ch.net/test/read.cgi/tech/988815580/ (HTML化待ち)
1 (行方不明)

○Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/

○delphiで作られた有名ソフトって何がある?
delphi自身もdelphi?てか、今delphiやってる人へ希望を与えてやって下さい。
http://pc.2ch.net/test/read.cgi/tech/990056026/
0006デフォルトの名無しさんNGNG
■Delphi製品情報

○公式サイト
http://www.borland.co.jp/delphi/

○Delphi 6 Personal
無料でダウンロードできる。持っていない人はこれを機にやってみよう。
ダウンロードするファイルはは59MBあり、またサーバーが重いので注意。
使用者登録が必要。
http://www.borland.co.jp/delphi/personal/

○Delphi 6 アップデート・ダウンロードサービス
最新のアップデートは次の通り。
Personal: Update Pack 2 (2002/3/19)
Professional, Enterprise: Update Pack 2 + 追加アップデート (2002/3/29)
http://www.borland.co.jp/delphi/del6up.html
0007デフォルトの名無しさんNGNG
■関連リンク

ここに貼っておきました。
どんどん追加して構いません。

こちらへ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538

■質問者へ

○ここはDelphiのプログラミングに関する質問スレです。
スレ違いの質問は罵倒されるので、ほかのスレを探してください。

○厨房並みの初心者の質問はOKですが、厨房は質問するな。

○まずは自分で調べてみよう。回答にGoogleの検索結果を貼られないように。
Google http://www.google.com/intl/ja/
2ちゃんねる検索 http://2ken.net/
Delphi-ML検索 http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/search.cgi

0008デフォルトの名無しさんNGNG
■ソース置き場

このスレのソース置き場を作ってみました。
このスレに載せきれないソースはここへどうぞ。
○3000行までOKです。
○ソース書き込み時は等幅に設定してください。インデントが使えます。
○激しく長いソースは、同時にソースファイルを添付しておくと(゚Д゚)ウマーです。
○置くのはソースでなくても構いません。
ファイルのアップローダーとしてもどうぞ。

こちらへ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1017673221


以上。
0009デフォルトの名無しさんNGNG
最新情報とかは確認してません。
あしからず。
001099NGNG
-------風俗の総合商社・MTTどこでも-------

〇デリバリーヘルス〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●露出オナニーの会●アナル愛好会●痴漢痴女同好会●母乳人妻不倫の会
○楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
  http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/

0011デフォルトの名無しさんNGNG
っつ〜かダブってるよこのスレ。
0012デフォルトの名無しさんNGNG
↓こっちに合流する?
http://pc.2ch.net/test/read.cgi/tech/1021201697/l50
0013デフォルトの名無しさんNGNG
ていうか、まだこのスレには質問がないものね

>>1
せっかくで申し訳ないけど削除依頼してもいいかも
0014デフォルトの名無しさんNGNG
このスレたてたのDelモナーじゃないじゃん。
でもたててくれた心意気はよし。>>1

0015デフォルトの名無しさんNGNG
なんだと。このやろ。
0016デフォルトの名無しさんNGNG
>>15
2行目以下読めよ・・・。
0017デフォルトの名無しさんNGNG
重複スレがあるのでage
0018デフォルトの名無しさんNGNG
>>17
何やってんだか・・・
0019デフォルトの名無しさんNGNG
age
0020デフォルトの名無しさんNGNG
いまさらなんであげるんだか…

というわけでsage
0021デフォルトの名無しさんNGNG
初心者・中級者・上級者の3スレあればよい。
ここは初心者向けかな。

フサフサが中級、相談室が上級。という棲み分けはどうだろうか。
0022デフォルトの名無しさんNGNG
Ver.7も900超えてるし、このスレを再利用してVer.8にするか。

前スレ
モナーの *やさしい* Delphi質問スレ Ver.7
http://pc.2ch.net/test/read.cgi/tech/1021201697/l50
0023デフォルトの名無しさんNGNG
 pCharをファイルに書き込む際、
var
p: pChar;
f: file;
begin
(略)
BlockWrite(f, p, StrLen(p)+1);
(略)
end;
としているのですが、読みとり方が分かりません。
#0が出るまで1Byteずつ調べていかねばならないのですか?
0024デフォルトの名無しさんNGNG
>>23
ヌルターミネートなら当然そう。
それを避けるんだったら普通は文字列の前に長さを書く。
0025デフォルトの名無しさんNGNG
>>24
 ありがとうございます。
0026StringGridでNGNG
FAQにもなってる、StringGridの右寄せなんですが、OnDrawCellにサンプル
ソースを真似て書き込んでもどうもうまくいかないのです。
他の方のコンポーネントを導入しようとおもったんですが、Delphi5用とか
3用とかでうまく入れられません。
Delphi6用で動作する、右寄せ可能SringGridの定番ってありましたら、ご
教示願えないでしょうか?
0027デフォルトの名無しさんNGNG
>>26
D5用とかD3用とかのコンポでもソースがあれば、
D6に入れることはできる。
うまくいかないとすれば多分DsgnIntfまわりだと思うが、
その場合はusesのDsgnIntfをDesignIntfに書き変えてみ。
0028StringGridでNGNG
すみません。
あれから、この深夜まであちこちサイトを探したりしてたんですが、いまだ
うまくいかず。
Vectorでhttp://www.vector.co.jp/soft/win95/prog/se128144.html
を見つけたんですが、これに同梱してあるHELPファイルのインストール
方法でやってみてもうまくいかず…。
「通常は Delphi のインストールフォルダにある \Lib\dclusr40.dpk
(または\Lib\dclusr50.dpk)〜」って、Delphi6だと無い…
作者の方はDelphi4の環境しか無いようで、質問するのも気が引けるので
申し訳ありませんが、Delphi6の環境がある方、上記Vectorの奴か、
他にもいいコンポーネントがあれば、紹介願います。
P.S.
>27様。その域まで達してないです。すみません。
0029デフォルトの名無しさんNGNG
>>28
http://www.vector.co.jp/soft/win95/prog/se128144.html
を落としてみたが、SGridEx.pasがないので、Del6ではインストール
出来なかった。

他のを探すがよろしかろう。
0030デフォルトの名無しさんNGNG
というか このFAQでどう巧くゆかなかったの >>26
http://www.borland.co.jp/qanda/delphi/d0005044.html
0031デフォルトの名無しさんNGNG
1) FAQ をそのとおりにやってもうまくいかない
2) 他人のコンポーネントをつかおうとしてインストールできない

うーむ、普通は 30 さんのいうとおり、1)の問題を解決するべきだと思ふ

コードを示せば簡単に解決できるのに!
0032デフォルトの名無しさん NGNG
自作コンポをインストールしようとしているのですが、
「パッケージ C:\program files\borland\delphi5\Projects\Bpl\MyComponents.bpl を読み込めません。
システムに装着されたデバイスは動作していません。」
と出ます。
この、「システムに装着されたデバイスが動作してい」ないことと、
.bplファイルのインストールがどう関係するのか意味不明です。
当然Cドライブは生きていますし、
MyComponents.bplも読み取り専用ではありません。
尚、今回インストールしようとしたコンポーネントは、
TCustomControlを継承したもので、特別なことは何も実装していません。
強いて挙げればTCollection及びTCollectionItemを使っていることぐらいです。
データベースなどとも関係していません。
どなたか、正常にインストールする手立てをご教授ください。
宜しくお願いします。
0033デフォルトの名無しさんNGNG
某のサイトによると、del4はアップデートに失敗すると起動時にそのメッセージが出るらしい。
>>32のはdel5みたいだけど、もしかしたら関係あるかモナー。
http://www.borland.co.jp/delphi/devsupport/install/
003432NGNG
>>33
情報ありがとうございます。
僕も見ましたが、なんかこれじゃぁ再インストールするしかなさそうで・・・。
アップデートなど、IDEに影響するようなことは、
最近した覚えはありません。
引き続き、お願いします。
0035日付関数NGNG
タイトルバーに、日付を 2002/06/12 (木) とか出したいんですが、
VBみたいに書くと、Caption:=Format('yyyy/MM/dd(ddd)',Date)とかだと
思うのですが、Delphiでの正式な書き方はどうなるのでしょうか?
m(_ _)m
0036デフォルトの名無しさんNGNG
>>35
FormatじゃなくFormatDateTime
003736NGNG
DelphiのFormatの後ろに何も付かない方の関数は
VBのFormat関数よりもC言語のprintf系関数の書式に近い。

VBからの移植はFormatFloatかFormatDateTimeを使うべし。
0038日付関数NGNG
ありがとうございます。
関数が豊富なのはいいのですが、VB対応表みたいなのないかしら?
0039どこにも載ってないよ〜NGNG
FillRectなどでTRect型を要求されたとき、いつも

var
 Rect : TRect ;
begin
 Rect.Left := 100 ;
 Rect.Top := 100 ;
 Rect.Right := 200 ;
 Rect.Bottom:= 200 ;

って感じで変数を作ってひとつひとつ代入して使っているのですが、
もって一括で代入したりする方法ないですか?

Rect := ( 100, 100, 200, 200) ;

↑こんな感じ
004036NGNG
>>38
こちらで。
http://www.wwlnk.com/boheme/
http://member.nifty.ne.jp/deepforest/index.htm
0041デフォルトの名無しさんNGNG
>>39
ズバリ Rect 関数あるよ。
0042デフォルトの名無しさんNGNG
>>41
俺もCからDelphiに移ってきた当初は
構造体そのものを関数値で返せるんでびっくらこいた。
同様な関数にPointやBoundがあるな。
0043Delフサギコ ◆zE1iiRdQ NGNG
   ∧,,∧    /前から気になっていたんですがTRectって
  ミ,,゚Д゚彡 <  TopとBottom、及び、LeftとRIghtの値の大小が
   ミつ つ   \ 逆転してたりしても、正しく処理できるんだろうか??
 @ミ  ミ      
   ∪''∪ TRect系の処理を書くときは
       みんなそういうところ、注意しているのかな?
    
0044デフォルトの名無しさんNGNG
>>41
こ、これは・・・
ヘルプの例題で見かけてはいましたが、まさか関数だとは思ってませんでした(型キャストかなにかだと・・)

お手数かけました、すいませんでした・・・(汗
004539NGNG
名前入れ忘れました。44=39です。

>>43
いまさっき試して見たらちゃんと正しく処理されてましたよ
0046デフォルトの名無しさんNGNG
>>42 Cで構造体を返せないあなたにマジびっくらこいた。
0047デフォルトの名無しさんNGNG
>>43
ペイントソフトで矩形描くとき、必ず左上から右下に
ドラッグしろって指定されてたらイヤだろ?
0048デフォルトの名無しさんNGNG
関数値ってなんじゃらほい?
0049デフォルトの名無しさんNGNG
関数の戻り値でない?
0050デフォルトの名無しさんNGNG
返値?
0051デフォルトの名無しさんNGNG
びっくらこきまろ
0052日付関数NGNG
>>40 お気に入りに登録させて頂きました。m(_ _)m
0053デフォルトの名無しさんNGNG
>>46
ごめん、Cで構造体は引数でのポインタ渡ししか使った事ないもんで。
どうやるの?
#typedef struct (
int x;
int y;
) HOGE;

HOGE h;
h = getHoge;

の実装は?
0054デフォルトの名無しさんNGNG
>>53
>h = getHoge;

>の実装は?

この2行について説明求む。
0055デフォルトの名無しさんNGNG
>>54
ごめん。
h = getHoge(50, 100);
の関数getHogeの中身。
0056デフォルトの名無しさんNGNG
>>53 何がわからないの?
struct HOGE getHoge(int x, int y)
{
  HOGE Result;
  Result.x = x;
  Result.y = y;
  return Result;
}
0057デフォルトの名無しさんNGNG
>>42=53 本当にCをやってたのかと小一時間…ハァハァしたい
0058デフォルトの名無しさんNGNG
>>56も致命的だ。
0059デフォルトの名無しさんNGNG
>>58
訂正。
構造体宣言に見えたよ。。。、
0060デフォルトの名無しさんNGNG
ResultはgetHoge内のスタック領域に取られたローカル変数だよね。
関数を出ると破棄されるのでは?
メンバ単位のコピーが正常に行なわれるの?
006156NGNG
>>58, 59 いや、スマソ。確かに間違ってるとこある。C++やってるとstruct付けるの忘れる…
struct HOGE Result;
だな。
0062デフォルトの名無しさんNGNG
いや、#typedefしてるから合ってる。
0063デフォルトの名無しさんNGNG
>>60
ガタガタ言わずに試すのが吉。
メンバ単位とか言う前にsizeof分メモリコピーすれば住む話。
0064デフォルトの名無しさんNGNG
>>60 正常に行われる
>>62 Cは変数の宣言の前にもstructいるだろ。
0065デフォルトの名無しさんNGNG
そもそも「#typedef」て何という疑問
0066デフォルトの名無しさんNGNG
>>64
typedefしたらいりませんが?
0067デフォルトの名無しさんNGNG
ぐぁ・・・失礼
0068デフォルトの名無しさんNGNG
>>65
ごめん。C離れて永井もんで。
0069デフォルトの名無しさんNGNG
>>64
為になった。ありがとう。(ANSIのいつからなんだろう?)
0070デフォルトの名無しさんNGNG
>>69 昔はできなかったの?
0071デフォルトの名無しさんNGNG
BCC32でアセンブラのリスト出して確認した。
確かにメンバ単位のコピーは行なわれてる。

>>70
K&Rでは無かったような?


_getHoge proc near
?live1@0:
;
; HOGE getHoge(int x, int y)
;
push ebp
mov ebp,esp
add esp,-8
mov eax,dword ptr [ebp+8]
;
; {
; HOGE h;
; h.x = x;
;
?live1@16: ; EAX = return
@1:
mov edx,dword ptr [ebp+12]
mov dword ptr [ebp-8],edx
;
; h.y = y;
;
mov ecx,dword ptr [ebp+16]
mov dword ptr [ebp-4],ecx
;
; return h;
;
mov edx,dword ptr [ebp-8]
mov dword ptr [eax],edx
mov edx,dword ptr [ebp-4]
mov dword ptr [eax+4],edx
;
; }
;
0072デフォルトの名無しさんNGNG
「メンバ単位」のコピーの話だったのか。
でも、仮にメンバ単位のコピーでなくても構造体を返せるかどうかとは関係ないと思うけど…。
0073デフォルトの名無しさんNGNG
ちなみにPascalでは配列を関数値にできる。
多分>>42はその辺と勘違いしたのでは。

type
 THoge = array[0..9]of Integer;

function Hoge(i,j:Integer): THoge;
begin
 //省略
end;
0074デフォルトの名無しさんNGNG
海外のサイトから、コンポーネントらしきものをダウンロードしたのですが、
中身を見ると、
about.dfm
about.pas
config.dfm
config.pas
fmod.dll
main.dfm
main.pas
spectrum.pas
testbed.dpr

という内容でした。
fmodと言う、ogg形式のサウンドを再生できるプレーヤの
delphi版らしいのですが、これを自作のアプリに組み込む事は可能でしょうか?

コンポーネントのインストールがいまいちよくわかっておりません。
勉強できるサイトなどありましたらご教授頂ければ幸いです。

よろしくお願い致します。
0075デフォルトの名無しさんNGNG
>>74
    (゚д゚)  それ、ファイルが足りない気がするので、
   ~(  )− 本家からアーカイブを落としなおして再構築シル
    / >   (ちなみにプレーヤーのサンプル デシタ)
007674NGNG
どうも、*.dcuが足りないみたいなのですが、
配布されるんでしょうか??
結構探したのですが、見つかりません

本家は、ここです。
http://www.fmod.org/
0077デフォルトの名無しさんNGNG
>>76
    (゚д゚)  アーカイブの中にfmod.pasとfmoderror.pasがあるから、
   ~(  )− それらをサンプルプロジェクトに追加して再構築シル
    / >
0078デフォルトの名無しさんNGNG
 あるルーチンを実行すると、
そこから呼び出していない関数内でエラーが起こります。
 しかもエラーの起こる関数は毎回違っていて、
たまにエラーを出さずに強制終了されることもあります。
環境はDel4(ServicePack2,3)+WinMeなんですが、何か前例はありますか?
007974NGNG
出来ましたぁ〜(T-T
ありがとおございます。
いぢり倒します。

008074NGNG
sage忘れましたぁ(T-T
0081デフォルトの名無しさんNGNG
>>78
そのルーチンをステップ実行してみましょう
1、帰った直後で->スタックを壊した
2、どこかのメソッドで->イベントか仮想メソッドを壊した
0082デフォルトの名無しさんNGNG
DOSのコマンドを入力した結果を知りたいんだが、、、

たとえば、DOSで

ver

と入力すると、

Windows 〜〜〜〜

と結果が表示されるのだが、、、
それを変数の中に入れたい。

DOS窓はいちいち開かずにやりたいのだが・・・
0083デフォルトの名無しさんNGNG
>>82
無名パイプ(名前なしパイプ)を使いましょう

http://www.nifty.ne.jp/forum/fdelphi/samples/01014.html

ただ、途中でパイプが詰まるとやっかいかなあ
0084デフォルトの名無しさんNGNG
Perlで言う「crypt」を、Delphiでできませんか?
0085デフォルトの名無しさんNGNG
>>84 出来ますよ トリップ解析用に一時流行しましたね

方法はGNUからでも crypt.c を そしてボーランドからBCC32 を手に入れてコンパイルし
delphiから objファイルを呼び出せば良いだけです。

それが面倒なら DESCrypt+Delphi で検索してコンパイル済みのを手にいれるといいでしょう
0086デフォルトの名無しさんNGNG
ttp://www.torry.net/cryptstrong.htm
0087デフォルトの名無しさんNGNG
Delphiで株のチャート分析&予想をするソフトを作ろうとしています。

色々とネットを検索したらTeeChart?,Tchart等を使う方法やPaintBoxを
使っている人等がいて、何でトライしたら良いのかいまいち良く分かりません。

お薦めの方法、あるいは参考になるサイトやスレがありましたら教えてください。
今まで画像系の処理はした事ないので四苦八苦してます。
開発環境はD6パソ(自宅)&エンプラ(会社)です。
0088デフォルトの名無しさんNGNG
>>87
お好きな方法で。
0089デフォルトの名無しさんNGNG
誰も教えてくれない。鬱だ。相談室逝って来る。
0090デフォルトの名無しさんNGNG
>>89
複数やり方があって自分で自分にとってベストなやり方も見つけられい。
プログラマーってもっと高尚なお仕事。
0091デフォルトの名無しさんNGNG
>>90
高機能はいらないので、とっつきやすい簡単にできる方法を探してます。
0092デフォルトの名無しさんNGNG
>>87
折れなら、TImageを貼って自分で Image1.Canvas で書いてみる
再描画とか考えなくてもいいし駱駝ろ
0093デフォルトの名無しさんNGNG
ギコナビって、登録しないと巡回できなくなったのかよぉ・・・。
他のに移行しようと思うけど、どれが一番使いやすい?
009493NGNG
誤爆してしまった、ごめんなさい。
0095元号表示NGNG
Delphiに限らず、Excelとかでもなんですが、aaaという表示形式で、
平成とかになるのは、OSがやってくれてるんでしょうか?
つまり、平成の次の新元号になった場合、WindowsのファイルをUpdate
すれば、ExcelでもDelphiでも新元号を表示してくれるようになるんで
しょうか?
0096元号表示NGNG
すみません。gggでした。
0097デフォルトの名無しさんNGNG
質問があります。
現在テキストエディタを作っています。
プログラム終了時に、ファイルが変更されたか否かをチェックしたいのですが
どのような方法があるでしょうか?
メモ帳などでも編集したあと保存せずに閉じようとすると、「hogehogeを保存しますか?」
と、ダイアログが出ますよね? あれを実装したいと思っています。
009897NGNG
すいません、バージョン書き忘れました。
ウチのはDel5です。
0099デフォルトの名無しさんNGNG
>>97

TMemo や TRichEdit の Modified プロパティーを見れ
010097NGNG
>>99
ありがとうございます!解決しそうです。
すばやい対応ありがとうございました!
0101デフォルトの名無しさんNGNG
ツリービューでドラドロを行おうとしています。
OnMouseDown で、
TreeView.BeginDrag(False, 5);
を書いているのですが、マウスのボタンを押すとすぐにドラッグが
始まってしまいます。
TreeView以外のコンポーネントなら正常に動きます。(TPanelとか)
TreeViewの場合は何か必要なのでしょうか??

Windows2000 SP2 + IE6.0
Delphi6 + UP2
0102デフォルトの名無しさんNGNG
>>93
最近メンテされてないみたいだけど「かちゅーしゃ」がいいとおもう。
しかし、ここに誤爆するってこたー、Delphi使えるんだろ?ソース見て修正できないのか?
0103デフォルトの名無しさんNGNG

すみません、全角カタカナ+全角濁点の2文字を
全角カタカナ1文字に、しようとしています

サンプルを利用してつぎのソースを書いてみたのですが、置き換えられません、へんな部分を、御指摘いただけないでしょうか?

function ReplaceCharInString(S, FindStr, ReplaceStr: string): string;
var
I, L: Integer;
begin
Result := '';
L := Length(FindStr);
I := AnsiPos(FindStr, S);
while I <> 0 do begin
Result := Result + Copy(S, 1, I - 1) + ReplaceStr;
Delete(S, 1, I + L - 1);
I := AnsiPos(FindStr, S);
end;
Result := Result + S;
end;


function dakuonHenko(s: string): string;
var
dakuon,dakuten :array[1..29] of string;
moji1,moji2 :string;
i,j,k : integer;
begin
Result := ''; j := 1; k:= 1;
for i := 1 to 27 do begin
moji1 := 'ガギグゲゴザジズゼゾダヂツヅデドバパビピブプベペボポヴ';
moji2 := 'カ゛キ゛ク゛ケ゛コ゛サ゛シ゛ス゛セ゛ソ゛タ゛チ゛ツ゛テ゛
ト゛ハ゛ハ゜ヒ゛ヒ゜フ゛フ゜ヘ゛ヘ゜ホ゛ホ゜ウ゛';
dakuon[i] := copy(moji1,j,2);
dakuten[i] := copy(moji2,k,4);
Form1.Memo1.Lines.add('dakuon'+IntToStr(i) +'='+ dakuon[i]);
Form1.Memo1.Lines.add('dakuten'+IntToStr(i) +'='+ dakuten[i]);

j := j + 2 ; k := k + 4;
end;

for i := 1 to 27 do begin
ShowMessage(s+ ' '+dakuten[i]+' '+dakuon[i]);
Result := ReplaceCharInString(s,dakuten[i],dakuon[i]);
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var st :string;
begin

Memo1.Lines.Add(dakuonHenko(Edit1.Text));

end;

end.
0104103NGNG
Memo1.Lines.Add(ReplaceCharInString(s,'タ゛','ダ'));
とすると、'ダ'に変換されるのですが

ただ、次のように変数になると動かない。不思議。
Result := ReplaceCharInString(s,dakuten[i],dakuon[i]);
0105デフォルトの名無しさんNGNG
>>104
あの、質問なんだけど漢字を表現するには何バイトいるか知ってる?
0106抜粋NGNG
最強を誇るプログラミング言語「C」
Cはそのまま「シー」と発音します
CとC++はプログラマを目指す人には憧れであり、絶対に通らなければならない言語です
このC言語は、現在のプログラム言語の中ではもっとも強力な言語で
優れたアプリケーションのほとんどがC/C++で開発されています

では、そんなすごいプログラム言語「C」の特徴とはなんでしょう
当然、他のプログラム言語にはない優れた能力があるはずですよね。簡単に説明すると

プログラムの移植が比較的容易である
メモリやCPUなどを直接利用するプログラムに適している(OSやデバイスなど)
C言語プログラムの中でC++の関数や変数を利用可能
高速でコンパクトなプログラムを実現できる
といったところでしょうかね
う〜む、これまでインタプリンタ言語をやってきた人には夢のようなことです

さて、ここまで読んで「そんな優れたC言語のコンパイラってどうやって作られたの?」っと疑問に思いませんか?
コンパイラももちろんプログラムでできてますよね。ということは、なにかの言語から作られたということです
じつは、C言語のコンパイラはアセンブラという言語から作られたのです
最初に小さいCコンパイラがアセンブラで作られて、その後にC言語でC言語のコンパイラを作り上げてきたそうです
ICをICで作ってLSIになったような感じかもしれませんね(^^
0107デフォルトの名無しさんNGNG
>ICをICで作ってLSIになったような感じかもしれませんね(^^
(゚Д゚)ハァ?
0108デフォルトの名無しさんNGNG
>>106
まぁ、特に間違ってはいないけど、で?
0109diceNGNG
時間式(XX時YY分ZZ秒)から一日の経過時間割合を出す式わかりませんか?
Windows2000、Delphi2.0Developerです
0110デフォルトの名無しさんNGNG
109は荒らし
0111デフォルトの名無しさんNGNG
>>109
あっちで答えでてるは小学生以下の質問を繰り返すわたまらんな。
0112109NGNG
初めてなもんで。すみません>ALL
0113104NGNG
>>105
2バイトですよね。
0114デフォルトの名無しさんNGNG
>>112
初めてとかの問題じゃないと思うぞ。
小学生でもわかる質問は普通にウザイ。
おまえが幼稚園児なら、頭良すぎでウザイ。
0115デフォルトの名無しさんNGNG
>>113
dakuten[i],

これはdakutenのi文字目でしょうか?
それともdakutenのiバイト目でしょうか?
0116デフォルトの名無しさんNGNG
>>114
怒りながらも三行目で笑わせるあなたが素敵。
0117デフォルトの名無しさんNGNG
>>115
103のソースの一部で
var
dakuten:array[1..29] of string;
として
dakutenのi番目の、string変数です。
誤解を与えるかきかたですみません。
0118デフォルトの名無しさんNGNG
>>106
質問スレなのに
質問にも、回答にもなってなさそ。

これに対応する質問ってあった?
0119デフォルトの名無しさんNGNG
>>117
ANSIPosって2バイト対応?

まぁ、要所要所にShowMessageかませるかデバッガ使って書く変数の流れおってくダサイな。
0120デフォルトの名無しさんNGNG
>>118
ちょっと前にC言語は何から出来たんですか?と言うのがどこかのスレであったよ。
マシン語で書いたとか言う愉快な奴がいて散々叩かれてたから仕返しじゃない?
0121デフォルトの名無しさんNGNG
>103
ReplaceCharInStringって関数自前でつくってるけど
StringReplaceじゃだめなんすか?
0122デフォルトの名無しさんNGNG
>>106
面白すぎる。
で、インタプリンタって何?
0123デフォルトの名無しさんNGNG
>87
使いまわしとか考えるなら、コンポーネントつくるのがベスト。
といっても、どんなものつくっていいかわかんないときは92さんのほうほうで
Canvasに書き出してからTGraphicControlやTCustomConstrolから
派生させて自前のコンポつくったら、別のソフトを作っても簡単に表部分は移行できるとおもわれる。
0124デフォルトの名無しさんNGNG
DateTimePickerコントロールを、凹んだ状態ではなくて、
平らな状態で表示させたいのですが、
どうすればよいのでしょうか?
0125デフォルトの名無しさんNGNG
Bevel*あたりを変更かな?
0126デフォルトの名無しさんNGNG
124です。

Bevelをいろいろ変えてみたのですが、
見た目に変化がありませんでした・・・ 他になにかあるのでしょうか(T T)
0127ななしへたぐらま ◆B18Bks.Y NGNG
>103

> for i := 1 to 27 do begin
> ShowMessage(s+ ' '+dakuten[i]+' '+dakuon[i]);
> Result := ReplaceCharInString(s,dakuten[i],dakuon[i]); // これが間違い
> end;

『sの中のカ゛をガに置換して,その置換した文字列の中のキ゛をギに置換して…』

とやらなければならないところを

『sの中のカ゛をガに置換して,(その置換した文字列を放置して)sの中のキ゛をギに置換して…』

となってしまっています.
結果としてsの中のウ゛をヴに置換したものが戻り値になってしまうわけです.



ところでブレークポイントやステップ実行などのデバッグ機能はお使いですか?
こういうミスも見つけやすくなりますよん.
デバッグ用にメモコンポーネントに書き出したりShowMessageを使うのは
上の方法が使えないときだけでよいと思います.
0128デフォルトの名無しさんNGNG
手前MP3プレーヤーに、スペクトラムアナライザ
(音声出力に応じて16本ぐらいの棒がにょきにょきと伸縮する、アレ)
を実装したいのですが、良い方法は無いでしょうか?
MP3再生コンポーネントはMP3player(http://www.sams.co.jp/kei/mp3plyr/manual/manual.htm)
です。でも、これにはそういったイベントは無いみたいです。

みなさん、どうやって実装してるんだろう^^;
0129デフォルトの名無しさんNGNG
>>128
フーリエ変換でスペクトルを取得。
0130無責任だがNGNG
>>128
 イベントが無いので、ソースを弄るしかないかもしれませんね
 ただ、リンク先を見ると OnChangePositionイベントというのがあるようです
 これでEqualizer[Index: Integer]: Integer; というプロパティを見て表示すればいいのでは?

MP3からスペアナ表示をするには一般的に
1、MP3のエンコード情報を使う。
2、デコード結果から>>129さんのいうFFTを使う
3、デコード結果から2次帰還フィルターで分析
  (Qを無限大にする方法もある)
0131(ヒ)NGNG
>>93
>ギコナビって、登録しないと巡回できなくなったのかよぉ・・・

俺一人の判断で規制しているわけじゃない。って何度も書いているんだけどなあ。
0132デフォルトの名無しさんNGNG
音に同期して他のアプリからデータを取ろうとしているのですがうまくいきません。

あるアプリが処理を終わると音を鳴らしてtxtファイルに結果を出力して開いてくれます。

この、音が鳴った事に反応して、自動的に
1、音の検出
2、キー入力とマウスを一時的に無効化
3、開かれたファイルを探し出し、データをコピー
4、そのアプリの終了ボタンをクリック
5、自作アプリにコピーデータを表示
と言うことをやろうとしています。

5は出来るのですが、1〜4がうまくいきません。
1と2は全く分かりません。
3と4はハンドラの見つけ方が分かりません。
ハンドラさえ分かればそれをアクティブにするなり、終了ボタンにSendMessage出来るのですが。

どうかヒントだけでも結構ですのでご教授願います。
0133132NGNG
すみません、書き忘れていました。
開発環境はD6Proです。
0134デフォルトの名無しさんNGNG
>>133
たったそれだけのために音声解析するのはバカらしい。
0135132NGNG
>>134
音は音声ではないです。
あるwavファイルを毎回鳴らします。
なので、そのwavファイルが使われているかどうかを検出出来れば
と思っているのですがとっかかりさえ分からない状態です。
0136デフォルトの名無しさんNGNG
>>132
>あるアプリが処理を終わると音を鳴らして
>txtファイルに結果を出力して開いてくれます。
アプリがtxtファイルを作成・変更するのを検出したら?
0137132NGNG
>>136

その方法も考えたのですが、出力するデータが何も無い場合、
txtファイルは変更すらされません。
txtファイルの作成や、変更を監視していても
txtファイルは毎回閉じられるわけではないので、駄目なのです。

毎回アプリの終了ボタンを確実に押せればその方法も可能なのですが、
連続して音が鳴る場合があるので、その時はtxtファイルは開きっぱなしで
一部データが追加されたり、何も変更されなかったりします。

色々と考えたのですが、どうも音で監視するしかないみたいでして。
0138デフォルトの名無しさんNGNG
>>137
音声データの意味も理解してないのに無理。

プログラム呼び出し。30秒変化がなければタイムアウト。
0139デフォルトの名無しさんNGNG
音声出力を標準出力にリダイレクトしろ。
0140132NGNG
>>138
サウンドファイルが使われているかどうかを監視しようと思ったんだけど
無理なのかなあ。

>>139
標準出力にしたらどうなるのか意味が分からないので調べてみます。
0141デフォルトの名無しさんNGNG
>>139
出来るの?UNIXとかならともかく。
0142132NGNG
あれ?すみません誤解があるようですのでちょっと捕捉します。

>1、音の検出
はマイクで音を拾ってそれが希望の音かどうかを判断して・・・等という事を
やろうとしているのではないです。私のスキルではとてもできないですし。

毎回使われるサウンドファイルは決まっているので、そのサウンドファイルが
使用中かどうかを検出しようとしています。
0143デフォルトの名無しさんNGNG
対象のアプリケーションが音声ファイルを開こうとするのを
フック出来ないですかね?
0144132NGNG
>>143
はい、それを狙っているのですが、やりかたが分からないもので。
ヒントややり方だけでも結構ですのでどなたかよろしくお願いします。
0145デフォルトの名無しさんNGNG
>>131
今頃気が付く辺りからして、マメにホームページ見たりバージョンアップとかしてないんしょ。
それはそれとして、巡回はいらんけど「お気に入り」は絶対ほしいです、
昔は、それこそ巡回をお気に入り代わりに利用してたんですけど、今はとても不便に
なりました。(登録すりゃいいだけなんでしょうがね^^;)
あれなら、履歴リストの中身を前回終了時の状態でiniファイルにでも書き出して次回の
起動時に再表示させてくれてもいいけど。
0146デフォルトの名無しさんNGNG
>>144
WinSight32で該当アプリを監視してみたら?
音で判断なんて馬鹿げてると思うよ、終了のアクションが他にあるだろうに。
遠回りしているようにしか思えない。

因みに、そのアプリは何?一般には出てない物なの?
まさか、競馬関連か?(藁)
0147StringGridの現在行の取得NGNG
すみません。色々やっているのですが、どうしても出来ず、こんな深夜になってしまいました。
StringGridで、マウスクリックやカーソルキーで、セルを選択した場合の現在行を取得したい
のですが、OnSelectCellイベントで、Rowを取得しても選ぶ前の行の値になります。
今回選んだ行の値を取得するにはどうしたら良いのでしょうか?

(今日はもう寝ます…)
0148デフォルトの名無しさんNGNG
>>147 はぁ?
OnSelectCellのイベントの中でARowの値を参照したらモロに現在行になるだろ?
荒しか?
0149デフォルトの名無しさんNGNG
そういや少し前に株式の更新を知りたいからって画面を監視して更新があったら音を鳴らす
アプリを作ってるって奴がいたな。
もしかして、そういつが作ったアプリが鳴らす音を検出しようとしてるんじゃあるまいな?
0150132NGNG
>>146
それやりました。
と言うかずっとやってました。
どうしてもWinSightが掃き出す、膨大な量のデータの中から
該当データを取れなかったのです。
きちんとした使い方を学びたい・・・

そのアプリはアメリカの会社が出しているアメ株の取り引きソフトです。
画面には該当銘柄の値動きが表示されているので、それをHook出来れば
一番良いのですが、私には出来ませんでした。
このソフトは注文が約定するとピンポーンと音が鳴り詳細を表示してくれます。
持ち株の売り指し値の5セント上で空売りを注文していると音が連続して鳴って
両方の詳細がほぼ同時に表示される事もあるので。

どなたか良きアドバイスを。
0151デフォルトの名無しさんNGNG
>>150
という事はFindWindowとかEnumWindows で探してGetWindowTextで取得というのは
もうやってるわけね?
0152132NGNG
>>151
いえ、WinSightが掃き出した膨大なデータの中から該当ソフトのハンドラを
見つけられなかったのでやれませんでした。

WinSightの使い方をきちんと学ぶべきなのでしょうけど、FDELPHIや
DELPHI-MLの過去ログを検索しても無いですしお手上げ状態です。
0153デフォルトの名無しさんNGNG
最近のバージョンのヘルプって使いにくくないですか?
俺はVer. 2の形式が好きだった。
説明文の中にリンクがいっぱいあって、すぐに目的の所まで
行けた。プロパティとかも、一覧表示だったからスクロール
させなくても全部見えたし。
Ver. 6で元に戻るのでは、、と淡い期待を抱いていたけど、
やっぱだめか。。

ごめん、誰かに言いたくて。。
0154デフォルトの名無しさんNGNG
なのに言えなくて。。
0155デフォルトの名無しさんNGNG
>>132等
目的のウインドウをタイトルバーの文字から探す>FindWindow
見つかったウインドウの子ウインドウを列挙してシラミつぶす>EnumChildWindow

探すよりもフックかけるほうが初心者には難しいかと。
0156デフォルトの名無しさんNGNG
VCLとCLXの違いが ヘルプを何度読んでも理解できない自分は
逝ってしまったほうがよろしいですか?


と 書いてみるものの 実際のところ素でやさしいレスを期待しています
ごめんなさいごめんなさいごめんなさい
馬鹿な質問なのでしょうか。。。それすらわからない初心者です
0157156NGNG
。。。ごめんなさい
わかりました
開発者ガイドに思いっきり書いてありました
ヘルプにも軽く書いてありました

逝ってまいります
0158デフォルトの名無しさんNGNG
>>156
思いっきり厨な発言で申し訳ないけど、
【VCL】
delphiで利用するクラスライブラリ(コンポーネント)
コンパイル時にexeにリンクされるので、別途ランタイムを
添付する必要が無い。 
delphiで作成可能。

【CLX】
kylixで利用するクラスライブラリ(コンポーネント)
こちらは配布時にQtを添付する必要がある。
kylix・pro以上のdelphi で作成可能。
0159なんと!NGNG
>>148
あっ!そうなんですか。氷解です。一生懸命、悩んでました。
WEBでは、ArowとかがただのRowになっていたりして(Version違いだから???)
これは、何?状態でした。荒らしではありません。
早速出来ました。Thanksです。
0160デフォルトの名無しさんNGNG
ぐあー!GPLて何!?「フリーだけど、これ使うたらソース公開すれ!あと
GPLだって書きやがれ!」ってことなんか?
日本語にしる!
0161デフォルトの名無しさんNGNG
>>160
そんなもん。
0162160NGNG
>>161
そっかー。どうも腑に落ちないなー。好きになれん<GPL
0163デフォルトの名無しさんNGNG
>>160
具体的に何が腑に落ちないの?

つか、まぁ、とりあえずコレでも読んで
ttp://www.gnu.org/japan/gpl-2j-plain.txt
0164160NGNG
>>163
そのダラダラ長いのを読むのもイヤ(藁
0165デフォルトの名無しさんNGNG
GPLとは・・・

・ソースを公開しなくちゃいけない。
・GPLのソースを使って作られたソフトはGPLに従わなくちゃいけない。
・それ以外は何をやってもいい。

で良いでしょうか?
0166デフォルトの名無しさんNGNG
・イエローモンキーに著作権は存在しない

これ以外に重要
0167デフォルトの名無しさんNGNG
>>164
>そのダラダラ長いのを読むのもイヤ(藁
好き嫌いの前にお前生きてるだけで無駄に地球の酸素が消費される。
shine
0168デフォルトの名無しさんNGNG
お前生きてるだけで×
↓
お前が生きてるだけで○

日本語覚えてこい。ハゲ。
0169デフォルトの名無しさんNGNG
仲良くしなさいクズ>>167-168
0170デフォルトの名無しさんNGNG
>>152
WinSightは慣れが必要だから、取っつきにくいだろうね。英語だし。
該当ウィンドウとメッセージの監視方法は、

1.該当アプリ起動
2.WinSight起動
3.Spy→Follow Focusをクリック
4.該当アプリをアクティブにする
5.すると、WinSightのツリーが該当アプリのところへ移動する
6.FollowFocusのチェックをはずす
6.ツリー表示の見方は、例えばエクスプローラのウィンドウだと

Overlapped 000301EE {ExplorerWClass} Explorer.EXE (816,114)-(1678,750) "ローカルディスク(C:)"

必要なのは {ExplorerWClass}と"ローカルディスク(C:)"
前者はクラス名、後者はキャプション。両方ともFindWindow(Ex)で使用する。
これを基にしてFindWindowしてハンドルを取得し、
SendMessage(Handle, WM_SYSCOMMAND, SC_CLOSE, 0);
を送れば、該当アプリは終了できる。

7.該当ウィンドウのツリーを選択
8.View→Message Traceにチェック
9.Message→Selected Windowにチェック
10.Helpメニューの左側が「Start!」となっていたら、クリックすると
 メッセージのトレースが開始する。「Stop!」となっていたら、もう
 トレースが開始している。
11.下にメッセージがだーっと出てくるので、音を鳴らして根気よくメッセージを
 探っていく。WM_XXXXXというのがメッセージの名前。何を意味するかは、
 Win32.hlpを参照。
12.ただ、音を鳴らすメッセージが見つかっても、該当アプリで送受信されるから
 ブロードキャストされてない限り何もせずにキャッチすることは難しい。
 フックDLLを作らなきゃならないかな…フックしたくなければ、音が鳴るときに
 該当アプリに何か目に見える変化がないかよーく探して、その変化を
 FindWindow(Ex)で1秒おきにチェックする、みたいなことをしなきゃならんか。
0171デフォルトの名無しさんNGNG
>>127
ありがとう

なんか、捜し物のペンが、あきらめかけた頃に
目の前の書類の下から出てきた、みたいな心境。

すぐ目の前にあったのに気ずかないみたいな

いやあ、お恥ずかしい。

ブレークポイントや、ステップ実行は、使って無いです。
使い方について、よく分かってないもので、デバック
について解説してるWebも、みつからないもので。
0172132NGNG
>>155
見つかりました!
Delphi壁の穴と言う所を見つけてWinsightを見ながらいじったらきちんとハンドルを
取得出来ました。

しかし、出来たのはここまでで変更があった時にどこが変わるのか、どのような
トリガがかかっているのか等さっぱり分かりません。
どなたかヒントをください。
0173132NGNG
170さんも答えてくださってたんですね。取り込み忘れてました。
じっくり読ませていただきます。
読んだあとで再チャレンジしても駄目だったら再度発言します。

ありがとうございました。
0174デフォルトの名無しさんNGNG
GPLってかいつまんでいうとこんな感じ。


俺の物は皆の物
オマエの物も皆の物

っつー博愛ジャイアニズムみたいな感じ。
0175デフォルトの名無しさんNGNG
>>174
アフォだな。本質からわかってないじゃん。

すべての人がジャイアンですべての人がスネ夫になり得るんだ。
0176103NGNG
>>121 正直なところ StringReplace関数の存在を、知りませんでした。
0177デフォルトの名無しさんNGNG
>>174
GPL で自由になるのはソフトウェア。

つーか、GPL スレに移住しる!
火星にGPLの理想郷を!
http://pc.2ch.net/test/read.cgi/tech/1008813243/
0178デフォルトの名無しさんNGNG
ん?いや、だから、ソフトウェアの自由は誰のためかっていえば、皆のためじゃないのか?
少なくともGPLを使っている人々はそう思っているわけじゃないの?
0179デフォルトの名無しさんNGNG
>>178
うむ。
0180デフォルトの名無しさんNGNG
GPLが嫌って言うなら今すぐgcc使うのやめてもらおうかと。
ソラリンでも使ってなと。
0181デフォルトの名無しさんNGNG
>>172
そろそろ自分でなんとかする気にならんか?
0182132NGNG
>>181
すみません、馬鹿なもんで。
ただ、最初からソースくれくれ厨にはなりたくないので少しづつヒントください。

今、自分でフォームにLabelとタイマーだけ貼りつけて
毎秒、カウントアップするアプリを作って、それをフック出来ないか
試してます。

今はWinsiteで変更のメッセージは見つけられたのですが、どうやって
中身を覗くかが分からなくて色々と調べている状況です。
むつかしいっす。
0183181NGNG
>>182
馬鹿とかは問題でないと。しばらく試行錯誤してから帰ってくる手はとれんのかと。
そこそこヒントもらってみたいだし、と。
0184デフォルトの名無しさんNGNG
まとめ:
ヒントきぼんぬ→つまづく→ヒントキボンヌ→よくわからん→・・・
このように延々と繰り返しいては、最終的にソースくれくれ厨となんら変わらないのでは?
よく考えればわかるとこなので焦らず前進!
0185delphiに限ったことじゃないがNGNG
どうして平気でマルチポストすんのかねぇ?
誰って言うわけじゃないけど。
今もマルチ見てしまった…。
0186デフォルトの名無しさんNGNG
1.類似スレが多いから
2.頭悪いから
3.ド初心者だから

平日の昼頃に書き込んでから数十分書き込みがないと
アゲたり催促するのは2.か3.
0187185NGNG
関係無いから、これっきりにするけど…。
>>186
こないだ「ほぼ同じ時間にマルチ」がいた…。トホホ。
やっぱり答える側の気持ちになったら「アカン」ってことが子供でも分かると思うんだが…。
ま、答える側になんてほとんどならんけど(藁
0188デフォルトの名無しさんNGNG
TBitmapの内容にぼかし処理をしたいんですが、どうすればできますか?
0189デフォルトの名無しさんNGNG
>>188
TBitmap.ScanLine で直接操作。
0190仕様書無しさんNGNG
エクスプロ−ラ風コンポーネントでいいのがあったら
教えてください
(Delphian World以外)
0191デフォルトの名無しさんNGNG
>>190
最初から付いてるやつ。
0192鉄拐NGNG
そーいや、D6からなかエクスプローラの偽者みたいなコンポが付いてるなぁD5でもあったっけか?
でも、あれって居様に重いような気がするがきのせいかな?
0193デフォルトの名無しさんNGNG
>>189
ソース晒してください。
0194デフォルトの名無しさんNGNG
>>188
StretchDrawで1/8くらいに縮めてから、元の大きさにStretchDrawし直せば
モザイクがかかるぞ。
ブラーとかかけたいんだったら、画像処理スレにでも行って勉強した方が早い。
0195お好み焼き食ってるのでNGNG
>>193
おたふくソースとってください。
0196デフォルトの名無しさんNGNG
>>188=>>193=ソースくれくれ厨か?
大体>>189はアドバイスしてるだけで、ソースなんて書いてるわけ無いだろ。
0197デフォルトの名無しさんNGNG
>>196
ネタだってばよ。多分な。また来たら放置しる。
0198DateTimePickerと日付型NGNG
DateTimePickerは、どんどん数値を下げると、1752/09/14まで設定可能の
ようですが、これって、この日付以降だったら、日付計算はうまくいくので
しょうか?
DateTime型は、Double型が元との事で、マイナス値でもいい感じですが…

それと、DateTimePickerは1752/09/19の次が、1752/10/01になるのですが
何故でしょうか? m(_ _)m
0199デフォルトの名無しさんNGNG
>>198
歴史の勉強をしましょう。
0200デフォルトの名無しさんNGNG
>>198
うん、暦って矛盾だらけなのよ。
サイトで太陽暦とかシリウス歴?とか検索してくださいな。
0201DateTimePickerと日付型NGNG
暦のユリウス歴→グレゴリオ歴はわかっていたのですが、各国で切り替えた日が
違うようですので、はてこの日付の飛びは当然日本じゃないだろうし…と思いま
して…。(Delphiってオランダ生まれでした??)
Excelのシリアル値などは、1900年システムや1904年システムですので、1800年代
の人(明治初期など、まだ生存している方)の年齢計算は独自の年齢計算マクロと
かを組んでいました。

Delphiでは、1900年より前(正確には1899/12/30より前)をDateTimePickerで
指定しても構わないのかしらん?と思ったのですが…。
いかがなものなんでしょうか? m(_ _)m
0202デフォルトの名無しさんNGNG
>>199-200
え、まじで1752年にはそこが抜けてたの?
つーかDateTimePickerはグレゴリオ暦で記述されてるんじゃないの?
単なるバグなんじゃ・・・

でも不安だから調べたら
http://www.borland.co.jp/products/borlandcpp.html
>日付クラスであるTDateクラスは、1901年1月1日を基準(0)とする
>通算日数をもとにしています(1900以前は負の値として表現されます)。
>グレゴリオ暦が始まった1752年9月14日より前では正しく動作しません。
>なお、Borland C++ 5.02 ではグレゴリオ暦から対応するユリウス暦への
>変換に問題があります。この問題を回避するために、この date.cpp を
>使ってください。
だそうだ、Delphiも多分同じだろう。賢くなたーよ。
0203DateTimePickerと日付型NGNG
DateTimePickerの9/19→10/1への飛びは、単なる「一週間単位」での
表示の都合上という事でいいんでしょうか?
0204DateTimePickerと日付型NGNG
1752年というのは、英国だったようです。お騒がせしました。

でも、何か変ですよね?1752/09/14以降は通常どおりって事なんでしょうけど
9/19→10/01への飛びは、やっぱり変?????
0205デフォルトの名無しさんNGNG
ローマ法王グレゴリオ13世は、ユリウス暦の1582年10月5日をグレゴリオ暦の10月15日と定めました。
日本がグレゴリオ暦へ切り替えたのは、1873年1月1日からです。
0206デフォルトの名無しさんNGNG
1952年9月2日の次は1752年9月14日で、全体として19日間。
それを1から19に詰めて書いてしまう間抜けなDateTimePicker。
そのくせ1-13日はしっかり選択できなくしてある。
マイクロソフトが悪いんだよね?
September 1752
S M Tu W Th F S
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
0207デフォルトの名無しさんNGNG
>190
DelphianWorldにはShellComponetLibraryがあったと思うけど、
あれが嫌ならこれ見て自分でシコシコ作れ。
ttp://www.cmagazine.jp/bookreview/19990402.html

0208デフォルトの名無しさんNGNG
PostgreSQL(7.1)をPQコンポというフリーのコンポを使って使おうとしていますが、
ロックをかけて、ロックのかかったテーブルを触ろうとするとタイムアウトが発生
しない為に永久に待ち状態になってしまいます、なんとか逃げの方法はない
でしょうか・・・。
0209デフォルトの名無しさんNGNG
>>208
デッドロック・・・?
0210デフォルトの名無しさんNGNG
デッドロックと言うか、2つのPCで同じレコードを更新しようとしたような状態です。
先に更新しようとしたプログラムが該当レコードをロックしたままだと、この先のプログラムが
開放するまで、後から更新しようとしたプログラムは止まってます。
先の更新が終了すれば、後の処理が開始されて正常には終わります。
希望としては、「ロック中ですので更新できません」のメッセージの一つも出せたら
良いのですが、SQLを投げて固まるまでこれを判定する手段がないみたいなのです。
0211デフォルトの名無しさんNGNG
スレッドで動かして一定時間経過し帰ってこなかったら破棄したらどだろか
0212デフォルトの名無しさんNGNG
でも、破棄したついでにDB側が壊れなきゃいいけど、やはりちょっと乱暴かな
0213208NGNG
ありがとうございました、スレッド破棄とか色々と実験してみます。
0214デフォルトの名無しさんNGNG
subject: [FAQ] ActionManager はどこですか?

Q. Delphi 6 Personal をダウンロードし、インストールしました。
Delphi は初めてだったので、同梱されている「クイックスタート」の
チュートリアル "TextEditor" をすることにしました。
ところが、このチュートリアルでは、ActionManager コンポーネントを
使うように記述されていますが、それを見つけられません。
ActionManager は、どこでしょうか?

A. 残念ながら、ActionManager は、Personal には、*付属していません。*
Professional 以上に付属するコンポーネントです。

しかし、ActionManager を使わない、古いチュートリアル "TextEditor" で、
Delphi を体験できます。

Delphi 5 クイックスタート・アップデートファイル
<URL:ftp://ftp.borland.co.jp/pub/delphi/d5onlinedocup/D5DOCTET.zip>

これを解凍して、TextEditorTutorial.pdf を読みましょう。

---
投稿する勇気の無いヘタレのためここに書き込みます。
0215デフォルトの名無しさんNGNG
>>214
自ら「FAQ」であると認識していることを、改めて書き込む意図はなに?
0216デフォルトの名無しさんNGNG
>>215よ

>>214の真意はここにある。
>投稿する勇気の無いヘタレのためここに書き込みます。


つまりじゃ、てめーが

「投稿しょうかな〜でもなぁ〜はずかしいな〜 誰か俺の代わりに投稿しろよ〜
でもまってても誰も書いてくれないし・・・ ええい!書いてみよう!!」

っつって勇気をふりしぼって投稿したことを誇りたいんじゃ。
よくやったの。>>214
0217デフォルトの名無しさんNGNG
google で検索すると、

Delphi 6 Personal には、ActionManager は無い。→既知
Delphi 5 のチュートリアルは、ActionManager を使っていない。→既知
Delphi 5 のチュートリアルは、Borland のサイトからダウンロードできる。→知られていない。

だから、FAQ を更新する。

”繰り返される質問”は、回答とセットで意味を待つと思います。

それから、投稿しようとした宛先は、Borland の news group です。
Delphi 5 のライセンスを持っていないユーザーが、Delphi 5 のチュートリアルを
使うのは、目的外の使用とも解釈できるので、情報の公開の前に、著作者の
了解が必要かもしれない。おそらく、怒られることは無いと思うけど、
この辺の確認は、省きたい。→2ちゃんねるにしよう。

それが、何か?
0218デフォルトの名無しさんNGNG
ところでActionManagerて便利なのか?
わしは相変わらずActionList使ってるけど。
0219デフォルトの名無しさんNGNG
未だに使い方解りません・・・ list も manager も
0220デフォルトの名無しさんNGNG
ツカッテナイ<ActionList
0221デフォルトの名無しさんNGNG
頼むから、ActionListぐらいは使ってくれ。
0222デフォルトの名無しさんNGNG
>>221
俺も使ってない、無理に使う必要がないように感じるのですが、使うとどの辺りで幸せになれる?
0223デフォルトの名無しさんNGNG
>>214 [FAQ] ActionManager はどこですか?

この FAQ の答えになってないと思うけど?
*付属していません。* という答え以外は、単なるおせっかいでしょ。
どうしても TextEditor を作りたいのならともかく。
0224214NGNG
>>223
それは、"subject" ですが?

"Q." をよく読んでください。
0225デフォルトの名無しさんNGNG
これから出てきそうな(よく出てくる)質問に先回りして答えるのがFAQだと思う
>>223
0226デフォルトの名無しさんNGNG
>>224
>"Q." をよく読んでください。

読んでも、 ActionManager を使わない TextEditor を作りたい、とは
書いてありませんが?
0227デフォルトの名無しさんNGNG
>>225
>これから出てきそうな(よく出てくる)質問に先回りして答えるのがFAQだと思う

Frequently Asked Question の意味を(以下略)
0228デフォルトの名無しさんNGNG
先回りするのはよくあること。
0229デフォルトの名無しさんNGNG
>>228
先回りして、しかも著作権の確認が面倒なので、他スレに書き込む、って
よくあることなの? そうなんだぁ。
0230デフォルトの名無しさんNGNG
>>229
何で勝手にいろいろ付け足すの?変な奴。
0231デフォルトの名無しさんNGNG
教えてください。
TMemoryStream に読み込んだ任意のデータをクリップボードを通して
やり取りしたいのですが、どうしたらよいでしょう。受けとるほうも、
TMemoryStream に読み込んだ形にしたいです。
0232デフォルトの名無しさんNGNG
>>230
229 は 214 と 217 について粘着してるのよ
0233デフォルトの名無しさんNGNG
>>232 そうか、サンクス。
FAQについてレスしただけなのに困ったもんだ。
0234デフォルトの名無しさんNGNG
>>231 質問はageたほうがいいよ。(俺は知らないのでパス)
0235デフォルトの名無しさんNGNG
>>232
粘着して、先回りして、しかも著作権の確認が面倒なので、何で勝手にいろいろ付け足すの?
他スレに書き込む変な奴、って
よくあることなの?知らなかったなぁ。本当に?そうなんだぁ。
0236デフォルトの名無しさんNGNG
>>235
あなたは確実にキモイ
0237 NGNG
キモイのは放置。
0238デフォルトの名無しさんNGNG
RichEdit で、あるタイミングで赤い文字を追加したいのですが

function AddRedText(AText:string);
var
Col:TColor;
begin
with RichEdit do
begin
Col := DefAttributes.Color;
DefAttributes.Color := clRed;
Lines.Add( AText);
DefAttributes.Color := Col;
end;
end;

としても赤い文字にならないのですが…
なにが悪いのでしょうか。
0239デフォルトの名無しさんNGNG
DefAttributesをSelAttributesに変えてみれ。
0240238NGNG
>>239
ううむ、変わらなかったです…
ちなみに、先頭に赤い文字を追加しようと思って以下のように書きましたが、これもうまくいかないのです。
色は変わりますが、その後に追加した文字列もすべて赤色に…

function InsertRedText(AText:string);
var
 Col:TColor;
begin
 with RichEdit do begin
  Col := DefAttributes.Color;
  Lines.Insert(0,AText);
  SelStart := 0;
  SelLength := Length( Lines[0] );
  SelAttributes.Color := clRed;
  DefAttributes.Color := Col;
 end;
end;
0241デフォルトの名無しさんNGNG
漏れが書いたのはこんなカンジ。
Button1を押した時は赤文字のテキストが、Button2を押した時はデフォルトカラー
の文字列が追加できとるよ。

procedure TForm1.Button1Click(Sender: TObject);
var
 Col:TColor;
begin
 with RichEdit1 do
 begin
  Col := SelAttributes.Color;
  SelAttributes.Color := clRed;
  Lines.Add(Edit1.Text);
  SelAttributes.Color := Col;
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 RichEdit1.Lines.Add(Edit1.Text);
end;
0242デフォルトの名無しさんNGNG
キモくて、粘着して、先回りして、しかも著作権の確認が面倒なので、
何で勝手にいろいろ付け足すの?って放置されて
他スレに書き込む変な奴、ってよくあることなの?まじっかなー。ウソクセー。
知らなかったなぁ。本当に?そうなんだぁ。へー。マジ情報?な?な?答えろよアフォ
0243あNGNG
あの、
実行ファイルの作成日時というか、自分自身のコンパイル年月日を知ることはできませんか?

たとえば、[バージョン情報]というボタンをクリックすると、その
プログラムがコンパイルされた日時を表示するようにしたいのですが…

0244デフォルトの名無しさんNGNG
実行ファイルの作成日時を取得すれ。
FileDateToDateTime(FileAge(Application.ExeName))
0245デルファイの名無しさんNGNG
>>231
たしかクリップボードはGlobalAllocなんかで確保する形式だったかな。
なので、Moveでメモリーコピーすれば充分な気が。

凝ろうと思えば、TStream派生の、確保済みのメモリーに読み書きするクラスを作るなんてどうでしょう?
TAccessStream.Create(ポインタ, サイズ) なんて。
そうすればCopyFromでTMemoryStreamとやりとりできると思います。

…ここで確認のためヘルプを見る…
CLXの方にはTClipboard.GetFormatなんてそのまんまのがありますね。VCL側には無いみたい。
なのでもしCLXを使っていれば一発です。
0246あNGNG
あ、やっぱり実行ファイルの作成日時=コンパイル日時でいいんですね。

ファイルを移動した場合とか変わっちゃうかと思ったらそうじゃないんですねえ…

どうもありがとうございました
0247デルファイの名無しさんNGNG
コピーや移動、圧縮などではタイムスタンプも大抵保存されますけどね。
でも、リソース書き換えツールなどでいじられたら変わってしまいそうな。
0248デフォルトの名無しさんNGNG
>>246
それがいやなら、自分で定数ででも定義しておくしかないでしょうな。
その場合バージョン=年月日なんかにしておくと楽かも。
0249デフォルトの名無しさんNGNG
>>245
>たしかクリップボードはGlobalAllocなんかで確保する形式だったかな。
>なので、Moveでメモリーコピーすれば充分な気が。

あっ、そうですか。ちょっと調べて、いろいろ試してみます。
あいがとうございました。
0250249NGNG
× あいがとうございました。
○ ありがとうございました。

訂正。スマヌ
0251デフォルトの名無しさんNGNG
>248
バージョン情報のリソースに日時を埋め込む手もあるな。
0252デフォルトの名無しさんNGNG
無料のDelphiを入手しました。
XMLを処理というか、読み込むコントロールは無いですか?
ギコナビという、たしかDelphi製のアプリでXMLを読んでいたので、自分のソフトにもXMLを
読み込む方法が無いか探しています。
0253デフォルトの名無しさんNGNG
>>252
そうですか。
0254デフォルトの名無しさんNGNG
>>252
まず第一に
TXMLDocというクラスはEnterPrise以上と説明があり、
ヘルプもないが、なぜかヘッダーファイルが存在する。
実は使えるという可能性がある。

第二に
MSXMLを使うということ。
メンドクセーが可能ではある。
根性があればどうにかなるが
数日徹夜することになるかもしれん。
0255デフォルトの名無しさんNGNG
>>252
まず第一に
TXMLDocというクラスはEnterPrise以上と説明があり、
ヘルプもないが、実は使えるという可能性がある。
BCB5パーソナルではヘッダがあったから怪しい。

第二に
MSXMLを使うということ。
メンドクセーが可能ではある。
根性があればどうにかなるが
数日徹夜することになるかもしれん。
0256デフォルトの名無しさんNGNG
すまそ、ダブルクリックしてもうた
0257デフォルトの名無しさんNGNG
>>252
OpenXML
0258DateTimePickerと日付型NGNG
もしかして、すごーく恥ずかしい質問かもしれませんが、ご教示願います。
EditBoxのKeyPressを監視して、Enterが押された時点で、Buttonに設定した
イベントをさせたいんですが、何か良い方法はないでしょうか?
今は、その処理させたい内容をサブルーチン化して、EditBoxからとButtonの
両方から呼んでいるのですが、処理はButtonのイベントハンドラにそのまま
書いて、EditBoxで、if key=chr($13) then [buttonのイベント]みたいに
したいんですが…
SetFocusして、キーを押したように見せかけるとか、考えてるんですが、はて??
0259デフォルトの名無しさんNGNG
【Q】
質問です。
DirectoryListBoxで選択したパスに指定フォルダ名を付加したいのですが、
ルートの場合だけ「C:\\hoge」となってしまいます。
C:\program files\hoge とやると¥マークが重複せずに済むのですが・・・

hogeが付加したいディレクトリ名です。
0260デフォルトの名無しさんNGNG
>>258
何のイベントだかわからないけど・・・
[buttonのイベント]=> Button.Click みたいな感じ?
0261デフォルトの名無しさんNGNG
>>260
そうです。procedure TForm1.Button1Click(Sender: TObject);
の処理を、EditBoxで、Enterを押したら、実行させたいのです。
今は、EditBoxのイベントでSetFocus(Button1)させて、もう一度
Enterを人間に押させてますが…
0262259NGNG
>>258

//key_unit.pas
unit key_unit;
interface
type
 ken_key = Integer;
const
  key_Ent = 13; // Enter
  key_Esc = 27; // Esc
  key_F1 = 112; // F1
implementation
end.
0263259NGNG
>>258  (さっきの続き)

//にkey_unitを追加
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, kt_unit, StdCtrls;
(中略)
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('ボタンが押されました!');
end;

//Edit1でEnterを押したときの処理。
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 case key of
  key_Ent : Button1Click(Sender);       //Enterを押した処理
 end;
end;
0264デフォルトの名無しさんNGNG
>>261
だから Button1.Click じゃん
0265259NGNG
 Dialogs, kt_unit, StdCtrls;
  ↓
 訂正
  ↓
 Dialogs, key_unit, StdCtrls;
0266デフォルトの名無しさんNGNG
259は仮想キーコード知らないのか?
0267デフォルトの名無しさんNGNG
QuickReportを使っているのですが、プレビュー表示ができません。
ソースは、
procedure TForm1.cmdPreviewClick(Sender: TObject);
begin
frmreport.qRep.Preview;
end;
です。何も表示されずに、処理が終わります。
何かプロパティを設定しないといけないのでしょうか?
どうか、ご教授お願いします。
0268259NGNG
>>266
Delphiじゃなくてkylixで育ったからこんなコードになっただけ。
それに直にマジックナンバー使うの嫌だし。
0269デフォルトの名無しさんNGNG
もしかして、要はButton1Click(Sender);を付けるだけ??
大変大変、失礼しました!!!!!
0270デフォルトの名無しさんNGNG
>>268
少しはヘルプファイルを読んだ方がいいと思われ。

>>269
普通は Button1.Click を使うと思うけど。オブジェクト指向するなら。
0271デフォルトの名無しさんNGNG
>>269
なるほど、手続きの呼び方が分からなかったって事ね。
ひとつ勉強になったね。

>>266
あのやり方は普通だと思うけど。
仮想キーコードを使うにしてもconstで切った方があとで修正するときに手間省けるよね。

>>259
ドライブがrootかどうか調べて・・・
ごめんこれ以上わからん。
家に帰れば本が有るんだが。
GetDriveなんとかって言うので調べれなかったっけ?
0272デフォルトの名無しさんNGNG
>>259
パスの末尾の文字を調べればいいと思うけど。
0273デルファイの名無しさんNGNG
仮想キーコードを自前でconstで定義されている方々は
Windows.pasを"VK_"で検索してみると発見があるかも知れませんよ。
0274デフォルトの名無しさんNGNG
>>272 そうなんだけど、日本語ファイル名を考慮すると 末尾が2バイト文字の2バイト目でない事も考えないと
0275デフォルトの名無しさんNGNG
パスのサイズが3バイトかどうかで判断すれば?
C:\はルート。
D:\でもE:\でも同じ。

var
 size : Integer;
begin
size := Length(WideString(パス));
0276267NGNG
いろいろ調べたら、どうもReportに使っているADO Queryコンポーネントが悪さをしているようです。
引き続き、がんばってみます。
0277デフォルトの名無しさんNGNG
良く関数の最初に
Sender: TObject
とあるのですが,これはなんでしょうか?
Delphiのソースを読んでいるのですが,これがわかりません
0278デフォルトの名無しさんNGNG
>>277
イベントハンドラだね
そのイベントを起こしたもの(主にコントロール)が引数として渡されるんだよん

複数のコントロールのイベント処理をひとつのイベントハンドラに書くような場合
呼び出し元によって処理を振り分けたりできるんだよん
0279デフォルトの名無しさんNGNG
>>278
ありがとう
0280デフォルトの名無しさんNGNG
おまえら、
Del用のドキュメント生成ツール(VB仕様書工房のようなソフト)
使ったことがある奴がいたら、

使い勝手を教えてください。
0281デフォルトの名無しさんNGNG
>259

別の考え方を提示すると。指定パスの
\hogeの\を削ってはどうですか?

IncludeTrailinjgbackslash関数を使えば
選択したパスに\つけられますからね。
0282281NGNG
ありゃjがミスって余計にはいってしまった。

誤 IncludeTrailinjgbackslash関数
正 IncludeTrailingBackslash関数
0283デフォルトの名無しさんNGNG
manifestを使った状態でTComboBoxでBackSpaceを押すと
日本語でも1バイトしか削除されなくて文字化けしてしまうんですがどうすれば解決出来るでしょうか?
0284132NGNG
delphi6のCDから落としておいたほうが良いファイル
って何がある?
とりあえず、古いAPIの日本語版helpとWin32.hlpは落としたけど。

お薦めがあったら教えて。
0285(ヒ) ◆yuucaEEI NGNG
>>252
ソース見てないでしょ。。公開してるのに。
ギコナビでは海外のSAXコンポーネントをインチキ改造して無理やりSJIS通しています。
ただ、外人さんのコンポーネントなので、SAX自体のソースは添付してないです。
ソースダウンロードすれば、そのコンポーネントのダウンロード先が書いてあるよ。
でもギコナビのは、適当に読んでいるだけなので、参考にならんかと。
もし参考にするならb15じゃなくてb16のを見てください。
DOMを使うなら、>>254氏のやつか、XDOMかな。
XDOMは日本語対応した人がいたはず。
MSXMLは、IEとかに標準でついてくれば利用者が増えると思うのに。。。
(あれ?付いてたっけ?)
0286デフォルトの名無しさんNGNG
>>282
今ならIncludeTrailingPathDelimiterかな?

>>283
manifestを使ったことないんで分からんけど、AutoCompleteをFalseにしたらどうなるかな?

>>284
アメリカ版のDelphiヘルプ
0287281NGNG
>286
そのとおりでした。
私のほうも
D6だと機種依存があんたらかんたらとでてしまいます。
0288デフォルトの名無しさんNGNG
Delphiでプロジェクトを作成しプログラムを組んでるとバックアップファイル(unit.~pas)などが出来ますよね?
これって出さない方法ありますか?
もしくは別のディレクトリに一括にまとめる方法など。
0289デフォルトの名無しさんNGNG
Delphi初心者です。
文字列の先頭を持って来るにはどうしたら良いのでしょうか?
Mid関数みたいなものがあればと思ってます。

くだらない質問で申し訳ありません。
0290デフォルトの名無しさんNGNG
>>289
a :String;

a[1]
0291TeamB/2ch ◆SE69s0c2 NGNG
>>283
>manifestを使った状態でTComboBoxでBackSpaceを押すと
>日本語でも1バイトしか削除されなくて文字化けしてしまう

再現しました。QualityCentral 行きにします。
0292TeamB/2ch ◆SE69s0c2 NGNG
>>289
StrUtils に MidStr 関数があります。VB 互換。
0293TeamB/2ch ◆SE69s0c2 NGNG
>>288
危険なオプションだから GUI では設定できないようにしているのかな?
レジストリの borland\delphi\6.0\editor\Options に "Create Backup File" が
あるから、False に設定。
0294デフォルトの名無しさんNGNG
>>288
DelDel.BAT
--------------------------
CD /D %1
del *.tds
del *.~*
del *.dsk
del *.dof
del *.dsm
del *.dcu
--------- ここまで -----
これを SendToにでも入れておいたら いいんじゃない?
0295267NGNG
ADO Queryで集計関数を使わずに、QRExprコンポーネントを使用して集計を行うと、
きちんとプレビュー表示できました。
みなさん、どうもありがとうございました。
0296大きいフォントにした場合NGNG
デザイン時に小さいフォントで作っていて、そのEXEファイルを大きいフォント
の環境で実行すると、コンポーネントに位置がずれずれになります。
これって、上手い具合にdpiを上手く計算とかしないと駄目なんでしょうか?
0297デフォルトの名無しさんNGNG
ばかばかしい
ツール-エディタオプション-表示-バックアップファイルの作成
0298TeamB/2ch ◆SE69s0c2 NGNG
>>297
みつけられなかったんだよぉ..
0299デフォルトの名無しさんNGNG
オラクルのストアドファンクションから値(OUT引数)を取得するには
どうすればよいですか?
0300132NGNG
音を監視するのはやめてプログラムに表示されている数字が変化するのを
監視するように変えたのですが、WinSightで見てみると
WM_Paint Sentで座標を指定して書いて、
WM_ERASEBKGND Sentで消してました。
数字を送っているだけだろうからそれをフックして抜き取れば
と思っていたのですが、甘いでした。

なかなか高いハードルみたいです。
これはペイントデータを抜き取ってOCRするしか方法は無いのでしょうか?
ご存じの方がいらっしゃいましたら教えてください。
0301デフォルトの名無しさんNGNG
>>300 普通はソレしかない事が多いです GetWindowText 出来るのは滅多にありません

しかし、数字だけに限ればそれで十分実用になりそうですが?
0302デフォルトの名無しさんNGNG
>>296
Scaledぷろぱてぃ
0303296NGNG
>>302ありがとうございます。
すみません。それとStringGridの内容をマウスでドラッグして、他の
アプリに持っていきたいんですが(TEXT情報)、コピーできません。
別個クリップボードに内容をコピーしてやるルーチンを組まざるを得ま
せんでしょうか?
何か、コピーを許すとかいうプロパティは無いでしょうか?
0304デフォルトの名無しさんNGNG
>>300
わりとウザがられてるし。
いい加減にどのソフトをクラックしたいのか教えなさい。
そうすりゃすぐに答えが出るはず。
0305デルファイの名無しさんNGNG
VCLのDrag&DropはVCL内で勝手に処理しているので他のアプリと互換性は無いです。
OLE Drag&Dropのコンポーネントが、付録CD-ROMに入っていたと記憶。
手書きしてもいいけれどそれなりに手間はかかります。
0306Delphi好き ◆0YAPhEjk NGNG
TDBGridコンポーネントのオプションを変更して複数行選択可能にした時に、
SelectedRowsプロパティを見れば選択されたレコードを取得できますが、
実行時、SelectedRowsにレコードを追加することはできるんでしょうか。
TDBGridコンポーネントの全レコードを選択するボタンを作りたいので、
よろしくお願いします。
0307303NGNG
説明不足でした。
Drag&Dropでなくて、単純にセルを選択して、Ctrl+Cで持って行きたかった
んですが、無理でしょうか?。
やっぱり、Buttonでも作って、コードでクリップボードに送ってやるしか
ありませんか?
0308Delphi好き ◆0YAPhEjk NGNG
>307
ボタンを配置せずとも、TStringGridのOnKeyDownで駄目ですか。
中で、

if (ssShift in shift) and (Key=VK_C) then
// クリップボードに送る処理

みたいなんじゃ?実験してないし思いつきですけど。
0309Delphi好き ◆0YAPhEjk NGNG
>308
スマソ。これじゃ、Shift+Cになっちまいます。
0310デフォルトの名無しさんNGNG
>306
TBookmarkList.CurrentRowSelectedを調べてみ。
0311132NGNG
>>301
レスありがとうございます。
そうですか。
ではとりあえず、文字を覗き見てImageに貼りつけられるか頑張ってみます。
難しそ〜。

>>304
うざくてスマソ。
アメちゃんの証券会社のソフトだから言っても分からないですって。
顧客にしかソフトを配布してないですから。

日本には超マイナーな国の株も投資出来る証券会社って無いんですよねえ。。。
0312Delphi好き ◆0YAPhEjk NGNG
>310
ありがとうございます。
最初、チラと見たときに、「これじゃ一つのレコードを選択・非選択にするだけ
じゃん」と思ったんですが、なるほどTrueにして次のレコード・・・と処理させれば
うまくいくのですな。助かりました。(ただ、ちょっと遅いけどしょうがないです
かね)
0313デフォルトの名無しさんNGNG
すいません、少し皆さんのお知恵をお貸しください。

ホームページで使用するDLLを作成しているのですが、
毎回ユーザー毎にデータベース接続の接続をしているので、
ページが表示されるまで待ち時間が長くかかっています。

接続を1つにまとめて、
それを使い回す様なことをしたいのですが、
可能なのでしょうか? 可能であれば、どのようにすればよいのでしょう

m(__)m よろしくおねがいします


ちなみに・・・
ホームページ側は、クラスではないライブラリしか呼べないです
0314デフォルトの名無しさんNGNG
>>313
>ホームページで使用するDLL

の時点で、

>にデータベース接続の接続をしているので

こんなもん扱えるわけがないと思うのは俺だけでしょうか?
0315313NGNG
>>314

>>にデータベース接続の接続をしているので
>こんなもん扱えるわけがないと思うのは俺だけでしょうか?

接続の接続ではなく・・・
接続だけです。入力ミスです、すいません


ASP・Perl・JSPなどのサーバサイドスクリプト -> DLL -> DB

ここでのDLL部分で悩んでいます。
サーバサイドスクリプトなので、ユーザーには結果だけが表示されるのですが、
処理時間が遅いのです。
0316Delフサギコ ◆zE1iiRdQ NGNG
   ∧,,∧   >>303>>307さん
  ,ミ ゚Д゚彡 Ctrl+Cを使いたかったら
  ミ  ∪  Actionを作ってShortcutKeyを設定して
 ミ〜,, ミ   Action。Executeを記述するといいと思われ
  ∪ ∪

>>313さん
Webアプリは難しいですよね。
ASPしかわかないですが
ASPのApplicationオブジェクトとかSessionオブジェクトで
管理できるといいんですけどね。

ASP.NETに逝こうした方が素直でいいかもね。
0317デフォルトの名無しさんNGNG
Windows2000プロフェッショナルで作成したDelphiのEXEを
WindowsNT4.0WorkStationで実行すると、
「アプリケーションエラーが発生しました」と表示され、
プログラムが起動せずに強制終了します。

BDEを使ってオラクルに接続だけ確認しているプログラムなのですが、
何が原因なのでしょうか?

BDEを後からインストールしましたが解決しませんでした
0318デフォルトの名無しさんNGNG
>313
googleでもどこでもいいから「セッション管理」で検索してみれ。
可能かどうか、と言われれば可能だけど問題も色々あるからよく検討するように。

>317
BDEやオラクルのバージョンも書かないで質問を投げられても判断不能。
問答無用で逝ってよし。
0319デフォルトの名無しさんNGNG
>>297
p-chanハケーン!!

>>TeamBさん
QualityCentralって某アメリカなんですか?
ジャパーンのイパーンユーザがニホンゴでバグ報告できるところはないの?
0320TeamB/2ch ◆SE69s0c2 NGNG
>>317
NT4 WorkStation...
・最新のコモンコントロールがインストールされていない
でしょうか。まだ Delphi の CD に収録されているかな?

0321デフォルトの名無しさんNGNG
>>315
ASP・Perl・JSPなどのサーバサイドスクリプト -> DLL -> EXE -> DB

DLLでEXEが動いていなければEXEを動かす
DLLとEXEはプロセス間通信(メッセージとかパイプとか 簡単にメモリマップファイルとか)

こうしておけば、DLLやサービスより動作状態も目で見えてデバグも楽
0322TeamB/2ch ◆SE69s0c2 NGNG
>>319
おはようございます。
QualityCentralって某アメリカのです。
某 ML の方々はまだ誰もポストしていないようです。

日本語で書き込んだら何が起きるかな。

「ジャパーンのイパーンユーザがニホンゴでバグ報告できるところ」
ここでよろしいんじゃないですか?
0323デフォルトの名無しさんNGNG
Word が 2 バイト、LongWord が 4 バイトだとすれば、
以下の構造体のサイズは 14 バイトになるはずなのですが、
SizeOf 関数を通してみると 16 バイトになっています。なぜですか。

program Project1;

{$APPTYPE CONSOLE}
type
 TBitmapFileHeader = record
  FType: Word;
  FSize: LongWord;
  FReserved1: Word;
  FReserved2: Word;
  FOffBits: LongWord;
 end;

begin
 WriteLn( Sizeof( TBitmapFileHeader ) );
 ReadLn;
end.
0324デフォルトの名無しさんNGNG
>>323
アラインメント調整。
いやならpackedをヘルプで轢く。
0325323NGNG
おお、なるほど!
たしかに packed をしないと 4バイト境界にあわせられるとかいてありますが…

すると、Word の部分がすべて4バイトぶん確保されて
4 * 5 = 20バイトになるのでは…??
いや、関係無いのですが。
0326ななしNGNG
みなさま、こんにちは && おつかれさまです。

(1) EditコントロールにはAlignmentプロパティ(右寄せ、中央揃え等)はないんでしょうか?

(2) オブジェクトをサブクラス化するサンプルコードはどこを探せばあるでしょうか?

(3) VBのMeキーワード(自己参照)に相当するものはDelphiにありますか?

(4) ShowDialog等で、VBのMsgBox関数の、vbDefaultButtonX(既定のボタンの変更)
  に相当することは可能でしょうか?
  また、ダイアログのタイトルの変更(おなじくMsgBox関数の第3引数に相当)は可能
  ですか?

以上、ご存知の方、いらっしゃいましたら、ご教示ください。
0327デフォルトの名無しさんNGNG
>>326
Windowsメッセージ投げる。

オブジェクトって色々な物の呼び名なので特定不能。

self

メッセージ
0328デフォルトの名無しさんNGNG
>>326
VBユーザーのためのDelphi6プログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4274064514/249-6085935-6568357
これ嫁
0329ななしNGNG
>>327-328

感謝。

あとは自分で研究します。(つうか、安易な質問だった・・・)
0330でもどり初心者NGNG
検索かけてもわからなかったので、質問させてください。
環境はWin2000+Delphi6.0personalです。

mona : array[0..255] of Char
と宣言した変数に返り値がPCharの関数を代入しようとしたら、
「'Array' と 'PChar' には互換性がありません」と言われます。
どうしたらいいんでしょうか…

つーか、キャストとか良く分かりません(汗
(型変換とまでは理解してるんですが…)

検索で見つけたページに
>ただし、NULL文字を含む固定長文字列(宣言:変数名 : Array[0..文字列長] of Char)、
>文字リテラルは型キャストの必要はありません。

と書いてあったんですが、API関係は特にわからなくて、つまづいています。
0331デフォルトの名無しさんNGNG
>>330
mona := 'omaemona';

とかしたわけ?

Strcopyを使いましょう。
0332nanasiNGNG
Delphi-ML でよく発言される
戸田英夫さんの言い方には、カチンときます。

みなさんはそんなことないですか
0333デフォルトの名無しさんNGNG
匿名掲示板でよくみられる
個人名を晒してあげつらうようなやり方には、カチンときます。

みなさんはそんなことないですか
0334デフォルトの名無しさんNGNG
>>332
あなたのレス、コピペして投稿しました。
0335Delフサギコ ◆zE1iiRdQ NGNG
           _____________
   ∧,,∧    /最近のメールソフトには
  ミ,,゚Д゚彡 < メール振り分け機能がついているので
   U  つ   \不必要なメールは自動削除すれ
 @ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ 
0336デフォルトの名無しさんNGNG
>>335
Delフサは、彼のメールは自動削除している。と。

0337素人NGNG
>>330
var ウルトラマンコスモス:string;
begin
ウルトラマンコスモス:='タイーホ';
なんたら関数(Pchar(ウルトラマンコスモス));
end;
ではダメ?ダ…ダメ?ビクビク…。

先生!全角ってなんですか?
0338デフォルトの名無しさんNGNG
>>336
彼のメールの内容は「過去ログ嫁」しかないから削除しても誰も困らない。
0339デフォルトの名無しさんNGNG
>>338
私はその質問も一緒に削除してます
0340デフォルトの名無しさんNGNG
>>337
何 が 言 い た い
0341TeamB/2ch ◆SE69s0c2 NGNG
けれど過去ログがいつも/いつまでも正しいとは限らなし、
初心者の質問は常に新鮮な目で見ないと。

何事にも謙虚さが大切ですね。
0342デフォルトの名無しさんNGNG
Delphiのちょっとしたテクニックをお聞かせ下さい。

Labelがいくつか有ったとします。
プロパティに直に書き込むのはあれなのでストリングテーブルを作ろうかと思うのですが、
Delphiの場合はみなさんどのようにやってますか?
0343デフォルトの名無しさんNGNG
>>342
 なぜ"プロパティに直に書き込むのはあれなので"と思うのですか?
0344Delフサギコ ◆zE1iiRdQ NGNG
   |     >>336してます
電 |     >>338剥げ同意
   |∧,,∧  >>341その通りだと思います
柱 ミ,,゚Д゚彡 
  ⊂ ミ   誕生日計算ネタも
   |, ,,ミ   新たな発見がイパイでしたね
   |∪
, ' , ; ' ;

>プロパティに直に書き込むのはあれなので
ああ、あれですね。あれ、あれですか?
あれ?ってどれ?
StringListを使うのがいいんじゃないでしょうか。
0345TeamB/2ch ◆SE69s0c2 NGNG
>342
「あれ」が何なのかわかりませんが...
通常のクラスと異なる動作をさせたければそれを実装したクラスを再定義するのが
正しい道だと思いますよ。

プロパティデフォルトを変えたければ Create コンストラクタで値を設定する
クラスを定義すれば余計な作業は必要なし。

たとえば .INI ファイルやレジストリ、リソースから読み込みたいときは
簡単に実装したければ ReadFromIni のような手続きを用意して
Form の OnShow で初期化。
0346デフォルトの名無しさんNGNG
TStringListって、SaveToFileが使えて便利なのですが、
TListで簡単にファイル保存するような仕組みって無いのでしょうか?
例えば、TStringListへ一旦入れ込んでSave出来ないか?とか試して
みましたが挫折しました。
0347Delphi好き ◆0YAPhEjk NGNG
>346
まあ、TListはTObjectを継承した単純な仕組みですし。継承してSaveToFile定義
するのが楽なんじゃないでしょうか。TListは何型の値が入るか決まってませんし、
そういう状況を考えると、TListに保存機能を求めるのってナンセンスでは・・・?
0348デフォルトの名無しさんNGNG
>>347
>TListに保存機能を求めるのってナンセンスでは・・・?

ですよね・・・、SaveToFileを定義するのであれば、いっそ、毎回手書きで
保存した方が読み込み時の事も考えると見通しが良いですよね・・・。

ご意見ありがとう!
0349でもどり初心者NGNG
>>331
ありがとうございます。
コンパイルは通りました。が、別のエラーが(汗

ここにソース貼っていいですか?50行ちょっとありますが。。。

3年ほど前までDelphi4、AS/400の組み合わせで仕事していた
元職業プログラマーだったんですが、当時からAPIはほとんど
触らなかったんで、未知の領域っす。

今は、印刷関係の仕事をしてて、テキスト処理をDelphiでやり
つつある所です。
0350デフォルトの名無しさんNGNG
ものすごくくだらないことで悩んでいる気がしてるのですが
いくら調べてもわからないのです

プロセスの終了記述って どうすればよろしいのですか?(汗
プロセスがあがったままなんです。。。

自分で自分がいやになる質問だ。。。(鬱
0351Delphi好き ◆0YAPhEjk NGNG
>350
プロセスの終了・・・って、アプリケーションプロセスのことでしょうか。
だったら、Application.Terminate;で終わりますけど・・・違うのかな?
ちなみに、Win98系でアプリケーション終了後に残るタスクバーのボタンは、あれは
Win98の問題らしいですよ。BorlandのDelphiFAQページに載っていたと思うんです
が・・・。
見当違いかもしれませんけど、よろしく確認ください。
0352350NGNG
>>351
あぁ。。。
優しい対応うれしいです

アプリケーションを動かすと、プロセスが残ってしまうのです
プログラムを終了させる記述が必要なのでしょうが、
Delphi6.0でありえるWindowsアプリケーションのプロセス終了記述が、
わからないという。。。

ご回答いただいたApplication.Terminate;以外にも方法はあるのですか?
いくつかあるようでしたら、調べて最適な記述をしたいと思っています。

0353Delphi好き ◆0YAPhEjk NGNG
>352
 昔はHalt;なんて使っていましたが、これはどうなんでしょうか。強制終了みたい
なものだから、状況によってインスタンスが何か残るかもしれません。
 適当な回答で申し訳ありませんけど、お試しください。
0354350NGNG
>>353
ありがとうございます。
Application.Terminate;
でプロセス終了いたしました。
手元にある本がDelphi関連だけなのですが、
API関連も必要ですね。。。

Delphiで(Pascal?)自プログラム(プロセス)終了の記述というのは
しないものなのか、そもそも存在しないものなのか。。。。
Windows単独アプリケーションなのですが、セオリーってどのようなものなのか。。。
0355Delphi好き ◆0YAPhEjk NGNG
>354
Application.Terminate;は、API呼び出しではなくってDelphiのTApplication
クラスのメソッドを呼び出しています。
TApplicationは、作成したアプリケーションの情報を色々もっているので、ヘル
プで見てみると中々面白そうで役に立ちそうな機能満載で楽しいですよ。

・・・ちなみにここはsage進行がよろしいのでしょうか?(あげてた・・・)
0356デフォルトの名無しさんNGNG
セオリーはGUIアプリなら メインフォームをClose
コンソールアプリなら普通に リターンしていけば終るかと
0357350NGNG
>>355
おー
そうですか
TApplicationをよく調べてみまする
ありがとうございます!

質問の内容が恥ずかしいのでsageておりました(w
多謝です!
0358デフォルトの名無しさんNGNG
>>354
フォームがあればメインフォームをCloseでは?
0359350NGNG
>>356
GUIアプリです
TCustomForm.Close
これですか?
おお。。。なるほど。。。確かに終了するとの記述がありますね
TApprication.Terminate
とどちらでも良いのかな。。。

勉強いたします
0360350NGNG
>>358
CloseとTApprication.Terminateとで 悩んでおりまする。。。
0361Delphi好き ◆0YAPhEjk NGNG
>>356, 358
その通りですね。その方が確かに楽チン・・・。
0362350NGNG
>>361
おぉ。。。
そうですか。。。
両方をよくみてみます
結果は同じでも、命令が違ければ何かが違うはず。。。(w

楽チンぢゃないほうが何かいいことがあるんではないかと。。。
探ってみまする
0363350NGNG
メインフォームが閉じられる時に、自動的にTerminateが呼び出されると
ヘルプに書いてありましたぁ

みなさま ありがとうございます
0364Delphi好き ◆0YAPhEjk NGNG
>362
うーん・・・。
将来、当該フォームを他のアプリケーションで流用する可能性がある場合に関して
は、CloseとTerminateはしっかり分けた方がいいのかもしれませんね。
 Terminateはアプリケーションの終了
 Closeはウィンドウを閉じる
わけですので。
このフォームをメインフォーム以外として使用した場合にはウィンドウが閉じられて
予定外の結果になるかもしれませんし。もちろん、流用することなんてありえないの
であれば、関係ないですけど。
0365350NGNG
>>364
あ〜。。。そうですね
自分もその辺の応用がきくように。。。と考えているので、
検討しなくてはならないですよね
かなり拡張していく可能性がある状況ですので

ご意見助かります
0366デフォルトの名無しさんNGNG
TLabelのFontColorプロパティにて
プルダウンで出てこない色を使用することというのは
可能なのでしょうか?
0367Delphi好き ◆0YAPhEjk NGNG
>>366
普通に代入すればいけそうですが。
詳しくはヘルプにてTColorを参照していただくとよろしいかと。
0368デルファイの名無しさんNGNG
>366
ダブルクリックしたら例の色指定のダイアログボックスが出ませんか?
0369デフォルトの名無しさんNGNG
>>367
16進での指定ですね
わかりました

>>368
今、感動にのたうちまわっております
0370デフォルトの名無しさんNGNG
フォームにタイトルバーを出したくないのですが、
フォームの概観を少し浮き出た感じにしたいのですが。
BorderStyleをbsNoneにすると、タイトルバーは消えますが、
概観がまったいらになってしまいますし、
BorderStyleにbsToolWindowを設定して、BorderIconsを全部Falseにしても、
タイトルバーは消えてくれませんし。

何か方法があるのでしょうか?
0371laraNGNG
ADO Express + TClientDataSet で
キャッシュアップデートしたいのですが、
なんかApplyUpdateするときに
Insert Into の構文がおかしいよとか言われてしまいます。
もしかして、ADOExpress + TClientDataSet って使えないの?
0372デフォルトの名無しさんNGNG
>>371
(1)フォームのBorderStyleをbsNoneにする

(2)フォームのところにprotectedを追加して以下の宣言をする
procedure CreateParams(var Params: TCreateParams); override;

(3)以下のコードを書く(サイズ変更したけりゃ、コメントの位置を逆にする)
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
//Params.Style := Params.Style or WS_THICKFRAME;//サイズ変更可
Params.Style := Params.Style or WS_DLGFRAME;//サイズ変更不可
end;
0373372NGNG
↑のやつは、>>370へのレスでした。
0374デフォルトの名無しさんNGNG
Delphi5なんですよ。

で、日付の計算をしたいんですけど、何月何日から何日あとの日付、ってのは、どうやって計算すればいいんですかねえ。

標準の関数では何ヶ月経過後、しか計算できないみたいですけど。
0375デフォルトの名無しさんNGNG
>374
TDateTime型をヘルプでよく調べろ。
例えば現在の日時から一日後の日付を得たいのなら
 a := Now + 1;
でOKなことが分かる筈。
0376デフォルトの名無しさんNGNG
基本的な疑問なのですが、TutobPascal時代は置いといてWindows環境になってからだけでも、
Delphi2->3->4->5->6と買って、ついでに、JBとCBとKylixまで持ってるのですが、ボーランドから
感謝状もなんも来ません(藁

そりゃいいとして、Delphi4辺りから、劇的に何かが変わるってのが無いようなのですが、
今度出るDelphi7も似たようなものなのでしょうか。
もっと心配なのは、コンパイル後のexeのサイズが同じソースであっても太る傾向にあるようですが、
なぜでしょう?
0377ほらほらNGNG
早く直す早く!
0378デフォルトの名無しさんNGNG
delphi6 personalの使用者登録の仕方がわかりません。
誰か教えて下さい。おながいします。
0379デフォルトの名無しさんNGNG
>>378
青い紙に「祈願・登録」と書いて、「オン・アブラウンケンソワカ!」と3回
唱えた後に南の方角に向かって印を結びながら紙を飛ばしなさい。
いいことあるでしょう。
0380デフォルトの名無しさんNGNG
>>378
osorano hoshini inorinasai
0381デフォルトの名無しさんNGNG
>>378
readmeか何かに載ってなかったっけ?

とりあえず
http://register.borland.co.jp/delphi_personal.htm
見て
0382デフォルトの名無しさんNGNG
ネタデナカッタンデスカ。
0383378NGNG
>>378
インストールできますた。
どうもありが�d。
0384デフォルトの名無しさんNGNG
ガ━━(゚Д゚;)━━ン! 自分にレス!
そーゆー時代?
ナウイ?
新人類?
0385デフォルトの名無しさんNGNG
>>385
なにいってんだボケ、激しくスレの進行を妨げてるんだよ!逝け。
0386ブーム?NGNG
>>386
スレッドストッパー。
0387デフォルトの名無しさんNGNG
最近は再帰呼び出しが流行ってるんですか?
0388デフォルトの名無しさんNGNG
program Project1;
{$APPTYPE CONSOLE}
uses ShellApi;
begin
 ShellExecute(0,ParamStr(0),'','',0,SW_SHOW);
end.
0389374NGNG
>375

なんだ、そうだったのか。関数ばかり調べてたよ。算楠
0390デフォルトの名無しさんNGNG
タスクバーもどきを作りたいのですが、
タスクバーに表示されているアプリケーションは
どのようにして取得すればよいのでしょうか。

FindWindow で、Parent ハンドルが 0 のものだけを探し出す
ようにしているのですが、タスクバーに出ていないものまで
引っかかってしまいます。

逆に、タスクトレイに登録されているアプリケーション名もしくは
アイコンもしくはウィンドウハンドルを取得するにはどうすればよいでしょうか。
0391Resource HackerNGNG
 Delphiで作成されたと思われる Resource Hacker というリソース解析ツールが
ありますが、これを使ってDelphiアプリをチェックしても、たとえばスピードボタ
ンのGlyphで読み込んだりImagelistで保持しているビットマップは、Resource Hacker
のBitmapのところを調べても表示されません。これはどういうわけなんでしょ?
0392デフォルトの名無しさんNGNG
>>391
ビットマップリソースとして管理してないからです。
0393デフォルトの名無しさんNGNG
>>391
Delphiアプリのリソースは、フォームに保存されます。
で、フォームは、リソースのどこか(名前忘れた)に保存されてる。
0394デフォルトの名無しさんNGNG
>>391
DFMがそのまま覗けるからそこからテキスト編集中のフォームへコピー。
0395デフォルトの名無しさんNGNG
>>390
プロセスを取得するAPIなかったっけ?
それか、findwindowでparentがnullでvisibleなやつとか。
0396名無しさん◎書き込み中NGNG
TOpenDialogを使ってファイルを選択するダイアログを出そうとしてるんですが、
これを呼び出すボタンってどのコントロールを使うのが一般的ですか?
よく[・・・]ってなっているボタンをみかけるんですが。
たとえば、オブジェクトインスペクタのTOpenDialog.FileNameプロパティに
表示されるあのボタンです。

TButtonのCaptionを"..."にしてみたんですが、なぁんか違うなぁと。
0397デフォルトの名無しさんNGNG
>>395
funckingyouとかね。
0398デフォルトの名無しさんNGNG
>>396
TEllipsisEditとかいうコンポがある。
0399名無しさん◎書き込み中NGNG
>>396
ありがとうございます! 検索します。
0400TeamB/2ch ◆SE69s0c2 NGNG
>>399
VCL ソースをお持ちなら、Grids.pas の TInplaceEditList.PaintWindow を
見てみては?ボタンの幅に合わせて小さな黒丸を三つ描画しています。

お手軽に作るときは、スピードボタンに ... でしょうか。
0401デフォルトの名無しさんNGNG
Delphi初心者なんですけど
10個の実数を読み込んでそれらを昇順に並び替えるにはどうすればいいんですか
お願いします 教えてください
0402デフォルトの名無しさんNGNG
>>401
丸投げ
自分で作ろうという気がないのか?
0403デフォルトの名無しさんNGNG
>>402
考えたけどまったくわからないんです
0404デフォルトの名無しさんNGNG
>>403
2つだったら並び替えできる?
0405401NGNG
>>404
できます。
0406でもどり初心者NGNG
>>401
フローチャート書いて見たら?
マジレスダヨ。
0407デフォルトの名無しさんNGNG
>>405
3つの並び替えはできます?
0408デフォルトの名無しさんNGNG
じゃあサービス >>401

program Project2;
uses
Windows, SysUtils, Classes;

var i:Integer;
var s:string;
begin
AllocConsole ;
with TStringList.Create do try
for i:=1 to 10 do begin
write(i,'>');readln(s);Add(s);
end;
Sort;
writeln(text);
finally free;end;

end.
0409401NGNG
>>407
ちょっと無理かも
0410Delphi好き ◆0YAPhEjk NGNG
どうかな。

begin
for i:=1 to 10 do
readln(a[i]);
i:=1;
while i<10 do begin
p:=a[i]>a[i+1];
if p then begin
s:=a[i]; a[i]:=a[i+1]; a[i+1]:=s;
end;
i:=i+ord(not p or (i=1)) shl 1-1;
end;
end;

これで動くかしらん?
0411Delphi好き ◆0YAPhEjk NGNG
補足しますと、
a : array[1..10] of real;
i : integer;
p : boolean;
です。どうかな。参考になれば。パスタですが。
0412401NGNG
すみません やってくれてから言うのも悪いと思いますけど
まだ if while for repeat 配列 しか習ってなくて
これで作らないといけないんです。
0413デフォルトの名無しさんNGNG
モナーの *やさしい* Delphi質問スレ Ver.7
http://pc.2ch.net/test/read.cgi/tech/1021262086/l50
0414Delphi好き ◆0YAPhEjk NGNG
>>412
なるほど宿題ですか。
0415401NGNG
>>414
宿題ではないけど、先生に聞いても、
ちゃんと教えてくれないんです。
もう、ココくらいしか聞ける所がなくて
0416Delphi好き ◆0YAPhEjk NGNG
>>415
んー。言語を教えてくれている先生が教えてくれないなら、酷い先生ですナァ。
0417でもどり初心者NGNG
>>412
配列はわかる?
もしかして、フローチャートって知らない?
0418401NGNG
配列はわかりますけど
フローチャートはよくわかりません
0419でもどり初心者NGNG
>>418
フローチャートは、プログラムの流れ図で、
プログラムを組む前段階の作業っす。

白い紙に、矢印や記号を買って、
プログラムの流れ作業を書いていく。

ここじゃ図解するのめんどくさいから
http://www.am.chs.nihon-u.ac.jp/~yaku/cai/pascal/p0102.html
ここ参照。ノイマン形の方。

あとは、自分ならどう言う手順で並び替えをするか文章化して見る。
で、その文章をフローチャート化し、フローチャートから
コーディングっていう流れが理解しやすいかも。

数字のソートの文章化なら、
数字が書いてある紙が不規則に散らばっている。
1・それのうち、一番近くにある1枚を拾う。
2・2枚目を拾う。2枚目が1枚目より大きければ上へ。小さければ下へ。
3・3枚目を拾う。3枚目が一番上のカードより多ければ上へ。
  小さければ1枚下へ。
  a:その下のカードが3枚目より小さければさらに1枚下へ
  (a:を繰り返し)
って、感じでしょうか。かえってわかり辛いかも…。
0420でもどり初心者NGNG
>>419
>白い紙に、矢印や記号を買って、

訂正

>白い紙に、矢印や記号をつかって、
0421401NGNG
>>419
ありがとうございます。
とりえずやってみます。
0422でもどり初心者NGNG
すいません、ちょっと教えてください。

function F54_GetPrinter(PrintIndex : Integer) : PChar ;
//プリンター情報取得
var
device, driver, port: array[0..80] of Char;
h: THandle;
Str: array[0..255] of Char;
begin
Printer.PrinterIndex := PrintIndex;//プリンタを指定
Printer.GetPrinter(Device, Driver, Port, h);
// win.ini の [windows] の device に書き込む文字列を作る。
StrCopy(str, Device);
StrCat(str, ',');
StrCat(str, Driver);
StrCat(str, ',');
StrCat(str, Port);

strcopy(Result,Str);
//CharをPCharにキャスト

end;

これの、最後のstrcopy(Result,Str);で
「EAccessViolation クラスの例外を生成」
がでてしまうんですが、さっぱり原因がつかめません。

どなたか、ヒントでもお願いします。
0423Delphi好き ◆0YAPhEjk NGNG
>>422
Resultのメモリ領域が確保されていないのでは。
0424でもどり初心者NGNG
>>423
Resultのメモリ領域確保って必要なの?(汗

えーと、えーと、どうやって確保するんですか?(大汗

Delphiのヘルプってわかりづらい…
0425Delphi好き ◆0YAPhEjk NGNG
>>424
この関数の場合返り値がpchar型ですんで、4バイトのポインタを返すだけです。
領域の確保、破棄は自動的には行われません。
string型で文字列を返すようにするか、あるいは、getmemを使ってメモリ確保する
か(この場合、別途破棄も必要です)、あるいは、呼び出し元でメモリを確保する
ようにするかですねー。
問題が無いならstringを推奨です。(DLLとかだと逆に面倒ですが)
0426デフォルトの名無しさんNGNG
>>419
流れ図なら構造化プログラミング図(SPD)ってのもなかなかいいですよ。
フローチャートに比べると各処理のブロック化(構造化?)がし易いので、
長文のときは全体の構造がすっきりしてくる。
俺は実際に図を書くことは殆どないけど、
脳内でSPDをイメージしながらコーディングしてるよ。
まぁ、読みやすさは書く人のスキルによって変わってくるんだけどね。

pascalにはソート関数はないのでしょうか?
Cにはqsortなんてのがあったんですが、、、、
0427でもどり初心者NGNG
>>425
サンクス(゚∀゚)コ

動きました。

実はこれは職業プログラマー時代にサンプルソースを切り張りして作った
通常使用プリンター切り替え関数の一部。

MLにも投稿したことがある(汗

なのに、このざま(爆
0428Delphi好き ◆0YAPhEjk NGNG
>>427
私なんか、TurboPascal暦4年で癖が染み付いちゃってて、Delphiに移ったときに
オブジェクト指向を全く理解せずに5年半くらい?使っておりました。(爆
ようやくクラスの設計をし始めたのがここ1年。(泣
0429デフォルトの名無しさんNGNG
NTにSP6aで使っているのですが,DELPHI6大丈夫ですか?
オフィシャルの動作環境では SP5なんで…
0430でもどり初心者NGNG
>>428
職業プログラマー時代、
オリジナルの入力制限Editを作ってみて、
なんとかオブジェクト指向理解しかかったけど、
開発プロジェクトの他のメンバーがそのEdit使ってくれず、
結局、サブルーチンの共有化に落ち着いた…。

今は、Parsonalを使ってるけど、
データベールコンポーネントが使いたくてたまらない…。
↑付きのやつ高いしなぁ

雑談sage。
0431でもどり初心者NGNG
データベールってなんじゃねん。
データベースです。
0432Delphi好き ◆0YAPhEjk NGNG
>>430
あり。
Personalって商業ベース配布不可じゃなかったでしたっけ・・・?
一応私の所では、Personalは商業ベース配布が不可だったからDel5のProfessionalを
購入したような気が・・・。おかげで、一応データベースコンポーネントがついておりま
すが、これまで趣味のゲームプログラマだったのでデータベースなんか使ったことが無
く、今、色々試しながらアプリケーション開発中です。
0433でもどり初心者NGNG
>>432
>Personalって商業ベース配布不可じゃなかったでしたっけ・・・?
フリーソフトなら配布可能です。
サポートにメールして聞きました。

まあ、ほとんどが社内向けのツールですが。
(会社っていっても10人みまんだし)

ちなみに、いままでに作ったヤツ
・文字電卓(文字数から必要な大きさを計算)
・テキスト自動変換(一括置換&タグ付け)
・HTMLの表自動生成
・進行表(ネットワーク対応)
・PDF自動印刷
・フォント見本帳タグ作成

とかっす。去年からDelphiにでもどったので、
月産1本程度。小物ばかりですが。

いやぁ。プログラムってほんっとに面白いですねぇ〜
0434Delphi好き ◆0YAPhEjk NGNG
>>433
なるほどー。
私も、会社で半分が社内で利用するツール作成、半分が他社製品のカスタマイズ
ですねー。
最近になってようやく会社オリジナル作品の制作を行えるようになりまして。そ
んなわけで、オリジナル作品の制作中です。

ほんとにプログラムって面白いですよねぇ〜。
(他人のプログラムいぢくるのはもうウンザリですケド)
0435デフォルトの名無しさんNGNG
勉強の為に数値入力コンポーネントを作成したいのですが、
何かシンプルな作りで参考になるようなお勧めコンポーネントありませんか?
0436デフォルトの名無しさんNGNG
こんなのどーよ
ttp://homepage1.nifty.com/ht_deko/junkbox.html
0437435NGNG
>>436
これだったら機能が多くないので私でもなんとなく読めます(^^;
これを使って勉強させて頂きますありがとうございました

0438435NGNG
ttp://homepage1.nifty.com/ht_deko/junkbox.html
ここから落としてきた数値入力コンポなんですが、設計時にプロパティのvalueに
9999999999999 を設定すると実行したとたんに、

EReadErrorがモジュール Project1.exe の 〜
NumEdit1.Value の読み込み中のエラー: 不正なプロパティの値です.

と、アプリケーションエラーが出るようです、
ソースを眺めてみたんですが、何処で出ているのか全然分りません(汗
因みに、ソースの中で Valueに 9999999999999 を送ってもエラーは出ません
Create時の処理が悪いのでしょうか?
こーいった場合には、何処から探れば宜しいでしょう。
0439デフォルトの名無しさんNGNG
>>438 ValueがCurrencyだからじゃないか?作者にメールしる
0440デフォルトの名無しさんNGNG
>>438

ちらっと見た所 プロパティの型がCurrencyなので、デフォルトのプロパティエディタが
無い為の現象かと思います。

自分でプロパティエディタを定義するか currencyをやめたら?
0441デフォルトの名無しさんNGNG
>>439-440
なるほど、参考になりました、色々と試してみます。m(..)m
0442デフォルトの名無しさんNGNG
テキストファイルを読み込む→編集→保存をしたいのですが、
適したコンポーネントはありますか?
TMemoのような簡単な画面で、LoadFromFileとSaveToFileが使えれば
充分なのですが。
0443デフォルトの名無しさんNGNG
>>442
>TMemoのような簡単な画面で、LoadFromFileとSaveToFileが使えれば

TMemoのLinesはTStringクラス。
TStringクラスにはSaveToFileとLoadFromFileがある。
頼むよ・・・。
0444デフォルトの名無しさんNGNG
むあー。そうだったのか。すまんす >>443
TMemo.Text見て「はてー?」と思ってました。
0445デフォルトの名無しさんNGNG
cleateprocessで起動させたアプリケーションを、逆に終了させる方法を
お願いします
0446デフォルトの名無しさんNGNG
実行時型情報って何ですか?
利点みたいに言われてることが多いけどいまいちよくわかりません。
0447デフォルトの名無しさんNGNG
>446
例えばイベントとかでSenderに対し

if Sender is TEdit then
begin
 〜


とかってやるのは実行時型情報を利用してるってこった
0448デフォルトの名無しさんNGNG
RTTIは知らず知らずに使ってて、すでに恩恵にあずかっているという罠。
0449デフォルトの名無しさんNGNG
最近、Delphi6personalを使い出して、その素晴らしさに惚れました。
それまでVisualC++やJavaをかじったものの、不満ばかりが残っていたのですが。

そこでいずれはproを買いたいのですけど
あの値段は。。。。
personalとproの価格に差がありすぎではないですか?
これではDelphiに感動した人のお布施みたいなものです。
とても価格の差ほどの差がpersonalとproにあるとは思えない。。。
一般ユーザーは納得して買ってるのでしょうか?
0450デフォルトの名無しさんNGNG
Dephi用ウェブブラウザコンポーネント
ttp://plaza21.mbn.or.jp/~takoyakusi/delphi/UIWebBrowser/index.htm
を落としたのですが、
[致命的エラー] UIWebBrowserPG.dpk(32): File not found: 'c:\program files\borland\delphi4\imports\vcl50.dpk'
と言われてコンパイルできません。
どうしたら良いのでしょうか。

環境はWinXP+Delphi4UpDatePack3です。
0451デフォルトの名無しさんNGNG
>>446
C++にも実行時型情報というのはありますが、これはクラス名の比較に限定された
情報でしかありません。

delphiの場合
クラスのpublished 節で定義されたものには
メソッドには、そのメソッド名がアドレスと一緒に実行ファイル内に保存されています
プロパティも同じです。型名、列挙型などはアイテム名まで実行ファイルに保存されています

これらは設計時にフォームポトペタする時に利用されます。フォームの情報は
実行ファイルにはリソースで保存されていますが、このリソースからフォームを作り
直す時にも利用されています。

この実行時型情報は、プログラムからも呼び出して使う事が出来ます。
自作スクリプトを作るような時には非常に重宝します。ギコbasicで使われてます
0452デフォルトの名無しさんNGNG
>>449
proの値段は、あの値段でVCLソースがついてるだけでも、納得出来る値段
だと思っていました・・・最近のデフレでちょっと高いかなとも思うけど
企業が存続するには 仕方ないのでしょう。

 ヤフオクで古いバージョンのユーザ未登録のものを買い
 バージョンアップで買うのが一番廉くあがるパターンですね

0453デフォルトの名無しさんNGNG
FormのCanvasに描画した際、
上にほかのウィンドウを重ねると消えてしまいます。
消さないようにするにはどうしたらいいでしょうか
0454デフォルトの名無しさんNGNG
上に重ねたウィンドウに描く
0455デフォルトの名無しさんNGNG
>>453
1、フォームのOnPaintで描く・・・これが普通の作法、描画は常にOnPaintでね
2、フォームにImageを貼って それに描く
0456デフォルトの名無しさんNGNG
>>455
それでも上にウィンドウを重ねるとだめでは?
0457456NGNG
あっ、失礼、再描画の問題ね
0458TeamB/2ch ◆SE69s0c2 NGNG
>>450

> 'c:\program files\borland\delphi4\imports\vcl50.dpk'
delphi4 で Delphi5 用のパッケージをインストールしようとしましたね?

今ちょっと調べられないんだけど、蛸薬師さんのコンポーネントですから
説明書きに何か書いてあると思います。
0459Delphi好き ◆0YAPhEjk NGNG
>>453
TBitmapのオブジェクトをTFormのメンバで持っておいて、フォームへの描画を行い
たいときは、基本的にTBitmapオブジェクトへの描画を行い、描画したらフォームを
Invalidateして。そんで、455さんが仰っているようにOnPaintでそのBitmapオブジ
ェクトを転送・・・という方法が良い場合もあります。
0460デフォルトの名無しさんNGNG
>>451
リフレクション対応と言うこと?
0461450NGNG
>>458
 Delphi4の場合、っていうヘルプの記事に従っているんですが・・・。
タイプライブラリの取り込みの画面ですでにヘルプの内容と違うんです。
0462デルファイの名無しさんNGNG
>>445
いきなりTerminateProcessというのも手ですが、あまりにも乱暴と思うので、
CreateProcessならスレッドのIDがわかっているはずなので、PostThreadMessageでWM_QUITを送ってみるとか、
EnumWindowsで起動したプロセスのウィンドウを探して、片っ端からWM_CLOSEを送りつけるとか。
0463デフォルトの名無しさんNGNG
>461
パッケージじゃなく個別に入れてみたら。
0464デフォルトの名無しさんNGNG
>>462
>PostThreadMessageでWM_QUITを

Window持ってない奴にはノーダメージな罠。
保存しますか?ダイアログが出た場合切ない罠。
0465132NGNG
132=300=311です。

色々やったのですが、どうしても当該アプリの覗き見が出来ませんでした。
確認の為IEの画面を覗き見ようとIEのCapitionでFindWindwsして
Sendmessageを監視して内容がWM_PaintだったらClipboardにコピーして
それをまた自分の所のImageに貼りつけるようにプログラムをしました。
しかし、何もコピー出来なかったり、自分のフォームの画像がImageに取り
込まれるだけでした。
丸一週間頑張ってみましたがお手上げ状態です。

すみません、ソースくれくれ厨にならせてください。
どなたかどうかよろしくおながいします。
0466デフォルトの名無しさんNGNG
B83W59H86(14歳)セルフヌード衝撃うp祭り開催中!!
http://tmp.2ch.net/test/read.cgi/mog2/1022943102/l50
0467デフォルトの名無しさんNGNG
>465
ここは質問スレでソースキボンヌスレじゃない。
0468456NGNG
>>467
なぜMLに投げてみないの?
0469デフォルトの名無しさんNGNG
↑
× >>467
○ >>465
0470132NGNG
>>469
DelphiのMLには参加してないです。
0471デフォルトの名無しさんNGNG
>>465
 ようするに文字認識でデータを取るなら 窓ハンドルを得たら
GetWindowRectで表示位置を取得して

h:=FindWindow(nil,PChar(title)) ;
if h<>0 then begin
  GetWindowRect(h,rct);
  Caption:=Format( '%5d %5d',[rct.left,rct.top]);
 mcanvas:=TCanvas.Create;
 mcanvas.Handle:=GetDC(0);
 try
  Image1.Picture.Bitmap.Width :=rct.Right -rct.Left;
  Image1.Picture.Bitmap.Height:=rct.bottom-rct.top;
  Image1.Picture.Bitmap.PixelFormat:=pf16bit; //色数は適当に
  with Image1.Picture.Bitmap do
  Canvas.CopyRect( Rect(0,0,Width,Height) ,mcanvas,rct);
 finally mcanvas.Free;end;
 end;
end;
0472embedder ◆GqCvG9cU NGNG
>>450
正直、最初はUIWebBrowserにお世話になろうとしてたけど、
インストール出来なかったり(2ちゃんスレの過去ログのは試した)、
いろいろ思うことあって、「embeddedwb」にした。ちょっとつっかかったけど、
インストール出来たし、とてもいい!英語だけどネ。
後は、「フリーウェアとして、特に断ったりしないでもアプリケーションとして
自由に配布出来るのか?」がよく分からんとこだけど、2ちゃんブラウザも使ってるのが
あるみたいだし、「フリーウェア」って書いてあるから、GPL(?)ではないか…
と結論してるのだが。
単なる意見でした。
0473デフォルトの名無しさんNGNG
>>465
つーか、「おながいします」じゃねーよな。「おな」(藁
どっか他で真面目な書き込みして、ソースもらえば?
0474デフォルトの名無しさんNGNG
>>132 DelphiのMLには参加してないです。

参加するのに5分もあればOK。タダだし。
ちゃんとしたところで質問すると、ちゃんとした回答が
得られる確率が高くなる
0475デフォルトの名無しさんNGNG
ここで質問してしまった手前、MLでアドレスがバレテ、ひょっとメール爆弾でも
喰らったら寂しいと思っているの鴨
0476デフォルトの名無しさんNGNG
ソース >>471 で出てるんじゃないの?
他の窓に隠れたらとれないけど、それはしょうがない
0477132NGNG
>>471
ありがとうございます。試してみます。

>>476
ちょっと待ってちょ。
昨日から試してます。
TopWindowにバックグラウンドで動かせる方法が無いか
試してるんですけど、難しいです。
一時的にトップに持ってきて元に戻すしか無いんですかねえ。

グローバルフックでなくて他のアプリからアクセスが無ければ
DLL化しなくてもいいと、昨日初めて知った。
0478デフォルトの名無しさんNGNG
>>477
って言うかメッセージ投げればいいのでは?
WM_MOVE
0479デフォルトの名無しさんNGNG
>>477
>>TopWindowにバックグラウンドで動かせる方法

 そもそも描画領域が隠れていたら描画そのものをしない場合も多いでしょ

そこまでやりたいなら、そのアプリをデバッカにかけて 内部データの位置を
見つけた方が速いんじゃないの?
0480132NGNG
>>478
えっ?すみませんそれはどういうことでしょうか?
SetWindowsHookExではWM_Moveはフック出来ないようですが・・・

私がとりあえず今考えているやりかたは、
ターゲットのアプリのCaptionは分かっているので、
1、FindwindowsExで子Windowsのハンドルを取得
2、SetwindowsHookExでWM_GetMessageを覗き見
3、覗いたデータをImageにコピー
4、取り込んでOCR
これだったら隠れていても上手く取得出来るのではないかと思い1〜3までを
とりあえず完成させようとしているのですが、四苦八苦していまして
まだ動作確認できていません。

>>479
すみません、私デバッガを使ったことがないものでして、その方法は
検討していませんでした。

良いデバッガや参考になる方法、URL等がありましたら教えてください。
0481デフォルトの名無しさんNGNG
 デスクトップに絵を直接描画するプログラムを作っています。
デスクトップのハンドル(?)をTCanvas.Handleに代入してDrawする、
という方法を用いたところ、別のウィンドウ上に描画された場合、
そのウィンドウをドラッグしても絵がウィンドウに張り付いたままになってしまいました。
 これを防ぐにはどうしたらいいでしょうか?アドバイスお願いします。
0482デフォルトの名無しさんNGNG
>>481 それこそ UpdateWindow(hwnd) でも投げたらいいんじゃないの?
0483481NGNG
>>482 これはすべてのWindowに送らなければいけないのですか?
0484デフォルトの名無しさんNGNG
>>480 = 132
>2、SetwindowsHookExでWM_GetMessageを覗き見
>3、覗いたデータをImageにコピー
>4、取り込んでOCR
>これだったら隠れていても上手く取得出来るのではないかと思い

メッセージフックして、WM_PAINT でのイメージを覗くわけですか
隠れているウィンドウが WM_PAINT を受けとるはずはない、と思ふ

なんか壮大な計画を一気に完成させようとしているみたいですが
ひとつひとつ簡単な確認用のコードを確かめてから、それらを組み合わせて(以下略)
0485132NGNG
>>484
えっ?WM_PaintはアプリからWinへ出力はされるけど隠れていたら
描画されないんじゃないんですか?
それだったらほんとにデバッガのお世話になるかも。

最初からアプリを作るのは無理だと思っていますので、とりあえずは
隠されたIEの再描画をフックしようと色々四苦八苦してます。
0486デフォルトの名無しさんNGNG
WH_GETMESSAGE じゃ まだ描画前だ
0487デフォルトの名無しさんNGNG
>WM_PaintはアプリからWinへ出力はされるけど

ウィンドウメッセージを勉強する必要があるね
0488デフォルトの名無しさんNGNG
キャプチャを作ってます。
各ウインドウ矩形での選択をしたいのですが
(タスクバーだけ選択とかボタンだけ選択とか)
どうすればできますか?
0489デフォルトの名無しさんNGNG
>>488
Windowsハンドル取ってDCを取得してその内容読む。
0490デフォルトの名無しさんNGNG
>>488

スクリーンに表示されているのなら 471 のコードの応用
0491488NGNG
>>489-490さん
レスありがとう。
やってみます。
0492ScrollBoxをカーソルキーでスクロールNGNG
ScrollBoxの上にイメージコンポーネントを置いて、AutoSize=Trueはよくある
パターンですが、このスクロールをカーソルキーやPageUpDownキーで行えないで
しょうか?
特に何もプロパティを設定しなくても、マウスのホイールではスクロールしてく
れますが、カーソルキーではスクロールしてくれません。
キーイベントを別個に書かなくてはいけませんか??
0493132NGNG
皆さん何度もありがとう。

>>486
描画前のメッセージキューに送られた時にフックしようと
思っているのですけど、無理なのでしょうか。
これが出来ないのとなるとデバッガを使うか471さんが
書いてくださった方法しか手がなくなってしまうので。
0494デフォルトの名無しさんNGNG
>>493
 いっそ TextOut DrawText をフックしたらいいんじゃないの?
 DLLは関数ポインタによる呼び出し(間接コール)になってるから
 そのアドレスを探して、この2つを書き換えてしまえば全部の描画文字列を
 取得出来るよ
0495132NGNG
>>494
そのアプリをWinsightで覗いてみたのですが、WM_Paintと
WM_EraseBkgndしか出力してなくて駄目でした。
0496デフォルトの名無しさんNGNG
 四角(Rect構造体)で指定した枠内にあるウィンドウのハンドルを
取得する方法を教えてください。
0497デフォルトの名無しさんNGNG
>>496
FindWindowでせっせとやれば?
0498デフォルトの名無しさんNGNG
>>496
1点だけならWindowFromPointでできるけど、
矩形の場合だとウィンドウを列挙して、IntersectRectで
領域内に入っているか地道に調べていくしかないと思われ。
0499496NGNG
>>497
 FindWinowは使い方がよくわからないのですが・・・。

>>498
 なるほど・・・。しかし秒間10回ほど行う処理なので少し厳しいですね。
或いは画面全体を再描画させる関数が有ればそれで良いのですが。
0500496NGNG
ちなみに言い忘れましたが、
>>496 = >>481です。
0501デフォルトの名無しさんNGNG
>>500
何だ、その話か。
InvalidateRectすれ。
0502500NGNG
>>501
 GetDC(0)で得たハンドルに描画しているので、
InvalidateRect(0, )としてしまうと、画面全体がちらついてしまいます。
高速に繰り返す処理なので・・・、何か方法はありませんか?
0503デフォルトの名無しさんNGNG
>>502
再描画の必要な領域だけ無効化するとか、最後の引数をfalseにするとかしてる?
0504デフォルトの名無しさんNGNG
>499
既に>498が回答になっていると思うが。

>秒間10回ほど行う処理なので少し厳しいですね。
実際にコーディングして試してみたのか、おい?

>FindWinowは使い方がよくわからないのですが・・・。
APIのリファレンスはDelphiについてるでしょ。
使い方だってネット上をちょろっと漁ってみれば大量に出てくるぞ。
0505500NGNG
>>502
 前者は、第二引数の話ですか?
 後者はやっています。
>>504
 >実際にコーディングして試してみたのか、おい?
 連続描画でアニメを表現しているので速度は変えられません・・・。
0506デフォルトの名無しさんNGNG
>>495 = 132
>そのアプリをWinsightで覗いてみたのですが、WM_Paintと
>WM_EraseBkgndしか出力してなくて駄目でした。

アプリがこのメッセージを出力してるんではない、と何度いったら
理解できますか? WM_PAINT をフックしても、それで隠れたウィンドウ
の描画をのzくことができる、なんて保証はないよ。

確認したいのですが、WM_PAINT を<受け取って> クライアント領域を
描画しているのはアプリのコードであると知っていますか? ウィンドウ
関数にわたる前にフックして何するつもりなの?
0507デフォルトの名無しさんNGNG
>>492
>キーイベントを別個に書かなくてはいけませんか??

いけませんね。
0508デフォルトの名無しさんNGNG
>>500
>連続描画でアニメを表現しているので

アニメをデスクトップに描画するなんて、どうかしてるよ。
なんで自分のウィンドウに描画しないの?
0509500NGNG
>>508
ユーザーのマウスやキーボードの入力に反応するようにしているので、
所謂、デスクトップアクセサリのようなものを作っているのです。
0510132NGNG
>>506
すみません、アプリがWM_PaintをWindowsに渡して、
それを受けとったWindowsが描画していると思っていました。

解決策のヒントをいただけないでしょうか?
0511デルファイの名無しさんNGNG
>509
普通、デスクトップに直書きするのではなく、
ウィンドウリージョンで変形ウィンドウを作ると思いますが、如何?
0512デフォルトの名無しさんNGNG
>509
だったらデスクトップになんか描画するなよ。
リージョン使って絵にあわせたウィンドウを作ればいいじゃん。
とりあえず
http://www.vector.co.jp/soft/win95/prog/se082336.html
のソースとにらめっこしてみ。
0513506NGNG
>>510=132
>解決策のヒントをいただけないでしょうか?

例の音の出力検出以来、ずっと助けてやりたいと思っていたんだけれど
どうもオレの知識じゃ足りないみたいなんだよ。否定的コメントばかり
ですまん、とは思っているんだが、間違った方向へは行かないように、
とすこしは助けてるつもりなんだよ。

それで、確認したいんだが、音の出力検出についてはまったく知らない。
それが無理だとして、そのほかにどのような変化があるわけですか。
TMemo や TListBox などのウィンドウコントロールに変化はないのですか?
これがあれば、メッセージをフックできると思うんだが。たんに、GDIを
もちいた描画だけが変化するんだったら検出は難しいぜ。特に、隠れていて
表示されていない時は。

文字列の変化には、VCLの TLabel みたいにGDIで描画せれているのと
スタティックコントロールのようにウィンドウテキストを変更している場合
がある。VC++で作られているダイアログアプリなら後者の場合が多いので
メッセージをフックできることもある。前者の場合は難しい。
0514500NGNG
>>511-512
 いえ、デスクトップに直接描画したいのです。
ウィンドウがあると重なった部分のウィンドウが使えなくなってしまいますし。
0515デフォルトの名無しさんNGNG
一人の厨房に振り回されちゃって大笑いだねこりゃ
0516506NGNG
>>514

アニメをデスクトップに描画するなんて、どうかしてるよ。
ウィンドウを最前面に保つようにするコードがあったはず。
おれは知らんが。

どうしてもデスクトップというなら、画面の更新にも責任もってね。
0517デフォルトの名無しさんNGNG
手段や方法よりも先に目的が間違ってることってあるよな。
0518デフォルトの名無しさんNGNG
以後>500と>132は放置ということでよろしいか?
0519デフォルトの名無しさんNGNG
目的にいちゃもんつけるのは余計なお世話。
0520506NGNG
>519

132 はまともだと思う。知識がたりないだけだし。
0521506NGNG
↑
× >519
○ >518 スマヌ
0522132NGNG
>>513
たびたびありがとうございます。

音と同時に数値が変わるだけでして、その子Windowを
WinSightで見てみたら前に書きましたWM_PaintとWM_EraseBKGNDが
出力されただけでした。

> 文字列の変化には、VCLの TLabel みたいにGDIで描画せれているのと
> スタティックコントロールのようにウィンドウテキストを変更している場合
> がある。VC++で作られているダイアログアプリなら後者の場合が多いので
> メッセージをフックできることもある。前者の場合は難しい。

この両者の違いが分からないのですが、バイナリエディタでそのアプリを覗いたら
msvbvm60.dllやc:\Program Files\Microsoft Visual Studio\VB98\VB6.OLB
等の記述があるのでたぶんVBで作られていると思います。
0523デフォルトの名無しさんNGNG
(´-`)。o ○ (なんか、粘っこい人が増えたなぁ…)
0524デフォルトの名無しさんNGNG
↑自分がわからない質問を続けられるのがイヤな人
0525デフォルトの名無しさんNGNG
524=自分がわからない質問を続けられるのがイヤな人
0526デフォルトの名無しさんNGNG
?
0527デフォルトの名無しさんNGNG
で?
0528デフォルトの名無しさんNGNG
>>526-527
オイオイ。顔を真っ赤にして2つもくだらねーレスすんなよ。
0529デフォルトの名無しさんNGNG
>>525の意味は不明だが>>523=525なのはわかる。
0530デフォルトの名無しさんNGNG
俺は526だけだが。真っ赤にしてるのは誰?
0531デフォルトの名無しさんNGNG
俺は527だが、顔は赤くないがなにか?
0532デフォルトの名無しさんNGNG
526=527=530(プ
0533デフォルトの名無しさんNGNG
赤いのは523と525と528。
0534デフォルトの名無しさんNGNG
ああ、嘘ついた。526だけじゃなくて524も俺だ。恥ずかしくて真っ赤だよ。
0535506NGNG
>>522=132
>この両者の違いが分からない

えーと、TLabel は TGraphicControl の派生クラスで、親ウィンドウの
特定の領域の描画をしているだけ。これは外のアプリからはみえない。
一方、スタティックやエディットやリストボックスのようなVCLの
TWinControl の派生クラスなら、子ウィンドウなのでそれは外のアプリ
からも見えるし、それを制御するためのメッセージをフックすることもで
きる。この両者の違いは大きいです。

>音と同時に数値が変わるだけでして、その子Windowを
>WinSightで見てみたら前に書きましたWM_PaintとWM_EraseBKGNDが
>出力されただけでした。

ふーむ、だとするとVBアプリであることも考慮すると TLabel 相当
なんですかね。そうなら、おれの知識では、その変化を検出するのは
無理みたいね。すまん。
0536デフォルトの名無しさんNGNG
真っ赤で泣いてるのが533
0537デフォルトの名無しさんNGNG
長編な質問はMLで質問したら?読みづらいし期間が長いと飽きちゃうよ(w;
0538デフォルトの名無しさんNGNG
>>537
http://pc.2ch.net/test/read.cgi/tech/1021262086/470
0539506NGNG
>>537

そうだよね。ML加入を何回もすすめてるんだよ。
0540537NGNG
>>538-539 うむ・・・ (汗
MLに自分の意思で入らない人もいるんだねぇ、初めてそのような人々の存在を知ったYO!!
0541506NGNG
>>540

おれもいろいろなMLに加入したけど、Delphi-ML はかなりまともな
MLだと思う。FreeMail からハンドルネームでの投稿を非難されない
し。基本的なエチケットさえちゃんと守れば、どんな質問だってOK
だし。「過去ログ見ろ」の回答だって、「そうですね、ありがとう」
といえばそれなりの情報は手に入るし。加入しても損はないと思う
0542132NGNG
>>535
> えーと、TLabel は TGraphicControl の派生クラスで、親ウィンドウの
> 特定の領域の描画をしているだけ。これは外のアプリからはみえない。
> 一方、スタティックやエディットやリストボックスのようなVCLの
> TWinControl の派生クラスなら、子ウィンドウなのでそれは外のアプリ
> からも見えるし、それを制御するためのメッセージをフックすることもで
> きる。この両者の違いは大きいです。

詳しい説明ありがとうございます。良く分かりました。


MLに参加しなかったのはメール鯖が会社の管理する寮の鯖でして、
一日20通を超えるメールを受信すると会社から「共用リソースを大切に・・・」
とメールが来る非現実的な所にいるもので、参加していませんでした。
Freeメールでも大丈夫、とのお話だったのでさっそく参加させていただき
ました。

まだ場の雰囲気が読めないので雰囲気が分かってきたら質問させて
いただきます。
皆さんありがとうございました。
0543デルファイの名無しさんNGNG
>>514
恐らく、ウィンドウにしてしまうと、表示してしまった部分は
下のウィンドウが操作できなくなることを危惧しているのでしょうが、
それにはちゃんと方法があって、WM_NCHITTESTでHTTRANSPARENTを返せば、
マウス操作を素通りさせることができたはず…
// 試したことはないのでできなければごめん
0544デフォルトの名無しさんNGNG
>514
デスクトップマスコットがいて、その絵の下のウィンドウに触れるってほうが
俺は気持ちが悪いぞ・・・
0545506NGNG
>>543
MSDN Library より
HTTRANSPARENT
In a window currently covered by another window in the same thread
(the message will be sent to underlying windows in the same thread
until one of them returns a code that is not HTTRANSPARENT)

同じスレッドのウィンドウじゃないとダメ、みたいに読めるが?
0546506NGNG
>>542=132

Delphi で Timer を使って、Label1 にランダムな数値を1秒ごとに
表示している、と想像してください。これを Label1 のプロパティーを
使わずに、その変化をどうやって検出するか、という問題と同じです。

それでは、MLでまた会えるかもね。
0547506NGNG
>>546
訂正

× Label1 のプロパティーを使わずに
○ Form1.Handle だけをつかって

0548506NGNG
>>547 さらに訂正すまぬ

WM_TIMER をフックするというのは、なしでお願いします。
0549デフォルトの名無しさんNGNG
>>514
とても独創的な発想の持ち主とお見受けしました。
0550デフォルトの名無しさんNGNG
TEditorはpersonalで使えないのでしょうか?
何とか使う方法はないのでしょうか?
0551デフォルトの名無しさんNGNG
QuickReportで、Accessの帳票みたいに
サブレポート様なことは実現できないのかのう?
0552デフォルトの名無しさんNGNG
TListViewでアイテムの移動ってどの様にすれば良いのでしょう?(;´Д`)

ぐぐるで検索しても出てこない……
0553デフォルトの名無しさんNGNG
>>552
MLの過去ログからですが、これでしょうか?
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/065/065944.html
0554初心者NGNG
質問です。よろしくお願い致します。
TStudent というクラスを作って、広域的に?public?に、どのコントロールからも使えるように
オブジェクトを使いたいのですが、どこで、「student :TStudent;」と書けば良いでしょうか?

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

type
TStudent = class

private
Name : string;

public
function GetName:string;
procedure SetName(N:string);
end;

function TStudent.GetName:string;
begin
result := Name;
end;

procedure TStudent.SetName(N:string);
begin
Name := N;
end;
end.

本見ると、概念的な説明はのってても、実際の使い方はほとんど載っていなくて、
判らず困ってます。昔VCはやってたんですが・・・ ご教授お願いします。
0555デフォルトの名無しさんNGNG
>>553
感謝です。
Assignでコピー出来るなんて知らなかった……。

>>554
そのまま、{ Public 宣言 }のところじゃないかな
0556初心者NGNG
>>555
そうすると、
[エラー] Unit1.pas(16): 未定義の識別子 : 'TStudent'
と、出てきてしまいます。

定義する前に宣言しちゃっているからだと思うのですが・・・

どうすればいいか、わから〜ん! ヽ(;´Д`)ノ
0557デフォルトの名無しさんNGNG
TStudent = classがstudent :TStudent;より上に存在しないとエラーな様な……
0558TAREANSNGNG
>>556
マニュアル読めや
0559デフォルトの名無しさんNGNG
実現部に定義してるクラスはインターフェイス部では使えないよ
別のユニットに書いてusesするなり、インターフェイス部のTForn1より上に書くとかしてみれば?
0560デフォルトの名無しさんNGNG
>554
implementation以下は実装部分なのでここでクラス定義はしないのです。
unit〜implementationの間がCで言うところのヘッダみたいな場所なの。
ヘルプの「ObjectPascal言語ガイド」で「プログラムとユニット」を見てちょ。
余談だがTStudentは別ユニットに分割した方がいいと思う罠。

type
 TStudent = class
 private
  Name : string;
 public
  function GetName:string;
  procedure SetName(N:string);
 end;
 TForm1 = class(TForm)
  Button1: TButton;
  procedure FormCreate(Sender: TObject);
  procedure Button1Click(Sender: TObject);
 private
 { Private 宣言 }
 public
 { Public 宣言 }
 end;
var
Form1: TForm1;

implementation
(以下省略)
0561初心者NGNG
>>560 & All

どうもありがとうございます。ヽ(´∀` )ノ
0562デフォルトの名無しさんNGNG
Formのiconに設定するアイコンを作成しようと思いました。
ピクセルを32×32にして、アイコン描写後、Formのiconで読み込んでみると、「イメージが不正です」と怒られてしまいます。
どうしたらいいでしょうか?よろしくお願いします。
0563デフォルトの名無しさんNGNG
モザイクかけないと
0564563NGNG
ごめん。書いてから後悔した。くだらなすぎる。
0565デフォルトの名無しさんNGNG
>>564
ちょっと笑いましたけど。w
誰か教えて下さい。 ・゜・(ノД`)・゜・
0566デフォルトの名無しさんNGNG
お詫びに考えてみる。

あれだ、拡張子を.bmpから.icoに変えただけのエセアイコンファイルを使ってるんだな、きっと。
0567デフォルトの名無しさんNGNG
Delphi6を使用してます
TLabelをインデックスで管理したいのですが、
lbl_memo[0]とかってできませんでしたっけ?
プロパティにIndexがあった気もするのですが、ないですね。。。
久しぶりにDelphiで開発するのでとまどいが隠せない今日この頃。。。
お助けください
0568562NGNG
>>566
保存する時に、16色bmpで拡張子を.icoにしたので、その状態かもしれません。
どうすれば治るのでしょうか?
0569デフォルトの名無しさんNGNG
properttyでIndex使ってもできるけど、簡単なのはこっち。
--
var lbl_memo: array [0..5] of TLabel;
begin
 lbl_memo[0]:= Label1;
 lbl_memo[1]:= Label2;
  :
0570デフォルトの名無しさんNGNG
>>568 添付のImageEditor使ってアイコンにすれば?
嫌ならアイコンエディターなんてフリーでいくらでも転がってるよ。
0571デフォルトの名無しさんNGNG
>>568
.icoファイルをサポートするソフトで読み込んで.ico形式で保存し直しだな。
0572デフォルトの名無しさんNGNG
くだらないは、かぶるはで鬱だ氏脳状態
0573562NGNG
>>570-571
ImageEditorの存在忘れてました。w
それなら拡張子変えない方法で.icoで保存できるっぽいですね。
その方法でやってみます。
ペイントで.icoで作れる様にもしたいので、サポートするソフトとやら、探してみようと思います。
お二方、ありがとうございました。
0574562NGNG
すいません、FormのCaptionの左にあるアイコンは変えられたんですが、
マイコンピュータから見た、ファイル名の左にあるアイコンはどうやって変えるんでしょうか?
プロパティでできるかなと思いましたが、無理でした。
もう一回教えて下さい。m(_ _)m
0575デフォルトの名無しさんNGNG
>>574
プロジェクトオプション→アプリケーション→アイコンの読み込み
0576562NGNG
>>575
できました。
真にありがとうございました。m(_ _)m
0577デフォルトの名無しさんNGNG
>>569
ありがとうございます
オブジェクトインスペクタでIndexが見つからなくて(w
0578デフォルトの名無しさんNGNG
>>550
最新版ふつうにインストロールできましたが。
0579デフォルトの名無しさんNGNG
>>569
申し訳ないです
これをどこに記述すればよいのかわかりません
この場合 Label1〜 はあらかじめフォーム等に作成しておくのでしょうか?
0580デフォルトの名無しさんNGNG
>>579
0581567NGNG
すんませんすんません
>>569で教えていただいた方法がわかりません
オブジェクトインスペクタでIndexの定義をすることって
できませんでしたっけ?
なぜか見当たらないのですが。
以前はありましたよね?
。。。見えていないだけですか?
うーん。。。。。

コードで記述するにしても 今ひとつわからなくて
すんませんとしか言い様もなく すがってみたい
0582デフォルトの名無しさんNGNG
>579
そういうこと。
事前にラベルは貼っておく。

>581
できない。
以前も、多分これからもない。

既に>569が書いているのが回答そのものなんだけど、他の
手段としてこんなのもあるが、
ttp://www.asahi-net.or.jp/~HA3T-NKMR/tips002.htm
あまりオススメできない。
0583492 :ScrollBoxをカーソルキーでスクロールNGNG
こういう場合、なんのコンポーネントにキーイベントを記述すべきでしょうか?
EditBoxを配置して、常にSetFocusでFocusが移動しないようにして、
if key= vK_Up then とかで、Scrollbox1.VertScrollBar.Positionを変更と
いうことでよろしいでしょうか?
それとも、ScrollBarを配置して、ScrollBoxと連携???
(当然、Visibile:=Falseで)
0584492 :ScrollBoxをカーソルキーでスクロールNGNG
ありゃ? ScrollboxのScrollBar.PositionのMinとMaxは、どうやって
取得したら良いのでしょう???
キーをとらえたとして、際限なくUpDownしていいのかしらん???
0585Delphi好き ◆0YAPhEjk NGNG
>>581
例えば、以下の様な関数(メソッドが良いか)を作成するのも吉かと。

function TForm1.GetLabelByIndex( Index : integer ) : TLabel;
begin
 result:=nil;
 case Index of
  1 : result:=Label1;
  2 : result:=Label2;
    ...
 end;
end;
いかがでしょ?
0586Delphi好き ◆0YAPhEjk NGNG
>>584
TScrollBoxコンポーネントは、多分ですけどHorzScrollBarプロパティで水平、
VertScrollBarプロパティで垂直のスクロールバーデータが手に入るかと。で、
範囲は、0〜Rangeの値まで。その辺はヘルプに載っていますけどー。(当方Del5
ですが)
0587492 :ScrollBoxをカーソルキーでスクロールNGNG
ScrollBar.Positionプロパティを操作するんじゃないんですか?
普通のScrollBarには、Max,Minとかあるけど、ScrollBoxには、
ScrollBoxの水平垂直ScrollBarのさらに、Positionを操作???
RangeとPositionの関係が???です…。
0588デフォルトの名無しさんNGNG
>587
落ち着いてヘルプをよく読む。
0589???NGNG
???
0590492 :ScrollBoxをカーソルキーでスクロールNGNG
横方向だけを考えるとして、ScrollBoxのRangeを内部のImageBoxの大きさに
合わせて(これって自分で設定するんですよね?)、例えば、ImageBoxのWidth
が300だと、ScrollBox1.HorzScrollBar.Range:=300にしたあと、Positionを
半分に設定したら、半分が見えると思ったんですが、Position=79です!
この79という数字はどこから?????
ScrollBox自体のWidth=241なんですが、241+79=320。この300との20の差は、
ScrollBar自体の幅???
0591?????NGNG
?????
0592デフォルトの名無しさんNGNG
>>590
縦スクロールバーの幅も考慮に入れる
というのは面倒なので、WidthじゃなくてClientWidth使うべし。
0593492 :ScrollBoxをカーソルキーでスクロールNGNG
おせーろハゲ
0594デフォルトの名無しさんNGNG
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
??????????????????????????????????????????????????
0595デフォルトの名無しさんNGNG
>>594
半角のが1つだけあるな
0596デフォルトの名無しさんNGNG
>>595
思わず保存して grep かけてしまったではないか。
0597デフォルトの名無しさんNGNG
あっはっは
0598デフォルトの名無しさんNGNG
>>596
ワラタ
0599デフォルトの名無しさんNGNG
しかし>>594は大丈夫だろうか。母さんあなたが心配です。
0600492 :ScrollBoxをカーソルキーでスクロールNGNG
600ゲット!!!1!111
0601492 :ScrollBoxをカーソルキーでスクロールNGNG
本来の質問である、カーソルキーで、という奴は、EditBoxでキーを捕まえて
とやってみましたが、通常はどう処理するのが一般(という言葉が適切なのか
な…)なのでしょうか?。(捕まえて、Position変えて、key=#0にする。)
keyのイベントがあるものならなんでもいいようですが…
0602デフォルトの名無しさんNGNG
>>596
御苦労。
0603デフォルトの名無しさんNGNG
>>595
ねえよ。
0604デフォルトの名無しさんNGNG
>>595 くそー。ひっかかった。
0605492 :ScrollBoxをカーソルキーでスクロールNGNG
駄レスすんなやDel厨。
0606492 :ScrollBoxをカーソルキーでスクロールNGNG
>>592 すみません。お礼を書くのを忘れてました。
なんで、ScrollBoxは、キーボードでScrollBarがうごかせないんだーーーー
0607492 :ScrollBoxをカーソルキーでスクロールNGNG
ごふっごほっっ、、、、ごほほっご」ほおっおっおほほっほっっおっおほおお
0608492 :ScrollBoxをカーソルキーでスクロールNGNG
.。o○プクプク
0609デフォルトの名無しさんNGNG
ようするに、構って欲しいワケ?>492
0610492 :ScrollBoxをカーソルキーでスクロールNGNG
>>609
兄ちゃん良いモノ持ってるなあ?
0611デフォルトの名無しさんNGNG
なんだこの糞スレ。
0612本当の492NGNG
いえ。なんでホィールでScrollBox動かせるのに、カーソルキーやPageUp
Downキーで、動かせないのかな?と。
キーボード派で、いちいちマウスの持ちかえるのが面倒なだけです。
0613デフォルトの名無しさんNGNG
1行1列のリストビューを作ってオーナードローすれば楽チンさ!
と思ったけどキーでは横にしか動かせませんでした。てへっ。
0614本当の492NGNG
黙れハゲ!
0615デフォルトの名無しさんNGNG
(´-`)。o ○ (だんだん、「某スレ」に似てきたなぁ…)
0616デフォルトの名無しさんNGNG

うっさいハゲ。つるっぱげ。
0617デフォルトの名無しさんNGNG
スレと関係ない書きこみは放置厳守でよろしく
0618550NGNG
>578
最新版を入れると普通にインストールできました。。。
何で悩んでたんだろう。。。
0619デフォルトの名無しさんNGNG
(´-`)。o ○ (またぁりな雰囲気だたのに…)
0620567NGNG
すんまへん。。。
>>569をどこに記述しればよいのか
わかりまへん。。。
あちこちに書いてみましたが、えらぁ。。。(鬱

>>585
えーと。。。
あぁ
なるほど
できるのかな 自分に。。。
試してみまする

ありがとおございまっす!
0621567NGNG
あ〜〜〜
わかりまいた。。。
あたしゃアフォだな(w

ありがとうございました
0622Delphi好き ◆0YAPhEjk NGNG
>>620
横槍スマソ。
>>569のは二つに分けて考えましょう。

var lbl_memo: array [0..5] of TLabel;
部分はTFormクラス内(Publicがよろしいかと)に。

begin
 lbl_memo[0]:= Label1;
 lbl_memo[1]:= Label2;
  :
は、TFormのCreate内に書きましょう。
ということで。
0623Delphi好き ◆0YAPhEjk NGNG
さらに追記スマソ。
>>585にはプロパティ宣言を入れると、お好み通り(まるでインデックス指定して
いるような)感じになるかと。

property Label[Index : integer] : TLabel read GetLabelFromIndex;

・・・こんな書き方で良かったと思いますが。間違ってたらゴメンナサイ。
これで、参照時は、

messagebox(handle,pchar(Label[1].Caption),'実験',mb_ok);

みたいな感じにできるかと。
・・・書きすぎてスレ汚しになったかナァ。
0624567NGNG
>>622
あ。
ご丁寧にありがとうございます
なんかテンパっててわけわからないことで悩んでしまいますぃた(恥

>>623
そこまで書かせてしまって申し訳ないです
いくつかの手段があるのを知るのはとても必要なことなので
大変助かります
多謝です!
0625デフォルトの名無しさんNGNG
>>492 :ScrollBoxをカーソルキーでスクロール

507 でレスしたものです。

>なんでホィールでScrollBox動かせるのに、カーソルキーやPageUp
>Downキーで、動かせないのかな?と。

ホイールはスクロール専用の入力デバイスです。キーデバイスは、
スクロールとは本来無関係ですから、キー入力でスクロールするため
には、プログラマがコードで関連付けなくてはなりません。

矢印キーで ScrollBox をスクロールするのは、フォーカスの移動
があるため、思ってたより難しいですね。フォーカスの移動を防ぐ
ために、Application.OnMessage でキー入力を処理するとうまくい
きます。以下のコードでは、ScrollBox1 には Image1 があって、
TAB キーで、または、マウスでクリックするとフォーカスが
ScrollBox1 に移動して Label1 が赤色になります。このとき、矢印
キーで ScrollBox1 をスクロールできます。試してみてください。


type
 TForm1 = class(TForm)
  ScrollBox1: TScrollBox;
  Image1: TImage;
  Button1: TButton;
  Edit1: TEdit;
  Label1: TLabel;
  procedure FormCreate(Sender: TObject);
  procedure ScrollBox1Enter(Sender: TObject);
  procedure ScrollBox1Exit(Sender: TObject);
 private
  { Private 宣言 }
 public
  procedure AppMessage(var Msg:TMsg; var Handled:Boolean);
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

0626つづきNGNG
procedure TForm1.FormCreate(Sender: TObject);
begin
 Label1.Font.Color := clWhite;
 Label1.Color := clBlue;
 Label1.Caption := 'Exit';
 ScrollBox1.TabStop := true;
 Application.OnMessage := AppMessage;
end;

procedure TForm1.ScrollBox1Enter(Sender: TObject);
begin
 Label1.Color := clRed;
 Label1.Caption := 'Enter';
end;

procedure TForm1.ScrollBox1Exit(Sender: TObject);
begin
 Label1.Color := clBlue;
 Label1.Caption := 'Exit';
end;

type
 TScrollKind = (LineUp,LineDown,LineLeft,LineRight);

procedure ScrollBoxScroll(SB:TScrollBox;ScrollKind:TScrollKind);
const
 LineScroll = 5;
begin
 case ScrollKind of
  LineUp:SB.VertScrollBar.Position := SB.VertScrollBar.Position-LineScroll;
  LineDown:SB.VertScrollBar.Position := SB.VertScrollBar.Position+LineScroll;
  LineLeft:SB.HorzScrollBar.Position := SB.HorzScrollBar.Position-LineScroll;
  LineRight:SB.HorzScrollBar.Position := SB.HorzScrollBar.Position+LineScroll;
 end;
end;
0627つづきその2NGNG
procedure TForm1.AppMessage(var Msg:TMsg; var Handled:Boolean);
begin
 if (ActiveControl = ScrollBox1) and (Msg.message = WM_KEYDOWN) then
  case Msg.wParam of
   VK_DOWN:begin
    ScrollBoxScroll(ScrollBox1,LineDown);
    Handled := true;
   end;
   VK_UP:begin
    ScrollBoxScroll(ScrollBox1,LineUp);
    Handled := true;
   end;
   VK_RIGHT:begin
    ScrollBoxScroll(ScrollBox1,LineRight);
    Handled := true;
   end;
   VK_LEFT:begin
    ScrollBoxScroll(ScrollBox1,LineLeft);
    Handled := true;
   end;
  end;
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
 FocusControl(ScrollBox1);
end;

procedure TForm1.ScrollBox1Click(Sender: TObject);
begin
 FocusControl(ScrollBox1);
end;
0628デフォルトの名無しさんNGNG
すでにあるカレンダーコンポーネントを使用せずに
カレンダーを作成しなくてはならなくなりました
すでにあるTMonthCalender等を使用して
年月日の取得は可能でしょうか?
うるう年の計算もしたくないですし 指定した月が何日まであって
何曜日から始まるのか等を取得したいのですが。。。
0629デフォルトの名無しさんNGNG
      ∧_∧
      ( ´Д`)
     /    \ 
  __| | 629 | |__  
  \   ̄ ̄ ̄ ̄ ̄   \
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0630デフォルトの名無しさんNGNG
>うるう年の計算もしたくないですし

IsLeapYear()で閏年かどうか分かる

>指定した月が何日まであって

閏年かどうかわかればこれは簡単

>何曜日から始まるのか

EncodeDate() で TDateTime に変換し、DayOfWeek() で曜日を取得

すこしはヘルプをみたらいいのに
0631Delphi好き ◆0YAPhEjk NGNG
>>628
何か適当な回答で悪いとは思うけれども、
ttp://www.kyoto-su.ac.jp/~yamadaka/data/yscp-calendar.htm
参考にしては如何でしょー?ぐぐったんですけど。
0632デフォルトの名無しさんNGNG
>>630
おっさるとおりで
えーと記述いただいた件は理解しているのですが
既コンポーネントから情報を取得するという手段があったら
やってみたいなぁと思ったのであります

不愉快にさせてしまったのでしたら ごめんなさい

>>631
ありがとうございます
閏年の計算の仕方も一応理解はしているのですが
カレンダーコンポーネントを使ってみたかったんです。。。
表示はしてあげられませんが

お世話になりました
0633デフォルトの名無しさんNGNG
>>632
TMonthCalender はユーザ入力のためのコントロール
これをつかってもできるかもしれないが、630 の方法より
めんどくさそう
0634デフォルトの名無しさんNGNG
DelphiってVBとかVC++用に発売されている各種OCXって使えるんですか?
例えば、旧文化オリエント社のオレクトラチャートとか、VsFlexGlidとか。

あと、VC++で作ったDLLなんかもDelphiから使用することは可能ですか?

出来ればVBからDelphiに乗り換えたいんですけど、今使っているライブラリや
ツールが使えなくなるとちょっとつらいので...
0635デフォルトの名無しさんNGNG
>>634
OCXは使えます。
コンポーネント(C)→ActiveXコントロールの取り込み(X)です。
DLLもVBで使える範囲なら問題なく使えます。
0636ななしNGNG

しょーもない質問です。

VBでは、予約語、メソッド、プロパティ、オブジェクト名等すべて、コードエディタ
での入力時に勝手に大文字・小文字を変換してくれるので、誤字、脱字があるかない
か、一発でわかるのですが、Delphiではこのような機能はないのでしょうか?
(大文字、小文字を区別しないでも正常動作するようですが、なんとなく気持ちが悪い)

※ 煽りではありません。(W
0637でもどり初心者NGNG
>>634
昔(Delphi4)、TrueDBGridを試しに取り込んで見たけど、
見た目は大丈夫そうだったが、挙動が不審で全然ダメだった。

pdf.ocxとか、レイアウトソフトのocxは普通に使えてます。
0638でもどり初心者NGNG
>>636
[Ctrl]+[Space]を試して見ましょう。
0639634NGNG
>> 635
THXです。
んじゃ、ちょっくらObjectPascalと戯れてみます。
0640でもどり初心者NGNG
>>636
追加。
誤字脱字はこまめにコンパイルしてもわかる。
一区切りついたら[Ctrl]+[F9]

コマ切れのレススマン
0641ななしNGNG
>>638
>>640

コメント、感謝です。
今、手元に環境がないので、後で試してみます。
0642デフォルトの名無しさんNGNG
>623
わからないことがひとつある、
動的にTLabelを作成したほうがよくないかと...
0643Delphi好き ◆0YAPhEjk NGNG
>>642
左様ですな。
例えば、定型のフォームを作成して、Labelをデザイナ上で配置して・・・という時に
動的にラベルを生成してそれらのプロパティを指定しようとするのはいかにも面倒
ですし。
そういう意味では、こういった手法というのが必要なのではないかナァ・・・と。
もちろん、動的に作成しても問題無いような処理だったらそれでいいとは思います
がね。
ま、その辺りは状況に応じて使いわけましょうってことでス。
0644本当の492NGNG
>>625 ありがとうございます。やってみます。
>キーデバイスは、スクロールとは本来無関係ですから、
言われてみると、なりほど!という感じです。
でも、せめて、PageUp、Downキーとかで動いて欲しいな…
0645Delphi好き ◆0YAPhEjk NGNG
Delphi5をお使いの方に質問です。
TNMUDPコンポーネントを使ったことのある方なら誰でも良いのですけど、TNMUDP
コンポーネントのSendBufferメソッドを使用してフォルダ内のディレクトリリスト
を送信するプログラムを作りました。で、受け側のプログラムを使って受信データを
表示させたところ、「D:\*.*」などのフォルダ情報は表示できるのに、「D:\WinNT\
*.*」フォルダは送信できませんでした。考えられるのは、サイズがでかくて送れな
かったとかの原因だな・・・と。(空メッセージが届く)
誰か、この辺りの情報をご存知の方いらっしゃいませんか?
0646デフォルトの名無しさんNGNG
>>643

配列をつかっていちいち代入するのではなく、
Label1.Tag ← 1
Label2.Tag ← 2
..........
のようにオブジェクトインスペクタで設定すると、配列なしで

function TForm1.GetLabelByIndex(index :integer):TLabel;
var
 i:integer;
begin
 result:=nil; i := 0;
 while (not Assigned(result)) and (i < ComponentCount) do
 begin
  if Components[i] is TLabel then
   if Components[i].Tag = index then
    result := TLabel(Components[i]);
  Inc(i);
 end;
end;

のようにできると思います。
0647デフォルトの名無しさんNGNG
Del付属のQuickReportが激しく使えないので、
市販のレポートツール買おうと思っているのだが、
お前のお薦めがあったら教えれ。
0648TeamB/2ch ◆SE69s0c2 NGNG
>>647
有料でよいのなら QuickReport のソースを購入するという手があります。

どの程度複雑なことに手を出すかにもよりますが。
0649でもどり初心者NGNG
>>647
用途によると思うんだけど…。

自分は今、印刷関係の仕事してるから、
レイアウトソフト用のタグを書き出して印
刷するのが言いように思えてしまうし(w
ポストスクリプトを書いてしまうのも手だよ。
自分はかけないが。
0650デフォルトの名無しさんNGNG
(=゚ω゚)ノ ひさしぶりにこのスレ来た。懐かしい。お母さん元気ですか?僕は元気です。
0651567NGNG
>>646
これ好きになりました
なんかスマートですね
ありがとうございます
0652567NGNG
>>646
Σ( ̄□ ̄;)


>if Components[i] is TLabel then

Components[i]
がわかりませんっっっ
配列ではないTLabelコンポーネントのお話ですよね?
0653567NGNG
>>652
もしかして ComponentsというTLabel型の空配列をあらかじめつくっておくということでしょうか?
0654デフォルトの名無しさんNGNG
>>653 全てのコンポーネントには Components[] プロパティがあるのです
0655Delphi好き ◆0YAPhEjk NGNG
>>652,653
ComponentsプロパティはTFormをヘルプで検索して、そのプロパティを見れば分かって
いただけるかと思います。
TFormの継承元にTComponentクラスがあり、そのクラス内のプロパティです。
0656デフォルトの名無しさんNGNG
>653
ヘルプのTComponentのプロパティを参照。
別の方法でTWinControlのプロパティも参照(Controls と ControlCount)。

0657567NGNG
>>654
おおおおおお
そうでしたか

>>655
なるほど
ご丁寧にありがとうございます



ということは これはこのフォーム内でのタグ設定されたラベルは
配列にしたいものにだけしているということが前提になると解釈したのですが。。。
0658Delphi好き ◆0YAPhEjk NGNG
>>657
左様ですね。
この方法でアクセスするためには、配列に含めたくなければtagに-1をいれておく
とか、あるいはIndexに0は使わないとか約束事を決めておいてやるべきでしょうね。
0659567NGNG
>>658
ありがとうございます
0660デフォルトの名無しさんNGNG
BoolToStrって関数がありますが、

ヘルプには、
function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;

と書いてあるにも関わらず、
function BoolToStr(B: Boolean): string;

のようにしか受け付けてくれません、なぜでしょうか?

因みに、
Bが、self.checkbox1.checked なら ヘルプ通りに使える

var B:Boolean;
で定義してあるもので使おうとすると UseBoolStrs が余分だ!って怒られる。
0661Delフサギコ ◆zE1iiRdQ NGNG
> var B:Boolean;
> で定義してあるもので使おうとすると UseBoolStrs が余分だ!って怒られる。
             _______________
  ,,,,,,,,,,,,,∧,,∧   /
〜′,,,,,,,ミ,,゚Д゚彡< うちのは怒りません。
  UU""" U U   \日ごろの行いがいいからか?
0662660NGNG
マジっすか?
なんか壊れたんだろうか・・・・。
0663デフォルトの名無しさんNGNG
>>660=662 BoolToStrって関数を自分で作ってて、忘れてるとかってオチでは?
0664Delフサギコ ◆zE1iiRdQ NGNG
それにしても、なんだかな。関数ですね。
自作しるとか思うですが....

列挙型のすべてをこういう変換できれば
意味があるんだが...

RadioGroupに対して列挙型を関連づけたりとか
いまだにできんのかしら?
コードが面倒っす。
 \_ ____________
    |/
   ∧,,∧
  ミ,,゚Д゚ミy━~~
   U   ミ
 〜ミ   ミ
   U''U
0665もしかしなくても何も解っていない男NGNG
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
を、他から呼び出す時ってどうしたらいいのでしょう?Clickとかじゃないし。

StringGrid1.SelectCell?????
0666デフォルトの名無しさんNGNG
>>665
インスタンス名.StringGrid1SelectCell
0667デフォルトの名無しさんNGNG
>>664 確かに
0668もしかしなくても何も解っていない男NGNG
TForm1.StringGrid1SelectCell(TObject,0,0,true);
???
0669デフォルトの名無しさんNGNG
>>668
その謎のスペースは何だ?
0670もしかしなくても何も解っていない男NGNG
なんだか、パラメータの指定の仕方が全然わかんないんです。
実パラメータが云々とか言われます。
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
で書いた処理を、他の、例えばButton1をClickした場合にCallしたいのです。
0671デフォルトの名無しさんNGNG
>>670
SelectCellの中身を別の関数に移して、
両方で同じ関数を呼ぶようにするのが簡単確実。

procedure TForm1.StringGrid1SelectCell(……);
begin
 hoge;
end;

procedure TForm1.Button1Click(……);
begin
 hoge;
end;

procedure TForm1.hoge;
begin
 実際にやりたい処理
end;
0672デフォルトの名無しさんNGNG
>>664
 パブリッシュなプロパティにした列挙型は 実行時型情報で相互変換出きると思うけど?
0673Delphi好き ◆0YAPhEjk NGNG
>>670
呼び出し元がTForm1のスコープ内だったら、メソッド呼び出し自体は
StringGrid1SelectCell(...);
で良いはずですよね。違えば、(例えば、var Form1 : TForm1; の宣言がinterface
部にある場合には
Form1.StringGrid1SelectCell(...);
ですよね。
パラメータに関しては、
Sender ... メッセージを通知するオブジェクト
なので。例えばButton1Clickの中から呼び出したいならば、SenderをButton1にすれ
ば良いかな。場合によっては、Senderの値が何かによってStringGridに与える影響
を変更したい場合もあるはずなので、その辺りは多少考えるとして。
で、あとのパラメータは知っての通り。ただし、var宣言している項目に関しては変数
を与えないといけないので、var dummy : boolean; で宣言した変数を与えましょう。

例
procedure TForm1.Button1Click( Sender : TObject );
var CanSelect : boolean;
begin
CanSelect:=true;
 StringGrid1SelectCell( Sender, 0, 0, CanSelect);
end;

こんな感じかな?
0674デフォルトの名無しさんNGNG
>>673
いいえ、StringGrid1.SelectCell(...);ですが何か?
0675Delphi好き ◆0YAPhEjk NGNG
>>660
BoolToStr…?ヘルプを調べたけど載ってない…。
…はッ!?もしかして、Del6の新関数?
0676Delphi好き ◆0YAPhEjk NGNG
>>674
…マジすか。
0677デフォルトの名無しさんNGNG
>>676
メソッド呼び出しは、

インスタンス名.メソッド名()

じゃないの?Del3厨だから仕様変更は知らないけど。
0678Delphi好き ◆0YAPhEjk NGNG
>>674
きっと、フォーム名がStringGrid1…いやいや。フォーム名をStringGrid1にしたら
クラス名はTStringGrid1になてしまう。
どうやったんだろう。
…まさか、新しいフォームをコード入力で生成ッ!?面倒なことをするなぁ…などと
逝ってみるテスト。
0679Delphi好き ◆0YAPhEjk NGNG
>>674, 677
いやいや。これは通常のSelectCellメソッド呼び出しではなく、どうやらOnSelectCell
イベントの呼び出しのようですな。
引数がそんな並びになってマス。
0680デフォルトの名無しさんNGNG
procedure TForm1.StringGrid1SelectCell(……);
                  ↑
揚げ足は良いがコンパイルエラーが起こるようなコードでけんけん言わんでくれるかw
0681Delphi好き ◆0YAPhEjk NGNG
>>680
コンパイルエラーでます?
0682Delphi好き ◆0YAPhEjk NGNG
>>680
因みに…
674は、最初メソッドとは思わずに「そんな宣言の仕方あんのかよー。知らないぞー」
と思い悔し紛れに書いたレスです。もし、「せっかくレスしてんのに揚げ足とんなよ
逝ってよし!」と気を悪くされてたのなら誤りますんで。
0683Delフサギコ ◆zE1iiRdQ NGNG
|ヨクワカナイガ  
|,,∧
|Д゚彡 言ってよし
⊂ミ
| ,;゙
|´
>>672
"出来る"んだけど、逝ってヨ仕様って感じるです。

procedure TForm1.Button1Click(Sender: TObject);
begin
 //列挙型から文字列へ
 Label1.Caption := GetEnumName(TypeInfo(TAlignment), Ord(Label1.Alignment));

 //文字列から列挙型へ
 Label1.Alignment := TAlignment(
  GetEnumValue(TypeInfo(TAlignment), 'taRightJustify') );
end;
こんなの使えない(役立たない)っすわ。
BoolToStrなんて関数作っている場合なの?>>某
0684TeamB/2ch ◆SE69s0c2 NGNG
>こんなの使えない
とは?

型が強い言語、かつパラメタイズ機構(C++ テンプレート相当)が存在しない
ので強制キャストが頻繁に出てくるのは仕方が無いでしょう。

しかし、テンプレート相当が無くても自分で定義すればすむ話ですよね?

function TAlignmentToString( const a : TAlignment ) : string;
begin
result := GetEnumName(TypeInfo(TAlignment), Ord(a));
end;


こういった変換関数群を自動生成するツールがあると面白いですね。
使わない関数はスマートリンクで削除されるから、結果として必要なものだけが
リンクされますし。

... アイデアいただきます。> Delフサギコさん
0685デフォルトの名無しさんNGNG
教えて厨ですいません。タダと言うのでパーソナルをDLしたのですが
ビジュアルパスカルが分からずに苦労しております
昔開発をやったことがあるのでプログラム感はあるのですが
関数が分りません

試しにバージョン情報(サイトへのリンクボタン付き)のウィンドウから作り始めたのですが
・Bitbtnへの画像の貼りつけ(バナーボタンをつけたい)
・ブラウザ起動−引数としてURLを渡す

ができずに早速詰まっています

そこで
上記2点のプログラム
デルファイでのビジュアルパスカル関数一覧が出ているサイト
アフォな漏れにでも分かるデルファイでの開発で役に立つサイト
等ありましたら教えて下さい
0686デフォルトの名無しさんNGNG
BitBtnにはGlyphがある。そこから画像つけるべし。
ブラウザ起動ならShellExcuteを使うがよろし。

ShellExcute(Application.Handle,'open' 'ブラウザ名','URL','ブラウザのDir');
だったきがする...間違ってたら指摘してください。
0687デフォルトの名無しさんNGNG
変な単語が飛び出すとネタかと思って煽ろうとするが、
スレタイトルを思い出してハッとする俺がいる。

・ネタでない場合はこちらをお読みください
> ビジュアルパスカル
ObjectPascalのことですね

> デルファイでのビジュアルパスカル関数一覧が出ているサイト
付属のヘルプ、「ObjectPascal言語ガイド」、「VCLリファレンス」を見るのが手っ取り早いです

> アフォな漏れにでも分かるデルファイでの開発で役に立つサイト
このスレッドの>>2-10を参照してください。
特に、Delphi-ML検索 http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/search.cgi
大概のことは上記サイトで解決するのでブックマーク必須です。

> ・Bitbtnへの画像の貼りつけ(バナーボタンをつけたい)
> ・ブラウザ起動−引数としてURLを渡す
これらの質問も、ヘルプとDelphiML検索で容易に解決しますが、一応。
前者は、プロパティエディタの「Glyph」から設定できます。
詳しくは、ヘルプの「TBitBtn」→「TBitBtn の使い方」を調べてください。
後者は、uses に ShellAPI を追加して、
ShellExecute(Handle, 'OPEN', 'http://hogehoge/','', '', SW_SHOWNORMAL);
とすればよいです。
これは、googleで「Delphi ブラウザ URL 起動する」を検索して最初のサイトで出てきました。


・ネタの場合こちらをお読みください
> ビジュアルパスカル
プププ
0688Delフサギコ ◆zE1iiRdQ NGNG
列挙型一つ一つにToString関数作るのは
かなり手間だと思うです..

function TRecordToString( const a: TRecord; Value: TRecord) : string;

こんな関数テンプレがないから作れないんですよね。
悲すぃです〜

    ∧,,∧  また,includeで作らなきゃいけないのかしら...
   ミ,,゚Д゚彡  それも浦和座みたいで、美しい言語Pascalの
    ミ つ旦)~~  理想からは程遠い...
  〜と,,,~),,~) 
0689デフォルトの名無しさんNGNG
俺もつくづくテンプレートほすぃと思ってます
0690デフォルトの名無しさんNGNG
Delphiのテンプレートを活用すべし。

IDEに"notepad Delphi6\bin\delphi32.dci"
って登録して開いて(IDEからの登録は論外)
[code_EnumToString | enumを文字列に変換]
// |REPLACEMEを文字列に変換
function REPLACEMEToString( const a : REPLACEME ) : string;
begin
  result := GetEnumName(TypeInfo(REPLACEME), Ord(a));
end;
って貼り付ければ良し。
0691デフォルトの名無しさんNGNG
コンパイル時のテンプレートではなく
コーディング時のテンプレートか。。。
確かにテンプレートという言葉だけ捉えれば間違ってはいない?
0692685NGNG
こんなへたれな質問に答えていただきありがとうございます
うーん。まだ分からないことが続々と…
とりあえずヘルプ内のサンプル作ってから考えることにする

>> ビジュアルパスカル
>ObjectPascalのことですね

VBと混同してしまったYO…
当方以前にパワービルダーしかやったことないんで…
0693デフォルトの名無しさんNGNG
任意の部分の文字色を指定できて、URLやメアドを自動認識して、画像も表示できる
エディタコンポーネントってありますよね?
0694デフォルトの名無しさんNGNG
>>693
TWebBrowser
0695デフォルトの名無しさんNGNG
エディタじゃないね。
0696デフォルトの名無しさんNGNG
TWebBrowser の凹んで見える「枠」を無くしたいんだけど、
どうすればいいのでしょうか?
0697デフォルトの名無しさんNGNG
列挙型を文字列にする機会なんてそんなにないと思うけどなあ・・・

ラジオグループに列挙型を関連付けるってのは、今現在でいえば
TagとOrd関数で比較して結びつけるような操作のことじゃないの?
0698デフォルトの名無しさんNGNG
>>688
集合型がこんな感じで作れるんだから列挙型もいけるだろ

//使用例 SetToString(TypeInfo(TFontStyle), Byte(Font.Style))
function SetToString(Info: PTypeInfo; Value: Integer): string;
type
TIntegerSet = set of 0..SizeOf(Integer) * 8 - 1;
var
S: TIntegerSet;
I: Integer;
begin
S := TIntegerSet(Value);
Result := '[';
for I := 0 to SizeOf(Integer) * 8 - 1 do
if I in S then
begin
if Length(Result) <> 1 then Result := Result + ',';
Result := Result + GetEnumName(Info, I);
end;
Result := Result + ']';
end;
0699デフォルトの名無しさんNGNG
Delphi 6 Personalで
TCustomRichEditを継承したクラスで

Createを
begin
inherited;
Self.Color := clBlue;
end;
とすると

EInvalidOperation
コントロール''は親ウィンドウを持っていません
となるのですが。

Self.Color := clWindow;
だとうまく行くのですが。
0700Delphi好き ◆0YAPhEjk NGNG
>>699
OnCreateのイベントは、クラスのコンストラクタであるCreateとはちょっと違うの
です。
すでに、OnCreateの時、コンストラクタ呼び出し後なのです。しかも、上位クラスの
Createはしっかりと自動呼出しなのです。
inheritedは要らないのです。
0701Delphi好き ◆0YAPhEjk NGNG
>>700
ぐあ。スマソ。
激しく嘘こきました。TCustomRichEditにはOnCreateなんてイベントありもさんな。
激しくスマソ。

えと。多分、そのエラーはParentプロパティが指定されていないせいかと。
self.Colorに値指定する前にParentを指定しましょう。
0702デルファイの名無しさんNGNG
デフォルトがclWindowなので、clBlueの時は色を変えようとしてまだウインドウが無いのでエラーだけど
clWindowの時は何も起きないというだけでは…

コンストラクタでColorを変える時は、経験上何故かParentColor := Falseを事前に行っておかないと
うまくいかないケースもちょくちょくありました。(理由は不明)
0703Delフサギコ ◆zE1iiRdQ NGNG
           _____
   ∧,,∧∩  /
  頒゚Д゚;彡< 1行かよ!
    ,;゙⊃,ジ   \_____
 〜ミ ,,○
    ∪    
function RecToString(Info: PTypeInfo; Value: Integer): String;
begin
Result := GetEnumName(Info, Value);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Button2.Caption := RecToString(TypeInfo(TAlign), Byte(Form1.Align));
end;
ちょっとキャストが気になるけど、なかなかよさげ

次は文字列から列挙型変換ですが...
0704699NGNG
Self.Parent := AOwner as TWinControl;
でうまく行きました。ありがとうございました。
0705Delphi好き ◆0YAPhEjk NGNG
フォームのOnCloseイベントでActionの返値にcaFreeを割り当てても、閉じたフォ
ームのコンポーネントにアクセスできるんです。なぜでしょうか。
(以下の例で、)
�@Form1のButton1をクリック > Form2が表示される
�AForm2のButton1をクリック > Closeされる
�BForm1のButton2をクリック > 何故か例外が発生しない!
この方法では正常にForm2のインスタンスを開放できていないんでしょうか。
ただし、�Bの前にForm2:=nil;を実行すると例外が発生しました。むぅ〜。

--------Unit1.pas
procedure TForm1.Button1Click(Sender : TObject);
begin
 Form2:=TForm2.Create(nil);
 Form2.Show;
end;

procedure TForm1.Button2Click(Sender : TObject);
begin
Label1.Caption:=Form2.Edit1.Text;
end;

--------Unit2.pas
procedure TForm2.Button1Click(Sender : TObject);
begin
 Close;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Action:=caFree;
end;
0706デフォルトの名無しさんNGNG
>>705
Show/Closeは表示の切替だからインスタンスの解放とは無関係。
解放したいんだったらForm2.Releaseすればいいんでない?
0707デルファイの名無しさんNGNG
>704
ちょっと待って下さい。OwnerとParentは別の概念です。
パネルの上に貼る時でもOwnerはフォームが渡されてくるのですが…。

設定するタイミングを送らせた方がよさげ。(AfterConstruction, Loaded, CreateWndなど)

それと、調べてみましたが、色を変えた時に、
問答無用でメッセージを送っているのが元々の原因みたいです。
継承したコントロールを作っているのですから、CM_COLORCHANGEDを自前で処理して、
ウィンドウハンドルが無い時はメッセージを送らないようにするなど、
望む動作に置き換える方法もあります。
0708Delphi好き ◆0YAPhEjk NGNG
>>706
んー。TCustomFormのOnCloseは、Actionの値をcaFreeにすると開放されるってヘルプ
には書いてあったんですが、ダメなんですかねぇ。
この例で言えば、Form2側でボタンを押したときに開放したいんです。できれば、元ウィ
ンドウからは作りッぱなで抜けたい処理があるんですけど…。ダメですか…。
0709デフォルトの名無しさんNGNG
>>706
705を読まずに書くけど、showに対してはhideでなかったっけ?
visibleをtrue/falseにする…

あー手元にDelphiがない
0710デルファイの名無しさんNGNG
>706
OnCloseでcaFreeにすると、内部でReleaseが呼ばれるので、一緒のはずですけど。

…まさかと思いつつ、Form2がVisible = Falseのまま自動作成の対象なんてことはないですよね?(w
0711Delphi好き ◆0YAPhEjk NGNG
>>710
…まさか。いや、大丈夫ですとも。
じゃあ、開放されて無効な空間をアクセスしにいってるのに例外が出ないんでしょう
か?それも不気味な気が…。
でも、見に行ったForm2.Edit1.Textに値を入れた状態でCloseしても、値無しで返っ
てくるので、やっぱり開放されてるのかナァ…。
中規模システムの一部に使いたい処理なので、メモリリーク起こされると怖い…(-_-;)
0712デルファイの名無しさんNGNG
>711
調査完了〜♪

コンポーネントは、解放される時Ownerの自分の名前と同じpublishedフィールドをnilに設定します。
この場合、Form2は解放済みメモリを指しているので、その後メモリが他の用途に使われていなければ
Form2.Editに相当するアドレスにはnilが入っています。
TextプロパティはTWinControl.Perform経由で取得されますが、このPerformが、Self = nil の
無効な呼び出しのときは何もしないようになってました。
従って、nilが入っているコントロールのTextプロパティは常に空です。
0713Delphi好き ◆0YAPhEjk NGNG
>>712
うぉう!
ありがとうございます。助かりました!
っつーか、どこでそんな情報を調べたんですか。Del付属のオンラインヘルプですか?
…ここまで調べたということは、VCLのソースも持っているんでしょうね。(私も持っ
てるんですけどね)
本当にありがとう御座います。これでメモリリークの不安もなくコーディング続けら
れます!
0714706NGNG
>>708
脊髄反射で嘘書いてしまった。スマソ。

そーいやMDIではよくやる手だな。
0715698NGNG
>>703
http://hp.vector.co.jp/authors/VA015850/twaddle/note.html
の 2000/03/29 を参照。
0716デフォルトの名無しさんNGNG
VCLに検索とか痴漢のダイヤログがありますが、その使い方がサッパリわかりません。

某ランドのQAページにあるサンプルコードどおりに作ってもうまく動作しません。

これらは、TMemoでは動作しないのでしょうか?
0717デフォルトの名無しさんNGNG
TMemoでもう一つ質問です。

ファイルにある文字列を貼り付けて、その後、カーソルを上に移動する、というような処理をするときは、Memo1.Perform...の手順ではダメなのですか?

実際、どうすればいいのですか? ヒントを頂ければ幸いです。
0718デフォルトの名無しさんNGNG
>>716
あれはただダイアログ出すだけなので、実際の検索・置換は自分でやってください。
コモンファイルダイアログがファイル選ぶだけで、実際にファイル開くところまでは
面倒みてくれないのと同じ。
>>717
よくわからんがSelStartいじるんじゃ駄目なの?
0719デルファイの名無しさんNGNG
>>713
Delphi好き ◆0YAPhEjk さんは仕事で使っておられるようなので、当然Professional以上ですよね。
プロジェクトオプションの「デバッグ版dcuを使う」をチェックして再ビルドすると、
デバッガのステップ実行でVCLソースまで入れるようになるので、
あとはひたすら追いかけていくだけです。
0720Delphi好き ◆0YAPhEjk NGNG
>>719
うあ。知りませんでした。今度試してみます。
有難う御座いましたー!!
0721デフォルトの名無しさんNGNG
Jabber.JPのサイト
http://www.jabber.jp/
で紹介されているExodusというメッセンジャークライアント
を使ってみたんですけど、メッセージを入力するウィンドウ
ではIME変換中、確定後とも文字化けしてしまって困っています。
具体的には、全角文字は全て白抜きの四角で表示されます。
ちなみにメッセージ自体は文字化けせずに送信されて、
メッセージ表示ウィンドウ(入力ウィンドウの上にあります)
にも文字化けされずに表示されます。

ExodusのソースをCVSから取得し自分でビルドもしてみたのですが
文字化け現象は変わりませんでした。詳細はJabber.JPメーリング
リストに書きましたのでそちらをご覧いただけたらと思います。
(ウェブサイトのアーカイブにはまだ載っていないのですが、
Jabber.JPのメーリングリストに参加後、
[email protected] という宛先にメールを送れば
記事が添付されたメールが返信されてきます。)

どうすれば、文字化けを解消できるのか、何かヒントを頂ければ
幸いです。よろしくお願いします。
0722721NGNG
ちなみに、Jabberの利点は、
・ソースが公開されている
・自分でサーバを立てられる
・SSLで暗号化できる
だと思っています。

MS Messengerなどではチャットのメッセージが平文でネットワークを
流れるのがいやだなあと思っていたので、Jabberでメッセンジャー
環境を構築したいと思っているのです。

入力時の文字化けさえ解消すれば結構使えそうですので、ぜひとも
何か解決の糸口を頂ければと思います。情報お待ちしています。
0723685NGNG
亀のごときスピードで前進し、
メニューからの別ウィンドウの作成と開放もできるようになった…

チュートリアルのテキストエディタの作成で
"[Additional]ページにある ActionManager"が無いのは
1パーソナル版だから.
2.以前のバージョンにはあったが無くなった。ヘルプが直ってない
とかなんでしょうか?
それとも漏れが猛烈な勘違いしてるだけ?
先に進めませんので教えて下さい
07241パーソナル版だから. NGNG
ガイシュツ
0725デフォルトの名無しさんNGNG
(´-`)。o ○ (もういい加減に「アクソンマネージャー」関係は終了しないかね…。
パソナル無料版のインストール時に、でっかいダイアログ出して「アクソンマネージャーは
付いてないよーん!」ってやるとか…)
0726デフォルトの名無しさんNGNG
Help見ればわかると思うんだが
0727デフォルトの名無しさんNGNG
 TreeViewのツリー項目となるTTreeNodeのtextプロパティはString型になってるけど
受け入れる文字列のサイズに制限はないのかな。
 実際にはこのtextプロパティに大きな文字列を入れることはまずないと思うけど。
 TTreeNodeのソースの以下のところをみたら問題になるような気がするが。

procedure TTreeNode.WriteData(Stream: TStream; Info: PNodeInfo);
var
 I, Size, L, ItemCount: Integer;
begin
 L := Length(Text);
 if L > 255 then L := 255;
 Size := SizeOf(TNodeInfo) + L - 255;
 Info^.Text := Text;
 Info^.ImageIndex := ImageIndex;
 Info^.SelectedIndex := SelectedIndex;
 Info^.OverlayIndex := OverlayIndex;
 Info^.StateIndex := StateIndex;
 Info^.Data := Data;
 ItemCount := Count;
 Info^.Count := ItemCount;
 Stream.WriteBuffer(Size, SizeOf(Size));
 Stream.WriteBuffer(Info^, Size);
 for I := 0 to ItemCount - 1 do Item[I].WriteData(Stream, Info);
end;
0728デフォルトの名無しさんNGNG
>>727
自分で、でかいサイズを入れて見れば分かると思うがどうか?
0729デフォルトの名無しさんNGNG
>>727

ソースを無断で公表してはいけません
Borland に許諾を得ましたか?
(宣言部はタダだけど、実装部は....)
0730デフォルトの名無しさんNGNG
(´-`)。o ○ (どうして質問の前に自分で試すってことをしないんだろう)
0731デフォルトの名無しさんNGNG
オープンソースでもないのに晒しちゃってる時点でアウトだろ
0732Delフサギコ ◆zE1iiRdQ NGNG
   _____________
 /
 | バグ議論しようとしているのに
 | 「ソース晒しダメ。人間失格」
 | ってな応答は、ちょっとカワうそうでは?
 \_ ____________
    |/
   ∧,,∧
  ミ,,゚Д゚ミy━~~
   U   ミ
 〜ミ   ミ 
   U''U
      多めに見ない?

それにしても、なんで
 Size := SizeOf(TNodeInfo) + L - 255;
こんな事してるんでしょうか?
  -255
って記述は必要ないような機がするんですが
違うのかしら。
0733721NGNG
全てのフォームのフォントを日本語フォント(MS UI Gothic, 9ポイント)に
設定して再ビルドすることで文字化け問題は解決しました。

これで日本語も普通に入力できるようになって嬉しいです。やったー!
0734デフォルトの名無しさんNGNG
以下に記述したclassでHogeを呼び出した時、Executeで生じた例外をHoge内
で捕らえる事が出来ません。どのようにすれば可能でしょうか?

uses
 Classes;

type
 TKusoThread = class(TThread)
 public
  constructor Create(CreateSuspend: Boolean);
  destructor Destroy; override;

  procedure Execute; override;

  procedure Hoge;
 end;

implementation

uses
 SysUtils, Dialogs;

constructor TKusoThread.Create(CreateSuspend: Boolean);
begin
 inherited Create(CreateSuspend);
end;

destructor TKusoThread.Destroy;
begin
 inherited Destroy;
end;

procedure TKusoThread.Execute;
begin
 Exception.Create('Aborn');
end;

procedure TKusoThread.Hoge;
begin
 try
  Resume;
  WaitFor;

  ShowMessage('mazu-');
 except
  ShowMessage('uma-');
 end;
end;
0735デフォルトの名無しさんNGNG
だってtryしてないもん。
0736デフォルトの名無しさんNGNG
>>735

それはHogeとは別のプロセスでExecuteは実行されているのでExecuteで
生じた例外をHogeで捕らえる事はできないという事ですか?
0737734NGNG
>>735

実現したいのはHogeとは別プロセスで実行しているExecute内での例外をHogeで
捕らえたいという事なのですが。
0738デフォルトの名無しさんNGNG
>737
734のHogeでは、どこにも"別プロセスで実行している"
他のインスタンスを参照してないので無理。
スレッドの管理をスレッドで行う事は可能だが、
同一クラスにその両者を押し込める設計は関心しない。
別のThreadクラスなりメインスレッドで処理したほうが良い。
0739738NGNG
…737の内容から外れるが、ひょっとしてこういう事がしたいのか?

procedure TKusoThread.Execute;
begin
 try
  ReturnValue:= 0;
  raise Exception.Create('Aborn');
 except
  ReturnValue:= 1;
 end;
end;

procedure TKusoThread.Hoge;
begin
 Resume;
 if WaitFor = 0 then
  ShowMessage('mazu-')
 else
  ShowMessage('uma-');
end;

--- 呼出元
procedure TForm1.Button1Click(Sender: TObject);
begin
 with TKusoThread.Create(True) do begin
  Hoge;
  Free;
 end;
end;
0740734NGNG
>>738
分かりにくい質問ですいません。

type
 TKusoThread = class(TThread)
 public
  constructor Create(CreateSuspend: Boolean);
  destructor Destroy; override;

  procedure Execute; override;
 end;

 TKuso = class(TObject)
 public
  constructor Create;
  destructor Destroy; override;

  procedure Hoge;
 end;
0741734NGNG
implementation

uses
 SysUtils, Dialogs;

constructor TKusoThread.Create(CreateSuspend: Boolean);
begin
 inherited Create(CreateSuspend);
end;

destructor TKusoThread.Destroy;
begin
 inherited Destroy;
end;

procedure TKusoThread.Execute;
begin
 Exception.Create('Aborn');
end;

constructor TKuso.Create;
begin
 inherited Create;
end;

destructor TKuso.Destroy;
begin
 inherited Destroy;
end;

procedure TKuso.Hoge;
var
 Thread1: TKusoThread;
begin
 Thread1 := TKusoThread.Create(True);

 try
  Thread1.Resume;
  Thread1.WaitFor;

  ShowMessage('mazu-');
 except
  ShowMessage('uma-');
 end;

 Thread1.Free;
end;

メインスレッドからTKusoのHogeを呼び出したとします。TKusoThreadが生成して
実行され、WaitForの地点で別プロセスで実行されてるTKusoThreadのExecuteが
呼び出されます。'aborn'の例外がメインスレッドとは違うTKusoThreadのスレッ
ドで生じるのですが、この例外はメインスレッドには伝達されないのでHoge内の
tryで捕らえられず、ShowMessage('mazu-')が実行されてしまいます。そのため
どうにかしてこの例外をHoge内で捕らえ、ShowMessage('uma-')を実行する事が
できないかという事なのです。

以上で分かりましたでしょうか。スレッドを用いたprogrammingは初めてなので
とんでもない間違いをしてるかも知れません。
0742738NGNG
ますます意味不明。ここはどんな厨房疑問でも答えるスレって事に
なってるが質問の意図がわからなくちゃ答えようもないわな
0743738NGNG
742は741 見ずにかいちた。
で。妙に例外に拘けど、739のようにReturnValue使っちゃ駄目なの?
0744734NGNG
>>738

そうですか。それでは、

並列に実行されているスレッドがあり、そのうちの1つのスレッドで例外が
生じた。この例外を他のスレッドへ伝達したいがどうすればよいか。

でどうでしょうか?
0745734NGNG
>>743

指摘されている様に、関数の返し値を使用して解決する事はできます。しか
し、例外処理を途中で関数での処理に変えてしまうのは好ましくないと思う
のです。ですので、例外を直接別のスレッドへ伝える方法はないかと聞いて
みたのですが。まあ、無ければ無いで諦めるのですけど。
0746デフォルトの名無しさんNGNG
もの凄く要約させてもらうけど、スレッドAからスレッドBを動かして、スレッドBで
発生した例外をスレッドAで検知したいってこと?
0747734NGNG
>>746

その通りです。
0748デフォルトの名無しさんNGNG
デルファイで大儲けできるプログラムを作りたいので、
作り方を教えてください。
0749デフォルトの名無しさんNGNG
デルファイよりプログラミングしやすい環境を組ぬ。
0750738NGNG
>>744 できる。少なくともDelphi IDEはやっているね :-)
で、期待したのとは違うだろうが、こんなのはどうか。
type
 TKusoThread = class(TThread)
 public
  FThreadException: Exception; //ホントはprivateとかに
  FOnException: TExceptionEvent; //ホントはproperty化
  procedure Execute; override;
  procedure OnException;
 end;

implementation

procedure TKusoThread.Execute;
begin
 try
  FThreadException:= nil;
  raise Exception.Create('Aborn');
 except
  on e: Exception do
  begin
   FThreadException:= e;
   Synchronize(OnException);
  end;
 end;
end;

procedure TKusoThread.OnException;
begin
 if Assigned(FOnException) then
  FOnException(Self, FThreadException);
end;

--- 呼出し側(手抜きでFormに記述したがThreadでも可能な筈)
procedure TForm1.Button1Click(Sender: TObject);
begin
 with TKusoThread.Create(True) do
 begin
  FOnException:= ThreadException;
  FreeOnTerminate:= True; // WaitForは使えない
  Resume;
 end;
end;
procedure TForm1.ThreadException(Sender: TObject; E: Exception);
begin
 ShowMessage('uma-');
end;
0751デフォルトの名無しさんNGNG
>748
1.シリアルジェネレーターを作成する
2.Del CDを複製コピーする
3.アキバの裏通りで売る。

なお、当方は一切関知しない。
0752デフォルトの名無しさんNGNG
バッカじゃねーの?コイツ
0753デフォルトの名無しさんNGNG
Delphi6 RTLアップデートとかって出てるけど、なにこれ?
RTLってランタイムライブラリィ?なんじゃらほい。
0754デフォルトの名無しさんNGNG
質問しつつ、DLしてみたよ。

| デッドロックが発生するという Delphi 6 での問題が解決されます。

って事らしいです。

\lib\SysUtils.dcu
\lib\Xmlxform.dcu
\lib\debug\SysUtils.dcu
\lib\debug\Xmlxform.dcu
\MergeModules\BaseRTL.Msm
\source\Rtl\Sys\SysUtils.pas
\Windows\System32\rtl60.bpl
\Windows\System32\rtl60.map

が中身みたいなんで、当てといた方がよさげ。
0755デフォルトの名無しさんNGNG
森の木陰でドンジャラホイ
0756デフォルトの名無しさんNGNG
>>754>>755
アップデートパック#2入れてあるのに、RTLインストールしようとしたら
英語で「アップデートパック#2が見つかりません。先にインストールして
下さい。」と出やがった。

でも無理矢理強行インストールしたら、うまくいったみたい。バグなのか?
0757素人NGNG
>>756
書いてあるよ<ダイアログ出るけど
0758素人NGNG
「※お詫び」って所にね。

0759デフォルトの名無しさんNGNG
小数点付きWideString型から小数点切り捨てて数値型に変換するVCLのルーチンってどういった物がありますか?
ヘルプ漁ってみたがサパーリ解らん。
0760759NGNG
具体的には
254.68というWideString型文字列があったとして、ここから254という数値型を取りたいのですが。
0761Delphi好き ◆0YAPhEjk NGNG
>>760
いったん、val手続き使ってReal型に入れてからFloor関数を使うとか?
0762デフォルトの名無しさんNGNG
ウプ2を当てるとWin95で動かなくなるやつの対処??
それよりUP3はでるのかな?Delphi7になるのかな?
0763デフォルトの名無しさんNGNG
>>759
StrToFloatとかStrToInt使うべし。
0764素人NGNG
>>759
strtofloat,trunc,formatfloatを使えば出来ますな。

小数点切り捨てはどーすんのか、ちょっと悩んだけど、あっさり検索出来るやん(^^;。
0765ド素人NGNG
作ったプログラムを印刷しようとしたら、
「一般保護違反」っていうエラーが出て印刷できません。
なぜこうなったのか自分ではわからないので

わかる方、教えてください。
ホント厨房でスマソ
0766デフォルトの名無しさんNGNG
「作ったプログラムを印刷しようとしたら」…ハテ?
1.作ったプログラムの実行画面キャプ印刷
2.〃        ソース印刷
3.〃        ダンプ印刷
4.電波
さて、どれでせう?
0767ド素人NGNG
>>766
レスありがとうございます。

2のことです。

0768デフォルトの名無しさんNGNG
>>767
2だと、ちょっと回答は無理です。どんなスーパープログラマーでも。
100%正しい答えは出せる人はいないでしょう。なんつったって、
あなたのPCの問題だから。
常駐してるアプリケーションを外してみるとか、再起動するとか…。
がんがれ。つーか、delphi関係無い♥
0769追加NGNG
プリンタのドライバをチェックしてみるとか…
どんな物を印刷しようとしてもそーなるのかチェックするとか…
メモリ周りのチェックとか…
0770759NGNG
結局、StrToFloat=>floorでうまくいきました。

しかし、なんで小数点付いて返ってくるんだか‥‥>FlashのW/Hサイズ
0771734NGNG
>>750
レスが遅れてすいません。

スレッド自身に例外を伝達する別スレッドのmethodへのポインタを保持
させるのですね。TForm.ThreadExceptionでraise eと記述して例外を
再生成できれば望んでる事ができます。が、実際に実行してみると
runtime errorがでてうまくいきませんね。簡単には行きそうに無いの
で>>743で指摘されている様にReturnValueで処理する事にします。

レス有り難うございました。
0772デフォルトの名無しさんNGNG
TDriveComboBox の change イベントが2回連続で
発生してしまうんだけど。
1回でいいのよ。

情報きぼんぬ

Win2k + Del6.0Up2
0773デフォルトの名無しさんNGNG
Integer型のデータをPCharとして扱うにはどうすればいいんですか?
というのも、Application.MessageBox関数で、
Application.MessageBox('…' + Integer型のデータをPCharにしたもの + '…' , …);
という風に使いたいのです。
よろしくお願いします。
0774デルファイの名無しさんNGNG
一時的なstringをPCharにキャストしても、その文の中でだけは有効なので、

 PChar(IntToStr(100))

でいけます。
0775デフォルトの名無しさんNGNG
>>772
Tagプロパティに1回目は1を代入し、
2回目が来たらTagを調べてifではじき、
0を代入しておく。
0776デフォルトの名無しさんNGNG
            (⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒
            ( どうやって誘拐しようかなぁ〜。。
          O  ( 最近溜まってるからナぁ。   
        ο    〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
        。    そんな犯罪をしないで、http://fun.to/muke
 
___∧_∧__
   ( ・∀・)
――(    )―┘、            マツデチ!    キャッキャッ!!
‐――┐ ) )――┐         ≡≡∧,,∧   ≡≡∧ ∧
    (__ノ__ノ    . |         ≡≡ミ,,>∀<ミ ≡≡(,,・∀・)
                     ≡≡ミ_u,,uノ  ≡≡ミ_u,,uノ
                   "~"    """  :::     "~""~"
                """    :::


0777名無しさんNGNG
Editに表示されている数値などをキーボード入力イベントとして別アプリに渡したいんですが、
どうすればいいか教えて欲しいっす。お願いしまっす。
0778デフォルトの名無しさんNGNG
SendMessage
0779素人NGNG
>>777
別アプリのハンドル取得方法は心得てゴザルか?
別アプリのハンドルと、そのまた渡したいとこのハンドル取得してから
778さんのでOKでは。
0780名無しさんNGNG
やってみるっす。
0781デフォルトの名無しさんNGNG
C#を始めて購入したんですが、どーも使いにくくてDelphiパーソナル版を入手して
Delphiに乗り換えを検討してます。

結論が云えば、JavaよりC#よりDelphiが私には一番マッチしています!
なぜこんなに素晴らしい言語が広まっていないのかイマイチ理解できませんが、
VCLって凄いですね、マジで関心しました。

早速Pro版を購入しようかと思っていますが、Delphi7まで待ってから購入した方が
得なのでしょうか?それとも、今の時期にDelphi6を購入して例えば6ヶ月以内に
Delphi7が発売されたら無償アップグレードとか特別割引とかあるのでしょうか?
今まで買った事がないのでアップグレードに関してイマイチ仕組みが分りません
教えてください。
0782デフォルトの名無しさんNGNG
>>781
>VCLって凄いですね、マジで関心しました。

これがわかってて.NetFrameworkが使いこなせない理由がさっぱりわからない。
お前は言語覚える努力したくなだけちゃうんかと問いたい。問いつめたい。
0783デフォルトの名無しさんNGNG
>>781
帰れ!
C#をDelスレに持ち込むな!

=============以後、C#話は他のスレでどうぞ=============
0784デフォルトの名無しさんNGNG
781のってそういう発言だったの?

ところで、Delphi7っていつでるのかな。
0785デフォルトの名無しさんNGNG
インストール中に、EXEファイルの末尾に
暗号化した「WindowsのプロダクトID」を埋め込んで
他のパソコンにコピーしても起動できないようにしようとしています。
データの結合には成功したようなのですが(EXEファイルのサイズが大きくなったので)
そのEXEファイルに埋め込んだデータが何度読み出しても
'ZP'としか出てきません。
読み出し側のプログラムが間違っているのでしょうか?
わかる方がいましたら是非ご教授お願いします。

procedure TForm1.Write1Click(Sender: TObject);
var
 Password: shortstring;
 FromFile,
 OutFile: TFileStream;
 AddData: TMemoryStream;
begin
 //出力先EXEファイルを作成
 OutFile := TFileStream.Create('C:\Test\New.exe',fmCreate);
 //結合元EXEファイルを開く
 FromFile := TFileStream.Create('C:\Test\Test.exe',fmOpenRead or fmShareDenyWrite);
 //〜レジストリ関係省略〜
 //結合用データ作成
 AddData := TMemoryStream.Create;
 PassWord := 'テスト';
 AddData.Write(Password, Sizeof(Password));
 //結合
 OutFile.CopyFrom(FromFile, 0);
 OutFile.CopyFrom(AddData, 0);
 FromFile.Free;
 OutFile.Free;
 AddData.Free;
end;

procedure TForm1.Read1Click(Sender: TObject);
var
 Password: shortstring;
 Exe:TFileStream;
begin
 Exe:=TFileStream.Create(Application.ExeName, fmOpenRead or fmShareDenyWrite);
 Exe.Seek(Sizeof(Exe)-sizeof(shortstring), 0);
 Exe.ReadBuffer(Password, Sizeof(shortstring));
 Exe.Free;
end;
0786デフォルトの名無しさんNGNG
 Exe.Seek(Sizeof(Exe)-sizeof(shortstring), 0);
ナニシテルンダロ コレ
0787デフォルトの名無しさんNGNG
 AddData.Write(Password, Sizeof(Password));
テユーカ カキコメテルカカクニンシロヨ
0788Delphi好き ◆0YAPhEjk NGNG
>>785
ううむ。あなた、重大なミスをおかしております。
ためしに、Read1Clickイベントの中で、
MessageBox(0,pchar('Exeのサイズ:'+inttostr(SizeOf(Exe))),'確認',mb_ok);
を実行してみましょう。

実験してわかると思いますが、Sizeof(Exe)はファイルのサイズではなく、Exeオブ
ジェクトへのポインタのサイズを返します。(32bit環境では常に4)
0789デフォルトの名無しさんNGNG
ネタか?
0790デフォルトの名無しさんNGNG
>>774
どうもありがとうございました!
0791デフォルトの名無しさんNGNG
 
0792デフォルトの名無しさんNGNG
とある条件の時をif文でひろって、条件が一致した場合は何もしないで処理を継続し、
一致しなかった場合には処理をさせたいのですが、
・何もしない
もしくは
・何もしないで処理を継続する
というような命令はあるのでしょうか?

フォームのボタンが押下された場合の動作です
0793Delphi好き ◆0YAPhEjk NGNG
>>792
if not(今までの条件) then begin
...
end;
ではダメなのでしょうか。
あるいは、
if (条件) then begin end else begin
処理
end;
のようにbegin endの間に何もかかないのもありですけど…。
0794デフォルトの名無しさんNGNG
>>793
ご返答ありがとうございます

not を使用したくなかったのですが
begin end の間に何も書かないのもアレですよね(w

そのような命令があるのであれば この機会に知りたいと思うのですが。。。
ループ文の場合だと continue があるようですが
これに匹敵するような命令は ないのでしょうか?
単なる興味ではありますが ちょっと疑問を解き明かしたい。。。
0795デフォルトの名無しさんNGNG
ない
0796Delphi好き ◆0YAPhEjk NGNG
>>794
私もちょっと聞いたことがないですねぇ。お役に立てずに申し訳ないです。
でも、notを使いたくないっていう理由を知りたいですなぁ。差し支えなければ…?
0797デフォルトの名無しさんNGNG
差し支えまくり。
0798デフォルトの名無しさんNGNG
あー
ないですか
ありがとうございます

理由としては んー。。。
なんか言い訳してるみたいなコードな気がして(w
go文のような

好みの問題なだけです
お付き合いいただいてありがとうございます
0799Delphi好き ◆0YAPhEjk NGNG
>>794
今気づいたんですが、お勧めしませんけど、もしどーしてもやりたければ、
repeat
 if (条件文) then
  break
 else
  実行したい命令
until true;
でどうでしょう。動くかなぁ。
ま、面倒なので私なら多分おそらく思うに絶対notを使いますけど。
他にいい方法があれば…ナァ。
0800デフォルトの名無しさんNGNG
>>799
これ おもしろいですね
でも やはり素直にnotを使うのがセオリーでしょうか
いくら好みでも やはり(w
0801Delphi好き ◆0YAPhEjk NGNG
>>800
そうですねぇ。
個人的には、continueやbreakみたいなのは好きではないですね。
うまく使えばすっきりするんですけど、多用するとソースを追いにくくなったりしま
せん?
私、使ったことないんですけど…。みなさん、結構使ってるのかなぁ。
0802でもどり初心者NGNG
>>798
あらかじめいっておきます。ネタです(w

if (条件) then
 Flag:=False
else
Flag:=True;

if Flag then
begin
 処理
end;
0803Delphi好き ◆0YAPhEjk NGNG
>>798
じゃ、私もネタってことで。
if boolean(1-ord(条件)) then
 処理
ってことで。
0804Delphi好き ◆0YAPhEjk NGNG
>>798
if true then else 処理;
はコンパイラを通りますね。(then,else間のbegin endは要らない)
でも、さすがに
if true else 処理;
とすると、怒られますた。
0805でもどり初心者NGNG
>>803
あ、この書き方すっげー参考になった(w

いままでboolean形の変数をIniFileに書き込む時、
if文使ってたからなぁ(汗
0806Delphi好き ◆0YAPhEjk NGNG
>>805
まじっすか。光栄です。
0807デフォルトの名無しさんNGNG
>>803
む。
これわかんないです(w
0808Delphi好き ◆0YAPhEjk NGNG
>>807
ordは順序型のインデックスを返します。
条件式の結果が論理型(Boolean)であればTrueが1、Falseが0に対応します。ので、
1-ord(True)が1-1で0。1-ord(False)が1-0で1になって、True、Falseのインデック
スが逆転しますので、それをBoolean型にキャストすると、「not 条件式」と同じ結果
になります。(なら、そう書けよ・・・と。)
0809781NGNG
>>782 結局MS言語で努力したくないんで Delphiを選んだんだが悪いか?悪くねーだろ!
>>783 うるさいよオマエ、C#の質問なんてしてねーんだよ、氏ね

結局誰もアドバイスくれないので、VCLのソース欲しさに今日Delphi6proを注文した。
Delphiは素晴らしいけど、Delphi使いはこんな奴等ばっかりなのか?
なんかガッカリしたよ、もーいいです、さような。
0810面白くないネ>>809NGNG
(´-`)。o ○ (809を削除するにはどうすればいいのかなぁ…)
0811デフォルトの名無しさんNGNG
本当は皆もろ手を上げて大歓迎なんだよ・・・・・・。
でも、嘘だよばーかDel厨死ねといわれるのが怖いんだ・・・・・・。
0812StringGridを共有イベントでNGNG
すんまっしぇん。StringGridで、色を付けたり、センタリングしたりするのに、
W := StringGrid1.Canvas.TextWidth(StringGrid1.Cells[ACol, ARow]);
というコードが途中にあるんですが、これをStringGrid1とStringGrid2の共有
イベントとして利用するのに、
with TComponent(sender)
begin
〜
W := Canvas.TextWidth(Cells[ACol, ARow]);
〜
end;
とすると、[エラー]未定義の識別子 : 'cells'と怒られます。

W := TComponent(sender).Canvas.TextWidth(TComponent(sender).Cells[ACol, ARow]);
としても、うまくいきまっしぇん。
誰か、HELP!お願いします。
0813デフォルトの名無しさんNGNG
>812
TComponent(sender) → Sender as TStringGrid
0814StringGridを共有イベントでNGNG
おお!ありがとうございます。レスがつくまで起きてて良かった!!
動作確認しました。

ところでwith文を利用しない、後半の書き方では、「無理」という事でよろしい
でしょうか?

P.S. Delphi歴まだ1か月です。VBは長かったんですが…
0815デフォルトの名無しさんNGNG
>>後半の書き方

W := TStringGrid(sender).Canvas.TextWidth(TStringGrid(sender).Cells[ACol, ARow]);
0816StringGridを共有イベントでNGNG
あっ!じゃあ、with文の方も、
with TStringGrid(sender) do
でOKですね。(あっ!今812みたら、doが抜けてた!!)

汎用的にはTComponentを使うって書いてあったから、これを使えば全てOKと
思ってました。(Buttonは、TComponentを使ってOKだったので…)

TComponentが使えないものもあるんですね…(しらんかった)

m(_ _)m
0817 ◆tare/k3c NGNG
>>802
そうかい?continueは便利だよ。
仕事でVBA使ってるけど、continueが無いので泣いてるよ…
0818 ◆tare/k3c NGNG
あ、>>801 へでした。寝酒飲んでるんで、すまん。
0819 ◆tare/k3c NGNG
ふと思ったが、continueやbreakが性に合わないと言うことは、
exitもあまり使わないってことかな?
0820デフォルトの名無しさんNGNG
breakとExitとContinueはよく使うな。
0821デフォルトの名無しさんNGNG
goもbreakもコンパイルすれば
同じジャンプ命令になりそうな気がするんだが、、、
自分はnot使う方が自然だと思う。
0822Delphi好き ◆0YAPhEjk NGNG
>>819
できるだけ使わないようにしてますねぇ。
この辺も好みの問題になっちゃうのかな?
さすがに、数百行の手続き・関数になると上部で処理を行うかどうか判断するときに
exitを使わないとインデントばっか多くなって見難くなりますので、そういう時は
使用しますねー。…もしかして少数派?
0823Delphi好き ◆0YAPhEjk NGNG
>>821
ところで、どーしても気になるんですけど、go文ってなんです?Del5なんですけど
Help見てもでてこないし…。MSDNでも、Goはあったけれど、なんか違うよーな感じ
ですし…。
0824デフォルトの名無しさんNGNG
notを使わないなんてコーディング規約が会社にあったら、即行でやめるぞオレ。
0825デフォルトの名無しさんNGNG
not は boolを反転させるのにしか使ったこと無いなぁ
0826Delphi好き ◆0YAPhEjk NGNG
>>824
同意します。
まぁ、>794さんみたいな方もいらっしゃるんじゃないですかね〜。
notを使うのは論理演算上普通のことなんで、if (条件) then 〜 else 〜;が条
件演算後の論理値を元に分岐する処理っていう風に覚えていればいいですけど、そ
うじゃなく、「もし〜ならば」の覚え方をしている人にとっては、notをつけると言
い訳コードに見えてしまうのかもなぁ。…私は、そうは思いませんケド。
ま、not使ったほうがイイよってことで。
0827デフォルトの名無しさんNGNG
すみません、チョト聞きたいんですが、
dosコマンドを実行して、そのコマンドが吐き出すメッセージを受け取るには、リダイレクション以外になんか方法はないでしょうか?
0828TeamB/2ch ◆SE69s0c2 NGNG
>>823
goto 文の間違いでしょう。
ネタにマジレスか?
0829Delphi好き ◆0YAPhEjk NGNG
>>828
ですか。なるほど。
…ってか、ネタですか。すんません。
0830TeamB/2ch ◆SE69s0c2 NGNG
>>827
command.com のリダイレクトがやっていることを行えばよいでしょう。

http://www.nifty.ne.jp/forum/fdelphi/samples/01397.html
を参考に。
0831デフォルトの名無しさんNGNG
exitはfinallyをちゃんと処理してくれることを知ってから
よく使うようになったな。

try
 if foo then
  exit
 ...
finally
 ... <- 常に実行される
end;

continueはインデントが低くなる=ブロックが減るようなケースで良く使う
while foo do
begin
 if bar then
  ...
 end
end;
 ↓
while foo do
begin
 if not bar then
  continue;
 ...
end;
0832デフォルトの名無しさんNGNG
TPopupMenu で、popup したあと、
メニュー以外のところがクリックされてメニューが消える
ことを関知するにはどうすればいいでしょうか?
クリックされて消えるのは OnClick にイベントを設置すればいいようなのですが
0833827NGNG
>>830
thanx
しかしそこのサンプルを実行しると、CreateProcessが失敗する…
ナゼナンダー
0834827=833NGNG
失礼、解決しますた。
dosコマンドはCreateProcessの第1引数(アプリ名)ではなく第2引数(コマンドライソ)に渡さなきゃいかんようです。
0835Delphi好き ◆0YAPhEjk NGNG
>>832
WM_MENUSELECTなど如何だろうとDelphi-MLにありました。
0836827NGNG
すみません、さらに質問しちゃいます。
>>830の方法で、dosコマンド終了後に吐き出された文字列を取れますが、
実行途中に出ている文字列は取れないでしょうか。
たとえば、pingコマンドだと4回実行する際に間がありますが、それをその間に1行づつ取り出す…とか、
あとはformatコマンドなどでは進行状況が%でリアルタイムに出力されますが、それを同時に取り出せないか…
というかんじです。
コマンドの終了待ち中にlabelのcaption等に常に書き込むようにしても、うまくいきませんでした。
(コマンドが終了するまで何も表示されない)
0837デフォルトの名無しさんNGNG
横はいりになってしまうかな?
質問です

コントロール上にマウスカーソルが入ってきたときと
出て行ったときをイベントで拾えるでしょうか?
OnMouseMove
ではなんだか違う気がしますし。。。

ImageコントロールをWebで見かけるボタンのような感じで
押下できる場合にはコントロール上にマウスカーソルがきた場合に
画像を変えて、コントロール上から離れた場合にまた画像を変える。。。
ということがやりたいのですが。。。
0838デフォルトの名無しさんNGNG
CM_MOUSEENTERと
CM_MOUSELEAVEメッセージハンドラで処理する。
0839デフォルトの名無しさんNGNG
>>838
APIですね?
ありがとうございます
初歩的な質問ですれよごし、申し訳ないです
助かりました
調べてみます
0840デフォルトの名無しさんNGNG
   A
  (゚o゚)<APIじゃないよー。メッセージ。調べるうちにわかるだろうけど一応。
  (ー)ー
   ))
0841デフォルトの名無しさんNGNG
>>840
あら 違うんでふか。。。
なんでしょお
調べてきまぷ〜〜〜
0842デフォルトの名無しさんNGNG
Imageコントロールって mouseenterイベント拾えるんですか?
0843デフォルトの名無しさんNGNG
フォーム上に貼り付けたか、フォーム上のパネルに貼り付けたかで
動きが変わってくるんだよね、このメッセージ・・・
0844デフォルトの名無しさんNGNG
>805
はげしく遅レスだが、IniFileにBool型を書き込む/読み込むのは
ReadBool、WriteBoolを使うと思うのだが・・・
0845837NGNG
以下のようなコンポーネントを作成してみる方法を拾ってきたのですが、
これにCM_MOUSELEAVEを追加する方法がわからないのです
privateにあるFMouseEnter:TNotifyEventの記述は何のためでしょうか?


unit UMyImage;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, ExtCtrls, Controls;

type
TMyImage = Class(TImage)
private
FMouseEnter: TNotifyEvent;
procedure CMMouseEnter(var Message: TMessage);message CM_MOUSEENTER;
public
constructor Create(AOwner:TComponent);override;
destructor Destroy;override;
published
property OnMouseEnter: TNotifyEvent Read FMouseEnter Write FMouseEnter;
end;

procedure Register;

implementation

constructor TMyImage.Create;
begin
inherited Create(AOwner);
end;

destructor TMyImage.Destroy;
begin
inherited;
end;

procedure TMyImage.CMMouseEnter;
begin
Inherited;
if Assigned(FMouseEnter) then FMouseEnter(Self);
end;

procedure Register;
begin
RegisterComponents('Gen',[TMyImage]);
end;

End.
0846デフォルトの名無しさんNGNG
つーか、このソース、晒してエエのん?
0847837NGNG
>>846
Delphi-MLの過去ログのものですが、問題があるでしょうか?
0848デフォルトの名無しさんNGNG
>>845
> これにCM_MOUSELEAVEを追加する方法がわからないのです
MouseEnterとまったく同じようにMouseLeave追加すればいい。

> privateにあるFMouseEnter:TNotifyEventの記述は何のためでしょうか?
OnMouseEnterイベントを追加するため。これもEnterをLeaveに変えて同じようにすればいい。
0849デフォルトの名無しさんNGNG
ぶっちゃけ、EnterをLeaveに変えたのを追加するだけでよさそう。
0850837NGNG
>>848
>>849
自分もそう思ったのですが、

type
TMyImage = Class(TImage)
private
FMouseEnter: TNotifyEvent;
FMouseLeave:TNotfyEvent;
procedure CMMouseEnter(var Message: TMessage);message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage);message CM_MOUSELEAVE;

と記述すると、FMおうせLeave:TNotfyEventで、
未定義の識別子のエラーがでてしまって。。。
0851デフォルトの名無しさんNGNG
FMおうせ?
0852837NGNG
>>851
。。。ごめ(w
てか できました
誤字してました(w
0853デフォルトの名無しさんNGNG
メインフォームから ボタンクリック等で別のフォーム(静的生成)を表示させ、
そのフォームが表示されたらメインフォームは背面に下がり、
すべてのイベントを受け取らないようにしたいのです

別のフォームの表示(TForm.Caption := True)とともに 
メインフォームのEnabledをFalseにしたら、
ウィンドウのアクティブ化も防げると思っていました。。
しかも メインフォームに配置してあるコントロールが、
イベントを受け取る始末
お助けください
0854デフォルトの名無しさんNGNG
>>853
TForm.Caption := True;
は
TForm.Visible := True;
の間違いだとして....

メインフォームとサブフォームの間に親子関係を指定しないと、二つのフォームは
独立して動いてしまいます。VCL のオブジェクトをどこで作成するかということと
Windows のウィンドウの所有者、および親子関係はそれぞれ独立して定義できます。

0855デフォルトの名無しさんNGNG
>>854
こんな時間にありがとうございます

フォームの親子関係の設定の仕方がわかっていないのですね>自分
親子関係の設定(もしくは定義)はどのようにするのが定石なのでしょうか?
オブジェクトインスペクタのみでおこなうものなのでしょうか?
0856デフォルトの名無しさんNGNG
えっとね。
いちばん簡単なのは,
メインフォーム Form1 で サブフォーム Form2 を
Form2.ShowModal;
と呼び出す方法。
0857デフォルトの名無しさんNGNG
>>856
そうですか
ちょっと調べてみます
ありがとうございます(^^)
0858デフォルトの名無しさんNGNG
プログラム中にCtrl+Zを実行して、他のアプリケーションに
undoをさせたいのですがどうしたらいいでしょう?

メッセージ??とか使うみたいですが、そうゆうのは
専門書とか買わないとだめですかね。
0859Delphi好き ◆0YAPhEjk NGNG
>>858
Pro以上ならWin32プログラマーズリファレンス等のヘルプを見れば如何でしょう。
Del6Personalにはついてませんね。
あるいはMSDNとか。
0860Delphi好き ◆0YAPhEjk NGNG
追記
Win32Referenceを持ってないなら、どうやら以下のページから
「Windows API documentation」
がダウンロードできるようです。英語版でしょうけど。
ttp://www.cs.virginia.edu/~lcc-win32/
0861デルファイの名無しさんNGNG
WM_UNDOを送りつければいいはず(相手が対応していれば)
0862デフォルトの名無しさんNGNG
こっちのほうがHTML-Help形式で使いやすいかと。‥‥でかいけど↓
オフラインインストール用(ただし、340MB)
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/default.htm?p=/msdownload/platformsdk/sdkupdate/psdk-full.htm

オンラインインストール用(CoreSDKのみの場合、200MB)
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/update.htm
0863デフォルトの名無しさんNGNG
>>859
Personalにもついてるぞ。適当なこと書くな。
0864デフォルトの名無しさんNGNG
初歩的な質問で済みません。
フリーのコンポーネントを使う場合に、コンポーネントのインストールで
パッケージにコンポーネントをインストールしますよね。
この場合、「既存のパッケージへの追加」と「新規パッケージへの追加」って
選べるじゃないですか。
この選択の基準てどういう風に考えればいいのでしょう。
自分はすべてデフォルトのパッケージに追加してしまうぞ!
って言う人は、いつも「既存のパッケージへの追加」を選べばいいんでしょうか。
ある人は、追加するコンポーネントは新規パッケージを作ってそこにすべて入れるとか
人によって、やり方が違うんでしょうか。

それと、パッケージに追加した場合に、コンポーネントのパスが
追加されますよね。
コンポーネントを几帳面にフォルダー毎に分けておくと、コンポーネントを
追加するたびにこのパスが長くなってしまいますが、Delphi3あたりには
バグが有って256文字以上のパスになると正しくコンポーネントを
検索できないような話も聞きました。
これを防ぐためには、追加コンポーネントはすべて一つのフォルダーに
ぶち込んでしまえばいいのかも知れませんが、後でどのファイルが
どのコンポーネントの物か判らなくなりますよね。
皆さんはこの辺はどうしているんでしょうか?

0865デフォルトの名無しさんNGNG
>>864
>自分はすべてデフォルトのパッケージに追加してしまうぞ!
>って言う人は、いつも「既存のパッケージへの追加」を選べばいいんでしょうか。
>ある人は、追加するコンポーネントは新規パッケージを作ってそこにすべて入れるとか
>人によって、やり方が違うんでしょうか。

そうです。

>これを防ぐためには、追加コンポーネントはすべて一つのフォルダーに
>ぶち込んでしまえばいいのかも知れませんが、

そうです。

>後でどのファイルがどのコンポーネントの物か判らなくなりますよね。

そんなことありません。コードエディタから開けるし、uses に追加された
名前からすぐ分かるでしょ。
0866デフォルトの名無しさんNGNG
>>864
コンポーネントをコンパイルした結果できるのが .dcu ファイルだったかな。
これだけを特定のフォルダへまとめてパスを通しておけばいいのじゃない?
0867858NGNG
>>859,860,861,862,863
皆さん、サンクスっ!
私お絵描きしてるんですが、頻繁にundoするので
ショートカットキーすらめんどくさい状態です。(w
>>863
そうだったんですか。text検索したけどダメなんで、
てっきり無いと思ってしました。でも、859さんの
意見は私にとって適当なことではなかったですよー。
0868デフォルトの名無しさんNGNG
無料のPersonalで作ったアプリってシェアウェアにしてもいいの?
0869デフォルトの名無しさんNGNG
>>867
普通にインストールすれば、

C:\Program Files\Common Files\Borland Shared\MSHelp

に入ってるはず。
0870デフォルトの名無しさんNGNG
この関連書籍の少なさはシャレですか?
http://www.borland.co.jp/bookinfo/delphi.html
0871デフォルトの名無しさんNGNG
>>870
多いほうが安心?
0872デフォルトの名無しさんNGNG
多いひも安心
0873デフォルトの名無しさんNGNG
>868 名前:デフォルトの名無しさん :02/07/12 05:15
>無料のPersonalで作ったアプリってシェアウェアにしてもいいの?
僕にも、これ教えて下さい
0874デフォルトの名無しさんNGNG
>>868
そりは、ダメっしょ。
0875デフォルトの名無しさんNGNG
>>873
そもそもシェアウェアというのはだな、
作者のソフトウェア開発に置ける経済的(略
0876デフォルトの名無しさんNGNG
>>873
公開できるのはGPLライクなライセンス
ソース付きで無料で公開するソフトのみなんじゃなかったっけ?

まぁ、PersonalでDelphiが使えるようになったら、
お金貯めてpro買ってください、VCLのソースも付いてますし、
コンポーネントとか作るようになればpro以上じゃないと辛いでしょ。
0877デフォルトの名無しさんNGNG
やっぱり、そうですよね。レスありがとうございました
0878Delphi好き ◆0YAPhEjk NGNG
>>863
ぐぉ。すんません。気づきませんでした。
Del5Proをメインで使っているんですが、こっちにはプログラムメニューからたどって
いくと見つかるでしょう?Del6Personalは無かったから無いと思ってたのです。
失礼。
0879TeamB/2ch ◆SE69s0c2 NGNG
>>876
GPL 縛りは Kylix Open ですね。

Delphi Personal で作成されたアプリに対する GPL の適用は
要求されません。

もちろんプログラマが GPL にしたければそのように宣言できます。

GPL とは独立して、Borland が要求している条件があって、それは

お客様は、直接的にも、間接的にも、お客様のアプリケーションプログラムの配布
または使用についていかなる報酬も受け取ってはなりません。
(ttp://www.borland.co.jp/delphi/del6/license.txt)
というものです。立場によっては GPL より厳しい。
0880デフォルトの名無しさんNGNG
>>879
強制フリーソフトってことっすか。
まぁ、無料開発環境なんだからねぇ。
0881デフォルトの名無しさんNGNG
フリーで公開してて、ユーザーに寄付したいと言われても「氏ねよ馬鹿、オマエこっちが金貰えないの知ってて寄付したいとか言ってるだろ?」と、断らなければならないんですね(^^;
0882デフォルトの名無しさんNGNG
>>881
つぅか仕事に使うなと。まぁ、日曜プログラマ捨てたんだからそっちから金取るしかないわな。
0883デフォルトの名無しさんNGNG
>>881
速攻でPro版買って、リリースする。
そして、寄付をもらう。
0884デフォルトの名無しさんNGNG
同じソースでもPersonalとProでは
出来上がるバイナリが微妙に違うのかねぇ?
0885TeamB/2ch ◆SE69s0c2 NGNG
>>884
知る限りにおいて同じです。
0886TeamB/2ch ◆SE69s0c2 NGNG
ごめんなさい。
最適化等のコード生成は同一です。生成されるユニットも同一。
リンカーが .EXE を作るときに印をつけるようです。
結果として出来上がるバイナリは異なります。
0887デフォルトの名無しさんNGNG
すみません、厨房質問なんですが、TButtonを

Ctrl+クリック とか Shift+クリックっていうのの区別はどうかくのが正解ですか?

OnClickで分けようとして悩んでしまいました。FAQだろうと思って調べてみても
よくわかりません。
0888無責任だがNGNG
>>887
 普通はボタンを CtrlやShiftで区別したりはしないものです


GetKeyState を使えば、シフト状態はわかりますが、
OnClickは実際には離された時に呼ばれますから、注意が必要です
0889デフォルトの名無しさんNGNG
ADOQueryコンポーネントのParameterで、ワイルドカードを用いた検索方法を
教えてください。
adoq.Parameters.ParamByName('hoge').value := '%' + txthoge + '%';
としても、%をワイルドカードとして認識してもらえず、文字列扱いされてしまいます。
よろしくお願いします。
0890デフォルトの名無しさんNGNG
ええっと、vb厨卒業しようと思ってdelphi始めたばっかりなんですが、
たとえばlistboxのadditemメソッドとかで、
第2引数にオブジェクトを指定するようになってますが、
何のオブジェクトを指定したらいいんでしょうか?
ヘルプを見ても、いまいち要領を得ません・・・
0891Delphi好き ◆0YAPhEjk NGNG
>>890
単に文字列リストとして使用するだけならnilを指定すれば良いのでは。
あるいは、additemのかわりにItems.Add(...)を使うと良いかと。
0892890NGNG
>>891
にるほどー
さんくすです。
ちなみにどんなときに何のオブジェクト指定するもんなんですか?
0893Delphi好き ◆0YAPhEjk NGNG
>>892
リストボックスと関連付けて特定のオブジェクト、コンポーネントを動作させたいときに
使ったり、場合によってはTObject型に整数型、ポインタ型を格納できますので、様様な
データを関連付けできますよ。
私も現在、色を保存させてカラー選択リストなんかに使ったりしてます。
変な使い方ですけどね。

ま、人それぞれでなんでもアリってことで。
0894890NGNG
関連付けて動作??
…っと、疑問はきりがなく出てきますが、おいおい調べていくことにします。
ありがとうございました。
0895Delフサギコ ◆zE1iiRdQ NGNG
           _____________
   ∧,,∧    /クラスを自作って
  ミ,,゚Д゚彡 < それを格納しておくのが便利なんだな。
   U  つ   \
 @ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ 
0896出る厨NGNG
そみません。実行環境にてあるActiveXコントロールを表示する前に
インストールされているか調べてもしインストールされてなければ、
表示しない、ロードされないようには出来ますでしょうか?
おながいします。
0897デフォルトの名無しさんNGNG
>>896 そもそも無ければロードされないというより出来ないのでは?
0898デフォルトの名無しさんNGNG
>>896
フォームに貼り付けずに動的に生成させれば初期化でエラーが返るだろうから、それで判断すれば?
0899デフォルトの名無しさんNGNG
Delphiでは、プリフィックスはあまり使われていないんでしょうか?
0900出る厨NGNG
>>898
ありがとうございました。先生、こんな感じで
だいぞうぶでしょうか?
try
Ctl := TCtl.CreateParented(Form1.Handle);
except
HandleErr;
end;
0901Delフサギコ ◆zE1iiRdQ NGNG
            _____________
    ∧ ∧   /
   (*゚Д゚) <  Nineです>>899
   ( つ⊂)  \_______
  @|   ,.|,.,
    (ヾ''"_, _,."彡.  
    彡,,,,,o,...o,,..ヾ  脱ぎ脱ぎしますた
0902デフォルトの名無しさんNGNG
それじゃタダのギコじゃん(w
0903デフォルトの名無しさんNGNG
prefixはenumやTComponent.Nameでよく使われてるよ。
ハンガリアンは使われてないにしても。
0904デフォルトの名無しさんNGNG
もうそろそろ次スレ作成ですが、提案がありまして、
Delphiモナーもどこか行ってしまったし、相談室と区別するために
「Delphi *初心者* 相談室」に改名する案を出したいのですが。

タイトルを残すなら、1に初心者用と分かるメッセージを入れるとか。
0905デフォルトの名無しさんNGNG
こうすることで、
初心者→「Delphi *初心者* 相談室」
通常→「Delphi相談室」
雑談→「フサギコのフサフサDelphi談話室」
に明確に分かれると思います。

煽り結構。ご意見求めます。
0906デフォルトの名無しさんNGNG
落ち目のDelphiにスレ3本維持するトラフィックはもうないだろ。
1本に絞れ。
0907デフォルトの名無しさんNGNG
>>901
着てたのかYO!
0908デフォルトの名無しさんNGNG
フサギコはこの時期になると毛が生え替わるんだよ。
フサフサの毛がサラサラの毛になるんだ。
で、毛を刈っておくと生え替わりがスムーズに行われるってわけ。
0909Delphi好き ◆0YAPhEjk NGNG
>>906
落ち目・・・すかー。
0910デフォルトの名無しさんNGNG
つーか、初心者って言葉、反対。ワケワカメなヤツが大挙する予感。
0911デフォルトの名無しさんNGNG
落ち目とはイワンが、そうそうスレを増やす必要もないと思われ。
初心者、通常&雑談で2つに一票。
0912デフォルトの名無しさんNGNG
Delphi初心者隔離スッドレ
0913デフォルトの名無しさんNGNG
一つに絞ることは無かろうが
相談室を破棄して2つにするのが良いかと
0914デフォルトの名無しさんNGNG
Delphi相談室、今月に入ってレスの数20くらい。その中で質問1つだけだ。
確かに3つは必要なさげ。
0915デフォルトの名無しさんNGNG
思い切りかぶったなw
0916デフォルトの名無しさんNGNG
質問と雑談
0917Delphi好き ◆0YAPhEjk NGNG
>>916
左様ですな。
わかりやすくて良いのでは。
……一票。
0918デフォルトの名無しさんNGNG
フサギコのスレなんかフサギコからの質問とAAばっかだし。
0919デフォルトの名無しさんNGNG
ヘルプにある「ASCIIファイルをDelphiがサポートするデータベース形式に変換する方法」を参照して作業をしてるんですが、一度としてうまくいった試しがありません。
オブジェクトが見つかりませんとか、メモリーが足りませんとかのエラーになってしまいます。

この、テキスト→DBへのインポート作業を行ってくれる、もしくは、テキストを分析してスキーマファイルを作成してくれるヘルパーアプリはありませんか?
0920Delphi好き ◆0YAPhEjk NGNG
>>919
Excel,Accessを使えばParadox等のデータベースファイル作成ができますよ。楽チン
です。
0921デフォルトの名無しさんNGNG
>>918
しーっ
0922デフォルトの名無しさんNGNG
>>889
% じゃなしと * じゃないのけ
0923デフォルトの名無しさんNGNG
んじゃ、相談室に一本化するってのでいいのかな?
でも立てちゃう人がいそうだが…

どうしても立てたい人は、自らがDelphiモナーを引き受けてくださいね。
0924デフォルトの名無しさんNGNG
>>887

OnMouseDown で Shift 状態を保存しておいて、OnClick で参照するとよいでしょう。

var
 SS:TShiftState;

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 SS := Shift;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 s:string;
begin
 case (Byte(SS) and $7) of
  0: s := 'None';
  1: s := 'Shift';
  4: s := 'Ctrl';
  5: s := 'Shift+Ctrl';
 end;
 ShowMessage(s);
end;
0925デフォルトの名無しさんNGNG
Delphiイイ!  プログラミングは全くの初心者なんですが、なんとなくやってけそうなDelphi
で、書籍を探しています。  プログラミング自体、全くの初心者なんで「変数」「関数」とかの
概念から書いてるような本で何かオススメなのはないでしょうか?
0926デフォルトの名無しさんNGNG
書籍よくわからないけど、、リンクだけ

公式サイトで紹介してる関連書籍(最新順)
http://www.borland.co.jp/bookinfo/delphi.html
0927デフォルトの名無しさんNGNG
秋には Delphi7 with .NET がでるから、また盛り上がるんじゃ?
0928デフォルトの名無しさんNGNG
>>925

悪いことは言わんから、最初はC#かJavaからはじめた方が良いよ。
言語的にも比較的近いし、参考資料(特に入門書)の充実度がまるで違う。

Delphiは、ビジュアル化されすぎていたり、「よくわかんないけど動く」
部分がかなりあってプログラミングを基礎から学ぶにはやや不適な部分も
あるからね。
0929887NGNG
>>924
あ、ありがとうございます。そっかーMouseDownってこう使えばいいんですね。
勉強になりました。
0930デフォルトの名無しさんNGNG
>>927
今年の冬にDelphi7だけ出て、Delphi.NETは別製品で来年冬のリリース予定・・・。
0931デフォルトの名無しさんNGNG
>>925
日経BPから出てる「カンタン!Delphiプログラミング」なんかいいかもしれませんね。
http://software.nikkeibp.co.jp/software/backno/02delmook2.html

3月か4月くらいに出て、かつムックなので、本屋さんでは売り切れてるかもしれないけど。。。
0932デフォルトの名無しさんNGNG
>>928
いや、逆に今となってはどれでやっても同じだと思われる、
Delphiだと無償で環境が手に入るのでその意味ではお薦めでいいんじゃないの?
僕もDelphiで勉強したおかげで、C#も苦も無く理解できたし今でもDelphi使って
ますよ、ソフトを作って配布しようとしたら Delphiの方が楽みたいだから。
0933デフォルトの名無しさんNGNG
「よくわかんないけど動く」
ってのは C# も Java も同じだな。
「動かない理由がよくわかんない」
ってなりがちなのも同じ。
0934デフォルトの名無しさんNGNG
その点、D proにはソースが付いてるから安心できる。
0935デフォルトの名無しさんNGNG
その話題は
C# 仲良し Delphi Round 2
http://pc.2ch.net/test/read.cgi/tech/1022662451/

に
0936デフォルトの名無しさんNGNG
>>923
荒された時とか双方が退避場所になってたりして良かったのだがね
0937デフォルトの名無しさんNGNG
Delphi7の話題ってどこにありますか?
新しいコンポーネントの情報とか。
0938デフォルトの名無しさんNGNG
http://www.borland.com/products/delphi7/feature.html
0939デフォルトの名無しさんNGNG
>>925
変数って何?レベルなら、コンソールアプリケーションから入るのがいいかもねー

Pascal・Delphi入門:オンライン学習ページ
http://or-lab.asahi-u.ac.jp/intro_to_delphi/default.htm
flow of water プログラミング講座
http://isweb21.infoseek.co.jp/computer/wblue/prog/chair_top.htm
クジラ飛行机 ゼロから始めるDelphi講座
http://www.text2music.com/mine/delphi/index.html
0940デフォルトの名無しさんNGNG
>>939
> クジラ飛行机 ゼロから始めるDelphi講座
お前は中国人か?w
0941デフォルトの名無しさんNGNG
winAPIを使わないでaviをbmpに変える方法ありますか?
Kylixでプログラミングしているのですが、
何を使えばいいのか分からないです
0942デフォルトの名無しさんNGNG
>>941
fopen
fread
fwrite
fclose
0943デフォルトの名無しさんNGNG
>>942
これはどのようにつかうのですか?
C言語のようですけど(ちょっと調べてみました)
0944デフォルトの名無しさんNGNG
>>943
TFileStream
0945デフォルトの名無しさんNGNG
>>944
aviのファイル形式を知らないでも読みとれるのですか?
0946デフォルトの名無しさんNGNG
>>945
UNIXではAVIのファイル形式を知らないとどうがんばっても無理。
0947デフォルトの名無しさんNGNG
ずいぶん茨の道を歩んでるねぇ…<KylixでwinAPIを使わないでaviをbmpに変える
0948デフォルトの名無しさんNGNG
(´-`)。o ○ (つーか、変数から始めるんじゃ、もっと簡単なのから…。
ぴゅう太とか、ファミリーベーシックとか…)
0949デフォルトの名無しさんNGNG
>>947
俺はKylixでWinAPIを使ってaviをbmpに変える方が地獄だと思われ。
0950947NGNG
>>949
茨の1.…「Kylixで」
茨の2.…「winAPIを使わないでaviをbmpに変える」
という意味。

「茨の1」ってブラック商会変奇郎みたいだ…
0951919NGNG
>920殿。

こんな簡単なことにどうして気付かなかったんだろう。
ありがとうございますた。
0952デフォルトの名無しさんNGNG
Javaじゃないと・・・とか言ってる奴は間違いなくウンコ
Javaそのものがウンコというのは常識

最近、webはウンコを練り上げて作るのが流行ってるらしいですね
0953デフォルトの名無しさんNGNG
>>950
つぅか洒落を解して下さい。
0954Excelを起動NGNG
ExcelApplicationとExcelWorkBookをFormに貼り付けて(F_Passは、絶対パスが入っているとして)
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Add(F_Pass +'aaa.xls',0));
とすると、なぜかファイル名に「1」がついたものが開かれます。(aaa1.xlsになる)
なぜ1がつくのでしょうか??? aaa.xlsとして、Connectしたいのですが…
0955デフォルトの名無しさんNGNG
>>952
あっちでウンコウンコ言ってたのお前か。
Javaできないからってひがむなよ。
0956デフォルトの名無しさんNGNG
ウンコウンコ
0957デフォルトの名無しさんNGNG
>>941
ひとくちにAVIといっても、それはRIFF形式のファイルです。
RIFFは拡張性が高く、それを利用して(DivXやMPEG4V3やら)複数の
動画フォーマットがAVIという拡張子で保存されています。
Windowsではその ”複数の動画フォーマット”を管理するために
各フォーマット毎のCODECを持っており、実質はこのCODECが
動画のデータをBMPに変換しています
Kylixにはそれがない(?)ため、自前で変換しなければならず、
MPEG等の公開されたフォーマットでない場合は、内部構造を
解析するところから着手する必要があります。
皆が"茨の道"といってるのはそういうことです。おわかり?
0958デフォルトの名無しさんNGNG
http://www.google.com/search?num=100&hl=en&ie=UTF-8&oe=UTF-8&q=linux+w32codec+avifile&lr=
0959957NGNG
>>958
おぉ、avifile というのがあるのか(恥
ということで、WindowsのCODEC をラップするavifileがあるので
このライブラリを叩けば内部構造の解析からは逃れられる、らしい。
0960デフォルトの名無しさんNGNG
>>941
Debianでしょうか
0961デフォルトの名無しさんNGNG
>>940
中国では
幾→几
機→机
となります。だから
「テレビは電視机だ〜!ツクエなんだ〜!!」
と言ってる香具師はアフォです。くじら飛行机も当然アフォです。
だって、ひまわり・・・
0962940NGNG
>>961
ん?何か余計にわかりにくくなったような…
あれ見て普通に「クジラ飛行機」って読んじゃった漏れは変なのか?
0963デフォルトの名無しさんNGNG
>>961
中国ではってより簡体字ではでしょ、本来の書き方は中国でも機ですが、
略して机としているだけです、台湾では簡体字は使いませんので機ですね。
0964デフォルトの名無しさんNGNG
>>961-963
お前ら全員スレ違い
可以逝去!
0965デフォルトの名無しさんNGNG
俺はてっきり「中国人は空飛ぶものは飛行機以外、足のあるものは机以外なんでも食べる」ことを言ってるのかと思ってたよ!
スレ違い続きでスマソ
0966デフォルトの名無しさんNGNG
>>964
( ´∀`)イ尓 也 是!
0967デフォルトの名無しさんNGNG
我不是日本人!!
0968デフォルトの名無しさんNGNG
おしえてください。
本のとおりDeleteMenuなるWinAPIをprocedureに書きました。
usesに宣言する方法がわかりません。
Delphi6のコードエディタでDeleteMenuをクリックしたら

{ Externals from user32.dll }
---snip---
function DeleteMenu; external user32 name 'DeleteMenu';

というのが出たのですがこれをどうにかするのでしょうか?
0969デフォルトの名無しさんNGNG
>>968
なんだろう。聞きたいことがよくわかりません。
procedureに書きましたって、
procedure DeleteMenu;
とかってしたってことでしょうか。
procedure TForm1.Button1Click( Sender : TObject );
begin
DeleteMenu;
end;
とかしたってことでしょうか。???
0970デフォルトの名無しさんNGNG
>>968がVBユーザーでなおかつDeleteMenuの宣言を
自分で書かないといけないなどと悩んでいるなら
その必要は無くって単にuses Windows;するだけ。
0971968NGNG
>>969
構文はわかるんですが(たぶん)

var
MenusI:HMENU;
begin
Menus := GetSystemMenu(Handle,false);
DeleteMenu(Menus,SC_CLOSE,MF_BYCOMMAND);
DrawMenuBar(Handle);
end;
0972968NGNG
>>970
いままでコンパイルエラーでてたんですが書いたり消したり
繰り返してるうちにもとのコードでエラーでなくなりました

なんでだ?
とにかく、ありがとうございます。
0973デフォルトの名無しさんNGNG
>>973
ひょっとして、「DeleteMenu」という関数をソースに書いたりしたか?
0974デフォルトの名無しさんNGNG
つーか、全く意味不明。
0975Delphi好き ◆0YAPhEjk NGNG
誰か、次スレ立てないのですか?それとも、もう立ってるのかな?
(人任せ…無責任かのぅ…)
0976デフォルトの名無しさんNGNG
>975
>>904-923じゃないのか?
0977Delphi好き ◆0YAPhEjk NGNG
>976
なるほど。そうケリがついたのでしたね。
というわけで、相談室の方に引っ越します。皆さん、有難う御座いました。よろしけれ
ばまた、「相談室」でも会いましょう!
0978神日本磐余彦NGNG
 オープンソースブラウザってC++ばっかりだな。Delphi製のやつはないの?
0979デフォルトの名無しさんNGNG
>>978
HTML エンジンも Delphi 製?
うむ、聞いたこと無いなぁ。
0980デフォルトの名無しさんNGNG
おれは自分でIEコンポーネント使ったタブブラウザ作って常用してるけどね。
好き勝手にカスタマイズできるので便利。

Delphi製のHTMLエンジンとしては
http://www.pbear.com/
があるけど、二バイト文字非対応なんだよなー。
css等にも対応してるので惜しい。
0981デフォルトの名無しさんNGNG
質問です。他人の作ったdelphiのソース解析をすることになったのですが、
自作のコンポーネントなのかもともとのコンポーネントなのか区別がつけられず
困っています。どうやって見分けたらいいのですか?
ちなみにdelphi5です。
全然初心者なのでくだらないとは思うのですがお願いします。
0982デフォルトの名無しさんNGNG
>>981
http://www.borland.co.jp/vclscanner/index.html
たしか、これ使えば分かる。
0983デフォルトの名無しさんNGNG
>>981
コンポーネント名(例えばTButton)にカーソル合わせて
F1押してヘルプがでたらBorland製。
またはマウスで右クリックして定義の検索して
どのソース=ユニットに所属しているかどうかで判断する。
0984982NGNG
あ、ごめん。意味を勘違いしてた。
0985デフォルトの名無しさんNGNG
え?
違うんですか?
>984
0986デフォルトの名無しさんNGNG
使ってみればわかるけど、あれは使用しているコンポーネントを列挙するだけで、
製品に含まれているコンポーネントなのか自作したものなのか判別できないのよ。
0987デフォルトの名無しさんNGNG
>>981
IDEのエディタでコンポーネント名(例:TSomething)にカーソルを置いて
右クリックで「定義の検索」とやってごらんよ
0988デフォルトの名無しさんNGNG
>>983
スマソ、途中までしか四度欄買った
0989デフォルトの名無しさんNGNG
 正直、未だにinterface型が分かりません。
GUID?何じゃそりゃ?って感じです。
 どなたか教えてください・・・。
0990デフォルトの名無しさんNGNG
次はver.8か?
0991デフォルトの名無しさんNGNG
立てないんじゃなかったか
0992こちらに合流してくださいNGNG
Delphi相談室その5
http://pc.2ch.net/test/read.cgi/tech/1022921598/l50
0993デフォルトの名無しさんNGNG
      \△/\△/\△/
       ●   ●   ●     ⇒ http://pc.2ch.net/test/read.cgi/tech/1022921598/
   ε=ε= □へ  □へ  □へ
       ノ    ノ    ノ
0994デフォルトの名無しさんNGNG
過去スレは全部HTML化されてますってことで。
0995デフォルトの名無しさんNGNG

     ヽ( ゚д゚)ノヽ( ゚д゚)ノヽ( ゚д゚)ノ イドー
   -=≡ (  )へ  (  )へ  (  )へ     ⇒ http://pc.2ch.net/test/read.cgi/tech/1022921598/l50
       >     >     >
0996デフォルトの名無しさんNGNG
お、ついにスレ統合か。これですっきりするね。
よかった。
0997デフォルトの名無しさんNGNG
埋めていい?
0998デフォルトの名無しさんNGNG
てか
埋める
0999デフォルトの名無しさんNGNG
998
10001000取り阻止NGNG
     \==========/                  \ =========/
\     \=======/                     ゝ=======/     /==
 =\     \====|   〇          〇     |====/      /====
 ===\     \==|       ) ̄ ̄ |         |==/      /======
 =====\      \|      |    |          |/     /========
 =======\      ゝ       |    |         /     /==========
 =========\     \     ./⌒⌒ .|       /     /============
 ===========\           ――┤           /=============
 ==============\;;;;;;;                    /================
 ===============|;;;;;;                   ヽ .===================
 ===============|;;;;;;      ・  ・         ヽ ==================
 ===============|;;;;;;;  ・ ::::・            ヽ====
 ===============|;;;;;;;;   ::●:::          `、     / ヽ┌─┐ノ  \    |
 ===============|;;;;;;;;  ・:::::・・          | `、   l    |  |    l    |
 ===============|;;;;;;;;  ・ ・ :・           |  `、  l    |   |     l   /
 ===============|;;;;;;;;       ・          |    `、 \   トー─|  /  /
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。