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

このエントリーをはてなブックマークに追加
1毛の生えたフサギコ
このスレッドは、

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

Delphi使いが優しくコメントを返しますが、お礼はDelhiの布教と初心者の
救済をお願いします。
ゲッツ
3毛の生えたフサギコ:03/06/19 10:39
くだすれDelphi(超初心者向け) (Part1)
http://pc2.2ch.net/tech/kako/1051/10518/1051882835.html

くだすれDelphi(超初心者向け) Part2
http://pc2.2ch.net/test/read.cgi/tech/1053757982/
4毛の生えたフサギコ:03/06/19 10:39
げ >> 2
5毛の生えたフサギコ:03/06/19 10:40
6毛の生えたフサギコ:03/06/19 10:56
前スレ http://pc2.2ch.net/test/read.cgi/tech/1053757982/
使い切ってから利用しましょう。
ま た D e l h i に な っ て る よ
>>7
1つなおってるじゃないか(ワラ
9毛の生えたフサギコ:03/06/19 11:13
げ。>> 7
二つ目があったのか。QualityCentral 経由でバグ登録してください。
10デフォルトの名無しさん:03/06/19 11:31
>>1
でるひ ってなんですか?
11デフォルトの名無しさん:03/06/19 11:39
>>10
粘着うざい
12デフォルトの名無しさん:03/06/19 11:42
>>11
粘着じゃないんですが?
13デフォルトの名無しさん:03/06/19 17:28
            _____________
     ∧,,∧   /
    ミ,,゚Д゚彡< とっても、いいと思われまふ
   'ミ つ旦)~~  \___________
  ⊂ミ",, ,,ミ つ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538
14デフォルトの名無しさん:03/06/19 18:59
エクスプローラから、複数ファイル名をD&Dで、特定のFILELISTBOX
に持ってくることは可能でしょうか??
持ってくるの意味が分かりません。
[ajsifjdsiofjisdo]

[jふぃjfdi]

のような文字列があったとして
2バイト文字があるか高速に確認できるプログラムを教えてください。
17デフォルトの名無しさん:03/06/20 00:48
Delphi7を使っているのですが、使いたい
NMHTTPコンポーネントが見つかりません。
どこにありますでしょうか?
18デフォルトの名無しさん:03/06/20 00:49
Delphiという文字列が含まれた文章から
Delhiという文字列を削除したいです。
どうしたらいいですか?
>>14
Dungeons & Dragons 懐かすい

ところでFILELISTBOXってどんな魔法?
2014:03/06/20 00:54
D&Dとはドラえもんとドラえもんズの略でつ。
>>18
StringReplace

s := StringReplace(s, 'Delphi', '', [rfReplaceAll]);
22デフォルトの名無しさん:03/06/20 01:24
>>21
ありがとうございます。
それを>>1に対して実行するには
どうしたらいいですか?
教えてください。
>>17
少なくともDel7のPer版, Pro版には付属してないらしい
ttp://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/071/071174.html
>>16
ByteType関数使ってください。

for i := 1 to Length(S) do
begin
 if ByteType(S[i]) = mbLeadByte then Result := True;
end;
for i := 1 to Length(s) do
if s[i] in LeadBytes then result := True;

の方がずっとはえー
TlistViewに指定ディレクトリ直下のフォルダだけを一覧にしたいんだが
FindNextを使うしか方法はないのん?

フォルダ数少なくてもファイル数が多いディレクトリ直下を調べるとき遅くてイヤソ(;´Д`)
>>26
シェルネームスペースを使う。
2816:03/06/20 06:51
>>24 >>25
ありがとうございます。
やるきだせよ
>>26
うちだと2000個くらいファイルがあっても0.2秒くらいで開けるがな。
>>16
速度も遅いしあまり薦めないけど

Function IsContainDBCS(const s : string )
begin
 result := length(s) <> length(WideString(s));
end;
32のちもち:03/06/20 14:18
取得したメディアのなかみをリスト一覧のなかから選択し、
エクスプローラライクに表示させたいのですが、
(左にTreeView、右にListViewで、ファイル名、サイズ、
更新日時といったカンジで)
そのデータの保持方法がいまいち思い浮かびません。
各フォルダごとにその直下のファイルリストを保持するのは
現実的ではないだろうし…。
ちなみにツリー表示するだけのものなら、もうできあがっているので、
あとはファイルサイズも見られるようになったらいいかなと思って、
今はツリー表示しかできないところを、
エクスプローラライクにできないかなあ、と画策しているのです。
33デフォルトの名無しさん:03/06/20 16:38
自分のマシンのIPアドレスを取得するにはどうすれば良いでしょうか?
34コピペしようぜ!!:03/06/20 16:55
早稲田大SuperFree強姦事件のまとめページ
http://www.memorize.ne.jp/diary/06/93147/
早稲田大レイプ魔晒し上げ画像
http://tmp.2chan.net/img2/src/1056025506230.jpg
http://oosaka52.hp.infoseek.co.jp/cgi-bin/img/586.jpg
早稲田大レイプ魔晒し上げフラッシュ
http://cstrike-inr.mine.nu/SuperFree/waseda.swf
>>16
>>25改。これが出た中では一番速い。
Result := False;
for i := 1 to Length(s) do
 if s[i] in LeadBytes then begin result := True; break; end;

ByteTypesは前後の文字も調べてるので計算量はこの方法の数倍だし、
(LeadBytesは単に全角の一バイト目かどうかを調べるのに対し、ByteTypesの方が情報量が多い)
WideStringにキャストは、すべての文字をコンバートする上新たなメモリ割り当ても行うので
悪いけど単に調べるだけの用途ならちょっと論外。
36デフォルトの名無しさん:03/06/20 17:14
自分の作ったプログラミングの2重起動を禁止する方法を教えて下さい。
D5ProにLMD-TOOLSというコンポーネントをインストールしたらIDEでstringやSQL等を編集するエディタが
LMD製になってしまいました。
日本語が通らないので元に戻したいのですがどうしたらいいでしょうか。
使いたいコンポーネントがあるので完全にアンインストールしないでエディタだけ元に戻す方法が有れば教えてください。
>>36
http://www.google.co.jp/search?q=CreateMutex+Delphi&lr=lang_ja

>>36
LMDなんとか知らないけどソースがあるなら
RegisterPropertyEditor を探して 修正したらどう?
3936:03/06/20 18:12
>>38
どもっす。
なんとかできそうです。
ありがとうございます。
4026:03/06/20 22:31
>>27
thxこれから調べるッ
4126:03/06/20 22:31
>>30
二千じゃ聞かないのだよ二千じゃ(`Д´)
設計で質問です
あるクラスTAのリストを持つTBというクラスがあったとして
TAに変化があった場合TBでもそのことを知りたいんですが
下のようにはできませんよね?

Type
 TA = class(TObject)
  Owner: TB;
  a: Integer;
 end;

 TB = class(TObject)
  List: TObjectList;
  modified: Boolean;
 end;

これはTA宣言時にTBが何だかわからないのでダメみたいですが
これの解決方法にTAにTObjectとしてTBを持たせてキャストしてアクセスするのと
TA.aへのアクセスをTBからしかできなくする以外に方法はありますか?
それとも根本的な設計ミスですか・・・?
TB = class; と最初に書いておく
>>43
首吊ってきます・・・
45デフォルトの名無しさん:03/06/21 10:31
ネットワーク上の別のマシンの共有フォルダにある
ソフトを起動するにはどうすれば良いですか?

ShellExecute だと自分のマシンでネットワーク上のソフトを起動する事はできますが、
別のマシン(Aとします)上のソフトをA上で起動するにはどうすれば良いでしょうか?

OSはWinXP HomeEditionです。
>>45
もしそれが何の設定もなく出来るとなると、ちょっと困った事になりますよね?

・Aのマシンでtelnetd を走らせておくとか
・Aのマシンで バッチファイルがあればバッチファイルを一度実行して実行後削除するというバッチを無限ループで作るとか
4745:03/06/21 11:19
>>46
確かに、何の制約もなくプログラムを実行出来るのは問題がありますね(^^;

バッチファイルが今回の私の場合、使えそうです。
アイデアありがとうございます。
DCOM という手もある。>> 45
49デフォルトの名無しさん:03/06/21 14:11

関数を引数として関数に渡すにはどのようにしたらよいでしょうか。
50直リン:03/06/21 14:13
51_:03/06/21 14:21
>>49
関数ポインタ方を先に定義します。

例えば type TMyFunc = function (x:integer):Integer;

で TMyFunc型の引数で関数を定義すればよろしい
53デフォルトの名無しさん:03/06/21 17:59
前スレ上がってたのでage
>>17まだ見てる?
Indyならネット関連のプロトコルパッケージが無料で使える
ttp://www.nevrona.com/Indy/
日本語ヘルプ
ttp://www.borland.co.jp/delphi/del7docup.html
55デフォルトの名無しさん:03/06/21 23:28
ゲームプログラムなんですが、メインFormのonCreateで、設定ファイルを読んで、
必要なオブジェクトを用意して、画面に配置して、それらの準備ができたらMMTimerを
スタートさせてゲーム開始!・・・のはずなんですが、

onCreateの最後でMMTimer.startをやると希にアクセス違反を起こしてしまいます。
もしかして、オブジェクトの準備ができていないのにタイマーをスタートさせて
それらをいじろうとしたから・・・?

オブジェクトを作る命令がいくつかあって、その一番最後でタイマーを動かしてるんですが
こういうことってあるんでしょうか?
>>55
あります
私もそれで泣きました
解決方法としてはOnShowで
if not Timer.Enable then Timer.Start
みたいにやるか
独自のWindowsメッセージを定義して
OnCreateの最後で投げるなどがあります
(メッセージループに入った=初期化処理は全て終わった)
Delphiの事を考えるだけで、胸がドキドキします
これは、もしかして "恋" なのでしょうか?
誰か、経験者の方は、おりませんでしょうか?
>>57
このスレはネタスレではありません。
ここ逝って聞いてください。そして二度と帰ってこないでください。
http://academy2.2ch.net/min/



59デフォルトの名無しさん:03/06/22 01:00
>>23>>54
ありがとう。調べてみます。
60デフォルトの名無しさん:03/06/22 01:08
>>56
うわ、助かります。・゚・(ノД`)・゚・。
MMTimerはEnableプロパティは無いようなので、メッセージですか・・・。
どう違うのか仕組みがわかってませんが、、精進します(´・ω・`)
>>52 
ありがとうございます。
ケースごとに不特定の関数を渡すようにするには
どうしたらよいですか?聞いてばかりですいません・・
>>61
pointer 型にキャスト。
>>61
ケースごとって case 文の事? 詳しく書かないと判らんよ
>>63
わからんなら、レスつけるなよ。52 の元の 49 を読みなさい。
ケースが Case 文かどうか関係ないでしょ?強い型付言語のひとつの Pascal で、
任意の関数を引数に渡したい。って話なんだから、pointer 型使うしかあるまい。

pointer 型は、C/C++ でいうところの void * で、任意のポインタを表現できます。
その代わりのっぺらぼう。関数としての情報すら失っていますから、実際に元の関数を
呼び出す場合には、再度 52 に有るような関数型名定義を行い、それにキャストする形と
なる。
だから、そういうふうにpointer型を使って無理に渡すのはどうかなと思ったから詳しい事情が知りたいわけ。
その設計には明らかに無理があるでしょ?
6661:03/06/22 10:16
やりたいことは、ある条件を判定する汎用的関数があって、
その関数は幾つかの関数から呼び出されるのですが、
判定条件がTrueの場合、引数で渡された任意の関数にジャンプ
させたいというものです。
素直にcase文を使わないのは、関数を指定するのを呼び出し元のみ
に収めたいと思っているからです。
>>66
function Hoge( x,y:Integer ; func:TFunction) : boolean ;
begin
 ・・・なんか判定があって・・・
 if Result
 and Assigned(func) then func(引数があれば);
end;

って事? なんだか、構造化されてない設計だね


こういう場合、条件を判定する汎用的関数 ではなく、汎用的クラスを作った方が色々と簡易になると思うけど?


68デフォルトの名無しさん:03/06/22 12:31
StringList内にhogeという文字列がいくつあるか数えるにはどうすればいいんでしょうか?
ループ回して自分でカウントしろ
71ありがと:03/06/22 13:22
関数ゲット ズサー
内容調べてから使います
72デフォルトの名無しさん:03/06/22 14:12
質問なのですが、

Form1 から Form2 を開いたとき、Form2 で Form1 上の内容を
参照したいのですが、どうしたら良いのでしょう?

Sender でそれらしいことができるのではないかと思うのですが、
イマイチ分かりません。
Unit2でUnit1をusesしれ
7472:03/06/22 14:23
>>73 さん

も、もう少し細かく教えてもらえれば助かるのですが……。

例えば、Form2 から Form1 上のラベルの Caption を参照する場合には
どういうコードになるのでしょう?
implementation
uses Unit1;

procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Label1.Caption := ' ♥ ';
end;
7672:03/06/22 14:45
ありがとうございます。これで目的のことができそうです。


ついでにもうひとつ質問なのですが、

Torm2 が、Torm1 と Torm3 のどちらかから Create, ShowModal される可能性が
あるとして、Form2 内でどちらのフォームから表示されたかを識別するにはどうしたら
良いでしょう?
7772:03/06/22 14:46
Torm じゃなくて、Form ですな……
>>76
 可能性がって、それは自分がコーデングするとは限らないって意味?
 自分がプログラムを作るのなら、 FOpener:TForm; メンバか プロパティを用意して
 それに代入する事にしたらいいと思うよ。

 他人が使うなら ShowModal を殺しておいて、
procedure MyShowModal(Sender:TForm);
みたいな手続きを用意してこれを使ってと書いておいたら?
Delete(BIOS)
たぶん単純に、作る奴も開く奴も同じだろうから、
Createの引数に作成者(Form1なりForm3なり)を入れて、Ownerで判断しれ
配列型定数の定義の方法で悩んでいます。
たとえば、4*4の行列

1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7

があるとき、任意の行を取り出してそれぞれの
要素の合計を4つの変数に求めるプログラムを
作りたいのです。
(上の場合なら最初の行と3番目の行を取り出
し4つの変数にそれぞれ4,6,8,10という結果を
代入する)

しかし、この行列を配列にひとつずつ代入する
以外のやり方で定義したいのです(それという
のも、本番のプログラムは対象が26*8の行
列になるからです)。

よろしくお願いします。
82A:03/06/22 17:02
>>81
配列をクラスにして、一気にまとめてセットするメソッドかプロパティを作っては?
>>81
その定数というのは
1)定数であって計算でも求まるもの
2)毎回入力または変更するもの

どちら?
1)なら 配列定数を吐き出すプログラムを作る。 
2)なら、カンマ区切りのテキストファイルにして入力させればいい
84A:03/06/22 17:12
>>81
あ、定数か…。
それなら、

const A: array[0..3, 0..3] of Integer
 = ((1, 2, 3, 4), (2 ,3, 4, 5), (3, 4, 5, 6), (4, 5, 6, 7));

でいいはず。
詳しくは、ヘルプで"配列型定数"を見てみて。
>>82-84
当方、まだまだ初心者の域を出ずクラスを作ってどうこうという方法は
いまいちよくわかりません。
今回は>>84の方法でやってみようと思います。

へルプの配列型定数のところは読んではみたのですが、例として提示さ
れた方法がよくわからなかったもので・・・・・・。

ありがとうございました。
関数や手続きを外部ファイルに出してそれを使うにはどうすればいいんですか?
{$INCLUDE xxx.inc}
unitのことじゃ・・・
>>86
1.ファイル(F) 新規作成(N) ユニット(U)

2.
unit Unit2;
interface
procedure Hoge; // 宣言
implementation
procedure Hoge; //
begin
  処理
end;
end.

3.
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Unit2; // Unit2追加
中略
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
  Hoge; // 呼び出し
end;
end.
9086:03/06/22 20:30
>>89
ども
91デフォルトの名無しさん:03/06/23 08:34
>>67
ありがとうございます。
Delphi始めたばかりなもので、もっと勉強してみます。

単純に大文字小文字を区別せず2つの文字列を比較したい場合
CompareTextとSameTextだとどっちのほうが効率的なんでしょうか?

いろんなサンプルプログラムではよくCompareTextが使われてるみたいですけど
Compareしたあとにまた=0で判定する分無駄があるように見えます

