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

くだすれDelphi(超初心者向け) Part2

レス数が1000を超えています。これ以上書き込みはできません。
0001毛の生えたフサギコNGNG
このスレッドは、

他のスレッドでは書き込めない超低レベル、もしくは質問者自身何が何だが
分からない質問を勇気を持って書き込むスレッドです。

Delhi使いが優しくコメントを返しますが、お礼はDelhiの布教と初心者の
救済をお願いします。
0002デフォルトの名無しさんNGNG
2
0003毛の生えたフサギコNGNG
// 前スレ
くだすれDelphi(超初心者向け)
http://pc2.2ch.net/test/read.cgi/tech/1051882835/l50
0004デフォルトの名無しさんNGNG
リンク集
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0005 NGNG
仕事には使えない。
金にならない言語NO1!
Del超初心者質問スレ↓
0006毛の生えたフサギコ(実はブリーフ)NGNG
>1

Delスレが荒れていたから短期緊急避難スレとして「くだスレ」作ったんだけど、
荒れが収まったから「相談室」に戻った方がよかったんだけど・・・。

Delphiの綴りの間違いまでコピーしちゃいやん。

私もおとといDel7パーソナルを買いました。Del6プロと共存させています。
IDEのアイコンのデザインがXPライクでいやん。
2000ユーザなら違和感ありまくり。
0007デフォルトの名無しさんNGNG
うむ、VBしか使えない連中の方が、それを口実にしてやすく雇えるからな。
技術屋に投資するくらいなら営業に投資した方が利益につながる。

プログラマーには余計な知恵は無い方がいいんだよ。

0008デフォルトの名無しさんNGNG
そういう意味でDelphiは中途半端なんだな。
技術レベルも中途半端、開発者人口も少ない。
これではビジネスにはならないわな。
やっぱり趣味専用だわ。
0009デフォルトの名無しさんNGNG
はいはい、趣味専用ってのはわかったからさ。
0010sevenNGNG
無料版が無いと、趣味では使えないよね。
0011デフォルトの名無しさんNGNG
D6用のBPLをD7にインストールしたいのですが、やっぱり無理でしょうか?
System32にあるBPLを「コンポーネントのインストールで」開こうとしても
エラーが出ます。
0012デフォルトの名無しさんNGNG
dpkではなくて?
0013デフォルトの名無しさんNGNG
>>11
細かなアドレス差を吸収するようなトランスレータ作らないと無理でしょ。
0014デフォルトの名無しさんNGNG
アドレスどころか VMT の中身もまるっきし違うから無理。
無駄なことに時間を使わないように。

インストールしたいコンポーネントのソースを手に入れるか、そんなコンポは使わない。
それが Turbo-PASCAL 時代からの Borland の文化。
「オープンソース」以前からソース公開しないと生き残れなかったのだ。
0015デフォルトの名無しさんNGNG
ttp://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=4
↑ここの「02/11 API を使って縦書きなどのフォントを指定する」を入力してみたけど
文字化けで日本語が記号になってしまう・・・。
どなたかDelphi6personalで縦書き日本語文字の表示方法教えて下さい。

0016デフォルトの名無しさんNGNG
>>15
だからどのフォントを指定したのよ?フォント名は正確に指定しないと
意味無いぞ。
0017デフォルトの名無しさんNGNG
>>15

lbl.lfCharSet := SHIFTJIS_CHARSET;

これを追加しなさい
0018デフォルトの名無しさんNGNG
待ってました、このスレッド
0019デフォルトの名無しさんNGNG
Borland
http://www.borland.co.jp/
Delphi-ML過去ログ & Tips
http://www2.big.or.jp/~osamu/Delphi/
Delphian World (コンポーネント集)
http://home1.infonia.ne.jp/~delphian/delphi/
FDELPHI (ライブラリ、FAQ)
http://forum.nifty.com/fdelphi/

Delphi6の環境設定
http://hp.vector.co.jp/authors/VA028375/contents/Delphi_setup.html
フリーカーソル無効化アドイン
http://homepage1.nifty.com/fuu/
Delphi プログラミング事始め
http://www2s.biglobe.ne.jp/~hatena/delphi/index.html
0020デフォルトの名無しさんNGNG
あら。ほんと。サンプルが時代遅れだね。
正しいフォント名(厳密にはフォントファミリ名)に @ をつけたものを lfFaceName に指定。
かつ lfCharSet を SHIFTJIS_CHARSET に指定。
ですね。

過去ログは、それがかかれた時点での情報であることを忘れずに。
メンテナンスされない過去ログは、ログがないより悪影響。
0021デフォルトの名無しさんNGNG
           _____________
   ∧,,∧    /
  ミ,,゜Д゜彡 < IDEの機能使ってヨシ。
  ミ⊃  ミ⊃  \____________
 〜ミ  ミ [ツール]-[ツールの設定]でダイアログを開き
   ∪''∪  [追加]で、ツールプロパティダイアログを開き

[タイトル] 好きな名前を付ける
[プログラム] エディタのExeをフルパスで指定
[作業フォルダ] 設定しなくてよい
[実行時引数]
  $EDNAME
  (EmEditorの場合、行番号も引数に渡す) /l $ROW $EDNAME
◎
◎応用してIDEで開いているファイルのひとつ上のフォルダを開くヤツ。かなり便利。
◎
[タイトル] 好きな名前を付ける
[プログラム]
  エクスプローラを指定、以下のどの指定方法でもOK
    explorer
    explorer.exe
    C:\WINNT\explorer.exe
[作業フォルダ] 設定しなくてよい
[実行時引数]
  ■現在開いているファイルのフォルダを普通に開く
    $PATH($EDNAME)
  □現在開いているファイルのフォルダをエクスプローラで開く
    "/n", "/e", $PATH($EDNAME)
  ■プロジェクトフォルダを普通に開く
    $PATH($EXENAME)
  □プロジェクトフォルダをエクスプローラで開く
    "/n", "/e", $PATH($EXENAME)
0022デフォルトの名無しさんNGNG
FormStyleを変更すると、高速で一度フォームが消えるんですが、そうならないように出来ます?

具体的には、fsNormalからfsStayOnTopにする時、また、その逆の時にチラチラするんです。
0023デフォルトの名無しさんNGNG
くだすれレベルの回答じゃなくなってしまうが、質問がわに回答内容を想定することはできないからなぁ

FormStyle を変更しない。ってのが答えかな?

0024デフォルトの名無しさんNGNG
で、FormStyle プロパティを変更しない代わりに、自分で管理。

fsStayOnTop にするには
 SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);

fsNormal に戻すコードは、自分で調べてくだされ。SetWindowPos を調べれば(日本語で)資料が出てくるから
引数を調整してごらん。HWND_TOPMOST あたりが鍵

ただし、これをやると、Form 自身の設定とずれるので、注意すること。
0025デフォルトの名無しさんNGNG
では、内部的にチラつかせなければならなかった理由をお聞かせください。
これはバグの類とは違いますか?
0026デフォルトの名無しさんNGNG
>>24
とても親切に、ありがとうございます。
助かります。
0027デフォルトの名無しさんNGNG
全部出来ました。
0028デフォルトの名無しさんNGNG
Delphi7のTwilightColorMapってどう使うの????
002915NGNG
>>17,20
うおっ、上手くいきました!
どうもありがとうございます。

昼寝のつもりでちょっと横になったら6時間も寝てしまい
レス遅れてすいません・・・。
0030デフォルトの名無しさんNGNG
>>25
それはWindowsの制限なのです。
WNDCLASS構造体 を変更しなければならないようなプロパティの変更があると、
一度 窓をWindowsに返却して、 RegisterClass/CreateWindowをやり直さなければいけません。
0031デフォルトの名無しさんNGNG
Delphi 6 パーソナル 使ってるんだけど、
時々固まって動かなくなる。
多分パーソナルでは使えない機能を利用したからなんだろうけど
使えないなら使えないでダイアログ出すとかして欲しいな。
いきなり固まるのは・・・。

0032デフォルトの名無しさんNGNG
xxx.dllのxxxという関数を使うサンプルをください
0033デフォルトの名無しさんNGNG
初歩的な質問だと思うのですが、Tstringsで普通のHD上のテキストファイルなどを
開くことは出来るのですが、ネット上のソースファイルなどを開くにはどうすればいいか
教えてください。たとえば
http://i.2ch.net/2chi.html
のソースをTstringsに読み込むにはどうすればいいのでしょうか。
よろしくお願いします。
0034デフォルトの名無しさんNGNG
「はじめてのObject Pascalプログラミング テクニカルマスターシリーズ
真田 薫 (著)」
ってどないですか?
知り合いがDelphi始めるのに本探しているのですが、この本比較的新しい
ようなので、Amazonにもコメントがありません。
スレ違い等有りましたら、指摘お願いします。
0035デフォルトの名無しさんNGNG
>>二つ上
拡張子変えて読み込めばいいんじゃないか?
ChangeFileExt
0036毛の生えたブリーフNGNG
>34

自分には読みにくいと思いました。(最初から読んでいくと)

文法を最初から説明する本ではなく。Delphi&Kylixの使い方を
最初から説明する体裁の本です。ですから、文法のみを最初から(トークンからとか)
理解しようと思って1ページから読んでいくと話題があちこちに飛んで
わかりにくいと思います。

ただ、標準添付の言語ガイドをもうすこし砕けた表現で説明してあるので
持っていて損はないとおもいます。
0037毛の生えたブリーフNGNG
>34

まったくの初心者なら、ナツメ社からでている塚越氏のKylix本が
いいかもしれません。Delphi入門にも使えます。
0038毛の生えたブリーフNGNG
>34

つーか、この本は以前、技術評論社からでていた「はじめてのDelphi」と
ほとんど同じ内容です。さーっと読めて概要が短時間で把握できます。
0039毛の生えたブリーフNGNG
前スレッドで「Senderとは何か?」の話題がありましたが、

朝日コミュニケーションズ発行の「Delphiパーソナルプログラミング」(掌田氏)
に少し説明があります。この本はコーディングが少しマニアックと思いますし、
用語の使い方が少し変な気がしますが、読んでいて面白かったです。
2冊目の書籍として推薦します。
0040デフォルトの名無しさんNGNG
質問です
Senderって何ですか?
0041デフォルトの名無しさんNGNG
質問相談談話室スレに書いたのですが、反応がないようなので、
こちらで質問よろしいでしょうか。バージョンは6のパーソナル版つかってます。
TMediaPlayerを使って

MediaPlayer.FileName := (Format('sound\\bg%.2d.mp3', [fn]));
MediaPlayer.Open;
MediaPlayer.Play;

このようにsoundフォルダを置いて、内部のMP3ファイルを再生しようとしています。
私のパソコンでは問題なく動いたので、友達のvaioで試してもらったところ
「MMSYSTEM275指定したファイルが見つかりません」
というエラーがでて音がならなくなってしまうとのことです。

どなたか原因と解決方法が分かる方はいらっしゃるでしょうか。
なにとぞお願いいたします。
0042デフォルトの名無しさんNGNG
>>41
ググッたらいっぱい出てくるんですけど・・・。

http://www.google.co.jp/search?q=cache:sjDK8J3KKQsJ:homepage3.nifty.com/flare/pc/bcb/data/069.html
+MMSYSTEM275+%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93&hl=ja&ie=UTF-8

長すぎるので途中で折り返したが、ほんとうは一行で。
004342NGNG
VAIOの場合も書いてあった。
「MMSYSTEM275指定したファイルが見つかりません」 でぐぐれ。
0044毛の生えたフサギコNGNG
>40

イベントハンドラを記述するとき、パラメータとして与えるTObject型の変数。

例えば、Form1にButton1があったとして、Button1をクリックするとOnClickという
イベントが発生します。このイベントに呼応するために、アプリケーション(この場合は
Form1オブジェクト)はイベントハンドラを呼び出しますが、どのオブジェクトからメッセージが
アプリケーションへ送られてきたかを識別するためにパラメータとして、イベントハンドラの
引数に(Sender:TObject)を記述して、具体的にはSenderにButton1のポインタが代入されます。


厳密にいうと少しおかしいです。誰か補足キボン

0045デフォルトの名無しさんNGNG
イベントというのは そのクラスの機能を拡張する手法の一つで
その機能拡張を、そのクラス自身を拡張してではなく、相手のクラスに任せてしまおうというもの。

任された相手のクラスは、誰からイベントが送られて来たか判らないといけない。
だからイベントには送り手情報が必要となって、第一引数はたいてい Senderだ。

Senderは送り手の型の方が良いか TObjectが良いかは難しい問題だ。

Sendeを送り手の型にした場合、ボタンを押した場合もメニューで選択した場合も同じ処理をさせたい場合に
逆に困ってしまう。 だから一般的な引数の少ないイベントは Senderはクラスの総親であるTObjectにする。
だけで、引数が複雑な、そのオブジェクトにしか使われないイベントについては、そのオブジェクト型にする。
0046デフォルトの名無しさんNGNG
>>33
Indy使えばいいんでない
http://www.nevrona.com/Indy/

IdHttp1.Get('http://i.2ch.net/2chi.html');
0047デフォルトの名無しさんNGNG
APIでも書けるところはAPIを使ったほうが良いんですか?
0048デフォルトの名無しさんNGNG
API使う場合は出来るだけラップして自分で抽象化して使うようにね
0049デフォルトの名無しくんNGNG
>>36,37,38
レスありがとうございます。
「Delphi始める」は間違いで、「プログラミング始める」でした。
ですので、Delphi/KylixのIDEの使い方も書いてる方がイイです。

>>37
当の本人が実は多少廚入っているので(^_^;;)、たぶんWindowsを
前提にした本で取っ掛かりを作った方がイイと思っています。

>>38
「はじめてのDelphi」、amazonで見てみたところ、一応好意的な
評がついてました−1人だけですが(^_^;;)

>>36
「・・・持っていて損はない・・・」
よくわかりました。


全くの初心者の、1冊目として「悪い」本ではないのがわかればOKです。
ありがとうございました。
0050デフォルトの名無しさんNGNG
どういうことですか??
別のユニットファイルに書いた方がいいってことですか?
0051デフォルトの名無しさんNGNG
以下のようにTreeView1とTreeView2の2つのTTreeViewがあったとして
TreeView2のNode2-3を下位ノードごとTreeView1のNode1-5の次
(コードで書くとTreeView1.Items.Add(nil, 'Node2-3')の箇所)に追加したいのですが
どのようにしたらよいのでしょうか?
TreeView1.Items.Assign(TreeView2.Items);だと全部変わってしまうし
一つ一つaddしてくしかないのでしょうか?

TreeView1のアイテム
Node1-1
├Node1-2
│└Node1-3
├Node1-4
Node1-5


TreeView2のアイテム
Node2-1
Node2-2
Node2-3
└Node2-4
 └Node2-5
005251NGNG
ようは実行後下のようになるようにしたいのです。
どなたか知恵をおかしください。

TreeView1のアイテム
Node1-1
├Node1-2
│└Node1-3
├Node1-4
Node1-5
Node2-3
└Node2-4
 └Node2-5
0053デフォルトの名無しさんNGNG
>一つ一つaddしてくしかないのでしょうか?
それしかない。とおもった。
move みたいな関数を一度作ってしまえばよいのではないかな?
0054デフォルトの名無しさんNGNG
ごめん。確かめていないけど、TTreeNode.MoveTo( コピー先, コピーモード)
が使えないかな?
0055デフォルトの名無しさんNGNG
連続してクリックをさせるようなものを作りたいんですが、どんな命令を使えばいいですか?
0056デフォルトの名無しさんNGNG
>>35
拡張子をかえるというのは一度保存してから拡張子を変えて改めて
HD上から読み込むということでしょうか?
でもその一度保存するのもどうすればいいかわかりません。。ブラウザで読み込んで、
そのキャッシュをTstringsで読み込むとかならできるみたいなんですけど、
できればネット上から直接ひらくみたいな感じでやりたいのです。
>>46
ありがとうございます。早速落としてみました。
難しそうですけど何とか使えるように頑張ります。
よろしければIndyを日本語で解説しているサイトなどあれば教えていただけませんか。
もし無ければ自力でがんばってみます。とりあえずありがとうございました。
005733NGNG
↑は33でした。
005851NGNG
>>53
そうですか・・・
簡単な方法がないなら踏ん切りがつきました。
あきらめてゴリゴリ関数書きます。
ありがとです。

>>54
それはすでに試したのですがダメでした。。
0059 NGNG
>>33
何度見ただろう?「indyを日本語で解説してるサイトはありませんか?」って…。
多分無いんじゃないの?