Del6Personalなので中で何やってるのか全然わからないので
頓珍漢な質問かもしれませんがご存知の方お願いします・・・
パフォーマンスを気にするんなら実際に計測してみなよ。
たいていボトルネックになっていないことがわかるから(藁
>CompareTextとSameTextだとどっちのほうが効率的なんでしょうか
SameText内部でCompareTextが呼ばれる。

ちなみに
var a,b:string; なら
if a=b then ・・・ でいいと思うが? ただし負荷はほぼ同じだが
じゃあ見た目が綺麗だからSameTextにします
>>94
関係演算子だとCaseSensitiveじゃないですか・・・?

も1っこ質問なんですが
ビットフラグみたいに集合型を扱う場合
特定ビットの反転にあたる演算子はあるんですか?
a := a xor [someflag]; みたいな(これじゃエラーでた・・・)

ヘルプを見る限りは和集合-積集合しか方法が無いみたいですが
これこそ可読性が極端に下がるので使いたくない・・・
綺麗に表現出来ないなら、それは集合型を選択するのが間違いだったって事では?

プロパティに使うと便利だからって理由で、そして反転したいなら if 文で書いた方が判り易くて良いでしょう
if someflag in a then Exclude(a else Include(a, someflag ) みたいにさ
TStringGrid の上でマウスホイールを使ってスクロールした時、
遅くスクロールした場合と、早くスクロールした場合で処理が分かれてしまいます。
具体的に書くと、遅くスクロールすると選択している項目が下にずれていき、
早くスクロールするとスクロールバーが動きます。
これを両方ともスクロールバーを動かすようにする方法はありませんか?
>>96
すみません
ビットフラグはビットフラグでやれってことですね・・・
99Delphi 6 Personal:03/06/23 10:34
*.dprでDelphiを開いたときに全部のユニットをタブを表示するのはどこを設定すればいいのですか?
100デフォルトの名無しさん:03/06/23 10:55
☆貴方好みの美女をクリックしてみて☆(特典いっぱい)
http://endou.kir.jp/yuminet/link.html
101デフォルトの名無しさん:03/06/23 11:39
ICONファイルの透明色ってどうやって指定するんでしたっけ?
アイコンファイルは自動的に座標(0,0)が透明色になる筈だが
メモリリークを検出するようにしたら
やっぱりというか5つほど開放忘れがあったらしい
だがしかし、自分でやってる全てのCreate/GetMemを
順番にコメントアウトしてみてもまったく無くならない

そこで、リークしてるメモリの中身は分かっているので
コレをもとにデバッガか何かで、実行中に
同じ内容のメモリ領域を探し出すことって出来ますか?
Personalなんで微妙ですが、やっぱ無理かな
104103:03/06/23 14:41
あ、あと当たり前かも知れませんが
何度起動しても毎回同じ内容です
(しかも同じのが3つもある)
105103:03/06/23 22:24
最悪
チェッカのバグかVCLの仕様だった
最初に空フォームで検証してみなかった俺の馬鹿・・・
>>102
だっけ?
VisualStudioのアイコンエディタだと透明色ってのがあって、それで塗った部分が透明になるけど。
たしかDelphiについてきたイメージエディタ(のアイコン作成)もそんな感じだったような。
>>103
せめて Delphi のバージョンを。
>>105
自己解決したのか。

D6 では、ひとつのプロセスで三つのメモリブロックを開放しないという「振る舞い」を持つ。
メモリリークはバグの原因の一つだけど、メモリ開放を忘れると必ずバグが出るわけでもない。
正直に言うと 解放で手抜きをする事は多いな。
解放した後コールバックが飛んできそうな時まあしょうがないと自分でも思うけど
仕様追加でどんどん作業バッファが増えていつどの順で解放させるかトレースする手間取れなくてそのままだったりは
やっぱりイカンな・・・
>>108
それは設計ミスの気がするが。(もしできるなら)どこかで作り直したほうがいいね。
110デフォルトの名無しさん:03/06/24 12:22
Form1が全体のメニューになっていて、ボタンをクリックすると
Form2が表示される(Form1は完全に隠れる)ソフトで
Alt+F4を押したり、タスクバーの「デスクトップの表示」を押して、
その後ソフトを表示させるとForm1が出るのを避けるには
どうすれば良いでしょうか?

Form1でタイマーを動かしているのでShowModalは使えません。

宜しくお願いします。
111110:03/06/24 12:31
すいません。
意味不明でした。
わすれて下さい(^^;
112デフォルトの名無しさん:03/06/24 12:55
質問しなおします。

Form1とForm2はそれぞれ
OnActiveで
WindowState := wsMaximized;
を実行して、全画面表示にしています。
Form2は選択可能なフォームです。

Form1のボタンをクリックすると
form2 := TForm2.Create(self);
form2.Show;
を実行して
Form2が表示されるプログラムで
タスクバーの「デスクトップの表示」を押して、デスクトップを表示した後
タスクバーから選んで再度プログラムを表示させると
Form2が消えてForm1が表示されてしまいます。
どうすればForm2が表示された状態にする事が出来ますか?

ShowModalを使わない方法をお教え下さい。

宜しくお願いします。
>>112
Form1はメインフォームだから、先に最大化されてForm2がアクテブになれないからだから、
Form1のボタンをクリックした時に
form2.Show;
WindowState := wsMinimized;
とか最大化を解除しておいたら?

それから、ボタンでフォームを作成する時は2度目が作成出来ないようにしなくてもいいの?
いちおうForm1の子供で管理はされてるんだろうけど
集合型はBYTE型にキャストできるんでつか?
115112:03/06/24 14:16
>>113
ありがとうございます。
解決しました。

Form1のボタンクリックで
if form2 = nil then begin
form2 := TForm2.Create(self);
end;
form2.Show;
WindowState := wsMinimized;
としてみました。

116デフォルトの名無しさん:03/06/24 18:58
TIBTransactionてのがありますが、
これは、TIBDatabaseに一個用意するものでしょうか?
それとも使いまわして良いですか?
集合型の実装は、256 ビット(32 byte)のビットマップ。
Byte 型に強制キャストすることはできても、ほとんどの情報は消えてしまうだろうね。

集合型の個々の要素は最大 256 種類なので、Byte 型に格納することも可能でしょう。
>>116 大雑把に。
ひとつのデータベースに対して複数のトランザクションをかける必要があるときは、
当然複数の TIBTransaction が必要。管理できるなら一つでよい。
もちろん、複数トランザクションを同時に行う場合には必要なだけ用意しないと。
119デフォルトの名無しさん:03/06/25 09:55
DelphiでネットワークプログラミングやRDBプログラミングをするにあたって
おすすめの書籍またはHPを教えて下さい。
>>114
要素数8個までの集合型のサイズは1バイトなので問題なくBYTE型にキャスト出来る。

要素数16個ならWORD、
32個までならDWORDに対応。
121練習問題でヘルプ:03/06/25 10:04
ttp://www.wakhok.ac.jp/~tetsuo/delphi/chap07/pb0703.html
↑このページの【応用課題 7-3-B】をやろうと頑張ってるんですが、
どうしても成功しません。 どこが間違っているのかお分かりに
なる方がいらっしゃいましたらご教授お願い致します。m(__;)m

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer; //for文のカウント用
x:integer; //数式上のx
y:integer; //数式上のy
temp:integer; //xの値を一時保管するための変数。
begin
x := 1; //初期値
y := 0; //初期値

for i := 1 to 1000 do //繰り返しここから。
begin

//描画時にx、yの値を6倍し、中心のズレを修正し、赤色で描画。
Image1.Canvas.Pixels[6*x+Round(Image1.width/2)
,6*y+Round(Image1.Height/2)] := $000000FF;

//次のx,yを求める。
temp := x; //xの値を一時的に保管。
x := Round(y-0.97*x+5/(1+x*x)-5);
y := Round(-0.995*temp); //tempにはxの値が入っている。

end; //for文ここまで。
end;

//このコードで実行すると、ループの9回目に初期値の(1,0)に戻ってしまいます。
>>121
練習問題で Help 出していたら、いつまでたっても上達しないよ。

あなたのコードは悪くないんだけど、設問を理解し損なっているだけ。
コードを書く前に、コードを理解しなさい。紙に数字を書いていってごらん。

ちょっとした勘違いが、間違った結果を出していることに気づくよ。
123122:03/06/25 11:38
コードそのものは間違っていません。
描画コードも関係なし。誤差を考え6倍云々は忘れましょう。

正しい X,Y の組を、紙の上で数回分出して、
デバッガで追ってみましょう。何かに気づく。
気づかなかったら、プログラマには向かないかな?
向いてる向いてないで一番大事なのは、楽しんで組めるかどうかだと思うよ。(プロ除く)
なのでガンガレ>121
125デフォルトの名無しさん:03/06/25 14:42
ルートディレクトリを取得する方法を教えてください。
たとえばCドライブにWindowsのフォルダがある場合は
C:\を取得したいという事です。
宜しくお願いします。
>>125
検索キー
GetSystemDirectory
ExtractFileDrive ProcessPath
127デフォルトの名無しさん:03/06/25 14:51
カレント作業ディレクトリを取得して、それから1〜3文字目を抜き出す。
>>127
カレントディレクトリが、ネットワーク上、かつドライブにマップしていない場合も
あるので気をつけてね。
>>126
サンクス
130デフォルトの名無しさん:03/06/25 19:53
Rowが1行しか無いと固定セルが真っ白になります。
Rowが1行しか無いように見せたいですが、
DrawCellのoverrideだけでは線が残ってしまいます。
どっかに良いコンポ落ちてないかなー。
>>130
それはStringGridのことだよね?
ヘルプでFixedRowsプロパティ読んで。
132デフォルトの名無しさん:03/06/25 23:01
各画像フォーマットを相互変換するコンポーネントありましたら教えて頂けませんか?

133 :03/06/25 23:18
S C++
A C
B perl
C Delphi Java
D VB
難易度的にはこんなもんかな。
学習法はVB,Delphi,Pelを並行して勉強後Cを勉強
その後JavaとC++を勉強。
言語自体が難しいって、一体何なんだろうね
俺がプログラミングを始めた頃は
アルゴリズムに関心があるだけで
FORTRANだろうとBASICだろうとマシン語だろうと
言語自体を習得することなんて問題にもしてなかったな
「C++って何かおかしいんじゃない?」
と思ってみたりもする
言語自体が難しいって、一体何なんだろうね
俺がプログラミングを始めた頃は
ベーマガ(略)
皆様、煽りは控えめに....

処理系の規模が大きく複雑なので学習しづらい。とかは有るかもね。
133 のリストにあるのは本質的に同等の記述能力を持つプログラミング言語だし。
137Delphi 6 Personal:03/06/26 10:51
TTimerで始めのインターバルをなくす良い方法ありますか?
138三十路:03/06/26 10:54
すみませんが、DelphiでSMTP認証のメール送信は簡単にできますこ?
インターネット関連のプログラミングは大抵Indyで事足りると言ってみる。
>>137
OnClickからタイマーのイベントハンドラを呼び出す

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1Timer(Sender);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  {タイマーイベント}
end;

141140:03/06/26 11:17
×OnClick
○FormCreate
142Delphi 6 Personal:03/06/26 13:00
>>140-141
勉強になりましたありがとうございます。
DB使っているEXEを作ろうと思うのですが、
ファイルサイズが大きくなりすぎると、後々のファイルのアップデートが
やりにくいと思うので、何とか分割する方法がないかなぁ、と。

で、MLの
[Delphi:74315] パッケージを使ってプログラムを分割するとき
のツリーを見たんですが、全然分からなくって (;´д⊂ バカ デ スミマセン

誰か分かりやすく解説お願いします〜。
TEditの中の文字列をTEditの中で真ん中に揃える(又は、右揃え)ことは出来ないのでしょうか?
147デフォルトの名無しさん:03/06/26 21:05
Webブラウザみたいなものをフルスクラッチで作る場合、表示部はPaintBox上に
構築していくのでしょうか?
Delphiなら、 コンポーネントを動的に貼り付けて構築するんでしょうね
そういうときのために実行時パッケージという手段がある。
>>26
Win9x系だとサブディレクトリのファイル数が多くなると
そのファイル情報にアクセスするのが急激に遅くなります.
(検索だけでなく開くのも遅くなるはず)
基本的に一つのフォルダに何百も何千もファイルは置かない方がよいと思います.

>>130
グリッドコンポは固定行のみ,または固定桁のみという風にはできないようですね.
HeaderControlはどうでしょう?
151デフォルトの名無しさん:03/06/26 22:12
質問よろしいかしら?
今バージョン6のパーソナル版つかってるのですが、ひとつまとまったものができあがってきたので、
配布のためプロフェッショナル版を買おうかと思ってます。
が、ボーランドのサイトや、ネット通販のページをみたところBorland Delphi 7 Studio Professional
になっています。
6から7Studioに変更するに当たって6で作ったプロジェクトがそのまま使えないということはあるのでしょうか?
また、気をつけたほうがいいことはあるのでしょうか?

どうか宜しくお願いいたします。
可能性としてはある。(ex. 6で作ったプロジェクトがそのまま使えないウイルスに感染している場合)
ありがとうございます。
可能性としてはあるというレベルなのですね。
大きな変更が必要ではないかと不安だったのです。
ウイルスはひととおりチェックいれてますから。
154デフォルトの名無しさん:03/06/26 23:41
タイトルバーのアイコンをクリックした時に出てくるポップアップに項目を追加するのはどうやるのでしょうか?
155A:03/06/27 00:47
>>151
直接関係ないけど、無料での配布、ならD6パーソナルのままでも可能だと
>>147 
フルスクラッチで作る場合は、PaintBox を使わないでしょ
フルスクラッチなんだから
157デフォルトの名無しさん:03/06/27 01:55
MDIアプリケーションを作ってます。
アプリケーションを起動したときに、追加した子フォームが表示されないようにするには
どのようにすればよろしいのでしょうか?

新規作成 → MDIアプリケーションで最初からあった子フォームだけは最初は非表示になってます。
どうかよろしく御願いいたします。
158デフォルトの名無しさん:03/06/27 01:57
159デフォルトの名無しさん:03/06/27 02:53
色々あってUDPでデータを受信しております。
TNMUDPクラスを使っております。

TNMUDPクラスの受信イベントで受信サイズが分かるので
動的にメモリを確保し先頭アドレスをバッファにほおりこんで後で処理したいです

1)どないしたら動的に取得したメモリに受信データ書けますか?
2)動的に取得しているメモリを違うメッソドで解放しても問題ナッシン?
3)淋病になってチソコ腫れタンだけど薬飲んで腫れが引いたらチソコにコブできた。どーしよー?
160デフォルトの名無しさん:03/06/27 02:58
161_:03/06/27 02:58
indyをインストールしたいのですが、Fulld6.batで生成されたdclIndy60.bplをパッケージのインストールで選択すると
「パッケージ ($パス$)\dclIndy60.bpl を読み込めません。システムに接続されたデバイスが機能していません。」
と言われてインストールできません。過去ログやgoogle検索してみましたが原因も対処もさっぱりです・・
どなたか対処法ご存知でしたらご教授願います・゜・(ノД`)・゜・
delphi6personal(update2) + WinME
163162:03/06/27 04:10
追記
インストールしようとしているindyのバージョンは9.0.14です
>>162
ttp://www.nevrona.com/Indy/downloads/9_00_03/IndyNet9_00_03.EXE
↑ インストーラーでインストすれば簡単。 でもIndy9.0.3B。

Indy9.0.3Bは2chブラウザのOpneJaneで今でも使われてるバージョンです。
私もこのバージョンを使ってまふ、Indyの最新バージョンを入れようと
思えば入れられるケドね。

でもIndyくらい自力でインスト出来るようにならないと後々ツライかな・・
初心者に優しいページ見付けたから貼っておこ。
ttp://www.wakhok.ac.jp/~tetsuo/delphi/mokuji.html
>>157
プロジェクトファイル(*.dpr)って見たことある?
>166
あああ なるほど 解決しました
ありがとうございました。
168143:03/06/27 09:40
>149

実行時パッケージを使う場合にEXE本体側のものをパッケージ側から使うとリンクしちゃうから、
とかなるので、インターフェースを作りましょう、ってMLでは書いていたんですよね。
Database接続をEXE側のコンポでやっているのをパッケージ側で使おうとしたら、
リンクしちゃわないかな…と。
>>168
あなたのいう「リンク」ってなに?
ML は半可通がおおいから、ここと同様、頭から信用しないほうがよい。

答えがほしいなら、ML の番号を。
170162:03/06/27 10:23
>>164
インストーラー使っても組み込まれないようです・・
インストール自体は正常に終わるのですが、設計時パッケージを見ても増えてませんでした
171デフォルトの名無しさん:03/06/27 10:59
IndyのTIdHTTPServerって、マルチスレッドで要求受けてくれるのかな?
172143:03/06/27 11:20
>169

MLの番号は >143 で書いたように

[Delphi:74315] パッケージを使ってプロ グラムを分割するとき
ttp://www.users.gr.jp/ml/archive/delphi/74315.asp

から始まるツリーで書かれています。
(このアーティクル中でも書かれています)
173143:03/06/27 11:27
ツリーだとこれです。
ttp://130.158.124.192/~takeuchi/delphi/browse.cgi?index=074315

一つ、ご教授お願いいたします。
ML-74315 でこねくり回しているのは、パッケージの動的ロード。
>>143 であなたが気にしているのは、更新時のファイルサイズの削減。
それに対し、>>149 で提案されているのが実行時パッケージの使用。

ということで、ML-74315 は >>149 の提案とは「直接」には関係ない。
ML-74315 で議論されているのは通常とは異なるパッケージの使い方なので、
通常は無視してよい。

これでよいかな?
何も考えずに、オプションダイアログで「実行時パッケージを使う」をチェックしてみなさい。
普通に使う分には、パッケージを使う/使わないの影響が表面化しないように設計されているから。

さらに、自分用ライブラリをまとめてパッケージにしたり、ボーランド標準パッケージをばらして
必要なものだけまとめなおす。という選択も可能だ。

なお、DLL 化は Delphi RTL のパッケージの利点を無駄にするので、通常は避けるように。
もし使う場合には、インターフェースを細い/単純なものにしてブラックボックスとして使うこと。

こっから先は「くだすれ」の範囲を超えるかな?

ML-74315 の失敗は(おそらく)パッケージとアプリを同じディレクトリでメンテナンスしていたから。
でしょう。インターフェースなんか出さなくても解決できたのにね。
最初にアプリ A を作る。
まぁまぁいいかな。ってところで、機能的に分離したい部分をユニット単位でパッケージに移動し
パッケージ P をつくる。この時点では単なる実行時パッケージだ。

デバッグも一段落したので、パッケージ P を動的に読み込むように変更する。
実行時パッケージの参照リストから P を抜き、その代わりに自分で読込み用関数を呼ぶ
用に書き換える。
この時点でアプリ A から、パッケージ P に含まれるユニットに対する参照を全部取り除かなければ
いけない。
P に含まれるはずのユニット U に対する参照がアプリ A に残っていると、パッケージ P を使わない。と指定したのだから
アプリ A にユニット U が含まれてしまう。パッケージ P の管理を手作業で行う。と決めたのだからそこもちゃんと管理し
なければいけない。そんなに難しいことではなく、パッケージ P に含まれるユニットをアプリ A の開発ディレクトリから
移動すればよい。別ディレクトリを作る。ってことだ。

いったん分割したら、パッケージ P に含まれるユニット、厳密にはアプリ A が参照する機能を持つユニットを変えない限り、問題は起きない。
本来は、通常の実行時パッケージを使う状態にまで戻すべき。そうやってデバッグしてからもう一度動的パッケージ版にしたほうが
確実だったのでしょう。
ML-74315 の人は、親アプリのフォームを参照するために大事なユニットの仕様を変更してしまったのですね。

完全な空白文字列→''
または
スペースのみで構成された文字列→' 'とか'   'とか'   '(全半全)とか

↑を検出するにはどーいうif文を書くのがスマートでしょうか
1箇所だけでしか検査しないのでそのためにわざわざ
正規表現使えるコンポーネントを入れるのもアレですし・・・
if (Length(Trim(CheckString))=0) then〜

だがこれだけでは全角スペース対応していない。
よって事前にStringReplaceなどで全角スペースを取り除く
179143:03/06/27 14:28
>174-176

なるほど〜。
動的で無くてもいい場合に、パッケージだけコンパイルして配布、
って方法でも問題ないっすかね。

ちょっと時間を見て試してみます。
ありがとうございました。
>動的で無くてもいい場合に、パッケージだけコンパイルして配布、
まさに某がやっていることだよね?
>>177, 178
StringReplace 二段重ね、最初にすべての半角スペースを削除、次にすべての全角スペースを削除。
結果が空文字列かどうかで判定。
速度がちーと遅いかも知れないが、タブとかも処理できるし、わかりやすい。
>>177
判定だけならAnsiPosなるものがあります。
0なし、他あり
>>178,181
ありがとございます
Replaceの結果を見るていうのはちょっと予想外でした

>>182
>>178
文字列が空であることを調べるのにLengthを使うと
かえって遅くなる罠があると言ってみる。(空文字列比較用に最適化される)
VBとは違うんだよ、VBとは。

185Takamori:03/06/27 16:54
HP宣伝
「日曜プログラマー的Delphi」を開設しました。
http://www.geocities.jp/takamori700/
http://www.geocities.jp/takamori700/tips/idx04_0001.html#0001

すっ、すごい!「goto」使ってる(w
うほっ!今、俺もそれ見てた。
Exitで同じことできるよねえ?
あの…。質問があるのですが。
>>185のページをみて。このくらいなら楽にできるなと自信をつけさせる場所なのでしょうか?
Del厨って嫌な性格だな
190Delphi 6 Personal:03/06/27 19:50
初心者向けだと書いてあるぞ。
俺は初心者が見る分には便利だと思うよ(関数のところなんかが)
implementation

{$R *.DFM}

type
TKeyData = record
fCTRL :Boolean;
fSHIFT:Boolean;
fALT :Boolean;
dKey :Byte;
end;

var
MahoKeydata:array[1..48] of TKeyData;

このMahoKeydataを別ユニットで使うにはどうすればよいのでしょうか?
192デルファイの名無しさん:03/06/27 19:56
Delphi関係の日本語の情報が少ないのはDel厨のせいなんだね
193_:03/06/27 19:59
>>191
implementationの上へ移動する
195191:03/06/27 20:33
>>194
typeとvarの両方を上に上げてみたんですが、ダメでした。

MainForm.MahoKeydata[1].fCTRL := chkCtrl1.Checked;
のようにしてるんですが、ここがいけないんでしょうか?
「MahoKeydataが未定義」と言われてしまいます。
196デフォルトの名無しさん:03/06/27 20:48
au.
あの
x=3
とかのは、どこに書き込めばいいのでしょうか。初心者ですいません
>>195
uses節にMainFormが記述されていない。
198191:03/06/27 21:17
>>197
ということはUnit1(MainFormのユニット名)ですよね?
それは記述してあります。
>>195
MainFormが余計と思う
200191:03/06/27 21:36
>>199
うまくいきました!多謝です!
ありがとうございました。
フォルダ選択ダイアログを表示させたいのですが、
それらしいコンポーネントが見つからないのですが、
Win3.1のならあるみたいなんですが、これしかないのでしょうか?
202デフォルトの名無しさん:03/06/27 22:48
コンポーネントじゃなくてSelectDirectory()関数を使え。

フォームAからフォームBを呼び出して、フォームAを閉じるとフォームBも一緒に閉じるように
したいのですが、どうすれば良いのでしょうか?
204201:03/06/27 22:59
>>202
ありがとうございます!!
FormAHideでFormB.Close;巣りゃいいんじゃないの
206203:03/06/27 23:11
>>205
できました。
ありがとうございます。

問題なく動いてるようですが、もしフォームBが開かれていなくて
フォームAを閉じた場合、何か問題はないですか?
ハンドル取って条件指定した方がよいのでしょうか?
問題なく動いてるならいいです。
208203:03/06/27 23:37
>>207
わかりました
209164:03/06/28 01:14
>>162  ぬぅ、なんで失敗したのかさっぱり・・・スマソ

>>185
きれいに作ってあるなぁと思ったらFrontPage使ってた。
プログラマならHTMLべた打ちしてほしい。

↓じゃ、おまえは機械語やアセンブラで書け
>>185 すごい!! よくまとまってますね〜
とほほさんとこみたいにアーカイブにまとめてローカルで
見れるようにして欲しいな..と言ってみりゅ。
>>210
どうぞ

0111000011101111000011110100110101101010001010001111001101010110
1010011110101010101001010010010101000011101100101000111110011001
1010100101000000000111100101001010010100101010101010010110010110
1010101011001010010101010101001010101010010101010000111110010100
0101010101010101101000010011010010101001001010110111111000111001
1010100101000101010100110101011010010101010101010001010110101010
1110101001010101010001010010101001100101011011100100011100010101
0101010010100001100110101010101010100011010010100100100101010101
1101001001010000101010110010101010100101010010001101010010101001
0100101010100101010001010100111010101001010110101010010101010011
1010010101010110100001101101010101100101001010101010101010010101
0100101010010100101011001010101011000000101111011011110100101000
0100101100110101001010100110101010101010001010101110010010100101
1010010100101011010100001010101001010010101001010101010100101001
>>212 ネタなのかマジレスなのか解らん…_| ̄|○
広告だらけの勘違い糞ページの作者さんお疲れ。
ホントだ。すげ−あるw
>>185
なんだこりゃ・・・初心者を使えないダメPGにするためのページですか?
はっきり言ってこの内容は害悪だ
相手が初心者なればこそ、より正しい情報を与えるべきだ
自分自身がまったくわかっていないのに人様に教えようなどとは笑止千万
レベルが高い低いではなく、入門として用を成していない
いますぐページをたたんで郷里へ帰りなさい
217デフォルトの名無しさん:03/06/28 08:49
delphiのエディタって何のコンポーネント使ってるんですか?
ああいうの作りたいです
>>217
IDEのエディタは予め用意されたコンポーネントじゃなくてBorlandが書き下ろしたものと思うが。
テキストエディタが作れるようになったら大したもんだ。

…で、大したことの無いへたれは、TEditorで検索するべし。
少し前のバージョンなら Resource Hacker(TM) で 覗けたんだけどね。
D6だとCoreIDE60.bpl なんかそれらしいの覗こうとしてもエラーになるようになってる
>>216
具体的に害悪な部分を指摘してくださいよ。
できないなら低脳な煽りとして君が叩かれることになる。


(しかし初心者向きなのにProfessional前提なのは問題があるなぁ…)
>>220
叩いてくれ〜(ニヤニヤ

>(しかし初心者向きなのにProfessional前提なのは問題があるなぁ…)
へえ、そりゃあ問題だね(笑)
222デフォルトの名無しさん:03/06/28 11:42
Delphiでブラウザを使ったプログラミングやサーバーサイドプロブラミング
をしたいのですがどこかいいサイト無いですか?
223デフォルトの名無しさん:03/06/28 12:04
コンソールアプリを実行してGUI側で情報を取得する簡単な方法ありますか?
224avi:03/06/28 12:20
友達から拡張子がaviの動画ファイルをもらったのですが、
windows media player8で再生ができません。
コーデックが必要だとメッセージが出るのですが、
そのコーデックがDLできません。
どうすれば見れるようになるのでしょうか?
どなたか教えてください
よろしくおねがいします。
>>223
簡単な順に
1、ファイル渡し
2、クリップボード
3、GUI側をDDEサーバにする
4、無名パイプ
5、メールスロット
とか
227Delphi 6 Personal:03/06/28 12:48
>>224
AVの動画を貰ったって?
>>226
リダイレクトが無いのがアレだとおもった。
>>220
>>216に書いてある事が全てだが?
件のページはただの場当たり的リファレンスであって
入門ページを名乗るのは見当違いも甚だしい
しかも悪いことに、設問に対する解が最善のものでは無い場合がある
(既出ではあるがexit手続きで充分なところに無意味なgoto手続き等)
更に悪いことにサイト著者自身が何をしているのか理解していない場合がある
アプリケーションの二重起動抑止のところなどは最悪で
if hMutex <> 0 thenではなくて、まずCreateMutexして
if (GetLastError = ERROR_ALREADY_EXISTS)とするべきだし
自分が理解していない事を堂々と(自称)入門ページに記載しているのは
詐欺まがいの行為である
せめてそれくらいは理解して、さっさと郷里へ帰りなさい
>>229
お前、WebProg板でも暴れてただろ?
231デフォルトの名無しさん:03/06/28 13:55
おいおい
196に誰かレスってやれ
232159:03/06/28 13:57
誰か、受信データのバッファを動的に獲得する方法教えてよ・・・
今のままだと受信サイズが予想外のサイズで死んじゃうんだよぅ
マジで頭下げます。すみません、教えて下さい。
私が悪かったので何卒、御教示して下さい・・・
>>228 
リダイレクトの意味が >>225 ならファイル渡しだし
http://hp.vector.co.jp/authors/VA026252/tips/delphi_anonymous_pipe.html
なら それは無名パイプだ
>>232
Strings でも、 array of byte でもで
SetLength 使えばいいでしょ?
>>196
とりあえずインターネットにでも書き込んでみてはどうですか?^^
236159:03/06/28 16:19

着信イベントが発生した段階でgetmemを呼び出してバッファを獲得するじゃないですか。
TNMUDPクラスのreadメソッドを使って読み込むときにその先頭アドレスを渡したいんですが
pointer型を変換したりするとコンパイラにお叱りをうけてしまいます。
これを回避したいのですが、どうやって回避したらいいのかが判らないんです

アフォの致傷だからって見捨てないでください・・・
>>192
日本語のページからdelphiを検索しました。 約70,500件中1 - 50件目 ・検索にかかった時間0.26秒
日本語のページからvisual c++を検索しました。 約54,800件中1 - 50件目 ・検索にかかった時間0.23秒

実はDelphiのほうがVisual C++より資料が豊富
ちなみに「日本語のページを検索」オプションつけてますよ
>>236
悩んでる原因が判ったよ
なんと TNMUDP の ReadBufferは
procedure ReadBuffer(var Buff: array of char; var length: integer);

と、ちょっと困ったクンな仕様なんだね。


しょうがないから ReadStream を使いなさい。 
Streamなら
rocedure ReadBuffer(var Buffer; Count: Longint);
だから  簡単だ


TempStream := TMemoryStream.Create; して
ReadStream( TempStream ) ;と読み込んで
TempStream .Position:=0 ; と頭に戻して

後は好きなように
>>237
「ビジュアル」の綴り間違ってるぞ。
>>239ガナー
>>239
あっ!間違えた
今度こそ正しいぞ

日本語のページからvisaulstudioを検索しました。 1件中1 - 1件目・ ・検索にかかった時間0.09秒
拡張子変えてPS2でみれるのかな?

情報キボンヌ
243デフォルトの名無しさん:03/06/28 19:02
質問なんですが
例えば takasi's homepage という文字列を使いたいとします。
当然「'」で囲みますよね。でもそうすると'takasi's homepage'となり
takasiの部分で文字列が終わったと見られてしまうんです。
文字列の中にある「'」を文字のまま扱うにはどうすればいいのでしょうか?
>>243
ヘルプの「文字列定数」を読めばいい
無料版だからヘルプがないんです・・・・
'takasi''s homepage'

漏れの無料版には付いてるぞ
>>243
新手のホームページ宣伝か?
ヘルプもPDFのマニュアルもpersonalに付属してます
248243:03/06/28 19:20
今ヘルプ見てるところなんですが
>>245は僕じゃないですよ。

>>244さんありがとうございます。
249デフォルトの名無しさん:03/06/28 19:59
>>238
ありがとうごだいますた。
おかげさまで読み込めますた。
構造体(hogehoge)をきっておいて

var
cmd : hogehoge;
begin
streambuf := tmemorystream.Create;
wk := @streambuf;

nmudp1.ReadStream(streambuf);

こうすることによりSteamBufを戻さなくてもwkのメンバ変数を参照することにより
好きなメンバにアクセスすることができますた。
ただ、初心者なんでよくわかってないところもあります。

UDPの受信イベント内でTmemorystream.createとやったときには
受信イベントを抜けたときにもメモリの値は保持されますか?
一度getmemして、獲得したメモリをTMemoryStream.Createで受けた処理をしたあとに
必要に応じてFreeすべきでつか?(その場合の管理はObjectListを使うつもりです)

いろいろこれから試行錯誤してみたいと思っておりまふ・・・・
>>249
なんか筋の悪そうな事をやろうとしてるように思う。

文字列が入ってるなら
             SetLength(ReturnString , streambuf .Size);
streambuf .ReadBuffer(Pointer(ReturnString)^, streambuf .Size);

と文字列にして返してしまえば後の取り扱いが楽だ。
>>185
とりあえずわかる範囲で
#0001
このコードをコピペしてもコンパイルできないようです.G_AppPathって#0006のGuユニットを使っているのでしょうけどこれが必要ならそう書くべき.
またサンプルなら他の自作ユニットがなくても動くようにする方が適切だと思います.

あと,この例なら作業用ファイルは用意しなくてもファイルストリーム一つで書き換え可能ですよ.
直接書き換えが不可能な処理の場合は作業用ファイルの代わりに
メモリストリーム(TMemoryStream)を使うと良いでしょう.

#0005
initialization節とfinalization節にはbeginとendは不要ですよ.

>>196
xという変数を使いたいのでしたら…

procedure TForm1.Button1Click(Sender: TObject);
var // これから変数を宣言するぞ,という印
x: integer; // xという名前の整数型変数だぞという意味
begin
x := 3; // 変数xに3という値を代入(代入は『:=』なので注意)
ShowMessageFmt('xの値は%dです', [x]);
end;

>>218
TEditorがあるので無理して自作する必要はないかもですね.
           _________
   ∧,,∧   / TEditorは
  ミ;゚Д゚彡 <  プロポーショナルフォントが
   ミつ旦(ミ~~ \ 描画できなかったなあ
 @ミ   ミ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪  AAがちゃんと表示されないですの…

日本物ならこちらなど。
http://home1.infonia.ne.jp/~delphian/delphi/compo/labeledt.html

海外ものなら
DreamMemoとかも人気あるらしいっす。

某がエディタ部を公開してくれたらうれしいですね。
>>252
このまえ、ちょっとだけ話題になったけど、どうやら某はプログラミング用エディタを
売っているようだ。(たしかメリケンじゃ売れてるんでしょ?)
そういうノウハウが沢山詰まっているエディタとかは公開しないんじゃないかな。
SynEditとかも結構いいよ。
w2kやxpだと正常に動作するソフトが、98だと
「Exception EReadError in module ****.EXE at 0001F80B.
ComboBox24.Items.Strins の読み込み中のエラー
:A call to an OS function failed.」
というエラーが出て起動しません。
同じ症例が数件あるのですが、何か原因の特定はできるでしょうか?
リソース不足のような気がするのですが・・・
256249:03/06/29 10:32
>>250
接続機器から返すのはレジスタの内容とRS-422で受信したデータとPC98時代の漢字コードなんで
混在してデータが帰ってくるので構造体を切ったほうが楽かと思いました。
制御ばっかしやってたのでアプリは初めてです。
むずかしくて涙がこぼれそうになります・・・・
>>256
バイナリ+文字データで、固定長なの?
それなら、Record型を定義しておいて

streamBuf.ReadBuffer( レコード型変数 , SizeOf( レコード型変数 ) );

受信処理でこのレコード型変数か(1回に複数レコード受信するなら)
レコード型の動的配列を返すのがいいんじゃないの?
質問します。
ユニットを用途別に分けたいのですが、例えば、標準でUnit1.pasにForm1のOnCreateイベントが記述してあるとして、それを新たに作ったユニットに
移転させることは出来ますか?
また、フォームに乗っかっているTMemoなどに文字列を設定するような手続きなどは、
そのクラスが書いてあるユニット以外にも書けますか?
よろしくお願いします。
>>258
モジュール化の仕方のレベルで考え直すべきだと思った。
260 ◆bro13ZUdHQ :03/06/29 20:02
http://www.geocities.co.jp/Milano-Killer/8366/CompOJ.html
このページを参考にしてOpenJaneのコンパイルをしようとしてるのですが、

>Jane2ch.dpkのフォルダ指定及びActiveXの取り込み
>同様に『Microsoft Internet Controls (version1.1)』で『インストール』
のところでインストールボタンを押すと、
---------------------------
エラー
---------------------------
クラス名 'TWebBrowser' は既にインストールされています.
---------------------------
OK
---------------------------
とでてしまいます。

どうしたらいいのでしょうか?
>>260
とばして次のステップへ。
何かもう中上級Del使いって保母さんみてえだな。
>>259
ただスクロールが大変という理由で解決策を探していました。
もうちょっと勉強してきます。
delは金食い虫だな。
皆、MSに移行するべき。
>>264
金が無い奴はそもそもオプソに逝くと思うが。(w
266 ◆bro13ZUdHQ :03/06/29 20:42
>>261
とばして進めると

>コンポーネントの確認(しつこく確認)
>メニューの『プロジェクト』−『オプション』−『パッケージ』タブでJane2ch.bplを選んで
>『コンポーネント』クリックすると一覧が出ます。次の5つがあることを確認して下さい。
>THogeListView THogeTextView TScriptlet TWebBrowser TWebBrowser_V1

ここで、TWebBrowser TWebBrowser_V1の2つが表示されて
くれないのです。

よろしくおねがいします。
267_:03/06/29 20:44
ASPプロジェクトで済むだろ。
バカや炉多すぎ。
普通に働いてお金持ちになれるのは全体の1%のみって本当!?
本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
http://www.adultshoping.com/addclickport.cgi?pid=1053353765(直リン不可)

/////
>>266
そこも飛ばしちゃっていいよ。
271デフォルトの名無しさん:03/06/29 21:27
Form1を表示せずにタスクバーだけ残すということは出来ないのでしょうか?
とりあえず、Form1.Hideではタスクバーまで消えてしまいました。
TopかLeftにマイナスの値入れて画面外に移動させたりとか
273デフォルトの名無しさん:03/06/29 21:46
でるぱいを起動させるときにどれをクリックしたらいいんですか?
多すぎて分かりません。
274デフォルトの名無しさん:03/06/29 21:49
保守
>>272
Left := -Widthで見た目は消えてますね。
でも位置を変えたくないのです。
>>273
柱と地球のアイコンをクリック
277デフォルトの名無しさん:03/06/29 21:55
>>276すみません。
どのフォルダに入ってますか?
Delphiをインストールしたフォルダです
279直接起動君:03/06/29 22:00
C:\Program Files\Borland\Delphi5\Bin\delphi32.exe
C:\Program Files\Borland\Delphi6\Bin\delphi32.exe
C:\Program Files\Borland\Delphi7\Bin\delphi32.exe
280 ◆bro13ZUdHQ :03/06/29 22:01
>>270
とばしてコンパイルまで来てコンパイルエラーになってしまいます。
---------------------------
エラー
---------------------------
';' が必要ですが 識別子 が見つかりました.
---------------------------
OK
---------------------------

procedure MenuThreadRefreshClick(Sender: TObject);
procedure ZoomClick(Sender: TObject);
procedure ThreadChkNewResButtonClick(Sender: TObject);  <<−−ここでエラー
procedure ThreadWriteButtonClick(Sender: TObject);
procedure TabControlChange(Sender: TObject);

何でこんなとこでエラーになるのかわからないです。
日頃の行いが悪いとそうなる
普通に働いてお金持ちになれるのは全体の1%のみって本当!?
本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
http://www.adultshoping.com/addclickport.cgi?pid=1053353765(直リン不可)

////////////
TMemIniFileでIntegerの範囲を超える数値を記録する方法を教えてください
>>275
見えなきゃ、位置とか関係ないじゃん。
2000以降でもいいなら、透明にするとか。
>>283
TMemIniFileを継承して、Int64を読み書きするメソッドを追加するか、
バイナリとか文字列で記録するか。でいいんじゃないの?
286デフォルトの名無しさん:03/06/29 23:46
OnKey*イベント以外で、
普通の処理中にあるキー(Shiftとか)が押されているか否かを検出する方法は?
287286:03/06/29 23:51
GetKeyState で出来ました。
にゃんこりゃひょ。
289 :03/06/29 23:54
>>255
マルチポストみっけ。
マナー悪いな。
あっちもレス付いてないぞと。
290デフォルトの名無しさん:03/06/30 01:50
StringGridの上をマウスが通過したときに、 どのセルの上にマウスカーソルがいるか
を調べることってできるのでしょうか?
どうぞ よろしく御願いいたします。
291255:03/06/30 02:32
>>289
どうしてもこちらでレスが付かなかったので痺れをきらして
あちらに書き込んでしまいました。
ごめんなさい。
>>290
MouseMoveイベントでMouseToCellメソッドを使えばわかるんじゃないかな。
StringGridなんて使ったことが無いけど、ヘルプみたら速攻で見つかったぞ。
聞く前にヘルプのメソッド一覧くらいはさらっと読みましょう。
293デフォルトの名無しさん:03/06/30 10:59
TServerSocketと
TClientSocketを使っているのですが
非同期ソケットエラーが出ます。

このエラーはどんな時に出るのでしょうか?

ヘルプを探しても見つかりませんでした。
宜しくお願いします。
294293:03/06/30 12:00
ちなみにソケットエラーの番号は
10053です。

つまり
「非同期ソケットエラーです。 10053.」
という例外ダイアログが出てきてしまうという事です。

このエラー番号の意味などがのっているHPなどありましたら
教えて下さい。

宜しくお願いします。
296デフォルトの名無しさん:03/06/30 13:59
DrawGridで指定行だけ背景色を変えるにはどうすればいいんでしょうか?
>>296
DrawCellをオーバーライドする。
メソッドの中で、Canvas.FillRect(ARect)する。

か、背景色だけなら同じくDrawCell中で、Canvas.のペンかブラシの色を変えるだけでも可能だったかも。
298297:03/06/30 14:22
もちろん、指定行以外では、inheritedだけしとく事。
299293:03/06/30 15:18
>>295
即レスありがとうございます!
>>271
.dprに
Application.CreateForm(TForm1, Form1);
Application.ShowMainForm := False; <----追加
Application.Run;

でどうだろう。
これだとタスクバーも消えちゃうかな?
ボタン1をクリックしたらボタン2が作成されて表示される
みたいなことは出来ますか?
>>301
出来るけどあんまり意味がない。設定も面倒なだけだし。
最初からボタン2も配置しVisible=Falseにしておいて、
ボタン1イベントでVisible=Trueにしたほうが楽。
303301:03/06/30 18:18
>>302
了解です
ユニコードの扱いがおかしい・・・
30518:03/06/30 21:20
>>192
日本語のページからdelphiを検索しました。 約70,500件中1 - 50件目 ・検索にかかった時間0.26秒
日本語のページからvisual c++を検索しました。 約54,800件中1 - 50件目 ・検索にかかった時間0.23秒

実はDelphiのほうがVisual C++より資料が豊富
ちなみに「日本語のページを検索」オプションつけてますよ
ここでもDel厨のイカサマ炸裂!
307デフォルトの名無しさん:03/07/01 01:04
先生!チャットソフトを作りたいです
TClientSocketを使ってHTTP(2ちゃんブラウザを作ったり)なんてのは問題なくできるのですが
どうやって「受信待ち」するのかわかりません
ネットワークの神様お願いします!!
悪いことはイワンからまずはC+socketで修行しとけ
309ニーチェ:03/07/01 01:06
神は死んだ!
>301
visibleでon・offもいいけど、ユーザー側にとってはenabledを使って押せないボタンとして
表示してある方がフレンドリかな。ある機能が実装されているということと、それの発動には
一定の条件が必要ということを予め示せるから。重箱の隅な話でごめん。
>>308
>>309
こういうレスがつくってことは何か頓珍漢な事を言ってしまったでしょうか
神が死んでは仕方有りませんのでとにかくC言語の線から攻めてみます
アドバイスありがとうございました
>307
キリスト者じゃない我々には、死んだ神も、神を殺した人間も関係有りません。309はあぼーんで。
308は伝統的なソケットの作成を知っておけと言いたいのでしょう。Cのやり方を知るのは為になると思いますよ。
「Delphiによるソケットプログラミング入門」なんて本があれば
それで十分なんだけどな。本当は。これもマイナー開発環境の悲劇だな。
314正論:03/07/01 09:46
日本語のページからdelphiを検索しました。 約70,500件中1 - 50件目 ・検索にかかった時間0.26秒
日本語のページからvisual c++を検索しました。 約54,800件中1 - 50件目 ・検索にかかった時間0.23秒
>312
キリスト者ではないわれわれにとっても、デイタラボッチは死んでしまったのだよ。
アイコンではなく、画像そのものをタブにするような
格好(゚∀゚)イイ!PageControlか、TabControl知りませんか〜。
オーナードローしようとすると、タブの中だけ描画になるんで、今ひとつ…。
317デフォルトの名無しさん:03/07/01 12:32
>>307
チャットのサンプルが
\Demos\Internet\Chat
にあるけど、それじゃだめかな
318デフォルトの名無しさん:03/07/01 13:06
こで作ってみたんですがインデックスがないってできます・・
だれかおしえてくださいませんか
Sub 作業日取得()
Dim program_id As Integer
Dim start_date As Integer
Dim end_date As Integer
Dim check_start As Integer
Dim row As Integer
Dim col As Integer
Dim c As String
Dim start_flag As Boolean
program_id = 3'IDの番号()
start_date = 9 ' 開始日番号()
end_date = 10 ' 終了日番号()
check_start = 11 ' ■形式のデータが入っている最初の列番号(1オリジン)
With Sheets("表(詳細)")
row = 3
319デフォルトの名無しさん:03/07/01 13:09
Do While .Cells(row, program_id).Value <> ""
.Cells(row, start_date).ClearContents
.Cells(row, end_date).ClearContents
col = check_start
start_flag = False
Do While col < 200
c = .Cells(row, col).Value
If Trim(c) <> "" Then
If Not start_flag Then
start_flag = True
.Cells(row, start_date).Value = .Cells(1, col).Value
End If
.Cells(row, end_date).Value = .Cells(1, col).Value
End If
col = col + 1
Loop
row = row + 1
Loop
End With
End Sub
なんですが・・
エラーがでてしまって・
こんな馬鹿な僕に教えてください神様
皆、つっこみたい気持ちは分かるぞ。しかしだ。大人なんだからこらえるのだ!!
321デフォルトの名無しさん:03/07/01 14:38
>>320
お前がこらえきれていない(w
322デフォルトの名無しさん:03/07/01 15:00
>Sub 作業日取得()
( ´_ゝ`)?<Delphiって日本語使えたっけ?
キリスト教の神って全知全能なんだろ
な ん と か し て や れ よ
誰も偽者がコピペしたものだと気づいていない。
>>322
使えませんよ。
いくらなんでも、そんなこと知らないなんて、才能無いですね。
LightReport2のTLRGridPanelでDBを印刷中にキーブレークで途中で改ページする方法を教えてください。
327デフォルトの名無しさん:03/07/01 17:30
ある一つのMDI子フォームを、MDI子フォーム達の中では最前面に表示するようにするには
どのようにすればよろしいのでしょうか?よろしくおねがいします。
最前面に表示したいFormオブジェクトのShowメソッドを使えばよろし。
>>317
Personalなので見てみることはできませんでしたが
それに関係するやり取りを探すことでチャットを完成できました
その存在を教えていただいたおかげで解決したようなものです
本当にありがとうございました

ちなみにTClientSocket同士で通信しようとしていたのが最大の敗因で
TServerSocketの解説ページを見つけたのが勝因でした(BCBでの解説でしたけど)
330デフォルトの名無しさん:03/07/02 01:05
Memo1にある内容をそっくりそのままMemo2に移すにはどうすればいいのでしょうか?
よく使うコンポーネントの取り回し方を
具体的に教えてくれる本があればいいんだけどね。
TMemoが載っている本ははいくらでもあるんだがTListViewとかはほとんど無い。
初→中へステップアップするのに結構な努力を強いられるのは
マイナー環境とはいえ、誰かなんとかしてほしいところ。
Memo2.Text := Memo1.Text
(;・∀・)・・・本当にくだらない質問だったようで、どうもすいませんでした。
今回は複数行になるので、Memo2.Linesとすることにします。
334 :03/07/02 01:22
んん?「text」で問題無いと思うが<複数行
>>331
ライブラリは何でもそうだと思うけど、まずはVCLの癖をつかむのがいいと思う。
とにかく触りまくって、ソース見まくって、使い倒す。
データをアクセスする部分を中心に触るのがいい。TListViewだったらItemsプロパティとか。
>>331
Win32タブに乗ってるのは、StandardVCLより癖があるから、習得が一気に難しくなるよね。
サンプルソースとか見て頑張るしかない〜
コンポなんてフォームに乗っけてヘルプ全部読んで全機能つついてみればいいんだよ。
ただそれだけ。
○ンポーネント
>>333
Memo2.Lines.Assign(Memo1.Lines);
これでも出来るよ。
>>337
俺もそんな感じで収得したなぁー
別プログラムで簡単なサンプル作ったりして…

DB関連のイベントのタイミングを知る時は
ShowMessageやMemoに書き出したりもしたな。
OpenDialogのコンポって文字コード選択のコンボボックスが表示できないんだね。
Delphi7では出来るようになってるのかな?
別のパネル上にあるすべてのラジオボタンから一つだけ選択させる、
という設定はどうしたら良いのでしょう?
文字コード選択って標準のOpenDialogについてるものなの?
あの手のがついてるのは自力で改造してると思ってたけど。
344デフォルトの名無しさん:03/07/02 19:19
DELPHIのことは全く知らない初心者です。
ちょっとDELPHIでゲーム作りたいんだけどその方法を詳しく
説明してくれるサイトありませんか?
あったら教えて下さい。
345デフォルトの名無しさん:03/07/02 20:45
>>235>>251
ありがd
>>343
自力だよ
むしろ地力
348デフォルトの名無しさん:03/07/02 23:10
349デフォルトの名無しさん:03/07/02 23:31
>>343
WindowsXP付属のメモ帳に文字コードのコンボボックス付いてたんで
いや、メモ帳はサンプルプログラムじゃないし。
クエスチョンマーク
ビックリマーク

縦読みすると……ですか
2ちゃんねるの世界はリストラも厳しい
354デフォルトの名無しさん:03/07/03 00:52
すみません、教えて下さい。

TreeViewでAbsoluteIndexではなく
展開されていたり畳まれていたりする現在のツリーの状態で
調べたい(例えばSelected)アイテムが
ツリーの一番上(.Item[0])から数えて何番目にあたるかを
知るにはどの様にすれば良いでしょうか?
index := -1;
node := TreeView1.Selected;
while node <> nil do
begin
 node := node.GetPrevVisible;
 Inc(index);
end;

一番上が0
357355:03/07/03 01:39
>>356
即レス誠に有難うございます。
お陰で思い通りの動作を得る事ができました、多謝。
>>348
そこの管理人は近藤級の毒電波・・・

>>344
【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 【作れば?】
http://bbs.gamdev.org/test/read.cgi?bbs=gamedev&key=1054282821
359デフォルトの名無しさん:03/07/03 09:42
delphi7って、エディタの配色は自由に変更可能になりましたか?
DB触るのに各Formが勝手にADOStoredProcとかバンバン操作しちゃっていいもんかな?
なんか美しい!(゚∀゚)って感じの作り方ありませんか?
>>360
データモジュール、使ってる?
362360:03/07/03 13:03
>361

DataModuleにADOStoredProcとか置いて使おうとしてますが・・・
そのままレコードセット触ったりしたら、なんかエレガントじゃない気がして・・・
WinXP + Del7の環境で、XPManifest使わない状態で、
何でScrollBarは他のコンポのスクロールバーと表示が違うのYO!?
364359:03/07/03 14:19
ごめんなさい、もう一度聞いていいですか?
delphi6ではエディタの色を16色の中でしか選択出来なかったのですが、
delphi7では自由に変更可能になっているでしょうか?
なっているなら購入しようと思っているのですが・・・
>364
少なくとも設定画面からは16色しか選べないな…
>>364
レジストリいじれば?
もうすぐ8が出るのに今7買うの?
368Delphi 6 Personal:03/07/03 19:48
>>363
スクロールバーが元々Visual Styleに対応してるから
369デフォルトの名無しさん:03/07/03 21:06
>368
ちゅーことは、ScrollBarは実は他のものとは異なるコントロールなの?(゚Д゚)
すみません。

ttp://www.m-mix.com/Program/Component/
ここのMOStringGridを使おうとして、なんとかDelphi7に入れられたのですが、
セルをカレンダーにして、日付を選んでフォーカスを移動すると
変な日付(例えば203//7//03)が入ってしまいます。

処理の流れを追っても何処でそういう文字列をセットしてしまっているのか
わからないんですが…。

どうやったら直せるでしょうか?
371デフォルトの名無しさん:03/07/04 01:34
MIDIやWAVE等々の音量を調節するプログラムを作りたいのですが、
googleなどで検索しても参考になるサイトがなかなか見つかりません。
どなたか、為になるサイト又は書籍をご存知の方はいらっしゃらないでしょうか。
既存のコンポーネントはなるべく使いたくないでつ。。。
>>369
XPの仕様でしょ。VCLのせいではないよ。
APIのみでSCROLLBARクラスのコントロールを作っても同じ現象になる。
373371:03/07/04 03:43
MIDIとWAVEは検索ワードを変えたら見つかりました。。
なんかうまくいきそうなので、371は見なかったことにしてください。。
374デフォルトの名無しさん:03/07/04 05:51
ポップアップメニューがポップアップしてるかどうかの状態はどうやって取得すればいいの?
375デフォルトの名無しさん:03/07/04 11:02
背景色にあわせて自動的に文字色を変えたいのですが、
それぞれをいちいち指定するのが面倒なので、

背景が白っぽかったら、黒文字
背景が黒っぽかったら、白文字

背景が赤っぽかったら、青文字

みたいに自動的に色を計算してくれる関数なりクラスなりどこかに落ちてませんか?

cl := ColorCalc($77FF77);
ってやったらclに適正な色が入るようなのが理想です。
>>375
$色 - $ffffff の結果を Abs してみるのはどうだろ(反転)
377たぶん:03/07/04 12:45
こんな感じでうまくゆかないかな
function colorCacl(c:TColor):TColor;
begin
Result := c xor $FFFFFF; //とりあえずビット反転してみて
//その輝度が似てたら
 if abs(
    ( c and   $FF)-(Result and $FF)
   +(( c and $FF00)-(Result and $FF00) shr 8)
   +(( c and $FF0000)-(Result and $FF0000) shr 16)
   )<128
 then result := $ffffff and c+($808080);
end;

378375:03/07/04 18:01
>>376
>>377
ありがとうございます。

うまく出来ました。
379375:03/07/04 19:08
>>377
馬鹿みたいに何も考えずにただコピペしたら出来ました。
ありがとうございます。
380デフォルトの名無しさん:03/07/04 19:53
ttp://www23.big.or.jp/~utamaro/binary/up0267.jpg
↑こんなポップアップヒントを表示するコンポーネントってありますか?
381デフォルトの名無しさん:03/07/04 20:29
プログラム実行中に変数を作りたいんですがどうやったら実現できるのですか?
>>376
なぁ、素直に、

$ffffff - $色
($色 <= $ffffffは保証されてるわけで。)

ではあかんのか?


>>381
ポインタを使えば可能。
>>374の回答まだ〜?
>>384
ポップアップを表示したときにON
非表示にしたときにOFF
とかフラグ持っていればいいんじゃないの?
386376:03/07/04 23:06
>>382
言われてみればそうだね
適当なこと書いてすまんかった>>375
>>373
見なかったことに・・・ではなく、ぜひ解決したら指針を報告しに来る、とか、
参考になったページを晒すとかして下さい。
そうしておくことで、もし同じことで悩んで検索してこのスレにきた人の参考にもなります。
あなたが自分では無駄でゴミな質問をしたと思っても、
対処によってはまったくことなる投稿にすることができます。

>>381
もうちょっと具体的にやりたいことを書いてください。
388デフォルトの名無しさん:03/07/05 00:38
TActionクラスを継承し、独自のActionクラスを作成しました。
デザイン時にActionListの編集で独自のActionクラスを追加するにはどうすればいいのでしょうか?
389373:03/07/05 01:33
>>387
そうかもしれませんね。
では参考にしたページを貼っておきます。
ttp://www.jnishida.com/tips/delphi/del-0026.htm

WaveOutSetVolume(デバイス, 音量[0〜65535]);
MidiOutSetVolume(デバイス, 音量[0〜65535]);
↑これでうまくいくようなのですが、これを使って設定すると、なぜかパンの値が左チャンネルに寄ってしまいます。
なんでだろう〜?

あと、
ttp://forum.nifty.com/fdelphi/samples/00067.html
ここだとデバイス番号は0だけを指定してるんですけど、こっちでも問題無いのでしょうか。
私の環境だとMIDIデバイスの数は9個だったんですけど、
そのうちMidiOutSetVolumeで設定できたデバイス番号は3と4だけだった。
ほかの番号のものは使わなくてもいいのかな?というのが今抱えている問題です。

長文すみませんでした。。
すみません、TListにオブジェクトをいろいろ入れているのですが、解放の仕方について教えてください。
たとえば、TListにTCanvasのインスタンスを入れるとします。
中身の解放の時は、
List[n].Free;でいいのでしょうか?それとも、TCanvas(List[n]).Free;のようにもとのクラスでキャストしてから
解放しなければいけないのでしょうか?
TEditに3桁の数字を表示するようにしているんですが、
デフォルトだとMaxLengthを3にしておくとたとえば1592が代入
されたら下3桁の592と表示されてしまいます。
4桁以上の数字が代入された時に999にするにはどうすれば
よいのでしょうか?
392391:03/07/05 01:48
すみません、自己解決しました。
何故、3分 (01:45〜01:48)で解決するような内容を質問するんだろう
>>380
タスクトレイアイコンのバルーンヘルプなら
http://homepage1.nifty.com/~okapon/download/index.html

普通の時のポップアップヘルプは
どこかにあったような気がするが、
脳内やググで検索しても
ヒットしませんでした。
>>388

procedure Register;
begin
RegisterActions('', [TNewAction], nil);
end;
>>395
おー、そんなのがあるんだ。アリガトン。
>>380
ttp://homepage1.nifty.com/MADIA/delphi/old.htm
のその他のところのアーカイブに入ってるやつは?

>>385
いつ非表示になったかがわかんないんだよー。
無理なのかなー。
>>390
前者でいい。
詳しくはオブジェクト指向のポリモフィズムについて勉強して下さい。
>>390
× TList
○ TObjectList

それから TCanvas を動的に作って管理して解放するって事は
Handleに GetDC とかで得たハンドルを渡してると思うのだけど、
その場合、TCanvas を解放しても自動的にReleaseDCとかされ
ないので注意する事。

>>399
だとしたらTObjectListで自動的に開放なんてさせちゃ困るのではないのか?
401デフォルトの名無しさん:03/07/05 10:10
>>394
>>397
ありがとー
402 :03/07/05 10:24
すみません。

P****.TXT のように頭文字がPで拡張子がTXTのファイルを
一括で削除する方法を教えてください。

DOSだと、Del P*.txt で削除できますが、DelphiだとDeleteFile('P*.TXT');
で無理でした。(汗)
>>402
var
  F: TSearchRec;
begin
  if FindFirst('P*.txt', faAnyFile, F)=0 then
  begin
    repeat
      DeleteFile(F.Name);
    until FindNext(F)<>0;
    FindClose(F);
  end;
end;
404 :03/07/05 11:13
>>403

有り難う御座います。m(__)m
早速組み込んでみます。
405デフォルトの名無しさん:03/07/05 11:42
>>364-366
「カスタム」で選べるだろ、と思ったのだが、これって使えないのね。
なんのためのカラーダイアログなのかと小1時間・・・。
>>400
だから、それをする時はTCanvasを継承して Createで GetDCしてDestroyでReleaseDCする必要があるね
>>406
それならコレクションの方を継承するのが筋ではないか?

特定のデータを扱いたいからデータ構造に手を加えるというなら解るが、
特定のデータ構造に入れたいからデータに手を加えるというのは本末転倒かと。
408デフォルトの名無しさん:03/07/05 11:56
手段のためには目的を選ぶな。
>>408
消えろ水母野郎
>>407
コレクションをって、例えば TMyCanvasList とか作ってって事?
そうしたいならそうすりゃいいけど、そうするとTCanvas継承しか入れられなくなるし、
だいいち、必要なのはReleaseDCではなくDeleteDCかもしれないじゃないか。
だから、ここは DestroyでReleaseDC するTCanvas継承と DestroyでDeleteDCするTCanvas継承をそれぞれ作る方がいいよ
>>397
WM_EXITMENULOOPで分からないかな。
Delphiって便利なの?
今はデルファイ6のパーソナルバージョンのみ無料で手に入るの?
413デフォルトの名無しさん:03/07/05 20:21
>>412
いまから始めるならC#にしとけ。



タダじゃ手に入らんけどな(w
コンパイラだけなら無料で手に入れられたような。
>>414
それは・・・いまからDelphiとか言ってる香具師に勧めていいのか?(激藁
>>413
笑っているけど無知を晒しているだけだよ。
C#はタダで手に入るしIDEもSharpDevelopを使えばこれもタダだ。
417_:03/07/05 20:25
418デフォルトの名無しさん:03/07/05 20:25
へー、C#いいじゃん。
もうDelphiパーソナルなんて型遅れ要らないね!
DelスレでC#を勧めていることが一番痛い
420デフォルトの名無しさん:03/07/05 20:29
>>413から418って全部自作自演じゃねーの?
RadioButtonをクリックするのはどうやるのですか?

RadioButton1.Click;はできないみたいです。
>>422
オブジェクトインスペクタ→イベント→OnClick
>>422
プログラムからってこと?
だとしたら、RadioButton1.Checked := True;
425デフォルトの名無しさん:03/07/05 22:19
OnClickに書いてあるコードを実行させたくて、RadioButton1.Clickってやってみたら、エラーになり、
RadioButton1.Checked := Trueでは、チェックは付くけど、OnClickのコードが実行されませんでした。
RadioButton1Clickというプロシージャは人間がクリックしなきゃ実行されないのだろうか。
426デフォルトの名無しさん:03/07/05 22:23
>>425
SendMessage。FAQだ。
>>425
エラーメッセージ書かない奴はバカ
>>426
えらい回り道だな。
429デフォルトの名無しさん:03/07/05 22:29
>>427
すいません。「未知のエラー」と出ました。
430デフォルトの名無しさん:03/07/05 22:35
>>427
すいません。「無知のエラー」と出ました。
>>425
>422の内容で>425の内容を想像するのは困難だろ。最初から具体的に書けよ。
RadioButton1Click(Sender);
でいける。
432Delphi 6 Personal:03/07/05 22:38
>>427
[致命的エラー] project1.dpr(1): Delphiの限界が垣間見えました
>>389
ステレオラインは左右それぞれ音量指定しないとダメだったような記憶がある。
デバイス番号は主デバイス1個のみの決め打ちなら 0 でいい。
434無料動画直リン:03/07/05 22:38
435デフォルトの名無しさん:03/07/05 22:45
>>432
プッ、見えたのはオマエの限界だよ。

>>431
すいません。
まさか出来ないはずは無い、思い焦って書いたら小出しになってしまいました。

>RadioButton1Click(Sender);
ちなみ、今それを書いてみて実行してみたのですがRadioButton1OnClickの内容が実行されなかったです
>>425

RadioButton1Click(Self);


D E L P H I の 限 界 の 予 感 !

( A A は ご 想 像 に お 任 せ し ま す )
TStringList.LoadFromFile でHTMLのソースを読むと
何故か読み込んだソースが文字化けしてしまいます。
メモ帳で開いたように、ソックリそのまま読むにはどうすればいいのでしょうか。
>メモ帳で開いたように、ソックリそのまま読

んだからこそ文字化けしたんだと思うんだが。
DELPHI(超初心者)の限界だってば!
それほどそこが浅いわけねーだろ。





それほど深くもねーけど(w
>>436
いったいどこに書いたんだ?

面白くない場合は無駄に改行を入れないでください
>>442
procedure TForm1.FormCreate(Sender: TObject)に書きました。

もう諦めることにします・・・。
445374:03/07/05 23:15
>>411
WM_EXITMENULOOP を検索してみたのですが、使い方が分かりません。。。

SendMessage(ハンドル,WM_EXITMENULOOP,wParam,lParam)
の返り値ってことですか?wParamをどうやって調べるのか・・。
>>444
絶対読める。Senderとか渡さなきゃ。
>>446
すみません。今、よく確認してみたら、
RadioButton1Click(Sender);で出来ていました・・・(´Д`;)
448デフォルトの名無しさん:03/07/05 23:42
ここでよいのかどうかわからないんですが…
Delphi6でバーチャルMIDIキーボードを作ってます。
とりあえずMIDI周りの処理は作り終わって、パソコンのキーボードを
仮想鍵盤にするテストをしてるんですが、
 1.OnKeyDownイベントでMIDI出力開始
 2.OnKeyUpイベントでMIDI出力停止
という仕様です。

キーボードを押している間は一つの音が継続して出るようにしたいのですが、
今はキーボードを押している間中OnKeyDownイベントが何回も発生して、
ピアノを連打しているような状態になってしまいます。

キーボードのキーの数だけKeyDown中のフラグを持たせれば一応解決するとは思うのですが、
何か他にスマートな解決方法はありませんでしょうか。
>>448
Booleanな配列でも作ってノートON、OFF状態を記憶する。

既に発音中ならそれ以上ノートONは投げない。

音源からある音が発生中か否かがチェックできるならそれを使った方が確実だろうけど。
450デフォルトの名無しさん:03/07/06 00:02
たとえば、メニュー画面でステージを選択させて、それが押されると
Now Loadingを表示して、メインFormの作成にとりかかる、作成が終わったら
ゲームをスタートさせる・・・

とやりたいのですが、ステージ選択メニュー.onClickのイベントハンドラ内で

loading表示.visible := true;
Form1 := Tform1.create(Application);

とかやると、Loadingが表示される前にcreateが始まってしまい、createが終わるまで画面が凍ってしまいます。
どうしたらいいんでしょう?(´・ω・`)
451デフォルトの名無しさん:03/07/06 00:07
>>450
timer使うしか無いんでは。。
452デフォルトの名無しさん:03/07/06 00:08
大麻使うのかヨ!!!!!!!?????
453 :03/07/06 00:09
>>439
メモ帳で読み込んでも文字化けはしてると思うんだが?
漢字コードがシフトJIS以外なら。
454448:03/07/06 00:12
>>449
ありがとうございます。
やっぱりデータ持つしかなさそうですね。

KeyUpが発生するまでKeyDownイベントを発生させないようにできないかなーと
考えてたんですが、冷静に考えるとこの解決策と同じ事のような気がしてきました…
455 :03/07/06 00:12
>>451
timer?どう使うの?

>>450
loading表示.visible := true;
の「loading表示」って何?それを具体的に説明してくれないと分からん。
>>455
Timageを事前に作って仕込んでおき、ロード中のみvisibleにしようかな、とか思ってオリマス。
457デフォルトの名無しさん:03/07/06 00:16
>>455
良い方法かどうかわかりませんが。。
まずForm1Create許可用のBooleanを作り、falseにしておく。
ステージ選択メニュー.onClickのイベントハンドラ内では
loading表示.visible := true;とForm1Create許可用Boolean=trueのみ行う。
timer内でForm1Create。
>>454
WM_KEYDOWNで送られてくるmessageを調べれば、オートリピート中か調べられる。例えば

procedure TForm1.WMKeyDown(var message: TWMKeyDown);
begin
 if message.KeyData and $40000000 = 0 then inherited;
end;
ってやれば、オートリピート中はOnKeyDownが発生しなくなる。
>>457
追記、以後使わないんであればFormCreate内でTimer破棄。
>>458
ありがとうございます!!
こういう感じのを探してました。m(__)m
>>451
つーか、「Createが先に行ったように見える」ことが問題なんじゃないの?

「refresh」してみたら?
>>461
1アクションだとリフレッシュは後処理になったような気が。
処理を分けないとダメだったような。。気がする。
>>461
かっ、解決しました・・・単に描画の問題だったんですね。
皆様、ありがとうゴザイマシタ!
464 :03/07/06 00:29
仕切りたいワケじゃないんだが、質問者は
トリップ付けた方がいいと思うんだが…。
質問です。トリップの付け方を教えてください
>>465
かっこいい!
intA := intA;
みたい!
A:= (A + A - A)*0
>>465
Googleで検索すれば出てくるよ
コンポーネントのコの字もしらないような全くの初心者が
デルファイでオセロゲームを作れるようになるのは何日くらいかかりますか?
>>470
使うのイメージコントロールくらいだろうから2日。
>>444

FormCreateイベントには、そのフォームに乗っかってるコントロールの
イベントを呼び出すようなコードは書かない方がいいよ。

フォームは生成されてても、まだ描画か完了してない可能性がある
からね。
>>472
そのお前が言う「描画」に関する処理がなければ普通に呼び出せるが。
474 :03/07/06 09:53
最初にメッセージダイアログを表示して、フォームが開く前に
実行させるか選択させたいのですが、「いいえ」を押しても
フォームが表示されてしまい終了できません。

フォームを表示させずに終了させる方法は無いですか?。

procedure FormCreate(Sender: TObject);
var
MesChk : Word;
begin
MesChk := MessageDlg( プログラムを開始しますか?', mtWarning, [mbYes,mbNo], 0);

if MesChk = mrNo then Close; //「いいえ」を選択してもフォームが開いて終了できない。
end;
475デフォルトの名無しさん:03/07/06 10:01
Application
>>474
プロジェクトファイル名.DPR

にコードを書くと良いでしょう。
477デフォルトの名無しさん:03/07/06 11:43
delphiでIEの操作パネルのようなものってどのコンポーネントを
組み合わせて使えばよいですか?
>>477
秘密。
いままで、Del6の無料版でやってきました。
そろそろ本格的にやりたくなってきたんで、有料版を買おうと思うんですけど、
年末にでるという新リリースを待った方がいですか?
www.borland.co.jp/about/message/openletter_to_delphi_community.html
>>479
金出すなら別の選択肢も考慮に入れた方が良いと思う。
>>479
金を出す前に無料のC#もやってみたまえ。ってDelスレで勧めるなよ→俺
無料のデルファイって
無料のC#より出来ることが少ない?
無料のデルファイはインターネットのブラウザとか作れないっぽいけど
C#なら作れる?
>>482
コンポーネントが入ってないだけで作れないことはない……はず。
openjaneとか
>無料のデルファイはインターネットのブラウザとか作れないっぽいけど
アホですか?
>484
アホです。
>>485
うむ、がんばれよ。
>484
ここ超初心者向けの板だからさ、手加減しろよ(藁
まあおまえら、日曜日位少しはVB厨に夢くらい見させてやれよ。
ほんのわずかな休日なんだし。
>>473

472は、相手が超初心者だからそう書いたんだと思う。
そのあたりのことがわかってる香具師ならいいんだけど、
イベントの呼び出しがわからないレベルの香具師がハマ
ると混乱するからね。

俺もDel始めた頃にハマった経験があるし(藁
フォームが作られたら終了するプログラム
procedure TForm1.FormCreate(Sender: TObject);
begin
close;
end;
スレッド生成というものに挑戦したいと思います。

当然、内部的なプロセスが二つできるので、同じオブジェクトにアクセスする場合は衝突しないように
排他処理とか同期を取らないといけないと思いますが、たとえば

・ フォームからのtext入力をメインスレッドが読み、値を計算して大域変数に代入
・ サブスレッドはループしながら、その変数に変化があったらTForm.image.pictureに描画する

とかいう場合では、メイン→サブの一方通行なので特に衝突しなさそうに見えますが・・・ダメですか?
492491:03/07/06 16:48
そうか、別スレッドからはメインのVCLの状態が不明だから、VCLをいじるときは
Synchronizeを使ってメインスレッドから指令を出せばいいのか(´・ω・`)
>>488
>ほんのわずかな休日なんだし。

VBには仕事があって、Delphiは無職で糞だと言うことか
494デフォルトの名無しさん:03/07/06 17:13
Edit1.Textが数字だけのStringなのか、そうではないStringなのかを調べるにはどのようにすればいいですか?
495デフォルトの名無しさん:03/07/06 17:41
>>495
それ使ってみますどーも!
>>491
例えばユーザが125と入力したいとする。

大域変数:1
1で処理を開始。

大域変数:12
1の処理が終わる前に入力されると途中から12の処理になる。

大域変数:125
1の処理が終わる前に入力されると途中から12の処理になる。

こうなる。この場合排他制御がないと結果がぼろぼろに。



ただ単に非同期処理をしたいだけならグローバル変数なんぞ使わず
もっと安全な方法があるっしょ。

10秒間行動を停止するのってどうやるの?
たとえばボタンを押すと10秒後にラベルを変化させたいんだけど

procedure TForm1.Button1Click(Sender: TObject);
begin
//ここで10秒待つ
Label1.Caption:=('10秒たちました');
end;

10秒間何もしない命令を教えて。
Sleepで
>>490

それって意図どうりに動かんよね。

ttp://www.borland.co.jp/qanda/delphi/d0000150.html
>>499
ビジーループになるんだっけか?
502Sleep(10000);:03/07/06 19:23
try...finally文とtry...except文の決定的な違いを教えてください
ヘルプ読んだのですが、どこが違うのかよく分かりませんでした
>>502
例外があろうが無かろうが実行される。

例外がある場合に実行される。


Delphi唯一の失敗は、同時にその二つが指定できないことだ。
>>504
どうもです。
506デフォルトの名無しさん:03/07/06 20:00
Cでは下のように構造体の定義と配列の宣言、初期化を1度に書けますよね。
static struct{
  int a;
  int b;
}data[]=
{
  12,23,
  34,45,
  56,67
};
Delphiのレコード型でも同じようなことはできないですか?
せめて、配列の宣言と初期化を一度にやりたいのですが。


>>506
ローカル変数では出来ません。 
もしそういう表現が出来たとしても、隠れた代入文が作られるだけですしね。

その為にwith文があるのですから。 これを使って下さい。


グローバル変数なら(unit内のグローバル変数でも)可能です。
数千行のインデントを訂正するにはどうすればいい?
Dedi Code Formatter
ってスペリングミス。
s/Dedi/Jedi/
>>497サンありがとうございます。

ゲームプログラムなんですが、いままでonIdleを使って画面描画していたものを、
スレッド仕様に書き換えてみました。
メインスレッドは数値を計算し続け、サブスレッドはそれを元に画面を描画し続けるという感じです。

が、onIdleだと、描画が忙しくなってくる→onIdleが発生しなくなる→描画を間引く→負荷が減る→(゚д゚)ウマー
といった構図で、メインが圧迫されることはなかったのですが、
スレッドにしたら、サブスレッドが全力をあげて描画しようと頑張るもので、描画に負荷がかかると
メインスレッドにあるタイマが遅延してしまい、ガタガタになってしまいました。・゚・(ノД`)・゚・。

while(true) do begin
  start := timegettime;
  Synchronize(゚д゚); // ここでメインスレッド経由でVCLに描画
  stop := timegettime;
  if (stop - start < 33) then sleep(33 - stop - start);
end; // 描画が33ms以下なら、30FPSになるようにwaitを入れる

サブスレッド内はこんな感じなんですが、
これだと、33ms以上になると描画処理だけで全部持って行かれてしまうか・・・。
>>509-510
Jedi Code Formatらしい。

これ楽だね。サンキウ
>>511
もうどこから突っ込んで良いのやら・・・
>>493
>VBには仕事があって、Delphiは無職で糞だと言うことか

それ微妙にちがう…。
VBはバグ取りと称して仕事をせざるを得なく、Delphiはその間に
プロジェクトの構築がすべて終わっている。
つまりすぐ仕事が終わってしまうDelphiは我々から仕事をなくしてしまう悪のツールだということですね
無職は嫌なのでVBを覚えることにします
ありがとうございました
Delphiの
名前をつけて保存、とか
開くを選ぶとデフォで最初にでてくるのが
C:\Program Files\Borland\Delphi6\Projects
絶対ここになちゃうんだけど
かえるのどうやるの?
Delphiの起動アイコンのプロパティで作業フォルダを変える
>>516
Delのショートカットのプロパティを開いて、
作業フォルダをお好きなフォルダにしませう。
>>515
それは無理な話だ。Del厨名乗っている香具師でも
殆どの奴はVBも当然のように使えますんで。
>517-518
Thx!!できました。ありがとう。
>>515
こいつはひとつのプロジェクトが終わったら次の製品/商品をどんどんつくって
金を稼ぐという考え方がないのか?
永遠に進歩がないやつだな。
VB使ってもメモ帳使ってもいっしょだな。
522511:03/07/07 12:03
>>513
やはりツッコミどころ満載ですか・・・(汗
523デフォルトの名無しさん:03/07/07 12:20
paradoxのDBについて質問です。
現在C/SのDBアプリを開発しています。

クライアントでテーブルをTQueryでオープンするときに
LANケーブルをわざと抜いて、DBにアクセスできない時の処理を作っているのですが、
その後アプリケーションを終了させようとすると
ウィンドウは消えるのですが、タスクバーに残っていて、
Delphiで強制的に終了させても、「プログラムを終了できません」になります。

これを回避するにはどうすれば良いでしょうか?

OSはWindowsXPです。

宜しくお願いします。
524デフォルトの名無しさん:03/07/07 14:26
データベースについて質問です。
例えばBDEを使ったアプリを作ったとして。
これを配布するには、配布先のPCにBDEがインスコされてないとダメなんでしょうか?
BDEが入ってないPCで動作確認しようとしたらエラーが出て動かなかったもので…
また、BDEをインストールしないでよい方法があったら教えていただけないでしょうか?
BDEをインストールしないでよい方法
http://www.borland.co.jp/kylix/papers/kxguide/kxguid15.html
MyBaseでSQLは使えないからな〜
何かDBをインストールせずにって条件?
InterBaseかFirbird にしたら?

528デフォルトの名無しさん:03/07/07 17:12
sndPlaySound(Pchar('SOUND.WAV'),SND_ASYNC);
これだと、もう一つ同じ処理をすると、前に鳴っていた音は消えます。

前に鳴っていた音が鳴ったまま重なるように鳴らすにはどうすれば良いですか?
529デフォルトの名無しさん:03/07/07 17:29
とにかく例外を客に見せたくないので、
Tryを多用しまくってます(というか、かなりの範囲を一つのTry Exceptでくくってます)が
処理が異様に遅くなってるような気がします。

Tryが多くなると処理が遅くなるのですか?

それとも、Tryは関係ないですか?
530524:03/07/07 18:00
>>525
>>526
>>527
ありがとうございます。
そうです。何もDBをインストールせずにってことです。
これから作る前に聞いておいて良かったかも。
BDEだと配布先のPCにもBDEをインストールしないと
だめってことですよね?
MyBaseもInterBaseもFirbirdも使ったことないけど
がんがってみます。
>>529
関係無いです。
532デフォルトの名無しさん:03/07/07 18:55
>>531
レスクス。
そうみたいっすね。
>>339
TMemo.Linesの各行は表示行(画面の見た目の行)であって論理行(改行コードで区切られた行)ではないので注意が必要です.
以下はサンプル.フォームにメモを3個とボタンを2個置き,Memo1とMemo3の幅をかなり広く,Memo2の幅をかなり狭くします.

const
cNewLine = #$0d#$0a; // 改行コード
cSample =
'>>339' + cNewLine +
'TMemo.Linesの各行は表示行(画面の見た目の行)であって論理行(改行コードで区切られた行)ではないので注意が必要です.' + cNewLine +
'Textを使った方が安全かも.';

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo2.Lines.Assign(Memo1.Lines);
Memo3.Lines.Assign(Memo2.Lines);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Memo2.Text := Memo1.Text;
Memo3.Text := Memo2.Text;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Text := cSample;
end;

Button1を押した場合とButton2を押した場合で結果が違う点に注目.Textを使うのが安全確実高速.
534デフォルトの名無しさん:03/07/07 23:39
DelでIEの操作パネルみたいなものを作りたいのですが、
どのコンポーネントを組み合わせて作ればよいでしょうか。
535デフォルトの名無しさん:03/07/07 23:42
むり
>>535に補足

>>534じゃ」むり
537デフォルトの名無しさん:03/07/08 00:21
>>534
「操作パネル」って何のこと?
>>534
ここで探せ。きっとある。
Delphi Super Page
ttp://delphi.icm.edu.pl/
539 :03/07/08 00:48
俺も分からんなぁ<操作パネル
Coolbar?
DelでIEを操作するパネルを作りたいとも取れるぞ
541 :03/07/08 01:18
釣りだったらそこそこ釣れたな(藁
TStringListで空の行だけなくす方法はありませんか
例えば

[0]
[1] DEF
[2]
[3] ABC

とあった場合

[0] DEF
[1] ABC

としたいのです。
>>542

with TStringList do
 for I := Count -1 downto 0 do
 begin
  if Strings[I] = '' then
   Delete(I);
 end;
thenが無ければきれいなのに・・・。
545542:03/07/08 02:55
>>543
その通りやったら出来ました。サンクス!
文字エンコードが EUC-JP のものを Shift-JIS にしたいんだけど、どうやればいいの?
>>546
変換テーブル書く。
>>546
$80マイナスしてから_mbcjistojmsでJIS→SJIS変換
>>546
コードページ 54932 で Unicode に変換してから AnsiString にキャスト。
550デフォルトの名無しさん:03/07/08 13:54
sndPlaySound(Pchar('SOUND.WAV'),SND_ASYNC);
これだと、もう一つ同じ処理をすると、前に鳴っていた音は消えます。

前に鳴っていた音が鳴ったまま重なるように鳴らすにはどうすれば良いですか?
551デフォルトの名無しさん:03/07/08 15:56
Delphi3.01でQuickReport2.0k使ってParadoxテーブルの中身を印刷する
ように作ってみたんですが、うまくできません。

作成した物をInstallShieldExpressでインストールした一部の
WinXP HOME機で実行してプレビューを見ようとすると、
「アドレスの00000001で00000001に対する読み込み違反が起きました」
というエラーメッセージが出て、さらにプレビューの次ページを見ようと
ボタンをクリックすると、「メタファイルが不正です」というメッセージが出ます。

自分の開発用PC(WinXP Pro)や他のWinXPでは、このようなエラーは
起きないので、どうしてなのか分からず困っています。
どなたか助言ください。
「いまどき3.01かよ」ってのはナシの方向で。
>>551
×自分の開発用PC(WinXP Pro)や他のWinXPでは
○自分の開発用PC(WinXP Pro)や他のWinXP HOMEでは

ちなみに互換モードで試してみたんですが、駄目でした。
553デフォルトの名無しさん:03/07/08 16:25
ボタンがたくさん(80個ぐらい)ある
フォームに切り替わる時に、画面がチラチラします。
(パっと出てこない)

この辺を綺麗にするためのテクニックなどありましたら
ご教授下さいまし。
>>553
1. 方法その1
LockWindowUpdateを使用する。
Form1からForm2(ボタンがたくさんあるフォーム)を呼び出す。
procedure TForm1.Button1Click(Sender: TObject)
begin
 Screen.Cursor := crHourGlass;
 LockWindowUpdate(Handle);
 try
  Form2.Show;
 finally
  LockWindowUpdate(0);
  Screen.Cursor := crDefault;
 end;

2. ボタンが同じ大きさで格子状に配列されてもよい場合
こういうコントロールを使用して、たくさんのボタンを1個にしてしまう。
http://www.woll2woll.com/1stclass/tour/buttongroups.html
(英語)

LockWindowUpdateはWin32ヘルプか、MSDNを参照のこと。
>>550
sndPlaySound(Pchar('SOUND.WAV'),SND_ASYNC);

sndPlaySound(Pchar('SOUND.WAV'), SND_MEMORY + SND_ASYNC);
にすると、どうなる?
556553:03/07/08 17:19
>>554
レス、ありがとうございます。
LockWindowUpdateを使ってみたのですが、
まだ画面にパッと出てこずに、ちらつきます。
PCの処理が追いついていないのだと思います。

方法2にトライしてみます。
557550:03/07/08 17:22
>>555
レスありがとうございます。
音が鳴らなくなりました。
558553:03/07/08 17:26
>>554
LockWindowUpdate(Handle);
の部分を
LockWindowUpdate(Form2.Handle);
にしたら、かなり改善しました。
>>553
そもそもひとつの画面にボタンが80個あるインターフェースを作り上げることが
間違いだと言ってみるテスト。
ちらつきの問題が解決されても、それだけでリソース食っちまうし、
機能別に別フォームにするか、せめてタブコントロールで分けるという
ようにしたほうがよくないか?
それとも電卓とか、レジスタみたいなものを作ろうとしているならば、
ボタンを集合させたVCLがどっかにあるはずだから、探してそれ使ったほうがいい
と思ふよ(>>554がそれなのか?)
560553:03/07/08 17:39
>>559
親身なレスありがとうございます。
ソフトウエアキーボードを作っているので、どうしても
ボタン数が多くなってしまいます。

作っていて「こんなにボタンを作ってもいいのかなぁ」と思っていました。

ボタンを集合させたコントロールを使うのが、この場合
理にかなってるんですね。

>>554を含めて、色々検討してみます。
561 :03/07/08 17:53
DisableAlign
ってなんですか?

ぐぐってもほとんど分かりませんでした。
Form2.DoubleBuffered = True;で、その程度のチラチラ防げるんちゃうの?
Panelの上にImageを置いたコンポを作成する時、
Imageの元々のイベントをコンポのイベントとするためには
どう記述すればいいんでしょうか?
>>563
お前だけだぞ。コンポコンポ言ってるの。バカみたいだ。
565デフォルトの名無しさん:03/07/08 22:01
implementationの上のusesと下のusesは何の違いがあるのでしょうか?
566デフォルトの名無しさん:03/07/08 22:02
C#Builder導入支援キャンペーン
http://store.borland.co.jp/upgrade/csharpbuilder_cmp.html
>>565
循環参照OKか否か。
>>565
他のユニットに公開するInterfaces節の記述に必要か否か。
Classes.pasで定義されたTListを例に取る。

interface
uses Class;
function Hoge: TList;
implimentation
function Hoge: TList;
begin
 result := nil;
end;
↑interface節でuses Classesが必要。

interface
function Hoge: Integer;
implimentation
uses Classes;
function Hoge: Integer;
var
l:TList;
begin
 result := 1;
end;
↑implimentationでuses Classesが必要。
マシン交換でD5Pro+BDE(PARADOX)で作成したデータベースアプリを2台のマシンにインストールしたところ
片方だけruntime error 217と出て起動できません。
OSはXpProsp1です。
マシンの違いは起動できない方がPentium4 2.4Ghz、RAM1GB、動く方がceleron1.8Ghz、RAM512MBです。
両方とも新規で買ったDELL製で同じようにインストールしたのつもりなのですが。
アプリ自体は3年前から使用していてWIN95〜XpHomeまですべてのバージョンで問題なく動いてました。
ちょっと原因の見当がつかないのでこのエラーがどんなときに発生するのかご存じでしたら教えてください。


>>569
ほう、LinuxやBSDはOSではないと、いい根性だな。
>>570
は?
どこにそんなことが書いてありますか?
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1

OS means Windows。
問題のマシンのOSがXpProsp1だと説明することがなぜLinuxやBSDの否定につながるのか
論理的に説明してもらえませんか?
馬鹿みたいなコピペしかできないのなら氏ねよ。
ナニコイツ
574は570=572にね
delphiでCでかかれたソースを使う方法ってありますでしょうか…
ちょっと必要になったので
>>576
無いね。
C++ BuilderはPascalソース使えるんだけどな。
他のコンパイラでDLLにでもしなさい。
578デフォルトの名無しさん:03/07/09 04:29
ある変数が変更されたら、なにか処理をさせたい、なんて方法はありますか?
コールバックっつうの?
そんなイメージ。
プロパティ
あっ、そっか。
クラスにしろってことか。
ありがとう。
581デフォルトの名無しさん:03/07/09 06:48
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1
OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1OSはXpProsp1

OS means Windows。
582デフォルトの名無しさん:03/07/09 07:27
P2PMMORPG「P2PREGARO」
http://game3.2ch.net/test/read.cgi/mmominor/1054592980/l50

技術士キボンヌ歓迎します。
人生金次第
584デフォルトの名無しさん:03/07/09 09:25
>>576
いったんBCCなどで.objにコンパイルして、それをDelphiとリンクさせることはできたと思う。
http://www.borland.co.jp/qanda/lang/l0002163.html
>>549
横からですが…ホント!?
なら他のEUC-XXのコードページもあります??
>>585
疑う前に MSDN ドキュメントチェック。
一通り、IE/Outlook が処理できるコードページは使えるようになっている。
ただし IE をインストールする必要があるが、とんでもなく古い Win95 で無ければ
大丈夫でしょ。

JIS / ISO2022 もサポートされているよ
簡体字 EUC - 51936
GB18030 - 54936
簡体字 ISO-2022 - 50227
韓国語 EUC - 51949

588 :03/07/09 10:55
>>554
1stClass3000proってのをダウンロードしたら良いのですか?
589デフォルトの名無しさん:03/07/09 11:05
☆頑張ってまーす!!☆女の子が作ったサイトです☆
       ☆見て見て!!
http://yahooo.s2.x-beat.com/linkvp2/linkvp2.html
>>586
DelphiユーザにMSDNみろと言うのも酷な話だと思われ。
Web版は重いし激しく使いにくいし。
>>590
ま、人それぞれ。
>>588
そうです。その中の TfcButtonGroupというのを使ってみる。
>>569
ペン4 2.4Gか、ケロリン1.8Gかはあまり関係ないだろうな。
多分BDEのエリアスがちゃんと設定されていないからじゃないの?
もいちど、エリアスをチェックしる
594 :03/07/09 11:46
>>592
有料っぽいね。
実践・Delphiでポインタ入門の
実践その2 <TList.Items>
http://hp.vector.co.jp/authors/VA009712/take/delphi/pointer.htm#tlist

この内容で疑問に思ったんですが、
FList.Clear; した時に、FListに登録されているTMyItemはちゃんと
Destroyされるものなんでしょうか?
>>595
Destroyされません
その例はデストラクタでちゃんと掃除をしてないので
メモリリークを起こすと思います
597デフォルトの名無しさん:03/07/09 13:15
>596
やっぱりそうですよね…

ところで、DeleteやDestroyに各TMyItemをFreeするように書いて、
Listの先頭のMyItemを別に宣言したMyItemに代入した後に、ListをClearして、
MyItemのプロパティを参照してもエラーにならなかったんですが、
これは同じオブジェクトを見てなくて、代入時にAssignされたのかな?
>>597
たまたまエラーにならなかっただけだと思う。
自動でAssignされるようなことはないし、そもそもMyItemはTPersistent
を継承していないのでAssignメソッドを持っていない。
599 :03/07/09 13:55
image1.Picture.Bitmap.Canvas.CopyRect(rect(0,0,100,100),image2.Canvas ,rect(0,0,image2.Width,image2.Height));
ってやると、画像のエッジがガタガタになります。
エッジが滑らかなまま拡大縮小するにはどうすれば良いでしょうか?
600_:03/07/09 13:57
>>586
サンクス。しかし、54932をMultiByteToWideCharに渡しても玉砕しました。一応Win2000。
>>581
Winを抜いただけでなぜそうなるのか教えてくれない?
JavaのLog4jみたいなクラスありませんか?
>>593
ありがとうございます。
そのへんは何度も何度も設定し直したのですがだめでして、
諦めて後回しにしていたネットワークプリンタドライバーをインストールしたら
なぜか起動するようになりました。
なぜだろう…
プリンタ回りはTPrinterSetupDialogを置いてるだけでアプリからはいじってないんだけどな。

Edit1内のキャレットを一番右に寄せる方法を教えてください。
606デフォルトの名無しさん:03/07/09 18:17
Canvasに変更があったかを知るにはどうすればいいですか?
607デフォルトの名無しさん:03/07/09 18:34
↑いい忘れましたがImageのCanvasです。
608デフォルトの名無しさん:03/07/09 18:39
Turbo Pascal をこのまま続けてもいいのでしょうか?!
Delphiは高すぎるよな。UMLみたいな仕事ができるのなら
いいのだが。
>>609
DOSは…分野によっては充分現役なので…つか、制御系とかだと変にWinに置き換え不可では…
Delphiは…まあ、UMLならEnt版で可能だけど…高すぎるよな。同意。
君たち貧乏ですね
質問です…
>>448で質問して>>458の回答を頂いたのですが、
WM_KEYDOWNのパラメータを取得する方法がわかりません。
今はprocedure宣言時に以下のようにしてます。

procedure WMKeyDown(var message: TWMKeyDown); message WM_KEYDOWN;

ヘルプでmessage(指令)を調べると、こう書けばWM_KEYDOWNメッセージ取得時に勝手に動いてくれる…
ように見えるのですが、動いていないようです。
コードの所にブレイクポイントを設定しても、来ていませんでした。

どう質問すればよいのかもよくわかっていないのですが…(汗
やりたいことは「キーリピートを抑制するために、WM_KEYDOWNのデータ取得時のパラメータを知りたい」?です。
>>561
オンラインヘルプを使うといいよ

Delphiのエディタ上にDisableAlignをこぴぺして
その上にカーソルを合わせてF1を押す
>>612
ボタン等にフォーカスがあったら、そっちにWM_KEYDOWNが送られて
フォームには送られてこないけど、そういう状態なんでない?

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
begin
 if (Msg.message = WM_KEYDOWN) and (Msg.lParam and $40000000 <> 0) then Handled := True;
end;

↑みたいにApplicationEventsのOnMessageで、アプリ全体のキーリピートを抑制すればいいと思う。
適当に条件足せば、MIDIキーボードのフォームがアクティブのときだけ抑制する、とかできるだろうし。
動的に複数のTLabelを作ります。
そのラベルが必要無くなったら一度に全てのラベルを削除したいのですが、
どうにもやりかたがわかりません。
Nameプロパティを与えて Name.Free; とやってみたのですが
「実パラメータが足りません」とエラーが出て駄目でした。
どなたか良い方法をご存知無いでしょうか。
>>615
TLabelのParentが決まっているだろうから
ParentコンポーネントのControlsプロパティを使って削除する
例えばこんな感じ(ParentがaPanelだとして)
for i:=0 to aPanel.ControlCount-1 do
if aPanel.Controls[i] is TLabel then
aPanel.Controls[i].Free;
aPanelに他のラベルも載っているようなら
TLabelから派生した専用のクラスを作って判定すればOk
618デフォルトの名無しさん:03/07/09 22:16
現在表示されているMDIフォーム数を取得するにはどうすればいいですか?
フォームを作るたびにグローバル変数を+1していく。
フォームが消えるときに-1するのをお忘れなく。
>>616
for i:=aPanel..ControlCount-1 Downto 0 do
ってしたらできました! ありがとう!!!1!

>>617
派生とかって良くわかんないので勉強してみますね!
レスありがとう!
621デフォルトの名無しさん:03/07/09 22:34
>>614
アプリケーションレベルでやったらキーリピートを抑制できました。
有り難うございます!

>ボタン等にフォーカスがあったら、そっちにWM_KEYDOWNが送られて
>フォームには送られてこないけど、そういう状態なんでない?

Form1の「KeyPreview」プロパティをtrueにしてあるんですが、
これではこないと言うことでしょうか。。
とりあえず動いて気持ち的に余裕が出来たのでw、もう一度調べ直してみます。
> これではこないと言うことでしょうか。。
そう。KeyPreviweをTrueにしてもフォームにWM_KEYDOWNが送られてくることはない。
>>622
すみません、ありがとうございます。
メッセージを受け取る順番?みたいな物を把握しないとだめっぽいですね。

教えていただいた方々、ありがとうございました。
624デフォルトの名無しさん:03/07/10 10:34
Delphi で使える、Javadoc のような、doxygen のような、ドキュメント生成ツールって
ありますか?
626デフォルトの名無しさん:03/07/10 11:23
Tfilestream.WriteBuffer('A', Length('A'))
で出力するとファイルにAが出力されるのですが、
AAA: String;
AAA := 'A';
Tfilestream.WriteBuffer(AAA, Length(AAA))
とすると・になってしまいます。

なぜなんでしょうか?引数の const と言うのが原因でしょうか?
WriteBuffer(Pointer(AAA)^, Length(AAA));
628デフォルトの名無しさん:03/07/10 13:10
神降臨!
神様には敬語使え
630デフォルトの名無しさん:03/07/10 14:38
Delphi/Kylixに両方使えて、UNICODEファイルを書くコンポーネント無いですか?
低機能で宵で津。
ゲームの改造をしたいのですが、
他のアプリのメモリの値を取得する方法を教えてください。
>>631
ゲームの改造なら、バイナリエディタ使えばいいんでない
>>632
レス、ありがとうございます。
それは、まあそうなんですけど、
バイナリエディタやプロセスメモリエディタだと
毎回同じ処理をするのが面倒だったり、その上アドレスや数値を間違うと
えらい目にあうし。
パソコンにあまり詳しくない友人なんかには説明しづらいし。
ゲームごとに、Delphiでexeにするとその辺が解決できるかなと。

まあ、Delphiを使えるようになりたいという下心のほうが大きいわけですが。
634デフォルトの名無しさん:03/07/10 16:15
モードレスフォームみたいに他のフォームを操作できて、なおかつ
モーダルフォームみたいに常に前面に表示するにはどうすればいいですか?
635デフォルトの名無しさん:03/07/10 16:56
if (i >= 2) and (i <= 6) then // iが2以上6以下の場合

これは、こういう風に書くしかありませんか?
>>635
if i in [2..6] then
詳しくはヘルプの集合型演算子を参照のこと。
ヘルプ確認しました。ありがとうございました。
>>529
>{$WARNINGS OFF}
>これは警告メッセージの生成を無効にするコンパイラ指令です。
ヘルプに載ってたんですが、これ使えそう?
今でもdelphi6の新品を買えますか?
640デフォルトの名無しさん:03/07/10 19:42
文字コード変換はjconvert.pasが便利。
ググればでてくる。
644デフォルトの名無しさん:03/07/10 23:33
次期Delphiって.NET対応だけのプログラムしか作れない? 作れる?
今インストール終わったのですが
がんばればゲーム作れるでしょうか。
簡単なゲームならすぐにできる
高度なゲームならかなり大変
人間より強い囲碁対局ソフトだと一生掛かっても無理かもしれない
Delphi&ゲームな本が出てるからそれ買っとけ
>>647
あくまで理論で実践には役に立たんよ。<遊びのレシピ
649デフォルトの名無しさん:03/07/10 23:54
どなたか立方体のワイヤーフレームを
Delphiで描くプログラムソースを教えてください。
本読んでも全然わかりません・・・。
>>649
技術家庭科の本に立体の書き方とか載ってなかったか?角度は30°で長さは1/2とか言う奴。
651デフォルトの名無しさん:03/07/11 00:07
線分とか座標の定義をしてそのあと2次元に見えるように
変換する・・・ってやつなんですが、C言語?みたいです。
どこかのサイトにDelphiで組まれたプログラムのってないでしょうか?
>>645
ゲーム作るのって難しいよ。
動かすだけでも物凄く大変なのに、人間を楽しませなきゃいけない。
>>649
Lightwave等の3DCGソフトを解析してワイヤーフレームを描く部分をパクる
大変そうだけど頑張ってね
>>645
【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 【作れば?】
http://bbs.gamdev.org/test/read.cgi?bbs=gamedev&key=1054282821
いってよし!
656デフォルトの名無しさん:03/07/11 00:32
Buttonが存在するForm全体にImageを表示させると、
ButtonがImageより上にあって、Buttonの部分の絵が隠れてしまいました。
Form上に存在するあらゆるコントロールより、このImageが上に表示されるようにするにはどのようにすればいいのでしょうか?
657656:03/07/11 00:48
やっぱ忘れてください
解決したのかそうでないのかぐらい、いってけよ・・・
そう言えばフォームの上を覆うメッシュ上のシャッターを置こうとした覚えがあるな
MyCanvas:=TCanvas.Create;
MyCanvas.Handle :=GetDC(0) で作ったMyCanvas上に描けば 自分のフォームだろうが、他人のフォームだろうが自由に描ける

PageControlの上に置いたツリーヴューをアクティヴにしたいんだけど、どうすればよかですか。
作ったままだとPageControlのタブにフォーカスがあって、キーボードで操作できない・・・・。
pagecontrolのonenterでactivepageにsetfocusして、
各sheet.のonenterでデフォルトのコントロールに
setfocusするのはどうだろう。
TThreadで優先度を設定する方法はわかるのですが、
メインスレッドの優先度を変更する方法がわかりません。
よ?
664デフォルトの名無しさん:03/07/11 13:10
キー入力に関する質問です。

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if (Msg.message = WM_KEYDOWN) then form1.Caption := chr(Msg.wParam);
end;

これを実行するとForm1のCaptionに押したキーが表示されますが、
CapsLockを押していないにもかかわらずアルファベットは全て大文字になり、
「,」や「.」は半角カナになってしまいます。
なにか特別なことをしないとだめなのでしょうか。
665デフォルトの名無しさん:03/07/11 13:32
ADS形式とPAC形式とIMG形式はどうやって解凍するんですか?
>>ADS形式とPAC形式とIMG形式はどうやって解凍するんですか
ADS形式とPAC形式とIMG形式を解凍するモジュールを使います。

>>663
メインスレッドもスレッドのひとつ。
GetCurrentThread で「現在」のスレッドハンドルが取れるよ。
「現在のスレッド」のハンドルなので、呼び出すコンテキストを間違えないように。
>>664
あいにく、WM_KEYDOWN はそういうものだから。あなたが見ているのはスキャンコード。
物理的なキーの番号とそれが生成する文字コードは本来別のものだから。

WM_CHAR を使うことを考えましょう。
それと、WM_CHAR と WM_KEYDOWN の違いを調べましょう。
できました!
よ?
670デフォルトの名無しさん:03/07/11 16:18
MDIアプリケーションで
子フォームA_WinにImageを貼り付けて
unit A_Win;
type
TMDI_A = class(TForm)
・・・
Image1: TImage;
・・・
end;
var
A: TMDI_A;
親フォームMainFormから子フォームA_Winを開いたときに
Imageの内容をクリアしようとしています。
このクリア部分を別のUnitで行なおうとするとき
unit Graph;
procedure Clr_Image(WakuColor,NaibuColor ・・・);
with A.Image1.Canvas do // (←)
begin
//Pen を使って長方形を描画して、その図形を Brush で塗りつぶす
Pen.Color := WakuColor; // 枠色
Pen.Style := psSolid;
Brush.Color := NaibuColor; // 内部色
CopyMode := cmWhiteness;
Brush.Style := bsSolid;
// Image画面のクリア
Rectangle(0,0, Width, Height);
end;
矢印部分(←)で、EAccessViolation クラス例外となってしまいます。
ActiveMDIChildプロパティを使うのかもしれませんが、わかりません。
教えて下さい。
たぶんImage1はまだ生成されていない。
たとえばフォームのOldCreateOrderプロパティのからみとかで。
672デフォルトの名無しさん:03/07/11 17:25
Delphiのバグを発見しました。

プロジェクトファイルの一番頭にあるprogramの次に先頭が数字の文字列が入っているとエラーが出ます。
たとえば10000yenのように数値とアルファベットがくっ付いていても数値と見なされエラーになります。
673639:03/07/11 18:37
>>640
PersonalでなくProfessionalが欲しいのですが…。

>>641, 642
買える所だっちゅーの。
今ならボーランドにメールすれば間違いなく買える
>>668
ありがとうございます。
キーボードの種類(日本語キーボード)とか、
まっったく見当違いなことを調べてました。。
>>672
仕様なんですが。
Delphiの限界は一行目にあるらしいですね
Delphi6 へコンポーネントのインストールでつまずいてます

インストールしようとしているコンポーネントはこれです

Indy - Download Indy 9.0
http://www.nevrona.com/Indy/download/Indy9.html

・.zip を展開し、展開したファイルを全て $(DELPHI)\Source\Indy にコピー
・そこで、fulld6.bat を実行
・$(DELPHI)\Source\D6 ディレクトリが作られ、そこに *.dcu と dclindy*.bpl ができる
・dclindy*.bpl を $(DELPHI)\Bin\ にコピー

この様な手順で、インストールしましたが、

----------------------------------------------------------
delphi32.exe - エントリ ポイントが見つかりません

プロシージャ エントリ ポイント @Idresourcestrings@_RSBindingAny が
ダイナミック リンク ライブラリ Indy60.bpl から見つかりませんでした。
----------------------------------------------------------

こんなエラーメッセージが出てしまいます。標準で入っている Indy が古い(確か v8 ぐらい)
ので、新しいのをインストールしようと思いましたが、うまくいきませんでした。

どなたかご教示願いますヽ(´Д`;)ノ
Indyはインストーラ付きのやつでインストールすればOK押してるだけで馬鹿でもインストールできるぞ
680デフォルトの名無しさん:03/07/11 20:36
今まで、簡単にWindowsAPIで書けるものはAPを優先して書いてきましたが、
ですが、最近.NETというものを知り、これで大丈夫なのかと思うようになりました。
APIを優先して使った方が良いのか、Delphi言語(?)を優先して使った方が良いのか教えてください。。
>>679
漏れの環境だとインストーラ使ってもインスト出来てないよ・゜・(ノД`)・゜・
まぁ、手動でインスト試したときのエラーが678と違うから678はインストできると思うが
682678:03/07/11 21:01
>>679
インストラー付きって何処にあるんですか?
683678:03/07/11 21:10
>>682

×インストラー
○インストーラー

でした…。うぅ…
>>662
d。
delphi8買う為にお金溜めるか・・・
How do I install Indy into Borland Delphi?

・ Close the Borland Delphi IDE if it is open.
・ If you are using the version of Indy included in Delphi 6 or 7, use the MSI installer to remove Indy.
・ Remove all Indy files including dclIndy*.bpl, Indy*.bpl, the Id*.pas, and the Id*.dcu's.
 Take care that you only remove the old Indy files and not something else.
 Be sure that you also remove any Indy*.bpl from your Windows\System directory.

・ Place the new version of Indy in a directory of your choice. When unzipping,
 please keep the \source directory for the archive intact because that is used by some build batch files.

・ In the source directory, there are several batch files. Run the appropriate one for your version of Indy:

・ FULLD4.BAT - Delphi 4
・ FULLD5.BAT - Delphi 5
・ FULLD6.BAT - Delphi 6
・ FULLD7.BAT - Delphi 7

・ These batch files create subdirectories in the main Indy directory folder.
 They are (D4 for Delphi 4, D5 for Delphi 5, D6 for Delphi 6, and D7 for Delphi 7). These directories contain:

・ The Indy .DCU's
・ The Indy Design-Time .BPL

・ In your Delphi IDE, add the Indy design-time package with Component|Install Package...|Add...
 Go to the subdirectory where the Indy .DCU's and Design-Time .BPL was placed by the batch file.
 Add the Design-Time .BPL that is listed. It usually is named dclIndy followed by the Borland Delphi version and an 0.

・ Add the path where the .DCU's are located to your environment.
 Do this with Tools|Environment Options...|Library...|Library Path...
687678:03/07/11 22:03
えぇっと、一応インストールうまくいったっぽいです…

公式サイトによると、Delphi 6 & 7 はインストールに注意が必要とのこと。
俺がやった手順は以下の通り

Delphi をインストールした時に入れた Indy を削除しなければなりません

1. $(DELPHI)\Borland Delphi 6.msi を実行して、「変更」で次を選択
2. プログラムファイルの所の「Indy」を選択して「インストールしない」を選択
3. 次へ進んで、メッセージ通りにインストーラーを進める

これでインストールされている Indy の削除終了

4 .zip を展開し、展開したファイルを全て $(DELPHI)\Source\Indy にコピー
5. そこで、fulld6.bat を実行(delphi7 の時は fulld7.bat)
6. $(DELPHI)\Source\D6 ディレクトリが作られるので、そこに *.dcu と dclindy*.bpl ができる
7. dclindy*.bpl を $(DELPHI)\Bin\ にコピー
8. 6 のディレクトリにある *.dcu *.dcp ファイルを $(DELPHI)\Lib\ にコピー
9. Delphi を立ち上げる
10. メニューの[コンポーネント>パッケージ]を選択
11. [設計時パッケージ]の所から[Internet Direct (Indy) for D6 ...]にチェックを入れる
12. [デフォルト]にチェックを入れる
13. [OK]を選択

これで一応、インストール終了しました。しかし、問題は Debug 用の
ライブラリが無いって事です。
>>687
レポートご苦労様。
インスコの時に参考にさせてもらいまつ。
>>670
直接の原因はおそらくまだ子フォームAが作られていないうちにAを操作しようとしたからです.
おそらくメインフォームのOnCreateイベントハンドラからこの手続きを呼び出されたのだと思います.
(Delphiでは最初に自動生成されるフォーム=メインフォームです.プロジェクトソースを見ると一目瞭然)

子フォームの自動生成をやめてOnShowイベントハンドラから呼び出すようにすればこの例外は発生しませんが,
この場合はAが存在しません.またこの手続きの処理対象が常にAなので2つ目以降のフォームではうまくいきません.
(2つ目以降の子フォームはAではない)
この対策は2つ考えられます.
i) 引数で子フォームの実体を指定する
procedure Clr_Image(ChildForm: TMDI_A; WakuColor,NaibuColor ・・・);
with ChildForm.Image1.Canvas do // (←)
(以下略)
ii) この手続きを子フォームの公開された(public)メソッドにする
procedure Clr_Image(WakuColor,NaibuColor ・・・);
with Image1.Canvas do // (←)
(以下略)
かちゅ〜しゃはスレ表示部分に IE コンポーネント(多分 TWebBrowser)を
使ってますよね? そこで、質問なんですが、そこに自分で生成した
HTML を流し込む方法ってどうやるんでしょうか?

例えば、strings とか TStrings の変数に '<HTML><BODY>ほげほげ</BODY></HTML>'
というようなデータを入れておいて、コンポーネントに流し込む…
と、言う様な感じですが…

あと、このIEコンポについて詳しく解説しているサイトとかあったら教えてください。。。
>>690
Janeのソースでもみたらどうでしょ
>690
http://www.monazilla.org/
ここの資料室美奈代
>>689 訂正.
i) 引数で子フォームの実体を指定する
procedure Clr_Image(ChildForm: TMDI_A; WakuColor,NaibuColor ・・・);
(中略)
with ChildForm.Image1.Canvas do // (←)
(以下略)

ii) この手続きを子フォームの公開された(public)メソッドにする
・宣言
TMDI_A = class(TForm)
(中略)
public
procedure Clr_Image(WakuColor,NaibuColor ・・・);
(中略)
end;

・実装
procedure TMDI_A.Clr_Image(WakuColor,NaibuColor ・・・);
(中略)
with ChildForm.Image1.Canvas do // (←)
(以下略)
>>691-692 サンクス(´3`)
>>671>>689>>693
アドバイスありがとうございます。
・まず、子フォームA_Winの生成ですが 親フォーム上のボタンのイベントから
生成しております。OldCreateOrderプロパティでは変化なかったです。

・子フォームA_Win が確実に生成してからクリアするように ボタンでクリアルーチンを
呼ぶようにしたのですが だめでした。
・693のi)についてはだめでした。

・693のii)については子フォームA_Winの内にグラフルーチンを含めるということだと
思うのですが これならば結果はOKなのですが 他にもグラフルーチンを
多数付けようとしているので別にしたいのです。

色々やってみたところ
・クリアの呼び出し部を 子フォームA_WinのFormPaint イベントに置き
・グラフルーチン側を
with (MainForm.ActiveMDIChild as TMDI_A).Image1.Canvas do
と指定すると うまくいきました。
これだと
別の子フォームB_Winから子フォームA_Winを開いても 生成はうまくいきます
しかし 子フォームA_Winを閉じると 無効なクラスの指定 と出ます。
これは B_Winから開いた2つ目以降の子フォームA_Winを閉じるときに出ます。
親フォームからの起動、終了は 問題なくなりました。
別の子フォームB_Winからの起動用には、別のクリアルーチンが必要?
はたして 上記の方法がまともなのかは自信はありません。(^^;;;
696デフォルトの名無しさん:03/07/12 09:03
var
i , q : Integer;
s : Stirng;

s := 'あいうえお@@かきくけこ';
q := Pos( '@@' , s ) -1;
i := Length( s ) -q;
Delete( s , q , i );

@@の後ろを@@ごと削りたいのですがこのように書くと
「変数パラメータに定数オブジェクトを渡すことはできません」
とエラーを吐くのですがどこがいけないんでしょうか。。。
>>696
beginがない。
>>696
>q := Pos( '@@' , s ) -1;

多分逆。var s :stringなところにリテラル書いてるのが原因かと。
どこかで s を const にしてないかな?
あるいは、Delete が別の関数/メソッドになってるとか?
System.Deleteにしてみたら?

それから、qを使わなくても Delete(s,q,High(Integer)) でもうまくゆくはず
700696:03/07/12 09:19
>>697-699
レスどうも。

>>697-698
beginは書いてないだけで入っているんです。。。
すいません。。

sはconstではないんです。。
Delete(s,q,High(Integer)) も試してみましたが駄目でした。
すいません。。。

このエラーって「 s には結果を代入できませんよ」ってことなんでしょうか。
>>696
ウザイから実験した。普通に動いたが・・・。
後、Stringの綴り変。
702696:03/07/12 09:22
Copyで渡せばいいことに気付きました。
すいませんでした。。

s := Copy( s ,1, q );
s := 'あいうえお@@かきくけこ';
q := Pos( '@@' , s );
i := Length( s ) - q + 1;
Delete( s , q , i );

ShowMessage(s);
頼むからちゃんと
>「変数パラメータに定数オブジェクトを渡すことはできません」
のエラーが再現できるソースをうぷしてくれ
違う箇所がいくつか間違ってるだけでこのエラーがでるような箇所がない

解決したみたいだからもういいけど
>>695
うーん,私が作ってみたソースをさらすので比べてみてください.まずメインフォーム・実装部.

uses ExtCtrls, P02aMDI_ChildForm;

procedure InitImage(anImage: TImage);
begin
anImage.Canvas.Brush.Color := random($1000000);
anImage.Canvas.Pen.Color := random($1000000);
anImage.Canvas.Pen.Width := 2;
anImage.Canvas.Rectangle(anImage.ClientRect);
end;

procedure TP02aMainForm.Action_NewExecute(Sender: TObject);
begin
CreateChild;
end;

procedure TP02aMainForm.CreateChild;
var
Child: TP02aChildForm;
begin
Child := TP02aChildForm.Create(Application);
InitImage(Child.Image1);
end;

次にサブフォーム
procedure TP02aChildForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;
以上.
707デフォルトの名無しさん:03/07/12 17:05
ClientSocketって6Personal版じゃ使えない?
コンポーネントパレットにはあるけどヘルプに説明入ってない!!
これじゃつかえないよーー!!
708デフォルトの名無しさん:03/07/12 17:08
TMemIniFileで、Form1.WindowStateを記録する方法を教えてください。
WriteStringでは、TStringとTWindowStateは互換性がありませんと出ます
>>707
使わなきゃいい。Socketマンセーっと。
710デフォルトの名無しさん:03/07/12 17:19
>709
そのSocketの説明もヘルプには入っていない・・・・
>>708
WriteInteger('a', 'a', Ord(Form1.WindowState));
WindowState:=TWindowState(ReadInteger('a', 'a', Ord(wsNormal)));
>>710
入ってるはずもなく。WindowsAPI。
>>711
ありがとうございます。
望みどおりの機能が表現できました。
714デフォルトの名無しさん:03/07/12 18:30
いろいろ、いじったところ
ClientSocket.Open
で、繋がることはわかった。
たぶんPersonalでもつかえるのだろう。
しかし、メッセージ受け取ったり、送ったりするのがぜんぜんわからん。
テキスト平文のストリーム形式でいいのだ
だれか、助けて!!
>>714
イベントのリストとコード補完使えば何となく想像は付くと思うんだけれど。
まぁ、がんばれ。
使えないものがわざわざ入ってるとは思えん
まー、がんばれ
デルフィとカダフィ大佐って似てる?
718デフォルトの名無しさん:03/07/12 20:54
ClientSocket.Socket.SendText(String)
ClientSocket1.Socket.ReceiveText
で送受信できる”らしい”というのは解ったぞ!
しかし!!!復帰と改行コードが入らんので
サーバ側が読まぬ!!!
Cでいう"\r\n"はどうやって表現すればよい?
うわわーーーん!!!
>>718
マニュアル読め
'開業です'#13#10
フォーカスのあるコントロールを調べるにはどうすれば良いですか?
Screen.ActiveControl
>>719
このスレの趣旨を読め
>>723
ワロタ

少なくともマニュアルのページNoとか示さないとダメだな(w
>720
ありがと!おかげでうまくいきそうだよ。

>724
Presonalなんでマニュアルなんてないんです(泣)
>>725
Qs.pdf
oplg.pdf
dg..pdf
727 :03/07/13 00:24
>>725
○○が無いってグチをレスするくらいなら、
1.delphiで検索
2.無ければ違う言語で参考になりそうなとこを検索

グチは書かないように。
728A:03/07/13 04:57
>>725
パーソナルでも付属する紙のマニュアルと同じ物が、PDFだかで収録されてたはず。
729670:03/07/13 07:53
>>705 >>706
なるほど 手続きに丸ごとコンポーネントを渡せばいいわけですね。
うまくいきました勉強になりました ありがとうございます。
730デフォルトの名無しさん:03/07/13 10:07
TSplitterがデフォルトで妙に太いんですがこんな仕様でしたっけ?
731デフォルトの名無しさん:03/07/13 11:15
今さ、早速Personal落としてみてやろうとしてんだけど
エディタ使いにくいね。やっぱ慣れかな、これは。

ファイル→新規→フォーム
でフォームを追加させたんだが、スタートアップフォームから表示させる方法きぼん。
はい、初心者です。すんまへん

var
frmSub: TSUBFORM;
begin
frmSub := New TSUBFORM();
frmSub.ShowDialog();

これでやってみようとしたがダメだった(当たり前だが)。
VB厨な事ヴァレヴァレだが、どなたかご指南頼みます。
>>730
サイズを変えれば済む話
たしかに厨の香りが漂う文字列だね

何か意味わんねーけど、プロジェクト→オプションでも弄ってみれば?
usesにUnit2を書き足し(書かなくても自動で書かれるけど)、Form1.Button1のOnClickに、Form2.Show;と書く
>frmSub := New TSUBFORM();

文法からやり直せ。
超初心者スレなんだから、ちっとは優しく書けよ
できなきゃスルーしる
こうしたいのかな。
var
frmSub: TSUBFORM;
begin
frmSub := TSUBFORM.Create(self);
frmSub.ShowModal;
>>731 以下の手順で.
1) メインフォームのユニットにサブフォーム(を定義しているユニット)を使うぜ!という宣言を追加する.
2) サブフォームを表示させるコードを自分で書く

1) メインフォームをアクティブにして[ファイル]→[ユニットを使う]を実行,使いたいサブフォームを選ぶ.
 →そうするとメインフォームのユニットのソースコードに implementation ちょっと下の方に

 uses (サブフォームのユニット名);

 というコードが追加されているはず.これがその宣言です.
 ※手で直接同じ内容を書いてもかまいません.

2) Delphiではプロジェクトオプションで特に指定しない限り
 サブフォームはアプリケーションの起動時に1個だけ作られ,隠れた状態になっていますので,
 フォームを作るコードは書かず,表示させるコードだけを書きます.

 フォームを表示させるには>734にあるようにフォームのShowメソッドを使います.
 設定画面やメッセージボックスのように閉じるまで呼び出し側に処理が戻らないようにする場合は代わりにShowModal メソッドを使います.
 フォーム名がfrmSubならそれぞれfrmSub.Show; frmSub.ShowModal; です.

 実行時に一時的に作りたい場合は>737のよう自分で生成してから表示します.
 ただし使わなくなった時点で自分でフォームを廃棄しなければなりません
 これはフォームのRelease メソッドで行います.フォーム名がfrmSubなら frmSub.Release; です.
 また起動時にフォームを作ってしまわないようにプロジェクトオプションでこのフォームを自動生成の対象から外します.
 ([プロジェクト]→[オプション]で[フォーム]タブを開き,このフォームを選び,[>]ボタンを押します)
739デフォルトの名無しさん:03/07/13 18:14
Delphi7なんですけど、
プログラムを作成中(エディタでの編集中)に突然
「モジュール 'dcc70.dll' のアドレス 00B5574F でアドレス 626CAE88に対する書き込み違反がおきました。」
このエラーが出てエディタが利用不能になりました。

PCを再起動しても同じ位置に来ると同様の症状が出ますが、
何が原因なのか判りません、何か対処方法はありませんか?
コード補完機能で落ちてるのかな
741739:03/07/13 18:38
>>740
おっしゃる通です、
一度落ちると「書き込み禁止」になってるみたいです。
コード補完が落ちる原因って何なのでしょうか・・・。
742739:03/07/13 18:54
取りあえず解決しました

1つづつフォーム上のコンポーネントを消して
コード補完を試して原因コンポーネントを探し出して消したら直りました。
ただのEditなのですが、何が悪いのか・・・。
因みに、>>739でエラーが出る状態でもコンパイルは普通に通ったりするので
>>740さんがおっしゃる通りコード補完のバグなのでしょうか?
初心者スレでコンパイラやIDEのバグを疑うのはちょっと気が早いと思われ
Delphi6使ってるけど、コード補完でエラーはよくおきるよ。
それ以降、コード補間不能になることもあるし、エディタにまったく入力できなくなることもある。
7でも似たようなバグがあるんだね
コード保管えらー出たときは、一番上の単語からポップアップさせていけば、どこでエラー起きてるのか分かるよ
ボーランド製はコード補完にもバグがあるのか。
やっぱりクソはクソだな。
MS製はバグが無いの?
748デフォルトの名無しさん:03/07/13 22:47
>>747
マイクロソフトのソフトに今までバグなんて存在したことはないよ
全部仕様通りに実装されているからね
バグだらけの某とは大違いだね(嘲笑激藁
まあ、マイクロソフトが仕様だって言ってましたから(微妙な笑いをしつつ)と言えば
客も納得してくれるんだよね。
750デフォルトの名無しさん:03/07/13 22:54
>>749
しねえよ。
「MSから買ったんじゃない、あんたのとこから買ったんだ!!」って切れられた。
MSにバグは不要だからな
必要なバグなんて不必要なバグに比べればはるかに少ないがな
どんなソフトにもバグは必ずあるからね、バグだ!って騒ぐのは素人。
要するに、発生したバグに対する対応が問題、MSはバグの対応が随分前から悪いけど、
ボーランドもここ数年良いとは言えなくなってるね、
コード補完のバグは探しようがないけど、VCLのバグなんてこっちが修正箇所を
書いてメールしたのにパッチも出さないし返事も来ない。(w;

その点、オープンソースなソフトはバグのパッチを送ったら
かなりの頻度で取り込まれるし対応のレスポンスも凄くいい。

Delphi本体がオープンにならねーかなぁ・・・。
754デフォルトの名無しさん:03/07/14 05:42
WideCharToStringやStringToWideCharは何のためにあるのでしょうか?
AnsiStringとWideStringは双方向に代入できるみたいなので、ワイト文字列関数が存在する意味がよくわかりません。
厨房除けです
>>739
あるある!
いままであった中で一番笑えたのは、
まちがってtype PA=^PAになってたこと。
ほんとはPPA=^PAなんだけど、hppからの移植でミスった。
無限ループじゃん!
757Delphiの限界?:03/07/14 13:48
type
 TProc = procedure of object;
 TProcArray = array of TProc;

function IndexOf(const a: TProcArray; proc: TProc): Integer;
var
 n: Integer;
begin
 for n := 0 to High(a) do
  if @a[n] = @proc then // <-- 手続きアドレスの比較ができない。
  begin
   Result := n;
   Exit;
  end;
 Result := -1;
end;
>>746
この件については同意.目先の新機能以前にバグはつぶしてほしい.

>>754
多分昔の名残です.ワイド文字列はDelphi3からだったと記憶しています.
Del3の新機能の中でも地味なもので
FDELPHIで謎全氏が話に出されるまで気にもとめていませんでした.
>>757
試したら、出来てる気がするけどニャー
限界厨の限界なんだろ
>>754
API関数に渡すときなどに必要。
762デフォルトの名無しさん:03/07/14 19:27
>>754
文字列の切り出しとかするときに必要になる。
この関数があるおかげで日本語文字列の置換とかすげー楽だよ。
763デフォルトの名無しさん:03/07/14 19:36
Webブラウザを作成するにはIndyのどのコンポーネントを使用すれば
よいのでしょうか

それと簡単な例でいいので使用の仕方を教えていただけないでしょうか
764_:03/07/14 19:38
>>763
サンプルが突いてきたハズだが…
それでもわからんならTWebBrowserのほうがいいんじゃねーの
766デフォルトの名無しさん:03/07/14 20:03
>>753
>Delphi本体がオープンにならねーかなぁ・・・。
なにげにむごいな。某ランド潰れちまえってことじゃん(w
OpenWatcomの惨状を見ればオープンにすりゃいいってもんじゃないって分かるけどなあ。
2ちゃんねらーの力でOpenWatcomを祭ってみる?w
フォームの最大化や、サイズ変更を出来ないようにするのはどうやるの?
>>767
OpenWatcom C++ スレへどうぞ
>>768
フォームのBorderIconsプロパティ
あ、サイズ変更も禁止ならBorderStyle
>>768
BorderIconプロパティをいじるのが簡単。
EnableMenuItem APIを使う方法もある。
ShowMessage( 'フォームの最大化もサイズ変更も、しないでネ!!' );
Delphi6 personalでアセンブリ言語のソースコード作れます?
bccでは-sつけるような感じで
775山崎 渉:03/07/15 09:43

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
DelphiはDelphi言語のソースコードを作る為のソフトウェアです。
NavigateとNavigate2の違いはPIDLを使えることだと各所にかかれてるけど、
PIDLってどこからもってくるの?
PItemIDListがそれらしい気がするけどOleVariantに代入できない!
コンポーネントの事でチョット混乱しているのでアドバイスください

http://hogehoge2001.tripod.co.jp/note-delphi.html

ここを読んでいると、Delphi 標準で入っている TWebBrowser より、
ActiveX コントロールをわざわざインストールしていますが、何故何でしょう?

あと、uses に SHDocVw_TLB, MSHTML_TLBを追加しろとあるんですが、
これの入手方法を教えてください。

TWebBrowser は標準で入ってくるものを削除して、
Delphi のコンポーネントインストールの ActiveX コントロールで
インストールした方を使った方がいいのでしょうか?
>>778
そのページのタイトルをよくみてください
PersonalにはTWebBrowserは入っていません
またusesに追加する件ですが別途なにか手に入れる必要はありません
某スキャナ制御用DLLを使おうとC++のヘッダファイルを
pasに書き換えていっているのですが、
これで正しい書き方なのかよく分からず…。
途中段階で動かしてみたらスタックオーバーフローになったり。
(まだどのAPIも動作していない段階で)

なにかC→PAS書き換えの参考になる資料ありませんか?
一応「H to Pas Converter」を使って書き換えの基にはしているのですが…。
>>780
stdcallとかcdeclとか付けてる?
782780:03/07/15 21:03
>781
一応は。

#define DllImport__declspec( dllimport )
#ifdef __cplusplus
extern "C" {
#endif
DllImport int WINAPI HogeHogeAPI( char *str);
#ifdef __cplusplus
}
#endif

こういうのを以下のようにしています。
function HogeHogeAPI(Scanner: PChar): Integer; stdcall; external 'HogeHoge.DLL' name 'HogeHoge';


一部関数ポインタを渡すところがあったりします。
DllImport int WINAPI HogeHogeExec( char *file, char *buf, int (*abort)( int n, int d));

これを以下のように。
type
TAbortFunc = function (n: Integer; d: Integer): Integer; stdcall;
function HogeHogeExec(file: PChar; buf: PChar; abort: TAbortFunc): Integer; stdcall; external 'HogeHoge.DLL' name 'HogeHogeExec';

他には引数の「int *value」を「var value: Integer」にしたりしているところもありますが…
783デフォルトの名無しさん:03/07/16 11:20
TForm1 = class(TForm)
  panel: TPanel; // (1)
 published
  //panel; TPanel; // (2)
 end;

デザイン時、フォーム上にパネルを張ると、コード上は (1) に追加されますが、
これを (2) の位置に移しても問題ないものなのでしょうか?

一応、実行はできるようなのですが、他に影響はないでしょうか?
実行できるんなら、影響ないし。
出来ないなら、影響がある。
>>783
published の意味を調べてみよう
>>783
(1)の領域は「Delphiが使うから勝手にいじらないで」
と書いてあるでしょ
なぜ移動したいのかわからん。理由もわからずに移動してここで質問すんなよ。
そんなことするとバグが出るぞ。

「スコープ」についてもそっと調べなさい。
初歩的なことかもしれません。
ユーザーがアプリを閉じようとしたとき、確認ダイアログを出し、
OSシャットダウンのときは確認ダイアログなしで閉じる方法を教えてください。
WM_ENDSESSIONのメッセージハンドラを書く。
>>783
パネルを乗せただけなら問題ないけど、パネルのサイズを変更したり、パネルの上に何かのせたり、
パネルのイベントを記述したりすると、問題が出ると思うよ。

具体的にはpublishedでないと .DFM のデータがどのパネルのデータか識別できなくなる。
>>783
それ同じ意味。
つまり、同じスコープってこと。
792 :03/07/16 15:55
一定間隔で文字を表示する、うまいやり方を教えて下さい。

今は、TLabelの配列を動的に表示しています。

ArLabel : array of TLabel;

ArLabel[i].caption := inttostr(i);

こんな感じで、後はTopやLeftを工夫して、一定の間隔で表示しています。

でも、これだと、文字が増えれば増えるほどリソースを無駄に使用する事になると思います。
宜しくお願いします。
設計時にデザインするつもりが無いならTLabelは不要。TextOutで直接書いちゃえ。
TLabelはWindowsコントロールではないので、沢山使ってもWindowsリソースはメモリ以外は消費しません。
メモリも最近は大容量なので沢山使っても問題になることはないと思う。

でも自分ならそういう場合はPaintBoxで OnPaint上にコードで描くと思う。
俺ならTBitmapに描いてからPaintBoxでOnPaint上で描くと思う。
また エ ロ グ ラ マ か
> TLabelはWindowsコントロールではないので、沢山使ってもWindowsリソースはメモリ以外は消費しません。
NT系ではWindowsコントロールであっても別にメモリ以外に必要な
リソースなんて無いに等しいのだが。
メモリがリークすると何が駄目なのでしょうか?
あと、終了時にDelphiが全部やってくれるんじゃないのですか?
失礼します。
***すれ立てるまでもない質問はここで 第40刷*** から流れてきました。

DELPHIでclipbordを使ったプログラムを作っているのですが、
クリップボードを開くことが出来ませんというエラーが出ます。
プログラムの流れは、まずプログラムを立ち上げておき、notepad
や他の文字列が入力できるソフトに計算式を入力します
(10+30*10 とか)そしてその行にカーソルを合わせて
SHIFT+ENTERを押すと、先ほど立ち上げておいたアプリがhotkeyに
反応してカーソルのある行をkey_eventを実行してコピーします
(キーイベントでCTRL+Cを実行する)そして得た文字列で計算を
するのですが、上記のkey_eventでテキストがコピーされたりされなかったり
今あるクリップボードの末尾に文字列が追加されたり、動作がうまくいきません。
三日ほど色々探したのですが見つからずココへ来ました。

お知恵を貸していただけませんでしょうか?
クリップボードに何も記録されてないときは開けないんじゃないかなあ。
notepadのようなソフト全てがCTRL+Cでコピーというのに対応してる保障も無いし。
>>799
メモ帳がクリップボード操作している最中にDelphiで作ったアプリがクリップボード開こうとしているのでは?
key_eventの後にウェイトを入れるかメモ帳がIdle状態になるまで待つかすれば良いのではなかろうか。
>>801
あ、こころあたりがあります^^;
CTRL+Cを実行させた後すぐにclipbord.AsTextをつかったりしてます。
ウェイトを入れるかidelですか、、、少し調べて見ます
中村の里にクリップボードの変更を検知するコンポーネントが
あったはず。それを使ってみてはどうでしょう。
804デフォルトの名無しさん:03/07/17 01:48
TMemo内のTextをFindDialogで検索しようとするとき、
Pos関数を使うと検索文字が複数ある場合でも
最初にマッチする文字の場所しか取得できないので困ってます。
いわゆる「次を検索する」っていうやつはどうすれば実装できますか?
ループ回して文字列を検索する。
StringよりPCharにすると速くなる。
ダブルバイトはLeadBytesで判定する。
D7ならPosExてのがあるからそれ使う
807デフォルトの名無しさん:03/07/17 03:35
ほんとにくだ質なんですが…
TFormを継承した独自class(ダイアログ型のウィザードみたいな感じ)を作っています。
これをメインから以下のように呼んでいるのですが、

cpSEWizard := TcpSEWizard.Create(Owner);
cpSEWizard.Show;

ウィザードを閉じた後で、メイン側で「cpSEWzard.Free」を記述する必要はあるのでしょうか。
それとも、TcpSEWizardで勝手に発生している、onCloseで事足りているのでしょうか。
>>805
LeadBytesで検索したら
http://halbow.cool.ne.jp/VCL05.html
を見つけますた
thx
809デフォルトの名無しさん:03/07/17 04:25
Delphi7 でTcpclient Tcpserver を使った簡単な通信プログラムサンプルを教えて。
Delphi6 の時にあった ServerSocket ClientSocketと同じように使えると思ったら
うまくいかなかったもので。。。
>>807
メインか自身で Free したほうが良い。
いちおうアプリ終了時に Owner が Free してくれる。
ShowModal するのが楽だけど、出来ないならこうする。

with TcpSEWizard.Create(Owner) do
Show;

として、onClose に Release を入れておく。
Editコンポーネントに、整数以外入力できないように
するにはどうやったらええの?
>>810
ありがとうございます。
>>811
OnKeyPressイベントで整数以外をはじく
追加。
DelphianWorldに数値入力用のEditコンポーネントがあった気がする。
他にもいろいろ便利なコンポーネントが登録されているので
一度見てみるべし。
815792:03/07/17 10:00
>>793
>>794
>>795
なるほど、コンポーネントを使わないという方法もあったんですね。
何かをしようとするとすぐにコンポーネントの使い方を工夫しようとか
フリーのコンポーネントを探そうとかしていました。
ありがとうございました。
816デフォルトの名無しさん:03/07/17 10:12
TFormにはEnabledがありますが、あれは何に使うのでしょうか?
>>795
省メモリ化という意味では逆効果だろ。
821デフォルトの名無しさん:03/07/17 11:32
メモ帳的な物を作ってるんだけど、メインメニューでCtrl+Vとかのショートカットイベントに
SendMessage(Memo1.handle, WM_PASTE, 0, 0);
とか書くとファインドダイアログのエディット部分に対してペーストを行う場合でもメモコンポにペーストが行われてしまう。
それでファインドダイアログが呼ばれたときの処理を別に書こうとしたんだけど、
ファインドダイアログのエディット部分にペーストする方法がわかりません。
どうしらたいいんでしょ?
>>821
GetFocusが一番楽かな
if ActiveControl = Memo1 thenとかやれば
>>816
ShowだけどShowModalっぽくしたい時。
処理中でフォームを触らせたくない時。
>>820
再描画するとき楽だし速くて良いと思うんだけどね。
ラベルなんて16777215個も配置しない限りは無問題だと思うけどな。
特に一時的にしか表示されないダイアログとかは。
なんか小手先でメモリケチったり数クロック早くなるようなコード書きたがる奴がいるけど
それが本当に必要なのか・効果があるのかと問い詰めたい。
>>821
if Assigned(ActiveControl) then
SendMessage(ActiveControl.Handle, WM_PASTE, 0, 0);
>>792のようなやつだとTLabel使う方が逆に面倒くさいんだが。
メモリなんてガシガシ使っちゃえば良いじゃない
DBを使わないプログラム向けのDBCtrlGridみたいなコンポーネントありませんか?
VBにはなんかそういうのあったと思うけど…。
簡易ブラウザを作ってて IEコンポか mozillaかどっちにしようか、
mozilla(ActiveX) を試してみたんだけど、これってこんなに糞重いの?

おまけにフォームにコントロール貼り付けてから、
マウスでクリックもできねー、移動もできねーときたもんだ

こんなもんなんでしょうか?
>>831
おとなしくIEにしましょう
他にも、Gecko(?)とか言うブラウザコンポがあるらしいな
この板のどっかにスレがある
834デフォルトの名無しさん:03/07/17 22:25
checkBoxが"Checked"の時に、
あるeditを「記入できない」ようにしたい時はどうすればよろしいですか?
EditのReadOnlyをトゥルー
editのenabledをfalse
記入できないってことを視覚的に表現したくないなら>>835
EditのVisibleをFalse
839デフォルトの名無しさん:03/07/17 22:39
早いレスありがとうございます!
EditのFreeをCall
struct List
{
std::string buf_;


と、

printf("%s",l1.buf_.c_str());

を日本語で説明するとどういう事でしょうか?教えてください。。
スレタイ読めヴォケってことです。
843831:03/07/18 00:06
>>832
うむむ…やはり好きじゃなくても、IEコンポ使うしかないか

で、IEコンポの使い方なんですが、自分なりに探してみた所
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/browser_control_node_entry.asp
ここと monazilla(w の資料室ぐらいしか見つからなかったんですが、
他に解りやすくサンプル付きで解説しているサイトとかページを
知っていれば教えてください。できれば、日本語が良いです
844 :03/07/18 00:17
>>843
どんな探し方したんか知らんが、それだけってことはあり得ないと思う。
よっぽどアレな探し方なのか…。
あんまり言いたくないけど、「目がチカチカするページ」は検索出来なかったのかと。
ui?
WindowsXPでDelphi7 Personalのヘルプのテキスト検索機能が使えないんですが、これはバグですか?
仕様です。
848831:03/07/18 01:13
>>844
それは、どこですか?
>>846
バグですが何か?
>>848
MLでTWebBrowserを検索したときに一番多く答えている人のサイト
>>848
IEコンポーネントって、TWebBrowserの事だよね?

IEコンポーネントを使い倒すスレ
http://pc2.2ch.net/test/read.cgi/tech/982930049/
Delphi はじめの一歩
http://delphi.sakura.vg/
あとGoogle
http://www.google.com/search?q=TWebBrowser&lr=lang_ja
>>850
お前性格と要領が悪そうだね。うんこレスならしなくていいよ。
うい
過去スレで何度か出てるが、個人的にはアレよりTEmbeddedWBの方がオススメ。
TWebBrowserのバグ(?)が修正されてる他、初めからD&Dに対応してたりと、TWebBrowserよりパワーアップしている。
855831:03/07/18 09:52
>>851
レスありがとうございます。"TWebBrowser" で検索する事をしてませんでした。
"IEコンポーネント" "リファレンス" とかで検索してました

あと、この板内のスレッドは読みましたが、ボクの欲しい情報が得られなかったので
もう少し調べてみます。

>>854
TEmbeddedWB ってのもあるんですね。これも調べてみます
856デフォルトの名無しさん:03/07/18 11:15
BDEを使ったデーターベースアプリがあったとして
データベースをBDE→InterBase(FireBird)に変更するには
どのような作業が必要でしょうか?
めんどくさい?
他人様の作ったソフトに「最新の情報に更新(F5)」とかのショートカットを送るほうほうを教えてください。
>>857
何がしたいのかよくわかりません。
ShellListViewで、ネットワーク接続しているドライブにアクセスした時に
エラーになるのですが、どう対処したらいいでしょうか?
PageControlで、新しいTabSheetを追加するときに、
内容が空でなく、Buttonとかを、追加するTabSheetに持たせるにはどうすればいいんですか?
861860:03/07/18 15:56
動的に作成した場合で。
bo-ranndoのサイトに載ってます
>>860
動的に作ったボタンなどのParentプロパティを動的に作ったTabSheetにする。

Button.Parent := NewTab;
864デフォルトの名無しさん:03/07/18 19:51
OpenDialog コンポーネントで、「読み取り専用として開く」のチェックが選択されたか
されていないかの状態を調べるにはどうすればいいでしょか?
TOpenDialog.Options
>>860
タブシートにのせるコンポーネントの配置やその他の設定を設計時にやってしまいたいのでしたら,
それらを載せたフレームを作れば,実行時は基本的にそのフレームを生成するだけで済むと思うので
多少楽になると思います.ただ,以下に当てはまるならこんな手を使うまでもないかも.

・同じ内容のページが不特定多数→タブコントロールを使う
・起動時には見えないページを作る→タブシートのTabVisibleプロパティでページを隠す
DELPHIでドラクエ5みたいなRPGつくれますか
>>867
つくれますが、あなたは今日から「ツクールシリーズ」で爆速プログラミング
人生を歩んでください。
>868
ツクールイクナイ
FFじゃなくてドラクエってとこが謙虚でいいかも
5っていうところも弄ってあげろよ(ワ
TMemoをTExMemoに差し替えたいんだけど、
Memo1っていっぱい書いてるし、イベント半銅鑼もいっぱい。
簡単に差し替えちゃう裏技ないですか?
単純にソースを置き換えする。

それでもうまくいかなければ、GExpertsを使うとよろし。
↑補足 エディタ上でCtrl+R
しょっぱい質問ですね
>>875
超初心者向けのスレなんだからガマン汁
会社の仕事やって?
そんなら Personal版でなく Pro版こうて Borland社の有料サポート頼みなはれ。
そなら、どんな幼稚な質問やかてとことん付きおうてもらえるやろ。
今回の名無しはんの回答がもし有料ならナンボになるんかいな?
カネはろうてくれはるんやら、Borland社よりチイとは勉強しまっせ。
(大阪人はすぐカネの話や、なん思わんといてや(^^;)
(インド人はすぐカレーの話や、ナン焼いといてや(^^インド)
>>877
関西人は総じてアホやと思われるんでそのしゃべりやめてもらえませんか?
アホではなく馬鹿だね。馬鹿。
醤油かけといたらええねん。
粉や粉!小麦粉持ってこい!
会社ならエンタ買えよ
>>883
資本金1円なので無理です
2chで関西弁(エセ)使う奴は出身関係なく9割馬鹿。
経験上。
添削します。

>2chで関西弁(エセ)使う奴は出身関係なく9割馬鹿。
9割は馬鹿。
というか、2chを使う奴は出身関係なく9割り馬鹿。
経験上。
知識はあっても馬鹿ってやつは多いかも
889デフォルトの名無しさん:03/07/20 17:49
フォームを 縦方向だけ リサイズしたいんです。
Form.OnCanResizeで

NewWidth:=300;

とかすれば横方向には300以上大きくならないんですけど、
ウィンドウの端をドラッグするときに出てくる破線(?)が横方向にも伸びてしまって
なんだか見栄えが良くありません。TMidi Playerとかだとドラッグしようとしても
破線がウィンドウに貼りついて、視覚的にも「これはリサイズできないんだな」
と分かっていい感じだと思うんですけど、あれってどうやってるんでしょうか。
質問が分かりずらくてすみません。
>>889
"WM_GETMINMAXINFO"でぐぐると幸せになれるかもしれない…
>889
試してないけどConstraintsプロパティで制限できると思う。
>>890
検索したら、某国のサイトに書いてありました。dクス
http://www.borland.co.jp/qanda/delphi/d0005105.html
>>891
情報ありがとうございます。
試してみたのですが、こちらは破線がびょびょっと伸びてしまいました。。
変数って初期化しなかったら
4376384が代入されるの?
>>894
仮にそうだとしても、コンパイラの実装に依存しそうなコードは書かないほうがよろしい。
ボタンをクリックしたら、マウスカーソルを動かすのってどうやるん?
ShowMessage('マウスの下に万札がはさまってますよ。');
>>897
ちょいワロタ
>>897
それはマウスカーソルをユーザーに動かさせる方法だ
マジレスカコワルイ
Windows.SetCursorPos
902896:03/07/20 21:26
(゜д゜(  人  ) =3 プ
混沌としている
Form1のボタンをクリックしたら
Form2のラベルが変化するようにしたい
どうすればいい?
1.Form2のラベルの妖精さんにお願いする。
2.Form2を「uses(ユニットを使う)」で参照して、Form1のボタンに
Form2のラベルを変えるコードを書く。
3. Borlandのサポートに電話をかける
907デフォルトの名無しさん:03/07/21 01:28
904にマジレスしていい?
908907:03/07/21 01:29
ごめん。sage忘れた。
>>907
sage忘れてたから駄目って言ったら
マジレスしないの?
>>904
このスレで3回以上は質問されてる。
レス抽出使ってね音符
フォームの右上の×ボタンを消すのはどうやんの?
フォームのプロパティのSystemButtonだかをFalseにしろ
>912
うるせーしね
てめーはイ`
>914
氏ね
>>915
御主人様、私は氏んだ方が宜しいのでしょうか?
unit LIVE;

interface

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

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

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:='い`';
end;

end.
918デフォルトの名無しさん:03/07/21 15:29
Timerコンポーネントの使い方誰か教えろ
919デフォルトの名無しさん:03/07/21 15:32
はやくTimerコンポーネントの使い方教えろ
>>918
そんな態度で教えて貰えるとでも思ってるの?
夏休みだからって調子乗るなよ。
http://www.geocities.co.jp/SiliconValley-SanJose/2560/delphi4/vcl/index.htm
言い方がきつくてもきちんと教えてあげる
>>920萌え
>>918-919
あんなもん見たら分かるだろ。
>922
馬鹿だからわかんにゃーい
>>917
Label1がないよ
Delphiってプログラミングって言うより
アプリケーションツクールだよね
C言語とかだあと入力出力演算全部自分で書かなきゃいけないけど
Delphiならフォームにペタペタ貼り付けて
あとはちょこっとコード書くだけだからC言語よりスゲー楽。
Delphiって
型って
Integer型とString型とBoolean型しかないの・・・?
>>925
君が使う分にはその程度なんだろうね。
>>925
なら WinAPI 駆使して作ってごらん
930デフォルトの名無しさん:03/07/21 18:28
age
>>927
単純型、順序型、整数型、文字型、論理型、列挙型、部分範囲型、実数、文字列型、構造化型、集合
配列型、レコード型、ファイル型、クラス型、クラス参照型、インターフェース型、ポインタ型、手続き型、バリアント型
>>931
無駄に水増ししてるな・・・
構造化型は配列、集合、レコード、オブジェクト型の総称じゃなかったか
順序型も整数、文字、論理型、列挙型、部分範囲型の総称だろう…
普通は整数と論理と文字列しかつかわん
>>934
クラスも構造体もポインタも使わんと。それで何が出来るよ?
クラスも構造体もポインタも飾りですよ。
お(ry
バリアント一本で行けよ
if や for だけのプログラミング
Hello Worldだけのプログラミング
漢は黙って Variant だけで作る
常にバリアントユニット削除
バリアントナイフ二刀流最強
バリアン リサイタル。
「ぼえ〜〜〜〜」
もうバリアント話は飽きた。。。
サイコアーマー ゴーバリアン
バタリアン
947韓国:03/07/22 00:17
バーリアン バーリアン バーラーリーヨー♪
バーバリアンッ!!
以降1000までバリアントスレ
プロシジャー ボタン1クリック(Tオブジェクトセンダー)
始まり
フォーム1.ボタン1.キャプチョン := 'このぼたんをおすとPCが爆発します';
終り。
デルファイでMidiとかWaveサウンド鳴らす方法教えてください
952一休:03/07/22 01:24
ポク… ポク… ポク… チーン!
>>951
まずは屏風からMidiとかWaveを出してください。
#include <unit1.pas>
Integer main(void){
begin
Writeln("Hello world!!");
end.
}
Pascalっていつごろからできたのん?
俺が、15年程前に某メーカーで pascal, fortran コンパイラ作った時には既にあったね
>>954
たぶん、日本でパソコンってものが売られた時には既にあった
そういえば、かつてMSもコンパイラを出してたらしいな
もちろんTK-80で動いたとかそういうんじゃなくてアメリカでは既にあったってことね
オレが「ぴゅう太」でブイブイ言わせてた頃にはもうあったな。
コンソールアプリケーションってなぁに?
960コンドールマン:03/07/22 02:11
コンドールマン
>>959
コンソールで動くアプリケーション
PASCALはコンピュータ史上発の汎用高級言語ですよ
963デフォルトの名無しさん:03/07/22 02:17
>>962
マジレスしていい?
>>963
щ(゚д゚щ)カモーン
予想:
「またageちゃったなんたら」と続ける気だな?貴様…。
史上初の言語はC言語だよ
エニアックの時代からある
>>966
B言語の立場はどうなる?
アセンブラは?
Cは歴史からみればかなり後期なんだが

つーかUNIX登場後の話じゃーん
もう釣られてる香具師ばっかり
エニャックが世界初だと思ってていいのは小学生までだよねー( ´,_ゝ`)プッ
972デフォルトの名無しさん:03/07/22 02:34
962を上級釣り氏として認定しますた!
ノイマンコンピュータ
PASCAL以前はCOBOLしかなかった
ハッカーはアセンブリではなく16進数で語り合っていた
そして口笛を吹けばお金をいれなくても電話が通じた

オレがあこがれていたのはそんな時代なんだよ!!
UTF8Nを判別する方法教えて
>>974
インベーダーのコイン投入口にガスコンロの着火部分でカチャカチャやって
クレジット増やしてなさい!
ある処理中に、マウスホイールの回転を無効にすることはできますか?
>>977
操作されちゃ困るコントロールを無効化しとけばいいんじゃないの。
>>977
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
       WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
 if ある処理中 then
  Handled := True;
end;
>>951
MediaPlayerのコンポーネントがパレットのどこかにあるから、それをフォームに貼り付けなさい
次スレ立てます
くだすれDelphi(超初心者向け) Part4
http://pc2.2ch.net/test/read.cgi/tech/1058834815/
983スレ埋め:03/07/23 00:23
くっちぶえふーいーてー あっきちへーいったー
しらないーひとは もーいないー
みんななかまだ ともだちなーんーだー♪
スレ埋めしないの?
D
>>984
意味もなく2ちゃんねるの鯖容量は無限ではありません
節約するためにも、このまま移行してください
書き直したら文がおかしくなっちまった。。
さすが板とスレが違うと言う事も違うな。
普通ならこう

      \∧_ヘ     ,,、,、,,,
 ,,、,、,,, / \〇ノゝ∩               ,,、,、,,,           ,,、,、,,,
    /三√ ゚Д゚) /        ,,、,、,,,              ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,          
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
最近はage荒らし対策と速やかなDAT落ちを目指して
埋め立てるのが流行なのにな
990デフォルトの名無しさん:03/07/23 13:54
>>983
知らない子はもういない、みんな仲間だ仲良しなんだ。
>埋め立てるのが流行
厨房だけな。

処理したいならやれば?応援するよ(ヮ
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
次スレ

くだすれDelphi(超初心者向け) Part4
http://pc2.2ch.net/test/read.cgi/tech/1055212786/l50
千をとるのは俺様〜
意外と進まないな
>>991
まわりをよくみてみろよ
それに2ちゃんのHDDの容量が足りないなんて聞いたことがない
くだすれDelphi(超初心者向け) Part4
http://pc2.2ch.net/test/read.cgi/tech/1058834815/l50
>>997はニセスレ。
ウザイ。
そろそろか?
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。