wininet使うってのは?何度かdelphiスレ(どこか忘れた(藁)で勧めたけど
食いつきが悪い…。
0060デフォルトの名無しさんNGNG
Indyは日本語ヘルプあるってばさ。
0061デフォルトの名無しさんNGNG
モナジラかどこかにもIndyのことちょっと書いてあったような
0062デフォルトの名無しさんNGNG
Indy日本語ヘルプ(d7help_indy_jp.zip)
http://www.borland.co.jp/delphi/del7docup.html
0063デフォルトの名無しさんNGNG
Delphi購入しました。
独習するなら
どのテキストがお奨めですか?
取りあえずスクリーン・セーバーを作って
最終的にはデータベースをなんて
考えているのですが。
0064デフォルトの名無しさんNGNG
Delphiパーソナルダウンロードして登録したんだけどメールこないよぅ
フリーメールではダメなんですか?
0065デフォルトの名無しさんNGNG
>>64
ダメじゃない。Hotmailでいけたよ。
0066毛の生えたフサギコNGNG
とりあえず、簡単な入門から、これまた簡単なデータベースまで
記述してあるのは、「基礎からのDelphi6」(三原幸一)<秀和システム>です。
一番入門本として入手しやすいでしょう。

しかし、説明が一部はしょった部分が目立ちます。4,5、6ともっていますが、
どれも中身はほとんど一緒です。データベース部分は本当に基礎的な解説が
書いているので知識ゼロ(データベースって何?)の人には重宝します。
0067デフォルトの名無しさんNGNG
>>63
順番が逆かも知れない
DelphiのありがたみはDBをやると良く分かる
コードを1行も書かずにデータを読み書きできるアプリを作ることも可能だよ
0068毛の生えたフサギコNGNG
>63
最終的には海外の翻訳本に手を出すことになるでしょう。
高いけど、現在入手可能な翻訳本はハズレがないような気がします。
0069デフォルトの名無しさんNGNG
サーバーの日付、時間の取得について検索して1つ例を見つけたのですが、
戻り値をどう設定すれば良いか解かりません。また、この方法でよいのでしょうか?

function GetServerTime:TDateTime;
var
 StartupInfo : TStartupInfo;
 ProcessInfo : TProcessInformation;
 timeServer : string;
begin
 GetStartupInfo(StartupInfo);
 StartupInfo.wShowWindow := SW_HIDE;
 timeServer := '\\サーバー名';

 CreateProcess('c:\WINNT\systw32\net.exe',
 PChar('c:\WINNT\system32\net.exe time ' + timeServer + ' /SET /YES'),nil,nil,
     False,0,nil,nil,StartupInfo,ProcessInfo);
 while WaitForSingleObject(ProcessInfo.hProcess, 0) = WAIT_TIMEOUT do
 begin
  Application.ProcessMessages;
 end;
end;
0070デフォルトの名無しさんNGNG
TMediaPlayerはActiveXを使わないでメディアを扱えるようですが、
これはどういう仕組みですか?
また、RealPlayerやQuickTimeのメディアもActiveXを使わずに再生できるのですか?
0071デフォルトの名無しさんNGNG
>>70
QuickTimeはWindows用SDKがあるからそれ使えばActiveX無しで再生できる。
ただC前提だからそのままDelで使えるかは知らん。
0072デフォルトの名無しさんNGNG
>66 >67 >68
ありがとうございます。
とりあえず、週末に八重洲のブックセンターに行って来ます。
0073デフォルトの名無しさんNGNG
>>70
元々 multimedia API ってのがあった。それをつかっているだけ。
しりたければ WIn32 API のマルチメディア関係を。Win3.1 - Win95 のころの話だから
図書館/古本屋で資料を漁れば日本語でも出てくるだろう。

けど動画の編集とかが Windows でできるとは誰も思っていなかった時代の API だから、
そういったことはできない。そのばあいは、より最近の API / COM インターフェースを使うことになる。

とんでもなく古いけど
ttp://homepage1.nifty.com/cosmic/delphi/tips_graphic.html#activemovie

あと、google で探せば、Delphi 用 QuickTime インターフェース実装はすぐ見つかるよ
0074デフォルトの名無しさんNGNG
>>69
その方法でやるなら、今度は 無名パイプ 名前なしパイプ CreatePipe  などで検索する必要があるでしょう。
あと /SET だと 取得すると同時に時間を同期してしまうけど、それでいいの?
0075デフォルトの名無しさんNGNG
>>69
  Indyを使って SNTP サーバから時間を貰ってくる例;

function GetSNTP(server:string):TDateTime;
begin
with TidSNTP.Create(Self) do try
Host:=server;
Port:=123;
Result:=DateTime;
finally free;end;
end;

例:
Self.Caption:=
FormatDateTime('YY/MM/DD HH:MM:SS',GetSNTP('clock.nc.fukuoka-u.ac.jp'));
0076デフォルトの名無しさんNGNG
>>69
他のPCの時刻を参照するのなら作ったことある。
NetRemoteTODで検索してみそ。
0077デフォルトの名無しさんNGNG
ShellExecute(Handle,'OPEN',PChar(C:\something),'','',SW_SHOW);
というようにパスを指定して外部アプリケーションを起動すると
いっきにメモリリソースを消費してしまいます。
だいたい3M→6Mといったように跳ね上がってしまいます。
何か他にいい外部アプリケーションを起動方法や、
メモリリソースの消費を少なくできる方法を
ご存じありませんか?
もしご存じでしたら、どうか教えて下さい。
0078デフォルトの名無しさんNGNG
実行時にPopupMenuにmenu1を追加して、さらにサブメニューにmenu2を追加したいのですが、
下のやり方で実行時に「EAccessViolationクラスの例外を生成しました」
というエラーがでます。

procedure TForm1.Button1Click(Sender: TObject);
var
NewItem1, NewItem2, Menu1 : TMenuItem;
begin
NewItem1 := TMenuItem.Create(Self);
NewItem1.Caption := 'Test';
NewItem1.Name := 'Menu1';
PopupMenu1.Items.Add(NewItem1);

NewItem2 := TmenuItem.Create(Self);
NewItem2.Caption := 'Test';
Menu1.Insert(0,NewITem2);
end;

適切なやり方を教えてもらえないでしょうか。お願いします。
0079デフォルトの名無しさんNGNG
長い式の計算だと答えが合わないことがあるんですけど?
0080デフォルトの名無しさんNGNG
>>79
ソースを貼れぃ
0081デフォルトの名無しさんNGNG
>>78
勘でレス。

> Menu1.Insert(0,NewITem2);

Menu1 って誰か設定してるのか ?
0082デフォルトの名無しさんNGNG
四捨五入の関数が無いなんて何かの冗談でしょうか
やはりこれはDelphiの限界ですか?
0083デフォルトの名無しさんNGNG
>>82は放置と言うことで了承願う。
008477NGNG
どうか忘れないでレス下さい。
かなり悩んでます。
0085デフォルトの名無しさんNGNG
思わぬハケーン!

 いま放送大学やってるけど、Delphi使ってるよ(w
0086デフォルトの名無しさんNGNG

 放送大学、火曜深夜1:15〜2:00「プログラミング入門」

 ってDelphiだね
0087デフォルトの名無しさんNGNG
一足遅かった・・・
0088デフォルトの名無しさんNGNG
>>77
多分 CreateProcess を使えばよいかと。google でひけば幾らでも使い方は見つかるだろう。
ただし、ShellExecute が提供する便利な部分、拡張子からアプリケーションの関連付けとか
はサポートされない。
Shell 関数は便利な分、余計なライブラリを使ってしまう。ってこと。
ただ、3M くらい気にしない。ってほうが良くないか?
見かけの数値にだまされないようにね。
0089デフォルトの名無しさんNGNG
>>85-87
0090デフォルトの名無しさんNGNG
すみません、質問させて下さい

Delphi6でコントロールをXPStyleにする方法は
わかってるのですが
TActionMainMenuBarのメニューの表示を
Delphi7の様なXPStyleにする方法はありますか?

フリーのコンポーネントで実現できればそれが一番なのですが・・・
0091デフォルトの名無しさんNGNG
XPStyleがD7のウリなんだしなー
OwnerDrawすれば、なんでもありだけど、フリーの日本語対応コンポなんて、あるのかなー
0092超絶初心者NGNG
すみません。超くだらない質問ですが、誰か教えてください。

Button1のイベントハンドラはTForm1のメソッドとして定義されるのですが、
なぜ、TButtonからButton1を派生したとき、TButton1のメソッドとして
定義しないのですか? たまたまIDEがそんな仕様を選んでいるのですか?
フォームのメソッドとして定義したほうが合理的なんですか?
0093デフォルトの名無しさんNGNG
>>92
Delphi式のRADではTButtonからTButton1は派生していません。
Button1はTButtonのインスタンスを示す参照です。


イベントの化わりに、TButtonからTButton1を派生してメソッドを定義する方法のRADもありえるでしょうが
その仕掛けは非常に複雑になるように思います。
0094超絶初心者NGNG
すみません、もう一つ質問です。

Delphiの場合、コンストラクタ、デストラクタのメソッドは
「Create」、「Destroy」ですが、FormやForm上に配置したコンポーネントの
生成と破棄は、あらためて記述しなくてもいいようです。これらのメソッドは
どこで自動的に呼び出されているのですか?
0095デフォルトの名無しさんNGNG
>>94
 .dfmがコンパイル時にリソースに組み込まれています。
 一方publishedプロパティも実行ファイルにその情報が入っています。

FormのCreate時、このdfmからpublishedプロパティを検索しては作成してゆくわけです。
0096超絶初心者NGNG
>95

では、プロジェクトファイルの

Application.CreateForm(TForm1, Form1);

って、内部的にはコンストラクタを呼び出しているわけではないのですね。
0097デフォルトの名無しさんNGNG
>>96
いいえ、内部的にコンストラクタを呼んでいますよ。
ただし、コンストラクタをコンストラクではなくメソッドの格好で呼んでいるので判り難いと思います。

Pro版ならソースを追いかけてみるといいでしょう。
メモリを確保してから、 Instance.Create(Self); とメソッドの格好で呼んでいます。

Instance.Create(Self) の中で InitInheritedComponent を呼ぶと、dfmにあるコンポーネントが構築される仕掛けです
0098デフォルトの名無しさんNGNG
>>74-76
レス有難う御座います。今からやってみます。
0099デフォルトの名無しさんNGNG
>>77
openの代わりにexplore
0100デフォルトの名無しさんNGNG
>>91
Delphi7は既にもっているので
それを素直に使うのがよいのですが
Delphi6のヘルプの使いやすさやIDEが若干Delphi7よりも軽快
なのが気に入っているので、この質問をしました

昔、海外のサイトで見かけたような気がしたのですが
昨晩からずっと検索してますが見つからない・・・
0101デフォルトの名無しさんNGNG
>>100
D6のヘルプが使い易いならD6のヘルプをD7にコピーすればいいじゃない。
IDEが重いのはたぶんコンポーネントを全部組み込んでるからだと思うよ。
不要なのを取り外したら?
0102デフォルトの名無しさんNGNG
>>97,98
それが「仮想コンストラクタ」です。Delphi の言語仕様上もっとも重要なもの。
0103デフォルトの名無しさんNGNG
アクティブでないアプリのコントロール(ツールボタンとか)に
マウスが載ったときにポップアップヒントを表示させるには
どうしたらよいのでしょうか?
0104デフォルトの名無しさんNGNG
>>103
定期的にタイマーでマウスを監視するとか
0105デフォルトの名無しさんNGNG
>>104
GetCursorPosなどで座標をとってってことですかね?
そうしたらTPointの座標からコンポーネントとかを求める関数とかってあるのでしょうか?
0106デフォルトの名無しさんNGNG
>アクティブでないアプリ
それは任意のアプリ?あなたが作ったアプリ?

>マウスが載ったときにポップアップヒントを表示させる
ポップアップはアクティブではないアプリ上で?
そのときの文字列はどちら/誰が保持しているの?
0107デフォルトの名無しさんNGNG
こんないいスレを落としたくない。

胸にときめくものを感じて僕はおもわず上げてみた。
0108103NGNG
>>106
>それは任意のアプリ?あなたが作ったアプリ?
自分で作ったアプリです。

>ポップアップはアクティブではないアプリ上で?
>そのときの文字列はどちら/誰が保持しているの?
はい、アクティブでないアプリ上です。
文字列はマウスカーソル下のコンポーネントがそれぞれ保持してる場合と、
Application.OnShowHintでツリービューのノードごとのTTreeNode.Dataに基づいて
それぞれヒントを出します。
0109デフォルトの名無しさんNGNG
>>108
procedure TApplication.ActivateHint
をコピペして

procedure TApplication.ActivateHintnotForregrand
ッて名前にして

and ForegroundTask
って部分を探してコメントアウトしてしまいなさい。

そしてタイマーで

procedure TForm1.Timer1Timer(Sender: TObject);
var CursorPos: TPoint;
begin GetCursorPos(CursorPos);
Application..ActivateHintnotForregrand(CursorPos);
end;

てやればどうだ?
0110103NGNG
>>109
レスどうもです。
これはFormsのTApplicationクラスの
procedure TApplication.ActivateHint メソッドを
まるまるコピーして、新しくand ForegroundTask を削除した
procedure TApplication.ActivateHintnotForregrand メソッドを
作成するってことですか?
また、それはどこに書けば良いのでしょうか?Forms内に書くの?
0111デフォルトの名無しさんNGNG
>>110
とりあえず Forms 内に書いて試して、動作がOKなら、そこから考えてみたらどう?
0112デフォルトの名無しさんNGNG
Delphiで使われている文字コードはシフトJISですよね?
EUCやUnicodeを扱う(表示する)にはどうすれば良いのでしょうか
0113103NGNG
>>111
Forms 内のTApplicationのpublicに
procedure ActivateHintnotForregrand (CursorPos: TPoint);
を追加して、実相部に
procedure TApplication.ActivateHint(CursorPos: TPoint);を
まるまるコピーして
procedure TApplication.ActivateHintnotForregrand(CursorPos: TPoint);
にしてand ForegroundTask をコメントアウトして>>109のを
実行しようとしたのですがャ'未定義の識別子'ってでてしまう・・・
Formsに書くだけじゃだめなのでしょうか?
ところで、いままでやったことなかったのですがVCLって書き換えて良いの?
今回はテストだけど、ちょっと変更したいなって時とか。
0114デフォルトの名無しさんNGNG
>>113
.DPR ファイルの uses Forms でパスを指定するか
これを消して、Forms を プロジェクトに追加してから、
再構成する必要があります。

0115デフォルトの名無しさんNGNG
>>112
Unicode は WideString と UCS2 という意味でほぼ同一。
Shift-JIS との暗黙の変換がとても便利。
UTF8 に関しては上のほうに記述があったと思うが、専用の変換関数がある。

EUC を直接作成/変換/文字操作するライブラリは用意されていない。
Windows だからね。MultiByteTOWideString で WideString/UNICODE に変換してから
作業するほうが、遠回りのようで確実。
0116デフォルトの名無しさんNGNG
>>113
>VCLって書き換えて良いの?
良いです。ライブラリを変更、流用すること、そうやって作ったバイナリを配布、商用利用することが
許されています。あなたが書き換えた部分に関しては公開してもかまわない。

逆に、あなたの修正コードが入っているからといって、VCL コード丸ごと公開は不可。
他人のソースは他人の物なのだから。ここらへんは常識の範囲で。

必要に応じてどんどん書き換えていくのが吉。
あまり変えすぎると他人のコンポーネントが動かなくなるけどね。
0117103NGNG
>>114
ありがとです、やってみます。
>>116
へー知らなかったです。
でも俺みたいな素人が書き換えると
後で大変なことになりそ…
もっと勉強してからにしよう。。
011878NGNG
>>81
レスありがとうございます。

>Menu1 って誰か設定してるのか ?
PopupMenu1のMenu1であることを明記しろ、という意味でしょうか?
http://forum.nifty.com/fdelphi/faq/00138.htm
ここをみながらやってたんですけど、Menu1だけしか書かれておらず
またサブメニューを作らなければ実際問題なかったです。
0119デフォルトの名無しさんNGNG
>>118
ほら
var
NewItem1, NewItem2, Menu1 : TMenuItem;

って自分でローカル変数として定義してるじゃないの。
 たぶん TForm1のメンバにもMenu1があってそっちを参照するつもりだったんでしょ?
012077NGNG
>>88
>>99
レスありがとうございます。
CreateProcessで解決しました。
var
 SI: TStartupInfo;
 PI: TProcessInformation;
begin
 GetStartupInfo(SI);
 CreateProcess(nil,PChar(パス), nil , nil, false,0,nil,nil,SI,PI)
end;
012178NGNG
>>119
FAQを見ながらやったのでごっちゃになってました。
設計時にMenu1を生成した場合だとTypeのところで宣言されますが、
後から生成したので、未定義ですと叱られたのでその場しのぎ的に書いたものでした。
まだDelphi始めたばかりで、変数を定義する場所がよく分からず、適当に決めてるんですけど
この場合はTypeで宣言しないといけませんか?
自分なりに調べてみてポインタとやらが関係しているとおもったのですが、
とりあえず宣言場所変えてやってみます。
0122デフォルトの名無しさんNGNG
というか
×Menu1.Insert(0,NewITem2);
○NewItem1 .Insert(0,NewITem2);
としたかったんじゃないのか?
012378NGNG
>>122
そうです。今やってみたら出来ました。
宣言場所やらポインタなんかは関係なかったですね。
変なミスに付き合わせてほんとすみません。
012433NGNG
>>59-62
よく調べずに質問してしまったためindyのヘルプがあることを知らずに
質問してしまいました。どうもすいません。
何とかネット上から直接ソースを開けるようになりました。
遅くなりましたがヘルプの場所まで張っていただいてどうもありがとうございました。
0125デフォルトの名無しさんNGNG
前スレとかで見たIndyのインスト方法が変わってるんだな。
exeファイルじゃなくなってるし。一瞬手動かとおもた。
0126デフォルトの名無しさんNGNG
変数をたくさん作ったら、実行速度が速くなるですか?
メモリをたくさん使ったほうが実行速度が早くなるんですか?
省メモリ設計だと実行速度を犠牲にしてるということですか?
0127デフォルトの名無しさんNGNG
jconvert.pasの作者のページがなくなってるんですけど
もう使えないんでしょうか?

文字コード変換の定番ソースコードってjconvert.pas以外に何かありますか?
0128デフォルトの名無しさんNGNG
文字列の比較のやり方を教えて下さい。

例えば

s1 := 'abc';
s2 := '123abc456';

if compstr(s1,s2) then begin//s2にs1の内容が含まれていれば通る
//処理
end;

のような事が出来るcompstr関数はありませんか?
0129デフォルトの名無しさんNGNG
>>128
pos じゃあかんの?
0130デフォルトの名無しさんNGNG
>>127
http://home1.infonia.ne.jp/~delphian/delphi/
Miscellaneousのとこにあるよ。
0131128NGNG
>>129
そんな関数があったんですね。
なんとかやりたかった事が出来そうです。

ありがとうございました。
0132デフォルトの名無しさんNGNG
>>129
えっと、そこのはもうすでにリンク切れなんで質問したんですけど?
0133デフォルトの名無しさんNGNG
>>130
リンク切れだったぞ

>>127
InternetArchive
http://web.archive.org/web/*/http://www.os.rim.or.jp/~ikeda/SOFTWARE/lib/jconvert.lzh
0134132NGNG
>>130
でした
0135デフォルトの名無しさんNGNG
jconvert以外にありませんか?

作者のページが消滅してしまっているんで
きちんと作者が公開しているソースがあると
安心なんですが・・・
0136デフォルトの名無しさんNGNG
お礼もなしに次の質問か

ブチ殺すぞ
0137デフォルトの名無しさんNGNG
(((((((( ;゚Д゚)))))))ガクガクブルブルガタガタブルガタガクガクガクガクガク
0138_NGNG
http://homepage.mac.com/hiroyuki43/hankaku10.html
0139デフォルトの名無しさんNGNG
             ,,----、,,,,,,,,,、、
            / ,,-‐―、ヽヽヽヽ
            〔/     ))))ヾヽヽ
            /.,,,,、、 ,ヽξ\Ξ/
           / ==/  .,==-   レi!
          〔、 ,(_,、ノ( "",,ノ:: 6)  2chを代表する美形固定のヲレサマになにか用か?(@w荒   
          λ:" ‐=‐^ン ...::::: |/   
           λ:::::. .::.. ::...::::::/ λ       
            \::::::::::::::// . λ、
               ̄| ̄      /~~ ̄⌒\
0140デフォルトの名無しさんNGNG
〆るぞコラ
0141デフォルトの名無しさんNGNG
〆鯖まいうー
0142デフォルトの名無しさんNGNG
あっ、あの、しっ、しつもん、して、いいですか?(ガクガクブルブル
0143デフォルトの名無しさんNGNG
お前はもう質問している
0144デフォルトの名無しさんNGNG
hello.txtというテキストファイルに、
このテキストファイルを画面上開かずに
orldと書き込んで保存する
0145デフォルトの名無しさんNGNG
方法を教えてください
0146デフォルトの名無しさんNGNG
いくらくれる?
0147デフォルトの名無しさんNGNG
100モナーでおねがいします
0148デフォルトの名無しさんNGNG
ブチ殺すぞ!ゴルァ!
0149デフォルトの名無しさんNGNG
猿でもわかるDelphi6インストール〜OpenJaneコンパイル
http://www.geocities.co.jp/Milano-Killer/8366/CompOJ.html
jconvert
http://www.geocities.co.jp/Milano-Killer/8366/jconvert.lzh
0150デフォルトの名無しさんNGNG
if 100モナー = \0 then >>144.ブチ殺す;
0151デフォルトの名無しさんNGNG
>>144
TStringListとか
0152デフォルトの名無しさんNGNG
D7でXPManifestコンポーネントを使用した時のように
D6でもStatusBarをXPスタイルに適応させたいのですが、どうしたらいいでしょうか?
manifestファイルを置いてもStatusBarだけ対応してくれません
0153デフォルトの名無しさんNGNG
すいません。
DELPHIでVCLのソースコードを
ステップ実行することはできるのでしょうか?
0154デフォルトの名無しさんNGNG
外部エディタ使えないの?
0155デフォルトの名無しさんNGNG
>>152
XPスタイルに対応したコンポーネントを使うしかない
0156デフォルトの名無しさんNGNG
>>155
返答ありがとうございます
0157デフォルトの名無しさんNGNG
>>151
テンキューベリーマッチョ
0158デフォルトの名無しさんNGNG
>>144

procedure TForm1.FormCreate(Sender: TObject);
var
 F: TextFile;
begin
 AssignFile(F, 'c:\hello.txt');
 Rewrite(F);
 Writeln(F, 'world');
 CloseFile(F);
end;
0159デフォルトの名無しさんNGNG
ソースでDLLの宣言してるんだがUnitで使う時はまたUnitごとに書かないといけないのかの?
0160デフォルトの名無しさんNGNG
>>159
書きたくなければ external 宣言した ユニットのinterface節で公開すればいい
0161デフォルトの名無しさんNGNG
>>135
定番ではないし、最近全くメンテしていないけどこんなんでよければドゾー
http://www.mars.dti.ne.jp/~b-guild/mailnews.html
0162デフォルトの名無しさんNGNG
メモリ使用量5000Kを切れる兵はいないの?
0163デフォルトの名無しさんNGNG
D6パーソナル
経験2ヶ月弱です。

--------{unit1.pas}
procedure TForm1.Button1Click(Sender: TObject);
begin
TForm2.Create(self);
end;
--------{unit2.pas}
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ShowMessage('Form2を閉じます') ;
Action:=caFree;
end;
---------
Form2を表示させた状態でForm1(プログラム)
を終了させた場合に、Form2が表示されていることを
チェックして、表示していた場合 Form2の OnClose イベントを
実行させるためにはどうすればいいのでしょうか?
またForm2を表示させたままForm1(プログラム)を終了させた場合ちゃんとFREE
しているのでしょうか?
0164デフォルトの名無しさんNGNG
>>163
TForm2を変数に入れた良いと思うが一応これで。
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  I: Integer;
begin
  I:=0;
  while I<ComponentCount do
  begin
    if Components[I] is TForm2 then
    begin
      if TForm(Components[I]).Visible then
        TForm(Components[I]).Close;
    end;
    Inc(I);
  end;
end;

> またForm2を表示させたままForm1(プログラム)を終了させた場合ちゃんとFREEしているのでしょうか?
Freeされます。
0165163NGNG
ありがとうございました。
0166デフォルトの名無しさんNGNG
>>133
>>149
>>161
親切な御仁、ありがとうございました
0167デフォルトの名無しさんNGNG
2ch なんだからお礼はいらんよ。お礼でスレッドが埋まるのはデメリット
きちがいの妄言は無視無視。
0168デフォルトの名無しさんNGNG
>>167
すばらしいお言葉ありがとうございました。
0169デフォルトの名無しさんNGNG
>>167
貴方のレスのおかげでスレが3レス分無駄になりました。
0170デフォルトの名無しさんNGNG
>>169
貴方がレスしなければ2レス分ですんだのにね。
0171デフォルトの名無しさんNGNG
>>160
ありが�d
0172デフォルトの名無しさんNGNG
>>167
ご指摘ありがとうございますた。
0173デフォルトの名無しさんNGNG
>>152
http://www.delphi-gems.com/
0174デフォルトの名無しさんNGNG
TEditで、数値を入力すれば自動的に
「\1,000」と表示されるようにするにはどうすれば良いですか?

今は別に変数(value)を用意して
OnKeyDownで

value := 数字抽出関数(TEdit(sender).text);
TEdit(sender).text := formatfloat('\#,##0',Value);

とやっているのですがカーソルが左に移動してしまい、1,2,3と入力したら
「321」と表示されてしまいます。

宜しくお願いします。
0175デフォルトの名無しさんNGNG
突然失礼します。質問なんですがネットゲームでみんなが「マクロ」って言ってるんですが、それはなんですかー?
0176デフォルトの名無しさんNGNG
みてね♪
http://s-rf9.free-city.net/page003.html
0177デフォルトの名無しさんNGNG
>>174
TEditを上位クラスに設定して、カスタムコンポーネントを作ればいい
そんなに難しくはないよ
0178174NGNG
>>177
レス、ありがとうございます。
それしかないですか?(^^;
0179デフォルトの名無しさんNGNG
>>178
そういわずにやってみ
思ったより簡単だぞ
0180デフォルトの名無しさんNGNG
>> 174
TMaskEdit を使ってみるのはどうかな?と。
0181デフォルトの名無しさんNGNG
呼び出したDLLの中で呼び出し元のアプリをクローズはできるんですが、
クローズ後のDLL内の処理で、呼び出し元のファイルを書き換えようとしても出来ません。
DLL内での処理が終わり、アプリに戻った時点でクローズされてるって事ですか?
だからファイルを掴んだままなのでしょうか?
0182174NGNG
>>179
コンポーネントはいくつか作った事があるのですが、
何かと面倒なんです。
(プロジェクトメンバー全員にインストールしてもらう必要があるとか)

>>180
TMaskEditの使い方を調べてみたのですが、
どうやれば>>174が出来るのか分かりませんでした。
0183デフォルトの名無しさんNGNG
あぁ >>174 では、「数値を入力」でおそらく「数値で出力」を想定しているのか。
数値と文字列の相互変換は省略。

TMaskEdit の EditMask プロパティを '\\9,999;0; ' に。
これで text プロパティに文字列 '1234' を書き込むと \1,234 と表示される。
編集後の値は同じく text プロパティを読めば、\ と , が取り除かれた文字列として
手に入る。
\ や , が入った、表示されているものと同じ文字列は EditText プロパティで。

0184デフォルトの名無しさんNGNG
>>181
Windows のバージョンで動作が変わるので気をつけて。

>呼び出したDLLの中で呼び出し元のアプリをクローズはできるんですが、
どうやって「クローズ」してるのかな?

アプリケーションとそれが自動的に読み込む DLL の羅列は WIndows のローダーが管理していますから
勝手に開放(クローズ)できません。排他読み込みをおこなっているはずなので
削除は不可能。
0185デフォルトの名無しさんNGNG
>>184
レスありがとうございます。諦めます。
0186デフォルトの名無しさんNGNG
開いているファイルハンドルを強制開放する API があったような気がするが。
シャットダウンとかの時に使うものだからあまりお勧めはしない。
MSDN を漁ってみること。
0187174NGNG
>>183
丁寧な説明ありがとうございます。

試してみたのですが、この方法だと入力する前に

\_,___

と表示されてしまいます。
これを消す事は出来ますか?
0188デフォルトの名無しさんNGNG
今日delphi7を買ってきました。
2ch回覧ツールとかを1から作れるようになるような
それぐらいの実力がつくお勧めのインターネット教えてください。
プログラムはやったこと無いですがやる気はあります。
0189デフォルトの名無しさんNGNG
まずはOpenJaneのソースでも解析する事だな。
0190デフォルトの名無しさんNGNG
ネタか知らんけどインターネットの使い方間違ってるよ
とりあえず>>4の初心者向けのサイトでもまわっておいで
0191デフォルトの名無しさんNGNG
>>188
いきなりJane読むのはしんどいかもしれないから
簡単なカレンダーとかメモ帳とかメールチェッカーを
練習として作ってから挑戦したら?
0192デフォルトの名無しさんNGNG
嫌です
0193デフォルトの名無しさんNGNG
188≠192
0194デフォルトの名無しさんNGNG
ありがとうございます。
さっそく190さんのところで時計が作れました。
OPENJaneっていうソースを見てみたのですが、
ファイルがいっぱいあってこれがコンポーネントという物だと思いますが。
0195デフォルトの名無しさんNGNG
もっと良いインターネットを教えてください。
0196デフォルトの名無しさんNGNG
これから
インターネット≒ホームページ
となりました。
0197デフォルトの名無しさんNGNG
ここは酷いインターネットですね
0198デフォルトの名無しさんNGNG
ホームページ⊂インターネット
0199デフォルトの名無しさんNGNG
♀ホームページ⊂♂インターネット
0200デフォルトの名無しさんNGNG
インターネットやってます
0201遅レスNGNG
(´-`)。o ○ (「面倒なこと」がイヤなら、プログラミングなんてや(略))
0202デフォルトの名無しさんNGNG
楽をする事を考えないプログラマーは糞です
手を抜くことを考えるプログラマはそれ以上に糞。
0203デフォルトの名無しさんNGNG
インターネットを配布したいのでうpろだ教えてください
0204デフォルトの名無しさんNGNG
オブジェクトインスペクタで設定するのと、
自分でユニットファイルに書き込むのとではどちらがいいのでしょうか?
0205sevenNGNG
>>204
どちらかが良い場合もそれぞれあるので、どちらでも可能になってるのでしょう。
D6からは、TFORMがテキストなので、テキスト保存の問題も、ほぼなくなりました。
まぁ、オブジェクトインスペクタ無しにDelphiは語れないかもです。
0206デフォルトの名無しさんNGNG
>>202
「楽をする事」の定義をちゃんとしないと揉める元だぞ。
0207デフォルトの名無しさんNGNG
>>204
自分だけで作る場合は、オブジェクトインスペクタで楽していいと思います。
共同開発の場合は、仕様書にオブジェクトインスペクタの値を書いておくことになるでしょう。

ユニットに直に書くのは、明示的にプロパティを書いておきたい、などの理由がない限りしなくていいと思います。
0208デフォルトの名無しさんNGNG
try〜except間でテキストデータを大量に外部から読み込んで、StrToIntなどで
型を変換してから変数に格納しています。このとき、もし誤った値(型変換できない)が入ってきたら
判別できるようにしたいのですが、try節でミスが発生したというのはわかっても
どこで発生したか?というのがわかりません・・・。上手い方法はありませんか?
0209デフォルトの名無しさんNGNG
exceptでエラー文字列を取れるんじゃあないかい?

それらが同じ種類のエラー文字列なら、今何処理中、みたいなのをStringに保持しとけ。
0210デフォルトの名無しさんNGNG
>>209
tryって例外があったら中断されるんですよね?
それなら、頭から順に今何を読んでいるのかを保持するようにしてみます。サンクス!
0211デフォルトの名無しさんNGNG
そうだね。StrToIntを直接使わずに

function MyStrToText(const FldName:string ; str:string):Integer;
begin
try
Result:=StrToInt(str);
except
 on E:Exception; で FldNameと組み合わせたメッセージを追加して例外をもう一度投げる
end;
end;

ってやればいいと思うよ
0212デフォルトの名無しさんNGNG
おぉデキタ! (゚∀゚) アリガトー!
0213デフォルトの名無しさんNGNG
>>208
try節をネストすれば良いだけの事

SL := TStringList.Create;
try
try
SL.LoadFromFile('D:\DATAFILE.DAT');

for I:=0 to SL.Count -1 do
begin
try
ConvertValue( StrToInt(SL[I]) );
except
PutError('変換エラー:'+IntToStr(I)+'行');
end;
end;
except;
PutError('致命的エラー発生');
end;

finally
SL.Free;
end;
0214やりなおしNGNG
SL := TStringList.Create;
try
try
SL.LoadFromFile('D:\DATAFILE.DAT');

for I:=0 to SL.Count -1 do
begin
try
SetValue( StrToInt(SL[I]) );
except
PutError(IntToStr(I)+'行は変換できませんでした');
end;
end;
except;
PutError('致命的エラー発生');
end;

finally
SL.Free;
end;
0215デフォルトの名無しさんNGNG
>>214
なるほど、そういう手も・・・(つД`)アリガト
0216デフォルトの名無しさんNGNG
アプリを起動してからFormのAlphaBlendを
変更すると画面がちらついてしまうのですが
これをちらつかせない方法などありましたら教えてください。
0217デフォルトの名無しさんNGNG
アルファブレンドがかかってると、両方が描画するわけで、
それをアプリ側で制御するのは無理
0218デフォルトの名無しさんNGNG
どういう事情で何処が悪いのか解からないけど、たまにファイルが壊れているのは何故?
極簡単な動作実験用とか作った時でもなる時あって、
バグ取り中に何度もコンパイルとかしてると急に今まで通り動かなくなり、
コードをコピペして全く同じ内容で新たに作るとまともに動作する。
さっき出た症状ではApplication.Handleを参照しても常に0ってのになった。

Delphiから実行時にアプリ終了してもCPU画面が出てもう一度実行ボタンを
押さないと終了しないのもどこかおかしいんだろうか?
0219デフォルトの名無しさんNGNG
>>218
OS から入れ直せ。
0220デフォルトの名無しさんNGNG
>>218
Win98?
OS と Delphi のバージョン名くらいは教えてください。
0221デフォルトの名無しさんNGNG
>>216
使っているマシンの CPU の種類とクロック速度、
使っているビデオカードの名前。

ビデオカードの種類とドライバのバージョンによっては、ソフトウェア描画に
なるから、とっても遅くなるぞ。
0222デフォルトの名無しさんNGNG
>>220
w2k sp3
D5のupdate済み

いま、既にあるアプリでApplication.Handle取得のテストしてみたら、0だった・・・
0223デフォルトの名無しさんNGNG
メモリーアドレスを参照するにはどうしたらいいです?
0224デフォルトの名無しさんNGNG
ちなみにCPU画面はファイルの保存場所を変えて実行すると出なかったりする。
なんでだろ〜なんでだろ〜♪
0225デフォルトの名無しさんNGNG
>>219
del居れ直しならまだしもOSからはつらいな。
今のような快適設定にレジストリ変更する自身が無い。
0226216NGNG
>>217
レスありがとです。そうですか…。残念。
実はAlphaBlendとループと使ってフォームを
徐々に表示or隠すということをしたかったのですが、
徐々に表示なら
AnimateWindow (Form.Handle, 2000, AW_BLEND);
で出来ますが、徐々に隠す方法はどうやったら出来るのでしょうか?
http://www.kumei.ne.jp/c_lang/sdk4/sdk_348.htm
ここで見る限りAnimateWindowでは出来そうもないです。。
0227デフォルトの名無しさんNGNG
AnimateWindow(Handle, 2000, AW_BLEND or AW_HIDE);
Hide;
でできないか?
0228227NGNG
ごめん。いっしょに使うなって書いてるな。
0229デフォルトの名無しさんNGNG
猫には書いてるけど、MSDNには書いてないような…
0230デフォルトの名無しさんNGNG
>>224
Delphi5 だから。という話かなぁ。
CPU ウィンドウが開かなくなる。ってのは聞いたこと無いし
0231デフォルトの名無しさんNGNG
>>223

 (PByte($12345678)) := $12;
 (Pword($12345678)) := $1234;

てな感じでどうかな?他にもいろいろやり方あり。


0232218NGNG
Application.Handle0になる発生条件がちょっとだけわかった。
オプションで「実行時パッケージを使って構築」
をチェックすると0になるアプリがあるみたいだ。

ただ、テスト用に簡単に作った奴はその限りではない・・・つらい・・・。・゚・(ノД`)・゚・。
0233デフォルトの名無しさんNGNG
>>230
開かなくなるのではなくて開いてしまうんだよ
0234デフォルトの名無しさんNGNG
>>232
うーん。みてみたいよ。あんたの環境。
・*.bpl が変なディレクトリに落ちている
・日本語を含むパス名を常用している。
どちらか、心当たりないかな?
0235デフォルトの名無しさんNGNG
ちょっと「くだすれ」っぽくなくなってきてしまったが、どうしましょ。
0236デフォルトの名無しさんNGNG
>>226
猫が間違ってるっぽい。
「AW_HIDEとは併用できません。」は、AW_ACTIVATEの説明に入るはず。
0237デフォルトの名無しさんNGNG
>Delphiから実行時にアプリ終了してもCPU画面が出てもう一度実行ボタンを
>押さないと終了しない

これかぁ。勝手に出る CPU 画面、どこで止まっています?
画像写真、どこかうpろだに置けませんかね?
0238デフォルトの名無しさんNGNG
>>226, 236
実際にやってみるよろし。
0239236NGNG
>>238
いや、やってみてちゃんとフェードアウトしたけど、
駄目って書かれてるから、ちょっと気になったもんで。
0240デフォルトの名無しさんNGNG
>>234
どちらも普通みたいです。こうなったら仕方ないので
別のHDDに非常用OS入ってるので、まっさらなdelphi入れて試します。
また報告します。
0241デフォルトの名無しさんNGNG
猫より MSDN
MSDN より実際の動き
0242デフォルトの名無しさんNGNG
そういえばインストールの時にSQLとかINTERBASEとかはなんなんでしょう?
0243デフォルトの名無しさんNGNG
>240
うむ。もったいない。
バグが出ている環境は貴重なんで、できれば原因をつかみたかったが。
再インストールで問題が出なくなることを祈ります
0244デフォルトの名無しさんNGNG
>>242
データベースって言葉知ってる?
0245デフォルトの名無しさんNGNG
実際の動きよりMSDN
0246デフォルトの名無しさんNGNG
>>245
それに何年裏切られつづけてきたか....
0247デフォルトの名無しさんNGNG
へー
0248デフォルトの名無しさんNGNG
>>244
言葉自体は知っていますがプログラムでどのような働きをするのかは知りません。さっさと教えなさい。
0249デフォルトの名無しさんNGNG
>>218
 とりあえず、
今あるDelphiのフォルダをリネームしておいてDelphiを再インストールして比べてみろ

それから
--------- ここから -------
del *.tds
del *.~*
del *.dsk
del *.dof
del *.dsm
del *.dcu
----------- ここまで -------
をバッチファイルにして、あちこちのプロジェクトの不要ファイルを消して回れ
0250デフォルトの名無しさんNGNG
>>237
晒しました。
http://www7.big.or.jp/~mb2/bbs/up/kao/source/up3264.jpg

>>243
再インストではないですよ。予備のOSに入れるのです。
0251デフォルトの名無しさんNGNG
う。
その画面の状態で、F7 押して。
ret の次に DebugBreak を呼び出しているモジュールの位置がわかる。
そこが鍵だ!
0252216NGNG
>>227
>>236
>>238
ほんとだ…
AnimateWindow(Handle, 2000, AW_HIDE or AW_BLEND);
hide;
上のコードでちゃんとフェードアウトする。。
何事も実際やってみないとだめっすねえ、、
ありがとうございました。
0253デフォルトの名無しさんNGNG
いちおう書いておきます。
DbgBreakPint で止まっています。これはブレークポイントのようなものにぶつかったことを
意味します。
IDE のデバッガの誤動作。ということも否定しませんが、良くあるのはビデオドライバにデバッグ用として
残してあったブレークポイントに引っかかった。というやつ。
>>250 さんの場合、止まったり止まらなかったりする。ということなのでビデオドライバでは
なさそうですが。

249 さんの方法も意味あるかも。
0254デフォルトの名無しさんNGNG
某社サポートが常駐する板はここですか?
0255デフォルトの名無しさんNGNG
NT OS 側のメモリマネージャーの中でアサートが出て、それを IDE のデバッガが拾っているようだね。
0256デフォルトの名無しさんNGNG
>>249,253
不要ファイルを消すのってなにか意味があるのですか?
0257デフォルトの名無しさんNGNG
さらに晒しました
http://www7.big.or.jp/~mb2/bbs/up/kao/source/up3266.jpg
0258デフォルトの名無しさんNGNG
>>256
おまじないみたいなもの。
0259デフォルトの名無しさんNGNG
>>257
ありがとう。しかし掲示板ではちょっと無理か。隔靴掻痒。
どこかメモリを壊していて、それがアプリケーション終了時、OS のメモリ開放中に
検出されているのではないかと考えます。
ターゲットアプリケーションの終了処理部分を1ステップずつ追っていけば問題点に
到達できますが、それはかなり面倒(かつ経験が必要)です。

もし、再インストール相当をおこなえるのならそちらの方法で回避してください。

力になれず、ごめんなさい。
0260デフォルトの名無しさんNGNG
>>247
デバッグしてるうちにこれら中間ファイルが壊れたりしてしまうと
色々と不都合が出来てしまいます。 
ですんで、終了時におかしくなったり、コンパイルで変な事が起きたりするようになったら
まず、あのあたりのファイルを全部消すと直る率が高いです。

特に複数のバージョンで開いたりコンパイルしたい場合には、その前にやっておく習慣付けた方がいいです。
0261デフォルトの名無しさんNGNG
>>259
どうもです〜

>>260
なるほど、だからバッチファイルで都度消せってことだったのね
0262デフォルトの名無しさんNGNG
>>261
気悪くしないでね。正当なシリアル使ってる?
0263デフォルトの名無しさんNGNG
ttp://www.valley.ne.jp/htbin/treebbs.cgi/hirosoft/hirobbs/?immediate2=1&no=134
これっぽいんだよね。
けど、他に似たようなレポート聞いたこと無いし。
0264デフォルトの名無しさんNGNG
>>262
使ってます。一時期サポートかなんかもあったような。期限切れましたが。
0265デフォルトの名無しさんNGNG
TIniFileとTMemIniFileはどういう使い分けをすればいいんですか?
0266デフォルトの名無しさんNGNG
常にTMemIniFileで。
0267デフォルトの名無しさんNGNG
質問です。TEditやTComboboxに入力された値が空だったらエラーを出したいのですが、

function TForm1.CheckEditValue(AWinControl: TWinControl): boolean;
begin
 if AWinControl.Text = '' then
 begin
  ShowMessage('空欄にはできません。');
  AWinControl.SetFocus;
  Result := False;
 end
 else
  Result := True;
end;

という関数を作って、

if not CheckEditValue(Edit1) then Exit;
if not CheckEditValue(ComboBox1) then Exit;

のように使いたいのですが、上の関数で、「AWinControl.Text」のところで止まってしまいます。
どうやらスコープがprotectedなのが原因みたいです。

TextとSetFocusを1つのクラスから使えて便利だと思ってたのですが、無理なのでしょうか?
0268デフォルトの名無しさんNGNG
RadioButtonのCaptionの部分の背景は透明なのに、
CheckBoxの方は透明ではなく、しかも透明にすることが出来ないのは仕様ですか?
0269デフォルトの名無しさんNGNG
>>266
Why?
0270デフォルトの名無しさんNGNG
TWinControlにTextはないから無理。
TypInfo.pasのGetTypeDataとかGetPropInfosとかSet*Propとか使えば
文字列からプロパティにアクセスできるんだけどそれでいいのかどうか。
0271デフォルトの名無しさんNGNG
>>269
TIniFileは
・遅い
・64KB(たしか)制限有り
で良いことない。
0272デフォルトの名無しさんNGNG
>>269
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=5#0287.txt
ここ見たらいいこと書いてなかったから
0273デフォルトの名無しさんNGNG
CheckBoxのCaption部分だけ透明にできないので、XPスタイルにするとそこだけ色が違うということになる。
全く迷惑な話だ(`Д´)ノ
0274デフォルトの名無しさんNGNG
裏に絵でも貼ってるの?
0275デフォルトの名無しさんNGNG
Thank you and good-bye, see you next time!
0276デフォルトの名無しさんNGNG
>>267 です。
TControlからGetTextBufメソッドが利用できたので、それを使用して解決しました。
0277デフォルトの名無しさんNGNG
>>274
XPスタイルにしたらTabControlが白っぽくなるでしょ?
あの時も灰色のまなののよ。
最初からあの色にしておくとクラシックスタイルにしたときにそこだけ白っぽくなってるのも嫌だし。
CheckBoxはTabControlの上で使われることって少なくないと思うんだけど。
いかがなもんでしょうかと。>某
0278デフォルトの名無しさんNGNG
いかがなものかと言ってますよ>某

  143 名前:host143186050154.borland.com 投稿日:03/05/30 14:43
  試して見よう。
0279デフォルトの名無しさんNGNG
CheckBox作った人は気の利かない人で、
RadioButtonを作った人は気の利く人ってことでFA?
0280デフォルトの名無しさんNGNG
Del7だけど普通に透明だな。
というか色の変更が出来ないな。
0281デフォルトの名無しさんNGNG
Borlandから2ちゃんねるやるなよ
0282デフォルトの名無しさんNGNG
日本ボーランドの回線もcomドメインなのか
0283デフォルトの名無しさんNGNG
DELPHI、NETはDELPHIの純粋な後継なのでしょうか??
それとも、今のDELPHIとは別モノですか?
0284デフォルトの名無しさんNGNG
>>283
純粋な後継です。
0285デフォルトの名無しさんNGNG
Del7を買ったらBorlandの策略にハマったみたいで嫌なんです
0286デフォルトの名無しさんNGNG
じゃあ、DELPHI8,9,10は無いということですね。
DELPHI.NDT 2,3,4となっていくわけですね。
0287デフォルトの名無しさんNGNG
> whois 143.186.50.154

OrgName: Borland International
OrgID: BORLAN
Address: 1800 Greem Hills Rd
City: Scotts Valley
StateProv: CA
PostalCode: 95066
Country: US

NetRange: 143.186.0.0 - 143.186.255.255
CIDR: 143.186.0.0/16
NetName: BORLAND
NetHandle: NET-143-186-0-0-1
Parent: NET-143-0-0-0-0
NetType: Direct Assignment
NameServer: NS.BORLAND.COM
NameServer: NS1.BORLAND.COM
Comment:
RegDate: 1990-10-01
Updated: 2001-03-13

TechHandle: ZB64-ARIN
TechName: Borland Software Corporation
TechPhone: +1-831-431-1000
TechEmail: [email protected]

# ARIN WHOIS database, last updated 2003-05-30 21:05
# Enter ? for additional hints on searching ARIN's WHOIS database.
>
0288デフォルトの名無しさんNGNG
ファイルの拡張子を取得するいい方法ってありませんか。
「 . 」の位置で割り出すと色々不都合が有りそうだし…
0289デフォルトの名無しさんNGNG
>>288 ExtractFileExt
0290デフォルトの名無しさんNGNG
>>289
即レスありがとう!
逝けそうです。
0291デフォルトの名無しさんNGNG
ある文字列変数の中身がファイルなのかフォルダなのかを判別する方法はありまするか?
0292デフォルトの名無しさんNGNG
GetFileAttr
0293デフォルトの名無しさんNGNG
FileGetAttr
0294デフォルトの名無しさんNGNG
AttrGetFile
0295デフォルトの名無しさんNGNG
ttp://www.wwlnk.com/boheme/delphi/vbtodel/daf0640.html
こういう感じでいいのかな?

むずかしそうだ・・・・

ともかくありが�d
0296デフォルトの名無しさんNGNG
FileExists、DirectoryExists等もあります。
0297デフォルトの名無しさんNGNG
Get Along Together
0298デフォルトの名無しさんNGNG
DelphiでDLLを使うにはどうすればいいのですか?
0299デフォルトの名無しさんNGNG
タダじゃ教えられないぬるぽ
0300デフォルトの名無しさんNGNG
では100円払いますので振込先を教えてください。
0301デフォルトの名無しさんNGNG
税込みで105円です。
0302デフォルトの名無しさんNGNG
>>298
ヘルプで

external 宣言
動的にロード可能なライブラリの呼び出し
動的ロード

などを読んでゆくとよいです
0303デフォルトの名無しさんNGNG
>>298
Windows.pas は Personal にもついていなかったけ?
あれは丸ごと Windows の DLL を使うための定義ファイルだぞ。
0304Dale L. FullerNGNG
>>287
げっ!!
>Address: 1800 Greem Hills Rd

古いままじゃん。
0305デフォルトの名無しさんNGNG
ある文字が何番目にあるか調べるプログラム組みたいんですが、どうしたらよい
ですか?僕にはサッパリです。
0306デフォルトの名無しさんNGNG
>>305
まずデータ構造を教えて下さい
0307デフォルトの名無しさんNGNG
データ構造?
var
Moji: ShortString;
begin
Moji := ABC,DEF
↑の","が何番目にあるのか数値で返したいのです。

0308デフォルトの名無しさんNGNG
>>307
VCLリファレンス > ルーチン一覧(カテゴリ別) > 文字列処理ルーチン
0309デフォルトの名無しさんNGNG
pos ansipos でヘルプを見て下さい。 それから、わざわざShortStringを何故使うのでしょ?
0310デフォルトの名無しさんNGNG
文字列処理ルーチンのなんてやつですか?
0311デフォルトの名無しさんNGNG
ShortStringじゃなくてもOKです。
0312デフォルトの名無しさんNGNG
ansiposですか?
0313デフォルトの名無しさんNGNG
まず、ヘルプを読め。
けして評判が良いヘルプではないが、あなたの知識が分からない以上、
最低限度の共通の語彙を仮定しないと説明するのも日が暮れる。
0314デフォルトの名無しさんNGNG
判らないならこうやっとけ

var
var
 Moji: ShortString;
 i,n:Integer;
begin
Moji := 'ABC,DEF ';
n:=0;
for i:=1 to Length(Moji) do if Moji[i]=',' then begin n:=i;break;end;

if n>0 then ShowMessage('カンマが'+IntToStr(n)+'番目にありました');
0315デフォルトの名無しさんNGNG
Moji[i]・・・こんなこと出きるんですか。
勉強になりました。有難うございます。
0316デフォルトの名無しさんNGNG
これでは遅すぎると怒られますよ。
0317デフォルトの名無しさんNGNG
var
  Moji:String;
  FoundPos:Integer;
begin
  Moji := 'ABC,DEF ';
  FoundPos := Pos(',',Moji);
  if FoundPos >0 then ShowMessage(Format('カンマが%d番目にありました',[FoundPos])
             else ShowMessage('カンマが何処にもない');
end;
0318デフォルトの名無しさんNGNG
>>316
ん?処理時間のオーダーも大差ないと思うけど?
0319デフォルトの名無しさんNGNG
MDIアプリを作るとMainMenuの右上に子ウィンドウの__□×ボタンが出ますよね。
TMainMenuでなくTActionMainMenuBarを使う場合にこの動作をさせるにはどうすればいいんでしょう?
0320デフォルトの名無しさんNGNG
DELPHI6のパーソナル版、タダなんで試してみたいけど、うちXPなんだよな。
インストールまではできるようだけど、はたしてどこまで動くのか。
これだけのためにMeとのデュアルブートってのもあほらしいし。
誰かXPで試したツワモノいる?
0321デフォルトの名無しさんNGNG
ドコガツワモノダヨ
0322無駄大杉NGNG
var
Moji,Moji2,kotae,kotae2:string;
l,i,c:integer;
begin
Moji :='ABC,DEF';
l:=length(Moji);
i:=0;
Moji2:='';

while true do
begin
Moji2:=copy(Moji,i,1);
if Moji2=',' then break;
inc(i);
if i>l then break;
end;

c:=i;
kotae:=inttostr(c);
kotae2:='も…も… もしかしたら… '+kotae+'番目に… あ、あ、あ、あるかかなななぁ…?';
ShowMessage(kotae2);
0323無駄大杉 NGNG
end;
0324デフォルトの名無しさんNGNG
>>320
とりあえず、インストールして、アップデートして、ML検索で「大野」氏のメールを検索。
0325デフォルトの名無しさんNGNG
当方、XPでDEL6PER使ってるツワモノにございます
0326デフォルトの名無しさんNGNG
if ParamStr(1) = '/w' then

コマンドラインの取得ってこんな感じでいいんですか?
0327326NGNG
解決しました
0328デフォルトの名無しさんNGNG
>>324
大野タンのメールって... テキストサービスの話かな?
VS.NET でも同じ問題を持っていたのだけど、VS.2003 では直ったのかな?
0329デフォルトの名無しさんNGNG
Delphiのニュースグループって人が居ないばかりか評判落ちそうな投稿は消されるよな。
つかえねぇ
0330デフォルトの名無しさんNGNG
>>329
あんたのニュースリーダーの設定が、古い物は削除。になっているからだよ。
開設時からのすべての記録が残っているぞ
0331デフォルトの名無しさんNGNG
ODBC接続ばかり使ってましたが、dbExpressの方が新しいようですね。
で、dbExpressを使うための条件はODBCと比較して何になるのでしょう?
例えば、ODBC接続(つまりBDE)の場合は、RDBがWin/Linux用にODBCドライバを用意していることになりますよね。
dbExpressの場合は、某島がRDB用のdbExpressドライバ(?)を用意している場合のみになるのでしょうか?
0332動画直リンNGNG
http://homepage.mac.com/hitomi18/
0333デフォルトの名無しさんNGNG
>>328
たぶんそう。
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=069593
0334331NGNG
「高性能なネイティブSQL RDBMSアクセス」で、
RDB名指定だったのでやっぱ、某島が直接対応してるわけですね。

Interbase用が無いのは、IBQueryで十分ということでしょうか?
0335デフォルトの名無しさんNGNG
QuickrReportで縦書きテキストを印刷する方法ってないですか?
0336デフォルトの名無しさんNGNG
>>333
しまったしまった。これはテキストマネージャとは関係ない話だ。
吐駄チャンとかが、理解せずにコメントつけてるから...

これは ActiveIME とデバッグサービスの相性問題だ。
プロセス終了中に COM 初期化が起きる。
0337デフォルトの名無しさんNGNG
>>331
それはどの種類のデータベースを使うかによるのでは?ナニ使ってんの?
0338デフォルトの名無しさんNGNG
>>335 無い。こんな関数を使ってごまかして表示させた。

//疑似縦書き表示文字列に変換する(固定幅フォントを使用しないとずれる)
function VertWrite(Source: String; LineLength: Integer): String;
var
  WStr:WideString; SWord:String;
  I,J,Ptr,Len:Integer;
  SL:TStringList;
begin
  WStr :=Source;
  SL := TStringList.Create;
  try
    for I:=0 to LineLength-1 do SL.Add('');
    Len := Length(WStr);
    for J:=0 to (Len div LineLength) do
      for I:=0 to LineLength-1 do
      begin
        Ptr := (J*LineLength+(I+1));
        if Ptr <= Len then
        begin
          SWord := WStr[Ptr];
          if CharLength(SWord,1)=1 then SWord := ' '+SWord;
          SL[I] := SWord + SL[I];
        end
        else SL[I] := ' ' + SL[I];
      end;
    Result := SL.Text;
  finally
    SL.Free;
  end;
end;
0339デフォルトの名無しさんNGNG
>>337
Firebird。
IBQueryが良いのか、dbExpressが良いのか。

MySQLをODBCで試したけど、イマイチ。
でも、dbExpressがあることが今日分かった。
MySQLに2万件BLOB入れて、Database Explorerでデータを見るとフリーズ。
dbExpress Explorerってのはあるのかな?
自分のBCB6には付いてない。
0340デフォルトの名無しさんNGNG

Firebird を dbExpressでについて解説してるのは
『ポケットテックノート Firebird RDBMS傾向と対策〈1〉概要と導入編』

DB2と dbExpress
http://www-6.ibm.com/jp/software/data/developer/library/techdoc/dbexpress.html

BDE->dbExpress
http://www.borland.co.jp/delphi/papers/bde_to_dbexpress.pdf
0341デフォルトの名無しさんNGNG
thanx!>>340
dbExplorerが一番よさげなのが分かりました。

ちょっと、一貫性無くてやだなー、ってのが、Database ExplorerがODBCのみで。
これじゃ、MySQLにデータ書けても何万件になったとき中身確認デキナイよ。
0342デフォルトの名無しさんNGNG
IEのエクスプローラーバーのお気に入りのツリーのように
アイテムをドラッグして移動するとノード間では横線だけだったり
お気に入りのアイテム上にマウスカーソルがきても選択状態に
ならないようにするにはどうやったらよいのでしょうか?
MLで調べると67348に同じようなのがあるのですが
これだとかなり画面がちらついてしまいます。
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=067348
0343デフォルトの名無しさんNGNG
>>341
データ見るだけのアプリなら小1時間もあれば楽に作れるでしょ(多分、数分)
0344デフォルトの名無しさんNGNG
>>343
同じDBを参照する関連のプロジェクトが他にもあって、
テーブルも違うし、自分だけが見れても駄目だしー。
0345デフォルトの名無しさんNGNG
>>329
それってBorlandのとこだね
0346デフォルトの名無しさんNGNG
出席(・∀・)イイ !
0347デフォルトの名無しさんNGNG
変数Hensuは初期化されない場合があります。
ってどうやって回避すればいいんですか?
0348デフォルトの名無しさんNGNG
>>347
初期化しる
0349デフォルトの名無しさんNGNG
>>347
DelはVBのように変数宣言しても、自動で0入れたりして初期化してはくれない(例外もある)
よってその変数を使う前に初期値を代入しる
0350デフォルトの名無しさんNGNG
出席(・∀・)イイ !

ワラタ
福島工業高等専門学校は低脳の集まりか
0351デフォルトの名無しさんNGNG
土曜に>>218あたりから質問してた者なんですが、
別のOSの方ではCPU画面は出なくなったようです。
しかし、別のOSのDelphiフォルダを現在使用の方へ持って来たら発生します。

「Application Handleが0になる」の発生条件ですが、
自作DLLの方と呼び出し元アプリの両方の
「実行時パッケージを使って構築」をチェックすると0になるようです。
どちらかチェックなら取得できます。
何故か解からんがチェック出来ないとファイルがでかくなる・・・
そんなもんなんでしょうかね?
0352デフォルトの名無しさんNGNG
あの〜 これから del厨になろうかと 思ってるのですが
超怒級初心者向けのなにか本はありませんか? 
0353デフォルトの名無しさんNGNG
>342
俺は、サブクラス化してこんな感じにメッセージをすり替えたりとかしてやってる。
前に書いたコードを適当に抜き出したから、どこか間違ってるかも。
procedure THoge.TreeViewNewWndProc(var Message: TMessage);
var
 M: TMessage;
begin
 if (Message.Msg = TVM_SELECTITEM) and (Message.WParam = TVGN_DROPHILITE) and (ドラッグ中) then
 begin
  if 棒線を出したい then begin
   if 上に出したい then begin
    Message.Msg := TVM_SETINSERTMARK;
    Message.WParam := integer(False);
   end else if 下に出したい then begin
    Message.Msg := TVM_SETINSERTMARK;
    Message.WParam := integer(True);
   end;
  end;
  case Message.Msg of
   TVM_SELECTITEM: PostMessage(TreeView.Handle,TVM_SETINSERTMARK,0,0);
   TVM_SETINSERTMARK: begin
    M.Msg := TVM_SELECTITEM;
    M.WParam := TVGN_DROPHILITE;
    M.LParam := 0;
    TreeViewOldWndProc(M);
   end;
  end;
 end;
 TreeViewOldWndProc(Message);
end;
0354デフォルトの名無しさんNGNG
ヘルプファイル
0355デフォルトの名無しさんNGNG
>>352
Delphi 入門
でググれ
0356デフォルトの名無しさんNGNG
FAT に傷がぁぁぁぁぁ!
0357デフォルトの名無しさんNGNG
YOU IS FATMAN
0358242NGNG
>>353
ありがとうございます。助かります。
さっそく今から解析して自分のにも試してみます。
また分からないことがあったら質問させてください。
0359デフォルトの名無しさんNGNG
業務用に販売するソフトのDBにパラドックスを使うのは
問題なしですか?

それともInterBaseやオラクルとかにした方が良いんですか?
0360デフォルトの名無しさんNGNG
>>359
Firebirdなら無料でInterbaseと同じ動きをするが。ローカルでも使えるし。
C/Sでも高速動作。
http://www.apex-jp.com/firebird/ibp_deutchepresse_jp.html
0361オイお前らNGNG
10msec って何分の1秒になるのですか
教えてケロ
0362デフォルトの名無しさんNGNG
1mmは1000分の1m
1mlは1000分の1l
0363デフォルトの名無しさんNGNG
ミリセコンドだろ?
普通に1/1000(sec)じゃないの
0364デフォルトの名無しさんNGNG
ミリセコンドだろ?
普通に10/1000(sec)=1/100(sec)じゃないの
0365オイお前らNGNG
みごとに釣られたな(ワラ
0366デフォルトの名無しさんNGNG
>>363はミス
0367嘲笑激藁は ◆adhRKFl5jU NGNG
つまんね
0368デフォルトの名無しさんNGNG
>>365
漁師ハケーン! 
0369デフォルトの名無しさんNGNG
>>360
InterBaseは持ってるのですが、パラドックスじゃダメなのかな〜と思って。
あくまで試験用だと思ってた方が良いのかどうか、その辺よく知らないんです。
0370デフォルトの名無しさんNGNG
ここの住人は優しいからね。
>>365は逝け
0371デフォルトの名無しさんNGNG
>>369
昔はBDEでパラドックス対応を売りにしてましたが、
現在のDelphi的にはdbExpressを推奨してるので、
Interbase > パラドックス
じゃないかな。
0372デフォルトの名無しさんNGNG
>>371
レスありがとうございます。
なるほど、実用に耐えないという事はないんですね。
(ああ、無知な自分が恥ずかしい・・)
0373デフォルトの名無しさんNGNG
ネットワーク越しじゃない普通の業務アプリならBDE-パラドックスで十分。
0374デフォルトの名無しさんNGNG
もう先がない枯れた BDE と、パフォーマンスと将来性が売りの dbExpress.
どちらをとるか。

ということに時間を使うとあれなんで、データベースレイヤの抽象化はきっちりやっておけば
後で変更が用意。そういうことができる(やりやすい)コンポーネントになっている
0375sevenNGNG
>>352
>超怒級初心者向け
「プログラミング初心者」か「Delphi初心者」かでも、選択肢が異なると思われ、、、
まぁ、文体からすると、プログラミング初心者なのかな。
とりあえず、プログラマ板を巡回することを推奨。
037678NGNG
Buttonをクリックすると、Tagが3のLabelに0を表示したいんですが
どう書けばいいですか?
0377デフォルトの名無しさんNGNG
if Label1.Tag = 3 then Label1.Caption :='0';
if Label2.Tag = 3 then Label2.Caption :='0';
if Label3.Tag = 3 then Label3.Caption :='0';
if Label4.Tag = 3 then Label4.Caption :='0';
if Label5.Tag = 3 then Label5.Caption :='0';
...
if Label∞.Tag = 3 then Label∞.Caption :='0';
0378デフォルトの名無しさんNGNG
Components/ComponentCountや、Controls/ControlsCount使って、

for i := 0 to ComponentCount - 1 do
begin
  if (Components[i] is TLabel) and (Components[i].Tag = 3) then
    (Components[i] as TLabel).Caption := '0';
end;
0379デフォルトの名無しさんNGNG
Del厨はループも知らないのか。
0380デフォルトの名無しさんNGNG
>377 >378
ありがとうございます。
>Components/ComponentCountや、Controls/ControlsCount
をググってみます。

0381デフォルトの名無しさんNGNG
フリーでマルチインデックス付けられるおすすめのコンポってないですかねぇ。
ソース付だとなおうれしいが、わがままってもんですかねぇ。
0382デフォルトの名無しさんNGNG
>>352
ヤフオク逝って買って来い
http://list4.auctions.yahoo.co.jp/jp/2084008824-category-leaf.html?
0383デフォルトの名無しさんNGNG
マルチインデックスって何?
0384デフォルトの名無しさんNGNG
Ord関数でISO-Litin-1コードに変換しようと思ったのですが、
2バイト文字が正しく変換されなくて困っています。

どうしたらいいでしょうか?
0385デフォルトの名無しさんNGNG
http://delphi.sakura.vg/index2.html
今まで何度かプログラムに挫折してきて
最後の砦としてDelphiを始めようとして、
パーソナル版をダウンして
↑のページを読みながらやってみようとしました。
そうしたら、しょっぱなのActiveXの取り込みから失敗・・。
なにをどうしたらよいのかもさっぱり分からない・・゚゚(´□`。)°゚。
0386動画直リンNGNG
http://homepage.mac.com/hitomi18/
0387 NGNG
>>385
釣りでないなら、
1.「トリップ付けれ」
2.「環境書けれ」
3.「エラー内容書け」

つーか、そのレス内容じゃ「日記」なのか「助言が欲しい」のか分からんぞ。
0388デフォルトの名無しさんNGNG
質問文にもなってない。
0389sevenNGNG
>>385
まず、「自分にはできないんだ」という壁を越えなきゃね。
「できないんだ」じゃなくて、「どうやれば、できるのだろう」でないと
質問することすら、ままにならないのかも。
壁って、破らないと、厚みがわからないけど、破ってみると結構薄かったりするかも。
そもそも、まず、触れてみなければ破ることなんか、まず無理。
ところで、'Hello! World'は、できたのだろうか?
次はボタンで画像を表示するとか、テキストエディタを作るとか。
「はじめてのDelphi」のアプローチって、好きだなぁ。
かつての「トレーニングマニュアル」みたいな本が出ないかなぁ。
0390デフォルトの名無しさんNGNG
作りたいものも無くて、ただ単にプログラミングを始めるっていうのは続かないと思う。
俺は、欲しいものがあったから、それを手に入れる手段として自分で作ること(プログラミング)を始めた。
0391デフォルトの名無しさんNGNG
実は何よりも目的が大事。
0392デフォルトの名無しさんNGNG
>>385
Delphi入門でいきなりActiveXという椰子もいう椰子だが…
0393242NGNG
>>353
353さんおられますでしょうか?
このコードの宣言部はどのように書けば良いのでしょうか?ただ
TreeViewNewWndProc(var Message: TMessage);
と書いただけではメッセージをとらえないようなので。
メッセージ関係はほとんどいじったことが無くて、
見当も付きません。。というか見当違いのことを言ってるかも…
よかったら教えていただけないでしょうか?
0394デフォルトの名無しさんNGNG
>>392
さっするにタブブラウザを作りたくて Delphi6 を使っているようだし。
ActiveX といってもインポートして使うだけ。COM を使いまわすわけじゃなし。
広い意味でのコンポーネントということでよいのでは?

>>385 さんは、何が起きたか位は公開してくれ。
または近くにいるひとに聞け。
0395361NGNG
>>364
ありが�d
0396デフォルトの名無しさんNGNG
>>390
オレもそうだった。
2年前 Delphi 6 Personal が無償公開された時、
WEB 乞食の務めとして DL し、 Install はしたが、
何もしたい事がなく、結果すぐ放置となった。

しかし1年後、機械的な処理を大量に行う必要に
迫られ、結果としてプログラミングという方法が
最善だと知り、目的の達成の為に習得に努めた。

プログラマとしての技量が上がったかどうかは
ともかく、(その後も頻発する)要求の処理に
必要なツールを作る程度には言語を習得できた、
と思っている。アマなので、今の状態でも一応満足
している。

もし必要に迫られていなかったら、いまだに論理
演算の意味さえ理解できなかっただろう。
0397デフォルトの名無しさんNGNG
必要はプログラマの母だね
0398デフォルトの名無しさんNGNG
一般論としては同意するが、このスレはお説教コーナーではないので雑談スレに移動してください。
自称超初心者がびびってこなくなっちゃうよ。
0399初心者NGNG
Delphiの限界について教えてください
0400デフォルトの名無しさんNGNG
限界厨は氏んでください
0401デフォルトの名無しさんNGNG
>>399
生産性ならVC++の限界を簡単に超える事が出来ます。
しかしC言語中心のコンピューター社会を超えるのは無理。
Delでデバイスドライバを作る奴などいない。いたらそいつは神聖Del厨。
0402デフォルトの名無しさんNGNG
あるコントロールのcanvasから、別のコントロールのcanvasに複写する方法教えてください。
0403デフォルトの名無しさんNGNG
Inifileで
ReadString('Section','Value0','');
では無事読みとれるのですが
ReadString('Section','Value' + Temp[1],''); (Temp:StringでTemp := 000000と入っています)
では読んでくれません。
'0'とTemp[1]は違うものなのですか?
0404デフォルトの名無しさんNGNG
>>403
では横着しないで、いったんChar型の変数にTemp[1]を代入してから試してみろと言ってみる。
0405デフォルトの名無しさんNGNG
それで合ってる筈だよ。
その前後のソースは無いの?
0406403NGNG
すみません勘違いでした。
i:IntegerとしてTemp[i]としていました。
しかし、i := 0の場合もあったので
読みとれなかったようです。
String[0]はないのですね。
すみませんお騒がせしました。
0407デフォルトの名無しさんNGNG
ったく
0408デフォルトの名無しさんNGNG
NowでPCの現在時刻を取得してTXTに書き出すようにしたのですが、
2003/06/02 16:51:04
2003/06/02 7:28:43
このようにHourの部分が1桁だと見づらくなってしまうので、
2003/06/02 16:51:04
2003/06/02 07:28:43
このようにしたいのですが、良いやりかたはありますか?
0409デフォルトの名無しさんNGNG
>>408
FormatDateTime('yyyy/mm/dd hh:mm:ss', Now);
0410ANGNG
>>402
これで、Aの内容がBに描かれるはず。

B.Canvas.CopyRect( B.ClientRect, A.Canvas, A.ClientRect);
0411デフォルトの名無しさんNGNG
質問です。
.netに対応したWindowsCEがでた場合、
Delphi7でCE用のソフトは開発できるのですか。
0412デフォルトの名無しさんNGNG
↓もちろん、お前は釣られた敗北者じゃないよな。
0413デフォルトの名無しさんNGNG
>>411
できまへん
0414デフォルトの名無しさんNGNG
>>409
ありがとうございます。
0415デフォルトの名無しさんNGNG
Borland C++ Compiler 5.5 をダウンロードしたんだけど
使い方がわからない・・・
誰か起動の仕方を教えてください・・・
0416デフォルトの名無しさんNGNG
>>415 すれ違いだけど・・・
http://hp.vector.co.jp/authors/VA017148/pages/install/bcc.html
0417デフォルトの名無しさんNGNG
>>401
>Delでデバイスドライバを作る奴などいない。いたらそいつは神聖Del厨。

真のデバイスドライバは Win32 API をつかえない場所で動くので、Win32 アプリ用ツールでは難しい。

この難しさは Delphi に限らないので、NT2000 から Mini Driver ってのが出てきて、デバイスドライバ
本体は OS 組み込み。動作を変更したいところを指定すると Win32 アプリケーションのコードをコールバックしてくれる。
リアルタイム性とかを極端に要求しない限り、ほとんどのデバイスドライバは Win32 アプリケーションとして
実装できる。(実際にはデバイスドライバの性格上、サービスにすることが多いが)

たとえば、
http://www.xlsoft.com/jp/products/windriver/products.html
こういったツールを使えば、めんどくさいインターフェースコードまで自動作成してくれて、
ほんとに必要な部分だけ書けばよい。
0418デフォルトの名無しさんNGNG
入門書とか、入門Webを読むと、TStringListは最後に必ず解放しろって
書いてあるんですが、Functionの返値をTStringListにしたい場合、
どのタイミングで解放してやればいいんでしょうか?

 また、解放しなかった場合、激しくメモリーリークする可能性が
あるんでしょうか?
(代入したデータ分だけメモリに残るとか?)
0419デフォルトの名無しさんNGNG
>>419
関数の設計として TStringList を返すより TStrings を引数として渡してそれに設定する方式の方が汎用的でしょ

どうしても関数の引数で返す場合は、名前を使わずに

with func(hoge) do try
 StringListを使う処理
finally free ;end;

とやる癖を付けた方がいいですね。 


0420デフォルトの名無しさんNGNG
>>418
関数の戻り値にオブジェクト型を使うと、コーディングが激しくめんどくさくなるだけ。
関数の戻り値は数値などの単純型に限定した方がよい。
(もちろんコンストラクタなど例外はある)
0421418NGNG
レスありがとうございます。

引数を利用するやり方でやってみようと思います。
0422デフォルトの名無しさんNGNG
どうもwithを使うと敗北者の気分になる。
0423デフォルトの名無しさんNGNG
with文の中でCreateしてそのままFreeするというのは
あまりDelphiらしくない方法ではあるよね
0424デフォルトの名無しさんNGNG
指定したフォルダにあるファイル名を調べるにはどうしたら良いのですか?
0425デフォルトの名無しさんNGNG
>>424
FindFirst、FindNext
0426デフォルトの名無しさんNGNG
>>423
VCLソースを見るとたまにそういうの見かけるよ。
0427デフォルトの名無しさんNGNG
>>425
サンクス
0428デフォルトの名無しさんNGNG
>>426
なるほど
例えばTBlobFieldでも使いまくってるね
0429デフォルトの名無しさんNGNG
昨日、6のパーソナル版を落としてきて、SDIの簡単なエディタもどきを作ってます。
 
 新規作成で、プログラム自身をもう一個起動するためにはどうすればいいんでしょうか?

 よろしくおながいします。
0430デフォルトの名無しさんNGNG
ShellExcute
0431デフォルトの名無しさんNGNG
しかしその手の目的なら、少し難しいがCreateProcessでやっておくと後々便利。
0432デフォルトの名無しさんNGNG
VC厨です。おねがいします。

1、フォームの最大化ボタン不可の方法、サイズ変更不可の方法を
教えてください。

2、アプリの起動の最初に”本当に起動しますかダイアログ”
を作っているのですが、DELの場合どういう風に設計すればいいのでしょうか?
メインフォームを表示する前に表示したいのですが。
0433デフォルトの名無しさんNGNG
>>432
1.フォームのオブジェクトインスペクタ

2.OnCreateメソッド
0434432NGNG
>1.フォームのオブジェクトインスペクタ

プロパティをかえれば言いのでしょうか?
それらしいプロパティが見つからないのですが。。
0435sevenNGNG
>>434
BorderIconsあたり
0436デフォルトの名無しさんNGNG
>>435
できました。ありがとうございます。
biMaximizeをFALSEにしたらできました。
0437デフォルトの名無しさんNGNG
ヘルプも読まない厨房が紛れ込んでるな
0438デフォルトの名無しさんNGNG
>>432

2.
http://www.google.co.jp/search?q=cache:3hHV87MVv6cJ:www.nifty.ne.jp/forum/fdelphi/samples/00994.html+Delphi+%E3%82%B9%E3%83%97%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6&hl=ja&ie=UTF-8
0439sevenNGNG
>>437
だって、くだすれなんだもん :-)
つーか、>>437のほうが、このスレでは、くだらないと思います。
どうせ、名無しなら、答える気があるときだけ、答えばいいんだし。
0440デフォルトの名無しさんNGNG
>>432
にしたがってメインフォームに以下のように書きました。

procedure TMain.OnCreate(Sender: TObject);
var
t:TTimer;
begin
t:=TTimer.Create(Self);

if t.ShowModal = mrCancel then
Close;

t.Free;
end;


しかし、TTimerでキャンセルボタンを押して、Closeが実行されるのを
確認したんですが、メインフォームが開いてしまいます。

どうしたらいいのでしょうか?
0441デフォルトの名無しさんNGNG
>>440
それよくコンパイル通ったね…
TTimerにShowModalなんてメソッドは…ないよな…少なくともDel6までは
0442デフォルトの名無しさんNGNG
TTimer.ShowModalなんて何処から涌いてきたんだ?
0443デフォルトの名無しさんNGNG
>>440
program Project1;
uses
 Forms,
 Unit1 in 'Unit1.pas' {Form1},
 Unit2 in 'Unit2.pas' {Form2};
{$R *.RES}
begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.CreateForm(TForm2, Form2);
 Form2.ShowModal;
 Application.Run;
end.

参考になるかな?
0444デフォルトの名無しさんNGNG
しょぼいのでいいなら

if MessageBox(Handle,'Message','Title',MB_YESNO+MB_ICONINFORMATION)=IDNO then
Close;

こんなのでいいんじゃネーノ?
専用ダイアログ作るなら、TButton.ModalResult設定して

if Form2.ShowModal=mrNo then
Close;

でもいいし。
0445デフォルトの名無しさんNGNG
TTimerは自分で作ったクラスでした。混乱させてすいません。
あとで直します。

>>443
ありがとうございます。こんな風にしてできました。

var
r:Integer;
begin
Application.Initialize;
Application.CreateForm(TTimer, Timer);
r:=Timer.ShowModal;
Timer.Free;
if r <> mrCancel then
begin
Application.Title := 'TTT';
Application.CreateForm(TMain, Main);
Application.Run;
end;
0446デフォルトの名無しさんNGNG
VFWを使ったUSBカメラを使ったアプリを作ってみたくなったんですけど
Delphi用サンプルコードが見つからないのですが・・・。

C/C++のコードですら見つからない。
と思うのは気のせい?Dllを使ってアーカイバを作るより難しい。
この情報はブラックボックスなんでしょうか??
0447デフォルトの名無しさんNGNG
まずCで書かれたサンプルを探せ。話はそれからだ。
もしくは命令セットの一覧。
0448デフォルトの名無しさんNGNG
アイコンダブルクリックした時点でユーザーは起動すると言ってるようなもんなのに、
そこで「起動しますか?」はウザすぎる
0449 NGNG
ウザい時は適当に「起動します」か「起動しません」とか
書いときゃいいんじゃねーの?
「出来ますか/出来ませんか」みたいなもんなんだから。
0450デフォルトの名無しさんNGNG
↑
まさに正論。
>>432は無駄にインストーラを作りたがるタイプのプログラム初心者だと思われ。
0451デフォルトの名無しさんNGNG
フォーム上で、キーが押された時、KeypreviewをTrueにしておけば、
フォーム上のTEditなどでキーが入力されてもTForm1のOnKeyDownを通りますよね?

それと同じような事をマウスでも行いたいのですが、可能でしょうか?

つまりボタンコントロールをクリックしたら必ずTForm1のOnMouseDownを通るように
したいのです。
(それぞれのボタンコントロールのOnMouseDownも使っているので、そこも通る事が
前提です)

宜しくお願いします。
0452デフォルトの名無しさんNGNG
>>446
それはDirectXのDirectShowで実現できるような。
DirectXSDKにそういうやつのサンプルプログラムが付いていた。
0453デフォルトの名無しさんNGNG
>>451
イベントが連鎖的に起こる事を期待してコーディングしない方がよい。
予想外の動作する可能性が高くなるし、その対処も面倒くさくなるだけ。

その機能ような機能を実現したければ、
ボタンのOnClickの中で、Form1MouseDownを呼び出すようにしる。
0454451NGNG
>>453
やはりそれしかないっすか。トホホ・・・。
ボタンの数がものすごく多くて、いちいち全部に同一のコードを追加するのが
面倒だから、「Formの上でマウスダウン」というくくりでイベントが発生しないものかと
思ったのですが、残念です。
0455デフォルトの名無しさんNGNG
>>451
Delは同じ型のイベントならば、他のコンポのイベントと共有出来るのを知っているか?
どういうプログラムか知らないので適用できるかどうかはわからないが。

ボタン共通のOnClickを作り、最初に共通の処理をさせてから、
次にSenderオブジェクトを調べ、どのボタンが押されたか判別してボタン固有の処理をやれば良い。
0456ANGNG
>>454
ものすごくボタンの数が多い場合は、Senderで分岐するのってなんだか、
あまりかっこよくない気がする…。
もし、そのものすごく多い物が全部TButtonなら、TButtonを継承して、
Mouseイベントを受け取ったら、Formに伝えたあとに、自分のOn〜を
呼び出すような、クラスを作って、それに差し替えてやるといいと思う。
0457デフォルトの名無しさんNGNG
ボタンの数が不定なら動的にボタンを作成するだろうけど
その際にTagに必要な情報を仕込んでおけば
Senderでの使い分けもスマートにできる
(分岐させずTagを関数の引数として扱うこともできる)
ちなみにTagはポインタとしても使えるので
任意のクラスのインスタンスを仕込むこともできる
0458デフォルトの名無しさんNGNG
Delでstringの動的配列に関する質問です。
あらかじめサイズがわからない場合はどうした言いのでしょうか?

var
sl : array of string;
....

for 何回回るかわからない do
al[i] := .....
0459451NGNG
>>455
ボタンの数が50個ぐらいあって、それぞれ別の種類の処理をしているので、
今から変更したくないです。(^^;

ところでTButtonが何個あっても全て一つのイベントにまとめてTagで処理を
分けるのがセオリーなんですか?

そんな事考えたこともないので勉強になります。

>>456
なるほど。確かにその方法だと最初からそう作れば出来そうですね。
ただ今からやるには、ボタンの宣言を全てやり直したり、
新規にコンポーネントを作って画面の作り直しをしないと
出来ないので、難しいですが。

結局、全てのイベントに同一の関数を書き込んで解決しました。

いろいろアドバイスありがとうございました。
0460デフォルトの名無しさんNGNG
自宅のパオコンでPG作ってます。
Memo1に改行が入力されたときに改行マークを入力して改行したいのですが、
どのように書けばいいか教えて下さい。
#13#10が入力されたらみたいに書いてもできませんでした。
改行マークも?になってしまいます。。。
さて、何でしょう?
0461デフォルトの名無しさんNGNG
>>458
for do begin
SetLength(a,length(a)+1);
end;
0462デフォルトの名無しさんNGNG
すいません。間違えました。
X al[i] := .....
O sl[i] := .....
0463デフォルトの名無しさんNGNG
>>461
ありがとうございます。速いです。
0464デフォルトの名無しさんNGNG
象さんコンピュータ
0465デフォルトの名無しさんNGNG
>>459
>ところでTButtonが何個あっても全て一つのイベントにまとめてTagで処理を
>分けるのがセオリーなんですか?

イベントハンドラを共通にして、Senderでどのボタンが押されたかを判断する
やり方はぐぐれ
0466デフォルトの名無しさんNGNG
>>465
日本語読めないやつハケーン
0467デフォルトの名無しさんNGNG
>>460
Memo1.Items.add('内容1');
Memo1.Items.add('内容2');

結果↓

内容1
内容2

じゃだめ?
0468デフォルトの名無しさんNGNG
>>467
日本語読めないやつハケーン
046942歳男性よりNGNG
>>460
パオコンでは何もできないでしょう
0470467NGNG
>>468
>改行マークを入力して改行したい
って書いてますね。
すまそ。
0471デフォルトの名無しさんNGNG
パオコン、カコ(・∀・)イイ
0472デフォルトの名無しさんNGNG
TListViewを使用してデータを表示しています。
データ量がセルをオーバした時の処理を施したいのですが・・・
スクロールバーまたはExcelの「自動的に改行して全てを表示」の
ような事はできますでしょうか?
0473デフォルトの名無しさんNGNG
パオコンはNASAでも使われているよね
0474デフォルトの名無しさんNGNG
パレットSampleのページにあるコンポーネントって使わないほうがいいの?
0475デフォルトの名無しさんNGNG
>>474
Personalでもソースが付いてくるコンポーネントというだけで別に問題ないはず。
でもSpinよりはUpDown使った方が良いな。
0476デフォルトの名無しさんNGNG
なんでUpDownの方がいいの?
サイズ減るの?
0477デフォルトの名無しさんNGNG
http://home1.infonia.ne.jp/~delphian/delphi/index.html

コンポーネント紹介サイトって
上記以外にありますか?


0478デフォルトの名無しさんNGNG
>>477
ありますよ。
0479デフォルトの名無しさんNGNG
実行ファイルが数十KBになるときと、数百KBになる場合があるんですがどうしてですか?
同じようなものを一から作り直したらすうじゅ10分の1のサイズになりました。
0480446NGNG
なんか余計なものをUsesに追加してたんじゃないの?
いろいろ試行錯誤しているうちに。

>>447
それがあればとっくに作れてます。
ソフトならゴロゴロ落ちてるのになぁ。
みんなどうしてるんだろうか。
0481デフォルトの名無しさんNGNG
>>480
入出力データの仕様や、命令の一覧とかが無いと作れないぞ。
ドライバがあるならそれの製造元を探したら?
0482デフォルトの名無しさんNGNG
>>479
プロジェクトのオプションで"実行時パッケージを使用して構築"にチェックが入ってるか入ってないかだと思われ。
チェックが入ってるとサイズは小さくなるが、exe単独では動かなくなる罠。
0483デフォルトの名無しさんNGNG
http://www.katolab.ee.kagu.sut.ac.jp/programing/capture.htm
0484デフォルトの名無しさんNGNG
>>476
UpDownとSpinEditは一長一短だから、場合によりけり。

UpDownは、Windows標準コントロールなので、OSになじむ。
ただし、Editと組み合わせてエラー処理を自前でする必要がある。

SpinEditはDelphi専用だから、たとえばXPスタイルなんかは適用されない。
でも、エラー処理とか全部してくれるから、乗せるだけですぐ使える。
0485446NGNG
>>483 >>481
情報ありがとうございますた。
SDKをDLしないと…

7kb/secのダウンロード速度キツい。
0486デフォルトの名無しさんNGNG
最適化にチェック入ってたら、usesで不要なものは自動的に省かれてるんじゃないの?
0487デフォルトの名無しさんNGNG
PageControlで、Tabの大きさをPageControlの端に合わせるにはどうすればいいんですか?
0488デフォルトの名無しさんNGNG
>>487
自分で計算して合わせる。(漏れはそうした)
0489デフォルトの名無しさんNGNG
下記の条件で、ホストPC上のDBを操作するにあたって
問題点を解決するのに最も良い方法や気をつけるべき点を教えて下さい。

条件:
・DBはParadoxを使う。
・ホストPC自身もDBの読み書きを行う。
・OSはWindowsXP HomeEdition
・テーブルへのアクセスはTQueryを使う。

現在の方法:
・ネットワークドライブを割り当てて、そこにエリアスを指定している。

現在の問題点:
・レコードが1万件程度のテーブルをSelectしてOpenすると
 1〜3秒ぐらい時間がかかる場合があるのでもう少し速くしたい。

以上、宜しくお願いします。
0490ANGNG
>>459
もう解決しちゃったみたいだから、いいといえばいいんだけど。

ボタンの宣言は、置換で、フォームの設計は、フォームをテキストで表示して
同じく、ボタンのクラス名の部分だけ置換すれば、大丈夫だったと思う。
そうすれば、配置や設定はすべてそのままだし。
0491デフォルトの名無しさんNGNG
すれ違いかもしれませんがサッと教えて下さい。
ヘルプを作るのにいいソフトを教えて下さい
0492デフォルトの名無しさんNGNG
>>491
FrontPage
0493「サッ」とか書かなければいいのに…NGNG
>>491
メモ帳。
0494デフォルトの名無しさんNGNG
>>491
Delphi
0495デフォルトの名無しさんNGNG
delphiで
codeguruとかcodeproject見たいなサイトってないのでしょうか?

あったら教えてください。
0496デフォルトの名無しさんNGNG
>>495
無い。
0497デフォルトの名無しさんNGNG
無いのかYO!
あれよ!
0498デフォルトの名無しさんNGNG
Tipsを求めてるのなら
Delphi Tips
でググればいっぱい出てくるけどな〜
0499デフォルトの名無しさんNGNG
ダブルクリックを禁止したいんですがどうすれば良いですか?
0500デフォルトの名無しさんNGNG
Label1.Caption := 'ダブルクリックをしないでください';
0501デフォルトの名無しさんNGNG
ActionListでスルー
0502デフォルトの名無しさんNGNG
>>451 あたり
>つまりボタンコントロールをクリックしたら必ずTForm1のOnMouseDownを通るように
>したいのです。

TApplication の OnMessage で対応できそうだよ。
0503デフォルトの名無しさんNGNG
>>500
ワラ
0504デフォルトの名無しさんNGNG
AnimateWindow(Handle, 1000, AW_BLEND or AW_ACTIVATE);
でフォームをフェードインして表示させると描画されない領域が出てきます。
パネルとかボタンならInvalidateで表示されるのですが
TMemo,TListBox,TTreeViewなどのスクロールバーが表示されていると
スクロールバー部分が灰色一色になり、うまく表示されません。
Invalidate、Refresh、UpdateWindow、InvalidateRectなど試してみたのですが
どうしてもスクロールバー部分だけ表示されません。
どなたかスクロールバーを再描画する良い方法知りませんか?
0505デフォルトの名無しさんNGNG
HideしてShowする
0506459NGNG
>>490
レスありがとうございます。
私の読解力とスキル不足により、具体的にどうすればその方法が出来るのか分かりません。
すいませんが具体的なやりかたを教えて下さい。
宜しくお願いします。
0507451NGNG
>>502
TApplicationを少し調べてみました。
他にもいろいろ有効に使えそうなコンポーネントですね。
使いこなせるように頑張ります。
教えてくださってありがとうございます。
0508デフォルトの名無しさんNGNG
Button押したらButtonが消えちゃう!
みたいなくだらないものを、作りたいんだけどどうしたらえーん?
OnClickイベント内でButton.Free使うとエラーでるんです。
0509デフォルトの名無しさんNGNG
Button.Hide
0510デフォルトの名無しさんNGNG
バグらないドッキングウィンドウのサンプル無いでつか?
0511504NGNG
>>505
それももちろんやってて
Hide;
AnimateWindow(Handle, 1000, AW_BLEND or AW_ACTIVATE);
Show;
とやってるのですがうまくいかないです。。
なんでだろう…
0512デフォルトの名無しさんNGNG
RedrawWindow(handle, nil, 0, RDW_INVALIDATE or RDW_ALLCHILDREN);
0513デフォルトの名無しさんNGNG
RDW_ALLCHILDREN これがキモ。
0514デフォルトの名無しさんNGNG
自作DLLファイルにバージョン情報が載りません。
オプション設定では無理みたいです。
不便なんですがDelphiでは無理なんでしょうか?
0515デフォルトの名無しさんNGNG
>>514
Delphi のバージョンは?
D4 か D5 の IDE のバグ。.RC ファイルを手で書くか、自動生成されるリソースを
ちょいと変えるだけ。
0516504NGNG
>>512
>>513
オールチルドレン…なるほど。
おかげさまでうまくいきました。
俺一人では一ヶ月悩んでも解決できなかったと思います。
ありがとうございます!!!
0517デフォルトの名無しさんNGNG
すいません。自分のEXEのあるフォルダーを知るにはどう知ればよいのでしょうか?
お願いします。
0518353NGNG
>393
激しく遅レスなんで、もう解決しただろうけど一応。
こことか参考にしてTreeViewのWindowProcを入れ替えてください。
http://forum.nifty.com/fdelphi/samples/00400.html
0519素数2NGNG
ExtractFilePath(Application.ExeName)
0520517NGNG
>>519
ありがとうございます。できました!
0521242NGNG
>>518
レスありがとうございます。
実はまだ解決してなかったのでほんと助かりました。
なるほど、こうやればよかったんですねー。

でも>>353さんのソースのおかげでいろいろ検索かけて
CommCtrlからTreeView_SetInsertMarkとか
TreeView_SelectDropTargetなどの便利な関数とか
発見できたりいろいろ勉強になりました。

教えてもらったの早速やってみます。
0522デフォルトの名無しさんNGNG
ぶっちゃけExtractFilePath(ParamStr(0))の方が短い
0523デフォルトの名無しさんNGNG
Folder5
0524デフォルトの名無しさんNGNG
ぶっちゃけExtractDirPath(ParamStr(0))の方が短い
0525デフォルトの名無しさんNGNG
>>482
そのチェック外したら、実行速度が速くなった気がするんだけど、気のせい?
0526sevenNGNG
でも、ぶっちゃけ
ExtractFilePath(Application.ExeName)
が一番Pascalらしい(ってなんですか)
0527デフォルトの名無しさんNGNG
Application.ExeNameを全部ParamStr(0)に置き換えたら実行形式ファイルのサイズ減ったよ
0528デフォルトの名無しさんNGNG
>>526
Pascalらしさを選ぶならParamStrの方が正しいのだが
0529デフォルトの名無しさんNGNG
>>515
ありがにょん。
リソースで気づいたのですがサンプル見ながら作ったので
{$R *.RES}を削ってました。
0530デフォルトの名無しさんNGNG
BDE Administrator
で「データベース」タブの+をクリックすると変更できなくなりますが、
これを変更可能な状態に戻すにはどうすれば良いでしょうか?

今のところ再起動しかやり方がわかりません。

またこの機能は何の役に立つのでしょうか?
0531デフォルトの名無しさんNGNG
>>529
>{$R *.RES}を削ってました。
そりゃしょうがない。

解決したならよかった。
0532デフォルトの名無しさんNGNG
>「データベース」タブの+
って、ツリービューの + ? たとえば DBDEMOS の文字の前にある + のことかな?
それはデータベースが開かれている状態を意味しているから、ツールバーの左端、
「開く」ボタンを押しなおしてデータベースを閉じればよし。
ほかにも、右クリック - 閉じる を選んでもよいし。

ただ、BDE Admin 終われば、データベース接続は開放されるはずなので、
「再起動しか」って意味がわからないんだけど。

もしかして別の場所のことを言っているのかなぁ。

気になるなら、画像掲示板でも使ってください。百聞は一見にしかず
0533530NGNG
>>532
そうです。ツリービューの+です。
右クリック→閉じる で解決しました。
ありがとうございます。

データベースが開かれているという意味だったんですね。
(再起動といったのは、BDE Adminの事です。混乱させてすいませんでした)
0534デフォルトの名無しさんNGNG
任意のファイルを削除するには、どうすれば良いのですか?
0535デフォルトの名無しさんNGNG
Del7を購入するべきでしょうか。
Del6は持っています。
0536_NGNG
http://homepage.mac.com/hiroyuki43/jaz09.html
0537デフォルトの名無しさんNGNG
>>534
DeleteFile('D:\DeleteFile.txt');

これで D:\DeleteFile.txt が削除できます。
0538直リンNGNG
http://homepage.mac.com/yuuka20/
0539デフォルトの名無しさんNGNG
>>535
もしも、Del6が、Personal、ならば、Del7Proを、買うと、とても、良い、だろう。
054031歳男性NGNG
Delphi7のRaveって何?
0541デフォルトの名無しさんNGNG
Del7を買った次の日にDel8が発売されます
0542デフォルトの名無しさんNGNG
僕はそろそろDelphiに飽きてきたかな。
来年には中学校に入学するから
簡単な言語はやめて複雑な言語勉強しなくちゃ。
思い切ってC++でもやってみようかな。
0543デフォルトの名無しさんNGNG
マネージ度は、デルファイ方がうまいと思いました。
0544デフォルトの名無しさんNGNG
>>537
ありがとうございます。できました!
0545デフォルトの名無しさんNGNG
>>540
そんなレベルでよくDelphi使えるな…。
0546デフォルトの名無しさんNGNG
>>542
実行ファイルを0と1を直接入力で作れないうちは、まだまだひよっこ
0547デフォルトの名無しさんNGNG
>>545
漏れも知らんが、一応メインプログラマーだよ。
5000万円程度のプロジェクトだけどね。
0548デフォルトの名無しさんNGNG
一応マジレス。QuickReportの後継らしい。広告見れ→Rave
0549デフォルトの名無しさんNGNG
知ったかぶりハケーン
545タン(;´Д`)
0550デフォルトの名無しさんNGNG
>>548
後継、というわけではないんだが、レポートツール。
0551デフォルトの名無しさんNGNG
漏れはLightReport使ってるからいらんぽ。
0552デフォルトの名無しさんNGNG
ClientSocketで2つ以上のサーバーに繋ぐことって不可なんですか?
0553デフォルトの名無しさんNGNG
HICON型で宣言すると「定数または型が必要です」のエラーが
出るのですが、対処法をご存知の方いましたら教えてください。
お願いします。
0554直リンNGNG
http://homepage.mac.com/yuuka20/
0555デフォルトの名無しさんNGNG
TFormを継承したクラスが三つあります。
TForm1=class(TForm)
TForm2=class(TForm)
TForm3=class(TForm)
そして、同時に使うのはに一つだけなので
var
FForm:TForm;
として、
case Value of
1:FForm:=TForm1.Create(Self);
2:FForm:=TForm2.Create(Self);
3:FForm:=TForm3.Create(Self);
end;
とやって使った場合、
FForm.Release;をしたときに、
それぞれのクラスでTFormに追加した手続きの分も解放されるんでしょうか?

0556デフォルトの名無しさんNGNG
手続きというのは、そもそもCreate時に動的に追加されるものではありません。
0557555φsNGNG
メンバ変数とかコンポーネントも大丈夫ですか?
TFormのデストラクタが呼ばれたら追加したもの全部リークしそうなイメージですが。
0558デフォルトの名無しさんNGNG
阿呆なこと言わないでください。
0559預言者NGNG
http://elife.fam.cx/mfg/






0560デフォルトの名無しさんNGNG
>>553
おそらくuses節にwindowsが宣言されていないだけと思われる。
0561デフォルトの名無しさんNGNG
>>557
クラス内部で生成したメモリ領域はそのクラス自体が解放する責任を持ちます。
よって外部から直接Createした領域がない限り、デストラクタが呼び出されると解放されると思っていいです。

コンポーネント側がちゃんとコーディングしてなかったら意味ないけどね(・∀・)
0562デフォルトの名無しさんNGNG
TShellTreeViewで、指定した拡張子だけ表示するようにできますか?
Delphiのバージョンは6です。
0563デフォルトの名無しさんNGNG
質問です。
最近Delphi6Personalから始めたのですが、いざファイルを保存しようとすると
「適切な識別子ではありません」と弾かれるのですが、
Delphiでファイルを保存するに当たってDelphi独自のファイル名に関する
ルールがあるのでしょうか?
0564デフォルトの名無しさんNGNG
すみません、エラーメッセージが出たとき
「ヘルプ」ボタン押したら原因がわかりました・・・・

スレ汚しすみません・・・
0565デフォルトの名無しさんNGNG
実行したらランタイムエラー105が出ました。
ヘルプを参照したらどうも入出力エラーのようなんですが、
肝心の解決方法がわかりません。
どなたかよろしくお願いします。
0566ANGNG
>>563
Delphiでは、ユニットファイルは、usesでソースに記述されるので
アルファベットと数字ぐらいしか使わないのが無難。
正確に、どこまでつかえるのかは、ヘルプで調べてみて。
0567デフォルトの名無しさんNGNG
このスレ良スレだね〜
0568デフォルトの名無しさんNGNG
>>562
procedure TForm1.ShellTreeView1AddFolder(Sender: TObject;
 AFolder: TShellFolder; var CanAdd: Boolean);
begin
 CanAdd := CompareText(ExtractFileExt(AFolder.PathName), '.lnk') <> 0;
end;
0569568NGNG
あ、これは指定した拡張子だけ表示しない方法だ。
表示するには「 = 0」にしてくれ。
0570デフォルトの名無しさんNGNG
やだよ
0571デフォルトの名無しさんNGNG
フリーウェアしか作らないんですけど、プロ版を買う価値ありますか?
0572Delフサギコ ◆A6VzDeLphI NGNG
           _________
   ∧,,∧   / InputBoxか
  ミ,,゚Д゚彡 <  InputQueryに相当する
   ミ つ旦)~~ \ API関数はありますか?
 @ミ   ミ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ サイズ チイサイノ ホスィ
0573 NGNG
>>571
1.「ある」
2.「無い」

好きな方を選らんでチョ。
0574デフォルトの名無しさんNGNG
>>571
あんた自身に価値がない。
0575Delフサギコ ◆A6VzDeLphI NGNG
   ∧,,∧   / しまった…
  ミ;゚Д゚彡 <  該当API関数
   ミ つ旦)~~ \ あったら名前教えてください。
0576デフォルトの名無しさんNGNG
.VBS使え
0577デフォルトの名無しさんNGNG
>>572 そういう時こそ、DialogBox系を使うのがよいでしょ
0578デフォルトの名無しさんNGNG
>>574
おまえもね
0579デフォルトの名無しさんNGNG
subitemも編集可能なListViewコンポって無いでしょうか
AdvListViewはpersonalだとインストール出来ないみたいで…
pro買えというのは無しd
0580デフォルトの名無しさんNGNG
>>571
もちろん「ある」ぞ。VCLソースが付いてるか否かで雲泥の差。
DelphiはProfessionalが基本で、Personalは機能限定版と考えた方がよい。
0581562NGNG
>>568
ありがとうございました!
0582デフォルトの名無しさんNGNG
>>577の補足
ttp://halbow.cool.ne.jp/Chap24.html
0583デフォルトの名無しさんNGNG
>>582
それ、API じゃないじゃん。
ダイアログボックスに Edit コントロールをはっつけているだけじゃないか。
0584デフォルトの名無しさんNGNG
>>575
Delフサギコ は「超初心者」の枠には入らないと思うんだが。

どのスレで質問してもつきあってあげるからさ。
0585デフォルトの名無しさんNGNG
>>571
>580のいうことはあまりあてにならないよ。
ビデオデッキでビデオを再生するには
ビデオデッキの内部構造を
完璧に把握しておかなければならない
とか逝ってる基地外の原理主義者だから。

で、Proが必要になるのは自分でいくつものプロジェクトを作って
その中でたくさんコンポーネントやクラスを設計して
それらをプロジェクト間で使いまわすくらいのことを
やりだすとProのありがたみがわかってくるよ。

あとはDBやコンポーネントやソースの編集機能の違いがあるから
オフィシャルサイトで差を確認してみるといいよ。
0586デフォルトの名無しさんNGNG
コンポーネントのプロバティのTagってどういう使い道があるんでしょ?
0587デフォルトの名無しさんNGNG
>>586
意味が無いから何でも使えるのだす。
64ビットが普通になれば盲腸になるかもしれないな。
0588デフォルトの名無しさんNGNG
ふむ・・・変数みたいな使い方すればいいのかな?
ヘルプとかあさってみます。どうも!
0589デフォルトの名無しさんNGNG
代入できるものであれば何でもあり。
Button1.Tag := GetTickCount; // 時間を覚えておく
TWinControl(Button1.Tag).Visible := False; // ボタンに関連付けられたコンポーネントを隠す

>>587
オブジェクトの関連付けは結構便利。
多用すると汚くてわかりづらくなっちゃうけど。
0590587NGNG
もひとつ質問です。
TComponent(Sender).Tag
って、今カーソルが乗ってるコンピーネントのタグ、ってことですか?
0591587NGNG
ピ→ポ
0592デフォルトの名無しさんNGNG
ピーポくん
0593デフォルトの名無しさんNGNG
>>590
そう。
カーソルというかそのイベントを発生させる原因となったコンポーネントだね。
0594デフォルトの名無しさんNGNG
俺には>>585の方が基地外に見えるんだけど。
0595デフォルトの名無しさんNGNG
proはクラス補完とコードエクスプローラだけでも充分使える
0596587NGNG
>>593
なるほど。
ちょっとラベルで試してみました。便利。
うまく使えばソースの簡略化に繋がるかも。
0597デフォルトの名無しさんNGNG
Tagを使いまくってるソースは・・・
0598デフォルトの名無しさんNGNG
>>597
禿道。
0599デフォルトの名無しさんNGNG
XXXを使いまくってるソースは・・・

禿道。



XXXに好きな文字を入れてコピペしまくりましょう。
0600デフォルトの名無しさんNGNG
あれ?これのTagって何に使ってたっけ?とか、
あれ?これのTagって既に何かに使ってたっけ?てなりそうだから、
俺は使ってない。
0601デフォルトの名無しさんNGNG
           ∧∧
           /⌒ヽ)
          i三 ∪  Delphiの限界が
          〜三 |    垣間見えますた
           (/~∪
         三三
       三三
     三三
   三三
三三
0602Delフサギコ ◆A6VzDeLphI NGNG
  ∧,,∧  さんくーす。
 ミ,,゚Д゚彡 Halbowタンとこに
 ミつ日(ミ  いい感じのがあったんですね。
       調べてみます。

超初心者以外向け質問は、
"ミ,,゚Д゚彡フサギコとモナーのDelphi質問相談談話室"
最近は、こっちなのかしら・・
0603デフォルトの名無しさんNGNG
Pagecontrolのタブって消せますか?

用途ごとにパネルの内容を変えたいのでPagecontrolを使ってみたのですが、
もっとスマートな方法ってあるでしょうか
0604デフォルトの名無しさんNGNG
各ページのTabVisibleをFalseにして、PageControlのActivePageIndexで
ページを切り替えれば良さそう。
0605デフォルトの名無しさんNGNG
>>604
(・∀・)デキター!!
Tabvisibleの存在を見落としてました。即レス感謝です!
0606デフォルトの名無しさんNGNG
>>585
おまえ、何言ってんだ?何が原理主義者だ。ばっかだねぇ。
ありがたみが分かる、って何だ?初心者だから身分相応のパッケージ買えってことか?
初心者だからこそVCLソースが必要なんだよ。はじめから当然のようにソースが見られるって素晴らしいだろ?
必要・不要じゃない。そういうことが当然に可能になっている、ってことが重要なわけ。それが「本物」なんだよ。
0607585NGNG
か〜やっぱり出てきたかw基地外原理主義者君www
たしかにVCLソースは便利かも知れないけど初心者じゃVCLソース見ても何も分からないのですよww
利益にならないものに高い金を払うなんて愚の骨頂ですw
0608デフォルトの名無しさんNGNG
>>607は偽者
0609デフォルトの名無しさんNGNG
マジレス。まずはPersonalやれ。それで物足りなければProを買う。
0610デフォルトの名無しさんNGNG
PersonalにはVCLソースなぞついていないんだから
初心者こそPro買え。
Personalすすめる奴は素人。
0611デフォルトの名無しさんNGNG
Personal買えって言ってる奴は安い楽器から始めろってのと同じだ。
0612デフォルトの名無しさんNGNG
Delphiはタダなのが魅力だと思っていたのに・・・。
ボーランドのエサだったぽ。
0613デフォルトの名無しさんNGNG
>>611
確かにそうといえる。
VCLソース読まないとまともなデバッグができない。
こんなクソソース作るなといいつつ、次のバージョンアップに
おびえる今日この頃.
0614デフォルトの名無しさんNGNG
Iniファイルに書き出す時に
改行を含んでいる場合、
ReadStringで読むと改行以前の部分しか
読みとれなくて困っています。
何か解決策はありますか?
0615デフォルトの名無しさんNGNG
TStringList.CommaTextに変換するとか
0616デフォルトの名無しさんNGNG
>>614
使用禁止できる文字があるならば(たとえばタブ文字禁止とか)、
改行コードをその文字に置換して書き出し、読むときに置換し直せば大丈夫。

こんな感じ
Ini.WriteString('Section', 'Ident', StringReplace(S, #13#10, #9, [rfReplaceAll]));
S := StringReplace(Ini.ReadString('Section', 'Ident', ''), #9, #13#10, [rfReplaceAll]);
0617614NGNG
>>615-616
素早いレスありがとうございます。
StringReplaceは知りませんでした。
便利ですねこれ。
無事できました。
ありがとうございました。
0618ミ,,゚Д゚彡 ◆A6VzDeLphI NGNG
Escプシーケンスの変換なぞ塚ってみてはいかがでしょうか。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1047738536
0619デフォルトの名無しさんNGNG
エスケープシーケンスと制御文字のエスケープって別物じゃないか?
ついでにTo/FromEscapeSequenceも変な名前
0620ミ,,゚Д゚彡 ◆A6VzDeLphI NGNG
、、そうなんすか?、、、
あ、エンコードとか、デコードとすればよかったんですね。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1023549124&rm=100

こっちどうぞ
0621デフォルトの名無しさんNGNG
jpeg2000を扱えるdllとか、ありますかね?
0622デフォルトの名無しさんNGNG
>>621
ttp://www.afis.to/~almclock/contents/software/download.html
0623デフォルトの名無しさんNGNG
パレットの扱いが容易とのことでTNkDIBを使い始めましたが躓いてます。
TNkDIBを扱ったことのある方にお尋ねしたいのですが、

・設計時にimage1に[tes.bmp]を image2に[tes2.dib]を読み込んである

・image1には
 image1.Canvas.TextOut(20, 50, '■');  でとりあえず描けた

・image2には 見よう見まねで
var Canvas: TNkDIBCanvas;
begin
Canvas := TNkDIBCanvas.Create(image2.picture.graphic as tnkdib);
Canvas.TextOut(20, 50, '●');
Canvas.Free;
end; とすることでなんとか描けた

よく解ってないのですが、何か描く度にこのcreate、freeって必要なんでしょうか。
一手間増えて処理が落ちそうで…image1のように単純に描ければよいのですが。
0624デフォルトの名無しさんNGNG
>躓いてます。
が読めなくてつまずいてます
0625世界一優しいプログラマーNGNG
>>624
「つまずいてます」と読むんですよ
0626626NGNG
Delphi を使い始めました。

"ファイル/新規作成/その他" で "コンポーネント" を選び、TCustomPanel を継承して
コンポーネントを作ってみています。

継承したパネル上に、GUI 部品をビジュアルに配置したりできないのでしょうか?
今は、コード内で位置を指定しています……・。
0627デフォルトの名無しさんNGNG
>>623
描く頻度が少ないならそれでいいでしょう。
処理が落ちそうと心配なら

with TNkDIBCanvas.Create(image2.picture.graphic as tnkdib) do try
 TextOut(20, 50, '●');
finally Free; end;
と一時オブジェクトをtryで受けて finally でfreeするコーディングにすれば大丈夫でしょう。
無名なので、どこかに忘れたりする心配がありませんから

もし、もっと格好良く書きたいなら、 TImageのCanvasをTNkDIBCanvasに置き換えたコンポーネントを作ればどうかと思います
0628デフォルトの名無しさんNGNG
>>626
さて、ビジュアルな設計という事は

1、そのTCustomPanel継承コンポの設計上で行いたい
   -->それは無理です。TFrameを使う方がいいでしょう。

2、継承コンポを普通のPanelと同じように使いたい。
   -->可能です。RegisterComponentでIDEに登録すればよい
0629デフォルトの名無しさんNGNG
>>626
そういう用途にはフレームかな?
0630デフォルトの名無しさんNGNG
ひとつ質問させてください。
ぱらぱらマンガみたいなのを作ろうと思ってます。
そこで、
for i:=0 to 150 do
begin
   TImage1.Canvas.Draw(0,0,PageBmp[i]);
   Wait(33);
end;

このようにやって見たのですが、
1枚目を描画したあと、約5秒止まったあといきなり最後の
イメージが描画されてしまいます。

Waitの使い方が悪いのだとおもうのですが、
Timerを使わずやってみたいので、うまく全てが描画されるようご指導いただけないでしょうか。
お願いいたします。
0631630NGNG
すいません。全然違うことを書いていました。
Wait(33)ではなくSleep(33)で実行しています。

素直にコピーペーストすればよかったのです。申し訳ありません。
0632デフォルトの名無しさんNGNG
すいません。無料版ってどこにあるんですか?
ttp://www.borland.com/index.html
ここにはなかったんですが・・
0633デフォルトの名無しさんNGNG
>>632
http://www.borland.co.jp/delphi/personal/
0634デフォルトの名無しさんNGNG
>>630
試しに "Image1. "を消してみたらどう? つまり Canvas.Drawとフォームに描いてみる
0635デフォルトの名無しさんNGNG
わざわざ英語版がほしいのかな?
ちゃんと探せば見つかると思う。

Borland Delphi 6 Personal ダウンロード
ttp://www.borland.co.jp/delphi/personal/
0636デフォルトの名無しさんNGNG
>>630
Refreshを入れる
0637632NGNG
>>633.>>635
ありがとうございます。
危うくver.7を買うところですた。

0638630NGNG
>>634
ありがとうございます。Image1を消してみたらできました。
理由が分からないところがひっかかりますが、なんとか見られる姿になりました。
0639デフォルトの名無しさんNGNG
>>627
あれこれ試してみたところ、大きなサイズの画像にガンガン
Canvasのcreateをしても特に処理落ちがなかったので
とりあえずcreate-freeのセットをおまじないのようにくっつけて使うことにしてみます。

コンポーネントをいじるなんてまだまだサパーリです…レスありがとうございました。
0640デフォルトの名無しさんNGNG
激しく初歩的だろう質問で申し訳ないのですが。

 type
 TForm1 = class(TForm)
 Edit1: TEdit;

Edit1 の可視性は何になるのでしょう?
0641デフォルトの名無しさんNGNG
>>640
published
ま、publicだと思っていても問題ないけど
0642640NGNG
>>641
ありがとうございます。

とすると、外からアクセスできてしまいますが、今、単純に Edit1 を protected/private に
移動してみたら、例外が出てしまいました。

こういった制限はどうやってかけたら良いのでしょう?
0643デフォルトの名無しさんNGNG
>>642
フォームデザイナから配置したコントロールは
publishedでなければならないので途中で移動しちゃだめ。
どうしてもprivate/protectedにしたければ自分でEdit1を宣言して
FormCreateかどこかでインスタンスを生成する必要がある。
Edit1 := TEdit.Create(Self);
Edit.Parent := Self;
...
0644デフォルトの名無しさんNGNG
そう、フォームファイルをテキストで見てみれば判ると思うけど
あの情報から、Edit1を作り直す為には、 Edit1という名前から
フォームのメンバが見つけられなければいけない。
publishedでなければ、それは無理。

一方 C# とかでは デザイナは直接コードを書き換えてしまう。
つまり >>643 のような手作業するのと同じ事をやってくれる。
0645デフォルトの名無しさんNGNG
ScrollBarをくっつけたらサムがチカチカ(フォーカス時)してるんですけど
これを点滅させないようにするにはどうすればいいんでしょう
0646デフォルトの名無しさんNGNG
>645
たぶんTabStopプロパティをFalse
0647デフォルトの名無しさんNGNG
Dynamoの曲リストのようなものを作りたいんですが、
どのコンポーネントを使えば良いですか?
0648デフォルトの名無しさんNGNG
>>644
>一方 C# とかでは 
ひとこと多いね。IDE と言語処理系を混ぜないでね。
処理系がコードを書き換えるのは .DFM / フォームファイルが存在しないからであることを
書いておかないとフェアではないし、JBuilder / Java も C#/VS と同じ方法だね。

0649デフォルトの名無しさんNGNG
フェアって・・・
どうしてそう優劣を付けたがるかね。
まともに比較したら瞬殺されちゃうんだから
その辺はあいまいにしておくのが上策。
0650デフォルトの名無しさんNGNG
>>646
ナルホド!! これは盲点でした。ありがとです
0651デフォルトの名無しさんNGNG
ねむくなるスレだ
0652デフォルトの名無しさんNGNG
プログラミング自体が殆どはじめてなんですが、
独学で学べる良い本ないですか?

技術評論社の「はじめてのDelphi」っていうのが良いみたい
なんですが、もう絶版になってるみたいで・・
0653デフォルトの名無しさんNGNG
とりあえず・・・googleであらかたのことは検索できる・・・と思う

基本的なことなら初心者サイト回れば十分じゃない?
0654デフォルトの名無しさんNGNG
本には本のよさもあるわけで(寝床で横になりながら読めるとか)
「基礎からのDelphi6」あたりがいいんでないの?
0655デフォルトの名無しさんNGNG
>>653&>>654
webでの勉強は少し慣れてからにしたいと思っいるので、
明日にでも本屋で「基礎からのDelphi6」を見てみたいと
思います。

即レス、ありがとうございます。
0656 NGNG
オレ的には「基礎的なこと」は全てネットから。
高度なことは本から。
って形がいいと思うんだが…。
「中級者向け」って本が無いんだよなぁ…。オレが中級かどうかはさておいて。
「初めての」とか「基礎から」とかはあるのに…。
ちょっとつっこんだネタだといきなり高くて分厚い本になる。しかも売ってない(泣)
0657デフォルトの名無しさんNGNG
>>655
書名書き間違えたみたい
「基礎からわかるDelphi6」
ね
0658デフォルトの名無しさんNGNG
はじめてのObject Pascalも中々いいですよ。
アプリ作って覚える形式じゃなくてちょっとした文法書みたいな感じですが。
0659デフォルトの名無しさんNGNG
はじめてのVBを世mr
0660デフォルトの名無しさんNGNG
Object Pascal 言語ガイド
のヘルプもいいよ!
0661デフォルトの名無しさんNGNG
API関係の本を探してます。
Delphi3用に作られたAPIやGraphicAPIの分厚くて高価な本がありますが、
Delphi5以降のユーザーが買っても問題なく利用できるのでしょうか?
0662デフォルトの名無しさんNGNG
>>661
問題は別に無いと思うけど、本である以上出版以降に追加されたAPIはやっぱり載って無いと思うので
C言語を関数宣言だけでも読めるようにしてMSのPlatform SDKを直にあたった方がいいんじゃない?
0663デフォルトの名無しさんNGNG
というか C は普通に読めないとダメでしょ。 C と Delphiの対照ページでも見て 比較してみたらどう?

http://hp.vector.co.jp/authors/VA014436/prg_memo/c/c_d.html
http://www.tensyo.com/urame/c2delphi.txt
0664デフォルトの名無しさんNGNG
Delphi7製品版Personalのヘルプのテキスト検索機能が使えないのは仕様ですか?
トライアル版では使えたのですが、ちょっと不便・・・
0665デフォルトの名無しさんNGNG
>>664
Win98 で使っているのかな?
0666デフォルトの名無しさんNGNG
>>662-663
有難う御座います。そのあたりを弄ってみます。
0667デフォルトの名無しさんNGNG
OnCreateでCloseしても、アプリケーションが終了しないのですがどうすればいいのでしょうか
0668デフォルトの名無しさんNGNG
>>667
具体的に何をしたいのですか?
0669デフォルトの名無しさんNGNG
OnCreateでフラグ立てて後でチェックしてCloseするか
.dprファイルでApplication.Runの直前でアプリを終了するかどうかをチェックするとか。
0670デフォルトの名無しさんNGNG
Application.Terminate 呼ぶ
0671デフォルトの名無しさんNGNG
もし、起動時のパラメータや多重起動防止で即座にアプリを終了させたいのなら
メインフォームのOnCreateでなく .DPR でやる方がいいよ。 
0672664NGNG
>>665
いえ、XP Homeです。

具体的に症状を書きます。
ヘルプを表示して、テキスト検索のタブに切り替えると
"検索のセットアップウィザード"ってのが出るんですが、
そのウィザード終了時の完了ボタンを押すとエラーが起きてしまいます。
エラーが起きる前まではトライアル版と全く一緒です。

普通はPersonal版でもトライアルのようにテキスト検索も使えるのでしょうか?
0673デフォルトの名無しさんNGNG
普通は使える。
0674デフォルトの名無しさんNGNG
XPだと不具合があるという話は何度か見かけたけど
(俺のPCでは問題なし、ハードの古さが幸いしてるかもしれない)
0675664NGNG
>>673-674
なるほど、普通は使えるのですか。
では取り敢えず再インストールなり色々と試してみます。

レスありがとうございました。
0676デフォルトの名無しさんNGNG
Delphiのような時代遅れでマイナーな言語使うのやめてC#でも勉強したほうが
役に立つよ。
Delphi勉強しても就職にも仕事にも役に立たないは金にはならないは
時代遅れだわで何にもメリットないよ。
マジレスだけど。
騙されたと思ってC#してみ。
Java覚える必要ないしVBのような簡単な事も出来るしもう
どこにもDelphiの出番はないよ。

0677_NGNG
http://homepage.mac.com/hiroyuki44/hankaku06.html
0678デフォルトの名無しさんNGNG
C#勉強すればJav勉強する必要ないし、
Delphi勉強する必要もないし
言語に費やす時間が大幅に減るよ。
その時間を有効活用したほうが人生有意義に過ごせるよ。
余った時間でCやスクリプト言語勉強するもよし、C++勉強するもよし
家族や彼女と費やす時間を増やすもよしでさ。
0679デフォルトの名無しさんNGNG
普通はPascal、C, C++, BASIC, Javaくらい使える。
ついでにPerlやRubyのようなスクリプト言語は道具としてつかえるので
覚えておいた方がいい。
実装によるデザインパターンの違い等は慣れがいるだろうけどね。
0680デフォルトの名無しさんNGNG
>>679
それはすごいね。
ここはCも分からないような初心者が集まるスレだからね。
これから言語始める人には余計な苦労するよりも
もっと有意義に時間を使ったほうがいいと思ってマジレスしたまでさ。
0681デフォルトの名無しさんNGNG
実際のところ文献は色々な言語で書かれてるわけで
せめて読めるくらいでないと支障があるよね
で、複数の言語が使えるようになると
初めて見る言語でもおおよその意味は分かるようになる

漏れも679さんの意見には賛成だな
(FORTRANあたりも読めたほうがいいね)
0682デフォルトの名無しさんNGNG
そうだね。cygwin入れれば FORTRANまではフリーだ。
出来ればCOBOLも読めた方がいいけど、これは畳水練でもいいか。

でも、もし学生で有意義に時間を使いたいならさ、フリーな時間でプログラミングなんて一切止めた方がいい。
一番いいのは、図書館で毎日2〜5冊借りて乱読することだ。英語の本も2回に一度は1冊入れるようにね。
読解力も上がるし、表現力も上がる。視野も広がる。これらが人生にも仕事にも一番大事な事だ。
0683デフォルトの名無しさんNGNG
人生相談スレ?
0684デフォルトの名無しさんNGNG
Pascal系列を覚えておくとALGOLなんかも読めてよし。

つーか何かの言語覚えたら他の言語も普通に読めるようになれるよ。
BASICはまあ別だけど。
0685デフォルトの名無しさんNGNG
はたして ALGOL を読む機会があるだろうか……
0686デフォルトの名無しさんNGNG
世にネットでの釣りを趣味とする者がいると聞くが
0687デフォルトの名無しさんNGNG
Delphi 2.0J DesktopにはWinSightは入ってないのでしょうか?
CD-ROMの中をファイル検索したんですが、WS32.EXE、WS32.EX_は
発見できませんでした。
0688デフォルトの名無しさんNGNG
>>687
http://www.borland.co.jp/news/del2j.html

残念だけどついてないという事だね
0689デフォルトの名無しさんNGNG
Modulaもいいねえ。
0690687NGNG
>>688
素早い回答ありがとうございます。
無料の6 Personalも落としてみたんですが、入ってませんでした。
ProfessionalかEnterprise版を買わないと
WinSightは入手できないんでしょうか?
0691デフォルトの名無しさんNGNG
SPY++を使え
0692デフォルトの名無しさんNGNG
ダイアログ周りで質問です

ShowModal()で表示したフォーム(ダイアログA)上で
MessageDlg(〜略〜, [mbOK], 0)でダイアログBを表示したとき、
ダイアログBからmrOKが返されると、ダイアログAの処理をぶっ飛ばして
BもAも閉じてしまうんですが、BでOKされてもAが残るにはどうしたら良いんですか?

ソースコードにするとこんな感じ
■Unit1.pas
 Form2.ShowModal(); //ダイアログAを表示
■Unit2.pas
 if なんか間違ってたら then
 begin
  MessageDlg('ERROR', mtWarning, [mbOK], 0); //ダイアログBを表示
  exit; //←上でOK押されるとこいつ無視される
 end;
 { もちろんここも無視される・・・ }
0693デフォルトの名無しさんNGNG
>>690
PlatformSDKのSPY使え('A`)
0694687NGNG
>>691 >>693
SPYを入手しました。
ありがとうございました。
0695デフォルトの名無しさんNGNG
>>693
690じゃないけど
上の方のレスにも出てたけどPlatformSDKってどれを入れればいいのですか?
ググってMSのPlatformSDKのHPに行ったんだけどCORE SDKって奴ですか?
それと日本語版って無いんでしょうか?
0696デフォルトの名無しさんNGNG
>>692
そんな昔のDOSツールじゃないんだから モーダルダイアログからモーダルダイアログ呼ぶ設計はちょっとなあ
0697デフォルトの名無しさんNGNG
(´-`).oO(メッセージぐらいだすだろ・・・
0698デフォルトの名無しさんNGNG
692の再現できないのは漏れだけだろうか
0699デフォルトの名無しさんNGNG
>>698
あーすいません環境書いてなかった
WinXP+Delphi6Personalです
Form2は BorderStyle:=bsDialog; FormStyle:=fsStayOnTop; くらいしかいじってなくて
Input:TEditとOKボタン(ModalResult:=mrOK;)があって
Input.Textが正の数を表す文字列じゃなかったら
MessageDlg('正の数じゃないとダメよ', mtWarning, [mbOK], 0); してます
以下該当部分のソース(全角インデントなのでコピペじゃ動きません)

procedure TForm2.btnOKClick(Sender: TObject);
var
 InputBuf: integer;
begin
 //Check Input
 if Input.Modified then
 begin
  InputBuf := StrToIntDef(Input.Text, -1);
  if (InputBuf < 0) then
  begin
   MessageDlg('有効な値ではありません', mtWarning, [mbOK], 0);
   Input.SetFocus();
   exit;
  end;
 end;
 { 事後処理略 }
 Form2.Hide();
end;
0700デフォルトの名無しさんNGNG
WEBでよくみかける「マウスが乗るとイメージが切り替わる」ボタン、
ググったら、ちょうど↓で出てるようなことをしたいんですけど
ttp://www.users.gr.jp/ml/archive/delphi/61178.asp

ここでの回答にあったTSpeedButtonを使ってみましたが
ロールオーバー時の切り替えが解りません(フチが浮き上がるだけ)。
押下時のイメージ切り替えは出来たのですが、
マウスが乗ってる時のイメージ切り替えはどのようにすればよいのでしょうか。
バージョンは6 Personalです。
0701デフォルトの名無しさんNGNG
自分でマウスポインタの
入出力を監視して自分で書くしかないよ。
がんばってください。
0702デフォルトの名無しさんNGNG
>>699
MessageDlgの直後に、ModalResult := mrNone; を置く。
0703デフォルトの名無しさんNGNG
>>700
そのボタンはツールバーを作るのに使ってるのですか?それだとTToolBarで可能ですよ。
ImagesとHotImagesを指定してFlatをTrueにするだけです。
0704デフォルトの名無しさんNGNG
>>702
解決しました ありがとう
そういう仕組みだったんですね・・・
0705デフォルトの名無しさんNGNG
指定したプログラムの再起動をするにはどうしたらいいのでしょうか?
0706デフォルトの名無しさんNGNG
>>701
うーん、やっぱりそうでしたか。基本機能で可能ならそれで済ませたかったのですが。

>>703
独立したボタンでやりたいので…
でも、ToolBarのボタンでそうした処理ができるとは勉強になりました。

結局、LMD ToolsをインストールしてTLMDMMButtonを使ったところ
思っていたものと同様の動作が可能でした。おとなしくこれ使うことにします。
レスありがとうございました。
0707デフォルトの名無しさんNGNG
procedure TApplication.CreateForm(InstanceClass: TComponentClass; var Reference);
var
Instance: TComponent;
begin
Instance := TComponent(InstanceClass.NewInstance);
TComponent(Reference) := Instance;

このプログラムはどう読めばいいのでしょうか?
0708デフォルトの名無しさんNGNG
>>707
上から順に
左から右へ
0709デフォルトの名無しさんNGNG
>>707
気にするな。いつか分かるときが来る。それまではDelphiに任せておけ。
0710デフォルトの名無しさんNGNG
>>685
学術書なんかでは結構ALGOL見かけるよ

>>707
InstanceClassで指定した型のインスタンスを生成して引数Referenceに参照渡し
0711デフォルトの名無しさんNGNG
00:00age
0712デフォルトの名無しさんNGNG
var a as array of integar

これだけでもCよりはバカプログラマにとっては楽だな。
0713デフォルトの名無しさんNGNG
asよりisの方がいいな。
0714デフォルトの名無しさんNGNG
>>713
すまん、あなたがコンパイル段階で指摘してくれた。
CとかC++では無理だな。
0715デフォルトの名無しさんNGNG
A:Pointer;
Ptr(DWord(A)+1)
がめんどい。PByteArray使えばいいんだけど、もっとスマートな方法ないものか。
0716デフォルトの名無しさんNGNG
715
>>
INC()
良いし、デルファイをコンパイルした結果を見ると、
すべて後始末やっているはず。インクリメントは、
関数読んでない。マシン語を実行しているだけ。

0717デフォルトの名無しさんNGNG
プレフィックスとかプリフィクスとか呼ばれるもの無いのか?
0718デフォルトの名無しさんNGNG
123.45F
0719718NGNG
あ、これは差フィックスだ
0720デフォルトの名無しさんNGNG
律儀に、
a: array of basic Type;
をやると
setof関数で割り当てやると、自動的に
マネーじ度プログラムなのが良いね。
0721デフォルトの名無しさんNGNG
基地害がいるの?
0722デフォルトの名無しさんNGNG
>>721
うん、>>721に基地外がいるの
0723デフォルトの名無しさんNGNG
アカデミックって、通常のバージョンとの違いはあるんでしょうか?
0724デフォルトの名無しさんNGNG
値段が違う
0725デフォルトの名無しさんNGNG
>>724
ううう、機能のはなしです。
0726デフォルトの名無しさんNGNG
商用開発が出来ない。
0727ななしへたぐらま ◆XcB18Bks.Y NGNG
>>459
内部処理はデータモジュールなどの他のユニットで行うようにすれば
フォームの作り直しが楽になります.

>>585
私も無理してプロ版を買うことはないと思います.
自分でコンポーネントを作ったりとかある程度高度なことを始めると
VCLのソースコードがほしくなりますし実際役に立っています.

プログラミング技術者でDelphiは初めてという場合は
中の仕組みを見たくなるかも知れませんが
それなら『中村の里』に行って来た方が良さそうな気がします.
0728723NGNG
>>726
おお、ありがとう。
0729デフォルトの名無しさんNGNG
>>723
学校か学生しか買えない
0730デフォルトの名無しさんNGNG
どなたかフォントにスムージング(アンチエイリアス?)を掛ける方法をご存知ないでしょうか・・
0731デフォルトの名無しさんNGNG
メモリ上のビットマップ(TBitmap.Create)に2倍のサイズで作成して
それを縮小するときに4ドットの黒点の数を数える
例えば
■□ なら 2
□■
この結果を g/4 を重みとする。

それをR,G,B各値にかけて按分する。
下絵の dR,dG,dB 描く色を uR,rG,uB としたら
例えば赤は ( dR*(4-g)+uR*g)/4 と求めるわけだ
0732デフォルトの名無しさんNGNG
Delphiのアカデミって作ったのはフリーソフトといえども配布できないっていう制限がなかったっけ。
前揉めてたような。
0733デフォルトの名無しさんNGNG
kylixっておまけソフトとなんですか?
0734デフォルトの名無しさんNGNG
>>730
GetGlyphOutline
http://home.att.ne.jp/yellow/hide_n/programming/tips08.html
0735730NGNG
>>731
>>734
さんくす

で、GetGlyphOutlineを調べてたらこんなの見つけた↓

SystemParametersInfo( SPI_SETFONTSMOOTHING, 1, Nil, 0 );

これでもスムージングできたんだけど、これだとなんか問題あるのかな?
0736730NGNG
・・・と思ったらTextOutでTBitmapにスムージング描画できんかった・・
スマソ
0737デフォルトの名無しさんNGNG
OnKeyDown で

 CTrl+F

を押したとき例えばShowmessage('押した') ;を実行するには
どうしたらいいのでしょうか?

0738はじめたばっかNGNG
>>732
シェアがだめなんじゃなかったけ?

プログラミングって、本に書いてある通りのことをやっていけば、自然にアプリケーションとかを作れるようになるのかな?
どのコマンドをどのように使えばいいのかが、まだ良く分かんないんだけど。
0739730NGNG
SPI_SETFONTSMOOTHINGはフォントサイズが小さいと
スムージングが上手く行われないらしい・・

>>737
    if (Shift=[ssCtrl]) and (Key=67) then
        Showmessage('押した') ;
0740デフォルトの名無しさんNGNG
>>737
集合演算子
↓
if (Key = Ord('F')) and ssCtrl in Shift then ShowMessage('押した');
0741730NGNG
Key=70だな
連投すまそ
0742737NGNG
ありがと
0743デフォルトの名無しさんNGNG
あちゃ、カッコ忘れた
 if (Key = Ord('F')) and (ssCtrl in Shift) then ShowMessage('押した');
>>739は可読性が低いという意味で悪い例
0744737NGNG
このスレは親切すぎるぜーーーー!
0745デフォルトの名無しさんNGNG
>>729,732,738
ありがとうございます。単純に安いだけじゃなく
色々制約があったんですね。
0746デフォルトの名無しさんNGNG
TComboBoxとTComboBoxExは、
Exの方がパワーアップしたように見せかけて
実はExの方がサイズ小さい。
0747デフォルトの名無しさんNGNG
dbExpressのパラメタクエリーサンプルありませんか?

なんだか、TQuery形式では動作してくれないような。
0748デフォルトの名無しさんNGNG
どうしてDelphiやBCBの入門書籍は発行されないのですか?
とくにBCBはひどすぎます。大変いい処理系だとおもうのに理解できません。
値段が高すぎて購入できないほどでもないし・・・・。
だれか業界の状況をしっているひと、教えてください。
0749デフォルトの名無しさんNGNG
>>748
DelphiはともかくBCBは入門書いらんと思う。
DelとC++の入門書があれば事足りるわけだし。
0750デフォルトの名無しさんNGNG
需要が無い(と出版社が思っている)からです
0751デフォルトの名無しさんNGNG
>>748
VBやVCの場合は、これで作れ! と本人の意思に関係なく強制される事が多いわけです。
そうなると、入門書見てそれに書いてある通りに操作してでも、なんとか動かしたいという
要求が強くなり、需要が生まれます。

道具を自分で選ぶ事が出来る人は、入門書が無くとも専門書からどう学んでいけば
良いか当然判っていますから、入門書の需要は少ない事になります。

需要が無ければこの出版不況の時代では供給は生まれません。
良書でも、値段が廉く利幅が少ないと、十分な数が売れなくなれば再販ルートに乗せ
られず、どんどん廃刊になるのが現実なのです。

Delphi/BCBを使いこなす為には、先に、専門書とどう付き合うかの訓練が必要かもしれませんね。
0752デフォルトの名無しさんNGNG
1行で書けることを何で長文にしたがるのですか?
0753デフォルトの名無しさんNGNG
>>752
お前にも分かるように丁寧に書いてくれてんだと思うよ
0754デフォルトの名無しさんNGNG
DelphiXってDelphi6じゃ絶対に使えないんでしょうか?
0755デフォルトの名無しさんNGNG
>>754
こっちの方がいいよ
http://www-fu.magma.ne.jp/~hayase/dddd/
0756デフォルトの名無しさんNGNG
>>755
それ使ってみたんだけど、インストールしてサンプルを実行しても、

#00021 | Direct3DDeviceオブジェクトの生成を行います
#00022 | Direct3DDeviceオブジェクトの生成に失敗しました(Error Code = D3DERR_NOTAVAILABLE)
#00023 |
#00024 | ■■■お別れの時がやってまいりました■■■
#00025 | DGCaradオブジェクトの解放に伴い、全ての関連オブジェクトを解放します

とか出て動いてくれないのです。。。
漏れのヘボPCでは動かないんじゃなかろうか。。
0757デフォルトの名無しさんNGNG
>ヘボPC
DX9入ってんの?
0758デフォルトの名無しさんNGNG
>>757
DirectX9aは入ってるんだけどなぁ。。。
ついでに言うと、
http://www-fu.magma.ne.jp/~hayase/dddd/works.html
このゲームは動くんだよ。。どうしてだろ?

DirectXの診断ツールに拠れば
「ディスプレイ ドライバがサポートしていないため、
 ハードウェア アクセラレータを使った Direct3D 9+ は利用できません。
 ハードウェアの製造元から新しいドライバを入手できるかもしれません。」
とのことなので、漏れのPCは多分駄目なほうのやつなんだろうな。
0759デフォルトの名無しさんNGNG
(;´д`)Delphi5ってどこに行けば買えるの?
0760デフォルトの名無しさんNGNG
ちょっと探してみたけど無いね・・・
0761デフォルトの名無しさんNGNG
>>759
ヤフオクで探してみては?
0762デフォルトの名無しさんNGNG
情報試験受けるのですが
デルファイとC++どっちがいいでしょう?
C++はデルファイの会社のから無料のコンパイラーで
デルファイは試用版です。
0763デフォルトの名無しさんNGNG
全画面表示について質問なのですが

//全画面表示へ変更
Form1.BorderStyle := bsNone;
Form1.WindowState := wsMaximized;

で全画面表示にフォームを変更させたあとそのままプログラムを終了させると
Windows2000では異常ないのですが、Windows98だとタスクバーに
タスクのようなもの(クリックすると消えます)が残ってしまいます
なにか解決方法はないでしょうか?
元のウィンドウ表示に戻してからプログラムを終了させる以外の方法で教えてください。
0764デフォルトの名無しさんNGNG
BorlandのDelphiのTipsのページにその対策について書いてあった気がする
0765デフォルトの名無しさんNGNG
>>763
Win9x のタスクバーのバグ。BorderStyle の方が問題だったんじゃないかな?
アプリ起動時と終了時で Windows Style が変更されていると、アプリケーションを
識別できなくなるため、ボタンが残る。
0766デフォルトの名無しさんNGNG
>>763
元のウィンドウ表示に戻してからプログラムを終了させる。
これに何か問題あるのか?
0767ANGNG
>>754
一部ソースを書き換えることで一応使える。
そのやり方も、DelphiXのBBSに書いてあった……のだが、BBSが落ちてて見れないっぽい。
どこかに残ってないのかな…?
0768デフォルトの名無しさんNGNG
delとBCBのどちらかで神と呼ばれるレベルまで到達したいのですが、
どちらが到達しやすいでしょうか?

当方、C言語の多少とPascalの多少を知っているのみです。
0769デフォルトの名無しさんNGNG
神は言語を選ばず
0770デフォルトの名無しさんNGNG
>>768
どちらもやることをお勧めする。
BCBはPascalが読めないとライブラリ理解できないし、
DelphiもC/C++が読めないと各種SDKを利用する時に困る。

どちらのプロ版も他方の旧バージョンが含まれていたはず。
(中村拓男氏もどちらもやってるけど、どちらかと言うと
Delphiに重きを置いてるようだ。)
0771デフォルトの名無しさんNGNG
Delphiのスレで尋ねているので、
「del」と答えるのが正解です。
0772763NGNG
>>764-765
言われたように、BorlandのDelphiのFAQに載っていました
どうもありがとうございます。
解決方法は以下のとおりです。


この動作についてプログラム中で回避する場合には,フォームのOnDestroyメソッドにて以下のコードを実行してください。
タスクバーにウィンドウが残らないようになります。


ShowWindow(Application.Handle, SW_SHOW);
0773デフォルトの名無しさんNGNG
procedure TForm1.Button1Click(Sender: TObject);
var x:integer ;

とすると、この処理の中だとxが使えますが、
これを他の処理で使うにはどうしたらいいのでしょう?
0774デフォルトの名無しさんNGNG
みてね〜♪
http://www1.free-city.net/home/s-rf9/page003.html
0775デフォルトの名無しさんNGNG
ちょっと質問ですが、
Delphi6でWebからファイルを収集したいのですが、
例えばC:\Test.txtにURLリストがある状態で
そのURLリストから1行づつURLを取り出してすべてのURLを
HTTPダウンロードする方法ってどうやればいいですか?
サンプルで教えていただけるとありがたいです。
0776デフォルトの名無しさんNGNG
>>773
Delphiは構造化言語でもあります。
そのメソッド内で定義した変数は、メソッドという構造の中でしか有効でありません。
別のメソッドの引数にする事や、内部で定義した手続きからはそのxを見る事が出来ます。

変数類を外部との通信に使う方法としては

1、一番外側の構造で定義する
  外側には、
  ・クラス内変数
  ・UNIT内グローバル変数
  ・公開されたグローバル変数
  などがあります。

2、const で定義してて 無理やり寿命の長い変数として使う
3、ヒープからメモリを確保する

などがあります。
0777デフォルトの名無しさんNGNG
>>775
with TStringList.Create do try
 LoadFromFile('C:\Test.txt');
 for i:=0 to Count-1 do begin
  DownLoadFrom( Strings[i] );
 end;
finally free;end;
0778デフォルトの名無しさんNGNG
>>777
ありがとう。
実験してみます。
0779デフォルトの名無しさんNGNG
DownloadFromどうすんだよ(笑
0780デフォルトの名無しさんNGNG
「ヒープ」と「スタック」について教えてください。

         何 そ れ ?

Class型はヒープに確保って、Var i:Integer; と、どこがどう
ちがうのですか?
0781デフォルトの名無しさんNGNG
DBにParadoxを使う時の事について質問です。

ローカルネットワークでC/Sのシステムを作る時、
PrivateDirをコードで記述しないと、
「他の.Netファイルがこのディレクトリをコントロールしています」や
「LCKファイルが大きくなりすぎています」
などのエラーが出るそうですが(というか実際出ていますが)
これはデフォルトだと、実行ファイルと同じフォルダにLCKファイルやNetファイルが
出来ますよね?

PrivateDirをコード中で明示的に記述しても同じ事だと思うのですが、
なぜ、そうしないとエラーになるのでしょうか?
0782デフォルトの名無しさんNGNG
>>780
「ヒープ」はWindowsが扱えるメモリ領域全般。
物理、仮想両方。構造体とかクラスとか大きなメモリを使うときはこっち。

「スタック」はプログラムが起動したときに
メモリに読み込まれたプログラム周辺に確保されるメモリ領域。
大きさが制限されているけどヒープよりちょっと早い。
ただし、足りなくなるとプログラムの動作がおかしくなる。

かなり古い本だがBorland PressのC++Builder入門Vol.1、Vol.2が
そういう流されがちなことをいちいち書いているのでお勧め。
Delphiでも参考になる部分は多い。
MicrosoftPressの絶版になっちまった本がすごい丁寧なんだけど、
今じゃ入手できないからなぁ
0783デフォルトの名無しさんNGNG
>MicrosoftPressの絶版になっちまった本がすごい丁寧なんだけど、
>今じゃ入手できないからなぁ
中古という手もあるし、書名を書いてやっておくんなせい
0784デフォルトの名無しさんNGNG
情けなくて悲しくなるのですが、

Integer と Extended の変換ってどうやれば良いのでしょう?
0785デフォルトの名無しさんNGNG
>>773
とりあえず

implementation

var
  x: Integer;// >>776UNIT内グローバル変数

{$R *.dfm}
0786デフォルトの名無しさんNGNG
>>784
Int、Round
0787デフォルトの名無しさんNGNG
今日、ヨドバシカメラにDelphiを買いに出かけたら、どこを探してもありませんでした。
Delphiはどこに売ってるのでしょうか?
また、そもそもDelphiはこの世に存在するのでしょうか?
Delphiの限界が垣間見えました。
0788デフォルトの名無しさんNGNG
ネットで手にいれんだよ。
0789デフォルトの名無しさんNGNG
>>787
ソフマップ
0790デフォルトの名無しさんNGNG
Delヲタに優しいソフマップキタ━━━━(゚∀゚)━━━━!!
あんなに書籍コーナーとって大丈夫なのかな
0791デフォルトの名無しさんNGNG
>>787
おまえの限界が垣間見えるぞ。
0792デフォルトの名無しさんNGNG
蛇足だが「垣間見た」を使う香具師って基地外おおくね?
0793デフォルトの名無しさんNGNG
ヨドバシカメラでおねがいします。
ポイントカードをあれこれ持ちたくないので
0794デフォルトの名無しさんNGNG
ヨドバシカメラ大阪梅田店地下1階PCソフト売り場へどうぞ。
0795デフォルトの名無しさんNGNG
エディターを作っています。
バイナリファイルを開いたときに「ヌル文字を含んでいるから・・・・」
という警告ダイアログを出したいのですが、
どういう風にチェックすればいいのでしょうか?
0796デフォルトの名無しさんNGNG
1.TFileStreamにファイル内容を読み出す
2.一バイト毎調べる

0797デフォルトの名無しさんNGNG
限界厨、まだ生きてたか
0798 NGNG
>>777-779
ワラタ
0799デフォルトの名無しさんNGNG
縦読みのプログラムコード教えてください。
実際に動いて
0800デフォルトの名無しさんNGNG
{
8
0
0} program test; {$APPTYPE CONSOLE} uses SysUtils; var
g: integer; begin g:=0; readln;
end. {
t }
0801デフォルトの名無しさんNGNG
TEditに数字だけを入力させるようにするにはどうすればいいのでしょうか?
(数字以外のキーを押しても反映されない)
0802デフォルトの名無しさんNGNG
Tmaskeditでも使うヨロし
0803デフォルトの名無しさんNGNG
ファイルの中身をメモリに読み込んでおいて、
PaintBoxのOnPaintでループ回してシコシコPixels[x, y]への代入にて
描画してるんですが遅い…

GoogleでDelphi PaintBox ScanLineでサーチしたけど、
たった3件しかも役立たず…(´・ω・`)
PaintBox.OnPaintじゃScanLine使えないし、
どうすれば速くなるの?(;´Д⊂)

教えてエロい人おながいします (;´Д`)人
0804デフォルトの名無しさんNGNG
>>801
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=16#0223.txt

これでどうでつか?
0805デフォルトの名無しさんNGNG
キタ━━━━━(゚∀゚)━━━━━!!!!
http://homepage3.nifty.com/coco-nut/
0806デフォルトの名無しさんNGNG
>>803
1、TBitmapを作ってBitmap上で描画しておいてから Draw
2、CLXにする
0807803NGNG
>>806
激しくレスに感謝
1でやってみます(`・ω・´)
2はまだD5を使ってる不良ユーザなので使えないのです(´・ω・`)

Delに限らず開発ツールって高いよ…
0808デフォルトの名無しさんNGNG
↓無償をアピールする.NET信者
0809デフォルトの名無しさんNGNG
Delphi.NETは有償です。
0810デフォルトの名無しさんNGNG
>>806
クリックスにするだけで速くなるんですか?
0811デフォルトの名無しさんNGNG
ステータスバーにプログレスバーを乗っけたんだが
これだとステータスバー1番目のパネルにしか乗らない
2番目のパネルに乗せるにはどうしたらいいのですか?

ProgressBar1:=TProgressBar.Create(self);
ProgressBar1.Parent:=StatusBar1;
0812デフォルトの名無しさんNGNG
プログラムを起動したときにはメモリ使用量が5800Kだったのに操作しているうちにどんどん増えて10000Kを超えてしまいました。
これって仕方ないのでしょうか?
そして、10000Kを超えた後に最小化したら1000Kくらいになり、
さらに、これを元に戻したら2000Kくらいになりました。(なぜか起動時より少ない)
どうなってるんでしょう
0813デフォルトの名無しさんNGNG
>>811
2番目のパネルの位置を算出して、その位置に移動させる。
0814デフォルトの名無しさんNGNG
>>812
Windowsプログラムってそういうもんです。
0815デフォルトの名無しさんNGNG
>>813
うまくいきました!ありがとう
0816デフォルトの名無しさんNGNG
>>814
Windowsに限りません。
0817デフォルトの名無しさんNGNG
クラスの中で
construtor Ttest.Create(・・・・・・・・・・・);

begin
 For i := 0 to 10 do
begin
・・・・・・
   ・・・・・・・・
  end;
end;

For to do は使えないんでしょうか?
0818デフォルトの名無しさんNGNG
>>817
見たまんまだとvar i: integer;してないけどどうなの?
0819デフォルトの名無しさんNGNG
そこは問題ないです。
for i:=0 to ・・・のラインのところに
「エラー (:= 使うところに =が使われて・・・・」
のようなメッセージが出ます。ちゃんと := になっているんだけど・・。
0820 NGNG
アイデア1.
その場所のみ、テストとして新規で張り付けて動かしてみる。

ってのはどう?
0821デフォルトの名無しさんNGNG
すみません。おっしゃるとうり
var
  i: integer;

これみたいです。
unit test;
interface

type
Ttest = class
   i: integer;
としてたんですが
implementation

Constructor Ttest.Create (x,y:integer);
var
i:integer ;
begin
for i:=・・・・・・・・・・

としたら問題なく動きました。なぜでしょう?
0822 NGNG
「グローバル変数じゃダメアルヨ」ってヤツかな?
0823817NGNG
一つ賢くなった、多分。
アドバイスありがというございました。
0824デフォルトの名無しさんNGNG
Del6Personalで質問です

ネットワーク越しに8バイトヘッダのついたStringをやりとりしたいと思って
色々調べた結果、TMemoryStreamをSendStreamで流すことにしたんですが
ReadBufferでデータを取り込むところまではうまくいったのに
その処理をしている関数が終わった時点で循環参照?だかなんだかわからないけど
アドレスBAADF00DでアドレスBAADF00Dに対する読み込み違反とやらが起きてしまいます

データの元はWord2つCardinal1つString1つを持ったクラスで
それぞれをコンストラクタで受け取って、自分でCreateしたStreamに
FStream.ReadBuffer(FHeader1, SizeOf(Word));みたいな感じで
順番に読み込んでます(ここまではメモリダンプ見ても一見?問題なく動いてる)

下にソース書いてみます
0825デフォルトの名無しさんNGNG
constructor
 TQueryBuffer.Create
  (const H1, H2: Word; const H3: Cardinal; const S: String);
var
 pS: PChar;
begin
 FHeader1 := H1;
 FHeader2 := H2;
 FHeader3 := H3;
 FMessage := S;
 FStream := TMemoryStream.Create();
 FStream.SetSize(MaxStreamLen);
 FStream.ReadBuffer(FHeader1, SizeOf(Word));
 FStream.ReadBuffer(FHeader2, SizeOf(Word));
 FStream.ReadBuffer(FHeader3, SizeOf(Cardinal));
 pS := PChar(Addr(FMessage[1]));
 FStream.ReadBuffer(pS, Length(FMessage));
end;
↑ステップ実行するとこの直後AccessViolationが起きる

例えばメインの処理内でvar Temp: TQueryBuffer;として
Temp := TQueryBuffer.Create($0, $0, 1234, 'test');したときに、
←この行に帰ってくる直前でコケる
0826デフォルトの名無しさんNGNG
で、MemoryStreamの使い方が間違ってるのか
そもそもそんなもん使わんでももっと良い方法があるのか
教えてくらさい
0827デフォルトの名無しさんNGNG
>>754
使えます。思い切りFAQです。半年に同じ1度質問が来ます。
海外サイトを検索してください。

>>758
グラフィックボードがへぼいからかと。
ボード名を書かないことから、大体わかる。
0828デフォルトの名無しさんNGNG
a
0829829NGNG
LUIDという型をDELPHIで使うには
どうやって宣言したらいいのでしょうか?
0830バグ?NGNG
IDEでコンパイルして生成されたアプリを終了すると必ず
「 アドレス〜でアドレス〜に対する読み込み違反がおきました 」
というOSの例外が発生するようになってしまいました。

(環境) WINDOWS98SE、DELPHI6 PERSONAL update2+RTL3

(不具合発生の詳細)

1、「新規作成」「アプリケーション」で出した フォームだけのアプリ を
 コンパイルし、IDEから生成されたアプリを終了しても同じ現象が起こります。

2、コンパイルして出力されたEXEファイルをエクスプローラから実行すると
  アプリを終了してもOSの例外は発生しません。

3、2年前にDELPHI PERSONALを導入した時にはこういうバグは
  ありませんでした。 RTL2を当ててからこうなったような・・(不確かですが)

4、DELPHI PERSONALと修正ファイルをアンインスト&再インストしても
  直りませんでした。

5、OSはつい最近リカバリしたばかりなのでOSが逝ってるとは考えにくいです。
  (100%無いとは言い切れませんが..)


もし直し方をご存知の方がいらっしゃいましたら宜しくお願いしますm(__;)m
RTL2以降を当てないで使えばいいのかな・・ でもバグフィックスが・・
0831デフォルトの名無しさんNGNG
>>830
WMPコンポーネントを追加してるとそーなることが
0832830NGNG
>>831

まだパソナルと修正ファイルしか入れてない状態なので
そりはありませんです、情報どもデス。
0833830NGNG
2度目のDELPHI再インストをしたらバグが出なくなりました。
何故直ったのかはワカリマセンが大変お騒がせしてすみません〜
今後も原因の究明をするつもりなので解ったらお知らせします。m(__;)m
0834デフォルトの名無しさんNGNG
TMediaPlayer1.Positionの返ってくる数字を
xx:xx:xxに変換する関数おせーて

0835デフォルトの名無しさんNGNG
>>834
procedure TransrateTMediaPlayer1PositionReturnValueToxx:xx:xx()


0836デフォルトの名無しさんNGNG
PRINT文のあとにつける
; セミコロン
, コンマ

の役割をおしえてください
0837デフォルトの名無しさんNGNG
そりゃBASICだろ

セミコロンは文字区切り
カンマつーかPRINTの第一引数は出力先の指定…だったっけ
0838デフォルトの名無しさんNGNG
>>837
まったくの初心者なんで迷惑をおかけしました(´・ω・`)
助かりました
0839デフォルトの名無しさんNGNG
TApplicationEventsコンポのOnMinimizeイベントを使って最小化したときタスクバーから消す
という動作をさせているのですが、二回目以降最小化ボタンが押せなくなってしまいます。
これを回避する方法を教えて頂きたいのですが。
0840デフォルトの名無しさんNGNG
>>839
そんなのどういうインターフェースにしたいかでいくらでもあるだろ。
タスクトレイへ収納するのか、バックグラウンドで動かすのか、その他…
0841デフォルトの名無しさんNGNG
>>839
まさかとは思うがApplication.Restoreをしていないなんて事はないよな?
0842824NGNG
>>824がまだ解決してませんが
別の質問です・・・

TServerSocketは何故かOnError(OnErrorEvent?)が隠されてるので
仕方なくTry...ExceptでESocketErrorをキャッチしてるんですが
そのとき飛んできた例外がMessage: Stringと
HelpContext: Integer(いつもゼロ)しか持って無いみたいで
これまた仕方なくif E.Message = <エラーメッセージ全文> then
で条件分岐するトンチキな実装になってしまいます

これを例えばエラーコードを順序型で得る方法とか
何か良い方法は無いですか?

PersonalなのでTServerSocketの実装みてオーバーライドするわけにもいかず
もうお手上げです
#Enterprise版のHelpを手に入れて手探りでオーバーライドしてみたけど
#Error関数もOnErrorプロパティもError周りの関数がことごとく呼ばれなかった・・・
0843デフォルトの名無しさんNGNG
列挙型の値を配列の添え字に使えないんですか?
0844デフォルトの名無しさんNGNG
>>843
使えません。
0845デフォルトの名無しさんNGNG
>>843
キャストすりゃ使えるけど?
不安なら定数宣言しときゃいいだけで
type enum = (first = 1, second = 2);
にしといて、
var buf: Array[enum] of Integer;
でサイズ指定したりとか
buf[Integer(first)] := 123;
buf[Integer(second)] := 456
とかできる
0846デフォルトの名無しさんNGNG
こういう場合キャストじゃなくてOrd関数使う方が文法的には正しいか
buf[Ord(first)] := 123;
0847デフォルトの名無しさんNGNG
>>845

いや
var buf: Array[enum] of Integer;
と定義したんなら

buf[first] とアクセスするのが一番正しい。
0848デフォルトの名無しさんNGNG
結論:

1、静的配列の定義で 添字型として列挙型を使っていれば 添え字に列挙型の値が使える。
2、動的配列では添字は常に整数であり列挙型は使えない。


注)添字型に使えるのは列挙型だけでなく その範囲が31ビット以下の全ての順序型。
 整数型 Shortint/Smallint/Byte/Word
 文字型 char / WideChar / AnsiChar
 論理型 boolean /ByteBool 等
 列挙型
 部分範囲型


0849デフォルトの名無しさんNGNG
>>847
それだとコンパイルエラー出ない?
0850デフォルトの名無しさんNGNG
>>849
コンパイルエラーが出るのは >>845-846
0851デフォルトの名無しさんNGNG
>>850
やべぇ俺が持ってるのDelphiじゃないのかも(笑
テスト方法間違えたかな
0852デフォルトの名無しさんNGNG
>>824
DELのことはあんまりわからないでうsが
825のReadBufferはWriteBufferの間違いでは?

>>842
ServerSocketからrecvしようとしてエラーになるのかな?
0853デフォルトの名無しさんNGNG
今日からDelphiで開発を命じられました。
C言語が少しわかる程度の私がDelphiでデータベースプログラミングを
する事になりました。

使用するDBはParadoxです。

テーブルの作成などはDataBaseDeskTopで行います。

でも私にはParadoxやDataBaseDeskTopの使い方が全く分かりません。

これらについて詳しい書籍やHPをお教え下さい。

宜しくお願いします。
(またParadox以外にも標準でDBがあるようですが、それらの用途も教えて下さい)
(dBaseとParadoxの違いは何か?とか)
0854デフォルトの名無しさんNGNG
http://www.google.com/webhp?hl=ja
0855デフォルトの名無しさんNGNG
>>852
確かに逆ですね・・・なんでメモリの内容は正しかったんだろう・・・
>>824はもうSendBufで自己管理するやり方にまるまる書き直しちゃったので
忘れてください

>>842に関しては、エラーが起きてしまうというトラブルじゃなくて、
例えばServerSocket.Open()でWSAEADDRINUSEが返って来た場合など
そのエラーをキャッチする為のイベントがTServerSocketに無いので
仕方なくtry...exceptで受ける様にしてあるのを
もっとスマートにできませんか?という質問です
0856デフォルトの名無しさんNGNG
質問します。
リストボックスで出来るかどうかは知りませんが、リストの上に
ボタンを表示するにはどうしたら良いのですか?
すみません、小規模な質問で・・・
0857839NGNG
>>840
すいません書き足りませんでした。
キャンプションバーの最小化ボタンを押した時にタスクトレイに収納したいんです。
今はOnMinimizeにHide、タスクトレイのアイコンを左クリックしたらShowとしています。
しかしこう書くと二度目以降キャンプションバーの最小化ボタンが押せないんです。
この動作を二回目以降も問題なく動かすにはどうすればいいでしょうか?

>>841
niftyのサンプルで見た気がしますが、それはやっていません。
0858830 (解決)NGNG
>>830 の不具合の原因が解ったので書いておきます。

「AVG」というフリーのアンチウイルスソフトが原因でした。
これが起動している状態でコンパイルし、生成されたアプリを
終了するとOSの不具合が発生し、Explorerがダウンします。

つい最近まではAVGを起動した状態でも問題無かったのですが、
AVGのバージョンアップによりこういう現象が現れたようです。

すべての環境でAVGがDELPHIを妨害するのかどうかは解りませんが
AVGをお使いの方はお気をつけ下さい。(^^;
0859デフォルトの名無しさんNGNG
>>857
TApplicationのソース見たわけじゃないからハッキリとした事は言えないけどね。

Showした後、タスクバーに表示された自分のプログラムを右クリックしてみなよ。
「元のサイズに戻す」ってなっている筈。

ApplicationとFormはそれぞれ別のウィンドウで成り立っていて、
Formは普通に使うウィンドウなんだけれども、ApplicationはWidth, Height共に0の見えないウィンドウになっている。
また、タスクバーに表示されるウィンドウはApplicationのもので、Formのものではない事に注意。

んで、Form側の最小化ボタンを押した場合、Applicationが最小化し、Applicationが管理している全てのウィンドウの表示を消す。
同時に、Applicationも最小化し、ユーザーがタスクバーをクリックして、元のサイズに戻してくれるのを待っている。
そして、Applicationが元のサイズに戻ると、管理しているFormに通知し、再表示する処理を行ってるわけだ。

つまり839の場合、Formの最小化ボタンを押してApplicationを最小化したのはいいが、
タスクアイコンのクリックで直接Formを表示してしまったために、Applicationが最小化になったままで、
Formの最小化ボタンを押しても通知先のApplicationが「まだ最小化中」と勘違いしてスルーしているのであった。

多分。想像だから。
0860デフォルトの名無しさんNGNG
つまり841の言うとおりApplication.Restoreを実行してアプリケーションが復帰したと知らせれば言い訳だ。
というか答えを書かれているのになぜやらないんだろうね。
0861デフォルトの名無しさんNGNG
あー、肝心な事書くの忘れてたや。ナイス>>860
0862839NGNG
>>859
なんというか、目からウロコです。
ApplicationとFormが別のウインドウだとは想像もつきませんでした。

>>860
すいません、読み間違えです。
>まさかとは思うがApplication.Restoreをしていないなんて事はないよな?
というのを
まさかとは思うがApplication.Restoreをしているなんて事はないよな?
となぜか読んでしまったようです。本当にすいません。ごめんなさい。
そしてありがとうございました。
0863デフォルトの名無しさんNGNG
>>856
リストの上にボタン??
カラムヘッダーのことかな?だとしたら、TListViewでViewStyleプロパティをvsReportにして、
Columnsプロパティを設定すればヘッダーが出てきます。
0864デフォルトの名無しさんNGNG
MySQLとFireBirdはどっちがおすすめですか?
(C/Sで使用します)
0865名無しNGNG
リストビューコンポーネントってラーニング版にありますか?
0866名無しNGNG
6Perにはある
0867デフォルトの名無しさんNGNG
>>864
DelphiスレとしてはFirebirdがおすすめ
なんといってもIBXがあるためデータグリッドも容易に使えて楽
C/Sならストアドが(フリーで)使えるかどうかということも大きい
0868デフォルトの名無しさんNGNG
くだらない質問ですいません。
httpdownloadってどう設定すればできるのでしょうか?
0869デフォルトの名無しさんNGNG
くだらないので答えません。
そんな前置きは不必要です。
0870デフォルトの名無しさんNGNG
くだらなくない質問ですいません
DownloadFromってどう設定すればできるのでしょうか?
 
0871_NGNG
http://homepage.mac.com/hiroyuki44/
0872864NGNG
>>867
レスどうもっす。
Firebirdを使ってみます。
0873デフォルトの名無しさんNGNG
Delphi7でC++のオブジェクトモジュールリンクできますか?
0874デフォルトの名無しさんNGNG
s: String;
sの1文字目だけを取得する賢い方法ありますか?
0875873 874NGNG
くだらない質問ですみません。
0876_NGNG
http://homepage.mac.com/hiroyuki44/
0877875NGNG
騙りですみません。
0878デフォルトの名無しさんNGNG
>>874
String型は配列として扱えるので t := s[n]でn文字目がtに入る
なぜか n≦1 なので注意
0879デフォルトの名無しさんNGNG
>>878
できました。ありがとうございます。
0880デフォルトの名無しさんNGNG
イベントドリブンの質問なのでスレ違いかもしれませんがお願いします

例えばTClientSocket.OnReadでStringListの内容を書き換えている場合に、
メインフォームのボタン1を押すと、StringList.Textを
クリップボードにコピーするようなプログラムをした場合、
読み込みと書き込みがバッティングして
書き込み途中の壊れたデータを読み出す可能性はありますか?

またもしそうなら、バッティングを回避する為にはTCriticalSectionを使うんでしょうか
0881デフォルトの名無しさんNGNG
不等号の向きに違和感を感じます
0882デフォルトの名無しさんNGNG
やってみればわかる
0883デフォルトの名無しさんNGNG
>>880
非同期に読んだ場合だね?
非同期といっても結局イベントは Windowsメッセージとして送られて来ます。
つまりはメッセージループを持ってるスレッド(大抵はメインスレッド)でイベントは処理されるわけです。

よって、イベント内部でメッセージループを回さない限りは 勝手に再帰する事はありません。
0884デフォルトの名無しさんNGNG
>880
よっぽどでかいデータじゃない限り、StringListへの変更が終わったら、
TextCache:=StringList.Textとして、クリップボードへの貼り付けは
TextCacheの方を使う、というくらいでいいのでは。
0885880NGNG
>>883
なるほど
つまりメインのVCL上でやっている限りは、どのイベントから
何にアクセスしても問題ないと考えてOKなわけですね
そのためにTThreadにSynchronizeがあるのかな

>>882
やってみようにもどうやったらバッティングさせられるのかわかりませんでした(笑)

>>884
話を簡単にするためにStringListとクリップボードで例をだしただけなので
ホントはもっとややこしいことしてるんです・・・
0886デフォルトの名無しさんNGNG
そうですね。 昔はTThread の SynchronizeもWindwsメッセージにしていました。
別スレッドとの同期をWindowsがやってくれるので便利ですね
0887デフォルトの名無しさんNGNG
var
ST,ST1: TMemoryStream;
///
ST := TMemoryStream.Create;
ST1 := TMemoryStream.Create;
///
ST1.LoadFromFile('...');
ST.Write(ST1,ST1.Size);
ClientSocket1.Socket.SendStream(ST);

とすると、うまくストリームの内容が送信されていません。
何がおかしいのでしょうか?
0888デフォルトの名無しさんNGNG
>>887
Streamポインタが変なところにあるから。とか。
0889デフォルトの名無しさんNGNG
メッセージボックスとか表示するとメッセージ回るよね
0890デフォルトの名無しさんNGNG
その前に
ST.Write(ST1,ST1.Size);
でSTに追加できますよね?
0891デフォルトの名無しさんNGNG
すみません。やっぱ、Streamを文字列に変換する方法
教えてください・・・。
0892デフォルトの名無しさんNGNG
>>890
調べれば良かろう。勝手に。
0893デフォルトの名無しさんNGNG
調べて分からなかったのです・・・。
0894_NGNG
http://homepage.mac.com/hiroyuki44/
0895 NGNG
某所で「MemoryStreamをStringに代入する方法」を聞いてるヤツがいるなぁ…。
だから何だってことでも無いんだが。
0896824=855NGNG
>>887は俺じゃねぇぞ・・・念のため・・・匿名掲示板でメンツを守るってのもアレだが・・・
0897763NGNG
TrackBar の使い方のというかアクティブの方法なのですが、
プロパティTabStopをFalseにしてフォームに配置すると最初はフォームがアクティブなのですが
TrackBarをスライドさせるとTrackBarがアクティブになるようでカーソルなどがTrackBar
に反応してしまいます。
キー入力をフォームで拾いたいのですがどうすれば、TrackBarをスライドさせる前のように
もどせるのでしょうか?
0898デフォルトの名無しさんNGNG
http://f12.aaacafe.ne.jp/~weissup/phpup/img/046.zip
↑中身はROのエミュ鯖で、Delphi6らしいのですが
リードミーに載ってたファイルも落としたのですがコンパイルできません
コンパイルの仕方教えてください
0899898NGNG
[致命的エラー] UxThemeRT.pas(402): ファイル '..\obj\UxThemeRT.dcu' を作成できません
ってエラーがでます
0900デフォルトの名無しさんNGNG
>>898
エミュレートについては合法なのだが、
その手のゲームサーバーは
0901デフォルトの名無しさんNGNG
ごめんミスった。
その手のゲームサーバーはマップデータとかないと無意味。
そのデータなどは自作じゃなければいけません。
データを自作できる人がコンパイルで悩むはずがまずありません。
つまり貴方にそのソフトは使えません。
OK?
0902デフォルトの名無しさんNGNG
>>899
そのエラーだけしかでていないのですね?
それでは何が原因かを突き止めるのは、不可能です。
諦めてください。

質問スレで一番嫌われるのは小出し野郎です。
0903デフォルトの名無しさんNGNG
>ファイル '..\obj\UxThemeRT.dcu' を作成できません
から察するにプロジェクトオプションのユニット出力ディレクトリが"..\obj"になっているようだが。
.dprのあるディレクトリの上にobjディレクトリを作るか、
プロジェクトオプションを修正しないとだめぽ。
0904デフォルトの名無しさんNGNG
Delphi7でRave帳票ツールが付いたのは良いとして、
QuickReportのソースはどうなるんでしょう?
コンバートできるのか、ライブラリだけは残してくれてるのか?
0905_NGNG
http://homepage.mac.com/hiroyuki44/
0906デフォルトの名無しさんNGNG
>>891
>すみません。やっぱ、Streamを文字列に変換する方法

いくつかあるけど確実なやつ

with TStringList.create do
 LoadFromStrem( aTStrem );
 ResultString := text;
 Free;
end;
0907デフォルトの名無しさんNGNG
With TStringStrem.create do
 CopyFrom(sTStrem, 0);
 ResultString := DataString
 Free;
end;

でもよいかな?
0908デフォルトの名無しさんNGNG
>>906-907
素直な初心者がそのまま書いてエラーがでてまた質問というのもなんだから…

・2行目にbeginを入れる
・念のためtry finally文で確実にFreeさせる

こんなところでしょうか
0909906-907NGNG
>>908
ふぉろーあんがと
0910デフォルトの名無しさんNGNG
>>904
>ライブラリだけは残してくれてるのか?
QR ライブラリは添付されています。

ML の記事を中途半端に読んでこっちで質問か?
0911デフォルトの名無しさんNGNG
>>908
try finally文ってなんですか?
0912デフォルトの名無しさんNGNG
そのくらいは Help をひこうね。>>911
0913デフォルトの名無しさんNGNG
こんなんどうだ?
ttp://www13.big.or.jp/~akasata/programming/DelphiGuide/exception/dguideEx01.htm
0914デフォルトの名無しさんNGNG
begin
 Label1.Caption := IntToStr(GetTickCount);
 Label2.Caption := IntToStr(GetTickCount);
end;

というのを、わざわざ↓のように書くメリットは何かあるんでしょうか?
var
 sGTC: String;
begin
 sGTC := IntToStr(GetTickCount);
 Label1.Caption := sGTC;
 Label2.Caption := sGTC;
end;
0915デフォルトの名無しさんNGNG
begin
 Label1.Caption := IntToStr(GetTickCount);
 Label2.Caption := Label1.Caption;
end;
0916デフォルトの名無しさんNGNG
>>914
釣りか?
上と下の結果は同じにならんように見えるが・・・?
0917デフォルトの名無しさんNGNG
TFindDialogの「検索する文字列」の内容が書き換わったら
ある処理をさせたいのですが、これは可能なのでしょうか。
可能ならば、その方法を教えていただけないでしょうか。

よろしくお願いします。
0918デフォルトの名無しさんNGNG
つまり、コードが少し横に長くなるけれど変数を使わないでも再現できるのに、
わざわざ使う必要があるのかどうかということ。
0919デフォルトの名無しさんNGNG
じゃあ、GetTickCountじゃなくてGetDC(GetDesktopWindow)で
0920デフォルトの名無しさんNGNG
あえていえば、意味のある名前の変数を使うことで
若干可読性が増すという程度かな

Label1というのがもっと意味のある名前だったら本当に不要かもしれん
(この値を他にも使うのなら話は別)
0921デフォルトの名無しさんNGNG
変数を使わないことによる処理速度の高速化とかは無いのですか?
0922デフォルトの名無しさんNGNG
with文拡張してくれ
with .Caption do
 Label1. := Label2. ;

ただしモニタが小さいと.が見えないという諸刃の剣
0923デフォルトの名無しさんNGNG
>>921
ほぼない。
ただしWin32API(GetTickCount)の呼び出し回数を減らすと高速化につながることはある。
0924デフォルトの名無しさんNGNG
.Caption.Label1. := .Caption.Label2. ;
0925デフォルトの名無しさんNGNG
>>921
プロパティをひとつの関数内で二回以上読んでいたら、変数にキャッシュした方が速くなる(場合もある)
0926デフォルトの名無しさんNGNG
プロパティの値を読み出して、
その値を他のプロパティにセットするのはあまりおすすめしない。
モノによっては読み出すだけでも多くのステップ踏んでいたりするので。
(中身を理解しているのなら別だけど)
0927デフォルトの名無しさんNGNG
>>926
頭固すぎ。GUIまわりでそこまで気を使う必要はない。
せめて具体的に問題になるケースくらいageたら?
0928デフォルトの名無しさんNGNG
TCustomWinSocketの質問です

サーバーから100バイトのデータを送ったとして、
クライアントでReceiveLength=100を受け取ったけど
ReceiveBuf(buffer, ReceiveLength)の返り値が80だった場合、
直後に再びOnReadが呼ばれるんですか?
それとも自前でもう一度ReceiveBufを呼ばないとダメですか?

それとTClientSocketとかだと確かデフォルトでTCPなので
ReceiveLength自体が80とかになるという事は無いと思うんですが
あってますか?
0929デフォルトの名無しさんNGNG
>>927
知っててやってるのと
知らないでやってる場合だと
問題が起きたときに対処の仕方が変わってくると思うけど・・・

だから知っておくことは必要だし
知ってるなら普通セーフティなコードを書くんじゃない?
0930デフォルトの名無しさんNGNG
そうなんですか。
では、変数を使って可読性向上と高速化を図ることにします。
0931デフォルトの名無しさんNGNG
Delphi 7 Personalでmp3のプレイリスト(m3u)を作りたいのですが。
TIniFileのような比較的簡単に書き込めるオブジェクトは用意されているのでしょうか?
それとも、あの書式で書いて直接出力するしかないのでしょうか?
0932デフォルトの名無しさんNGNG
>>929
だからその問題って何?
すくなくともまともなGUIコンポーネントではそんな問題はみたことないね。
TYourLabel.GetCaptionが一時間かかるなんてケースを想定することは可能だけど
そんな妄想上の超例外ケースを持ってGUI周りのコーディング全てに>>926の制約を課す意味はないよ。
0933デフォルトの名無しさんNGNG
>>931
m3u専用のはないです。
TStringListとFormatを使えばできるでしょう。
0934デフォルトの名無しさんNGNG
Text型変数とWriteLnで上等じゃ…
0935デフォルトの名無しさんNGNG
まあTextFileだと編集が面倒だしね
0936デフォルトの名無しさんNGNG
蛾次郎ヅラ
0937936NGNG
誤爆すみません
0938デフォルトの名無しさんNGNG
Delphi 6 Personal って、デバック関係にバグがあるらしいですが、どんなバグですか?
0939デフォルトの名無しさんNGNG
>>938
その情報を流した人に聞いてください
0940デフォルトの名無しさんNGNG
>>914
一般論として、関数/プロパティが内的副作用を持つかどうかがわからないときは、結果を
変数で受けてそれを再利用すると潜在的問題を回避できる。

最初の例の GetTickCount は、呼び出すたびに異なる値(Windows 起動時からの Tick (55msec?) 単位の積算時間)
を返す可能性のある関数なのだから、ラベルごとに GetTickCount を呼んでしまうと意味が変わってしまう。

逆に、副作用が存在しないこと(複数回呼び出しても一回呼び出しても意味が同じ)場合は
動作的にも性能的にも大差はない。
0941デフォルトの名無しさんNGNG
DelphiにはWindowsの音量を変更する関数またはクラスなどあるのでしょうか。
やはりAPIを直接使うしかないですか?
0942デフォルトの名無しさんNGNG
躊躇せず、API を使いましょう。
0943デフォルトの名無しさんNGNG
ここの
ttp://www.fi.muni.cz/~xkovalc/

TAudioMixer

が使えないかな?
0944デフォルトの名無しさんNGNG
API
0945デフォルトの名無しさんNGNG
初めてのプログラム板に流されてきました。
�@
もし
 A かつ B
ならば
 not B にして、C する

�A
もし
 A かつ not B
ならば
 B にして、C する

これを書けばこんな感じなのでしょうか?
if A and B then not B C
if A and not B then B C

�@�A両方を行いたいのですが、永遠にループしてしまいます。
そうではなく
 �@の場合は�Aを一度行って終わり。
 �Aの場合は�@を一度行って終わり。
このようにしたいのですがどうすればよいでしょうか?

質問しておいてモウシワケナイのですが、delphiに限らずプログラム全くわかりません。
どうぞよろしくお願いします。
0946デフォルトの名無しさんNGNG
�@  if A and B Then  なにか:=not B ; C; end;
�A  if A and (not B) then なにか=B ; C;end;

 �@の場合は�Aを一度行って終わり。
 �Aの場合は�@を一度行って終わり。

if A then begin
  case B of
  true: begin なにか=not B; なにか=B; end;
  false:begin なにか=B;end;
  end;
 C;
end;

not B にするのが B自身であるならば �@を実行すれば B=not B=false になり
 �Aを実行しても B=B=falseであるので

if A then begin B=false; C; end;
0947デフォルトの名無しさんNGNG
いまいちわかりづらいが、行間を読み取ってあげよう。
A も C も影響が出ないようなので省略すると

�@ もし B が真 なら B を偽に
�A もし B が偽 なら B を真に

こういうことなら、確かに永久ループだね?

この事実を踏まえて、もう一度質問を練り直して。


0948デフォルトの名無しさんNGNG
>>945
考え方としては、問題に共通している部分が無いかよく見る事
今回は1と2でどちらも「Aであり、かつ」が出てくるので
まず「Aであり」でくくってしまう。
if A then
begin

end;

次に「〜してC」も共通しているので、さっきくくった部分の
最後でやってしまう。
if A then
begin

 C;
end;

あとはCする前にBをどうするか考えるだけ。
if A then
begin
 B := not B;
 C;
end;
0949デルファイの名無しさんNGNG
if A and B then not B C
if A and not B then B C

これなら上の文から順に実行されるんだから、上のに当てはまったら、
下にも当てはまって下の結果になるし、
下に当てはまっても下の結果になる。

どっちかだけを実行したい場合は1つの文にすればいい

if A and B then not B C else if A and not B then B C
               ~~~~
0950デフォルトの名無しさんNGNG
 not B にして、C する → オッパイ揉むのをやめて、挿入する?
0951デフォルトの名無しさんNGNG
よそ逝け
0952デフォルトの名無しさんNGNG
次スレ立てれ
0953デフォルトの名無しさんNGNG
リージョンを扱うオブジェクトってないんでつか?
0954デフォルトの名無しさんNGNG
TQuery.RequestLiveってのがありますよね。
TIBQueryではどのプロパティが該当しますか?
0955デフォルトの名無しさんNGNG
>>954
RequestLive は BDE の固有機能。IBX ではできない。
キャッシュアップデートを使えば同様のことは可能。(BDE も内部で同じことをやっている)
0956デフォルトの名無しさんNGNG
>>953
ない。
API 呼び出しを躊躇しないこと。
0957デフォルトの名無しさんNGNG
>>952 
>次スレ立てれ
了解
0958デフォルトの名無しさんNGNG
>>953
誰かが作ったので良ければ
ttp://halbow.cool.ne.jp/VCL01.html
0959毛の生えたフサギコNGNG
次スレは
http://pc2.2ch.net/test/read.cgi/tech/1055986736/

Part2 を使い切ってから移行してください。
0960デフォルトの名無しさんNGNG
>RequestLive は BDE の固有機能。IBX ではできない。

あ、RequestLiveをfalseにしとかなきゃエラーになりやすい、と考えてましたが、
つまりはfalse状態てことですか。
0961941NGNG
>>943
thx! 使ってみます。

>>942 >>944
駄目だったら素直にAPI叩くことにします。
0962デフォルトの名無しさんNGNG
本来(select 等による)データ抽出とデータ更新は異なる SQL 文を発行しなければならない。
それを明示的に行うのがめんどくさい。ということから、RequestLive や、より一般的な
キャッシュアップデートの手法が開発された。のだ。

ぐぐってみたらこんなページが。BCB だけど理解の助けになれば。
ttp://village.infoweb.ne.jp/~hayato/doc/tips/bcb5_tips.html
0963デフォルトの名無しさんNGNG
thanx!>>962
自分使ってるのBCBだから大丈夫でつ。
で、コンポーネントも常時調べとかないと、知らないうちに進化するんですね。
0964デフォルトの名無しさんNGNG
Sleepの操作を受け付ける版ないですか?
0965945NGNG
>>946
>>947
>>948
>>949
ありがとう御座いました。
0966デフォルトの名無しさんNGNG
D:\cool\kakinotane.s7.xrea.com\dirDelphi2\s033.html
ここの、

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
 PaintBox1.Canvas.Pen.Width := SpinEdit1.Value
end;

にセミコロンがいらないのはどうしてなのですか?
セミコロンをつけてもつけなくても問題なく動作しました。
どちらが文法として正しいのか等、教えてくだすれ
お願いします。
0967デフォルトの名無しさんNGNG
Print~以降に文がないから、区切る必要ないからじゃね?
付けた方がいい
0968デフォルトの名無しさんNGNG
>>966
begin 文 ; 文 ; 文 ; 文 ; 文 end  セミコロンは文と文の「区切り」

begin 文 ; end 文の後に「空文」があるとみなされる
0969デフォルトの名無しさんNGNG
>>966
>どちらが文法として正しいのか
文法的にはどちらも正しい。PASCAL 言語での ; は空白と同じだと思えばよい。
文と文を区切るために使う。となれば、空白が複数出てきても気にならないでしょ?

ほんとの空白(#$20)を文の区切りとして使ってしまうと、とっても不便になってしまうので、
;が使われているのです。

ttp://www.ss.u-tokai.ac.jp/~kikyo/lexa/pascalc.txt
が参考になるかと。
0970ミ,,゚Д゚彡 ◆A6VzDeLphI NGNG
つながらないみたいす。

http://www.ss.u-tokai.ac.jp/~kikyo/02/lexa/pascalc.txt
こっちはつながりまった。

開発中にusesをいろいろ変更してると、いつも不満に感じる事があります。
おそらくPascalの文区切りの思想と通じる所だと思いますが
uses
 a,
 b,
 c;
の記述でcをコメントアウトしたいときに
行頭に"//"つけるだけじゃなくて、セミコロンとカンマを
付け直すのが、面倒で面倒で…ハァ
何かよい解決方法ありませんか?

逃げとして、cの位置にはいつもusesするユニットを
もってきて、開発中にコメントアウトはしない。という手段は使っています。

using a;
using b;
using c;
という記述も取り入れてくれないかな…
0971デフォルトの名無しさんNGNG
uses
yours,
windows;
0972デフォルトの名無しさんNGNG
普通 作成中は
uses
  a
 , b
 , c
 ;
こう書かないのか? 俺だけか?
0973Delフサギコ ◆A6VzDeLphI NGNG
           レスありがとうです。
   ∧,,∧   / >>971さん
  ミ,,゚Д゚彡 <  Unitを作っているとwindows.pasも
   ミ つ旦)~~ \ 使わないときがあるので…
         >>972さん
        ・・・・・
        えっとそれでは、aをコメントアウトしたい時
        同様に困るかと…
0974デフォルトの名無しさんNGNG
男ならコメントアウトなんぞしないで、ガンガン削除しろ!
0975デフォルトの名無しさんNGNG
自分はどっちかいうと IDE が勝手に カンマを後に残して分割するのがちょっと嫌だな。

行を分割する時はカンマを左にもってきて欲しい。
0976デフォルトの名無しさんNGNG
言語仕様の制約を超えた万能解などあるわけもない。
0977ななしへたぐらま ◆XcB18Bks.Y NGNG
>>970
空っぽのユニットを用意してそれを参照する,というのはどうでしょ.

uses
DUMMY // ←空っぽのユニット
{$IFDEF USE_HOEHOE}
, HoeHoe
{$ENDIF}
;
0978デフォルトの名無しさんNGNG
まあ var もtype も複数書けるんだら uses も複数書けて良さそうなもんだけど、
といって今さらそれが出来ても下位互換考えると そういう書き方は出来ないしね
0979デフォルトの名無しさんNGNG
>>977
それなら、typesとかsysutilsとかmathとかを先頭にしておけばいいじゃんと思ってみたり。
0980デフォルトの名無しさんNGNG
よくよく考えてみれば、typeやvarも、";"を書いても尚且つその節自体は継続されるのだから、
usesも","じゃなくて";"でいいじゃんという気はして来た。
Pascalの文法的には、節は必ず予約語で始まっているので、混乱は無い。

uses
 A;
 B;
 C;
0981デフォルトの名無しさんNGNG
{}←この括弧ってコメントとして使っていいの?
0982デフォルトの名無しさんNGNG
>>981
http://www.wwlnk.com/boheme/delphi/vbtodel/daf0070.html
0983Delフサギコ ◆A6VzDeLphI NGNG

  ∧,,∧  ダミーunit使う
  ミ,,゚Д゚彡 手はありそうですが、、
  ミつ旦(ミ  なんかちょい嫌かも。
〜と,,,~),,~) 
>>979さん
それらなら、Exeのバイト増えないのかな?
SysUtilsにはinitializationがあるから、ちょっと増えるかも。

下位互換性を考えるとか以前に
コンパイラをちょと修正ってことは
ほとんどないすよね....

>>980さん
。NET化にともなって、
言語仕様もちょっとずつ変更してしまって欲しいなぁ。

usesの名前空間については実装されても、
結局uses 某.A, 某.B, 某.C;形式らしいっすね。
0984デフォルトの名無しさんNGNG
そんな瑣末なところで悩むのはお前だけ。
0985966NGNG
おかげさまで理解出来ました。
皆さん、レスありがとうございました。
0986Delフサギコ ◆A6VzDeLphI NGNG
  ∧,,∧  そぉね。
  ミ,,゚Д゚彡 
  ミつ旦(ミ

はやくでないかな、Del.NET
0987デフォルトの名無しさんNGNG
そんなにはやくいらないよ。
まだまだ .NET が市場的立ち上がってないんだからさ、
もっと時間かけて Delphi.NETで .NET 引っ張れるくらいに成熟させてから出して欲しいね。
0988デフォルトの名無しさんNGNG
>>979
その用途なら system が最適だと思うのだが
0989デフォルトの名無しさんNGNG
しかしそれをやると2重定義になるのが残念なんだよね
0990デフォルトの名無しさんNGNG
>>987
そんなにはやくいらないよ。
まだまだ .NET が市場的立ち上がってないんだからさ、
もっと時間かけて Delphi.NETで .NETの足を引っ張れるくらいに成熟させてから出して欲しいね。
0991デフォルトの名無しさんNGNG
991
0992デフォルトの名無しさんNGNG
梅
0993ななしへたぐらま ◆XcB18Bks.Y NGNG
>>979
説明不足でしたが >>977 はimplementatoin 節に書く場合です.
0994デフォルトの名無しさんNGNG
次スレです
http://pc2.2ch.net/test/read.cgi/tech/1029123152/l50
0995デフォルトの名無しさんNGNG
>>994は嘘。本当の次スレはこっち
http://pc2.2ch.net/test/read.cgi/tech/1055212786/l50
0996デフォルトの名無しさんNGNG
見てちょ♪

http://www2.free-city.net/home/angelers/index.html

http://endou.kir.jp/betu/linkvp/linkvp.html
099778NGNG
う
099878NGNG
め
0999;kmnk;mNGNG
oljhn
1000nk;mklmnNGNG
;knn mk; mm
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。