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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001フサギコNGNG
           __________________________
   ∧,,∧    /Delフサギコがどんな厨房疑問でもやさしく答えます。
  ミ,,゚Д゚彡 < Delフサギコは時に私であり、時には別の人。
   U  つ∀ \他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 〜ミ  ミ ┴    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪
前スレ
フサギコの *やさしい* Delphi質問スレ Ver.12
http://pc2.2ch.net/test/read.cgi/tech/1045476912/
0002デフォルトの名無しさんNGNG
  Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
  Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
  Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
  Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
  Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
  Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
  Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
  Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
  Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
  Part21 http://pc2.2ch.net/test/read.cgi/tech/1044028945/
  Part22 http://pc2.2ch.net/test/read.cgi/tech/1046354784/
0003フサギコNGNG
■過去スレ
モナーの *やさしい* Delphi質問スレ Ver.11
http://pc2.2ch.net/test/read.cgi/tech/1042421592/l50
モナーの *やさしい* Delphi質問スレ Ver.10
http://pc3.2ch.net/tech/kako/1038/10388/1038880567.html
モナーの *やさしい* Delphi質問スレ Ver.9
http://pc3.2ch.net/tech/kako/1033/10336/1033668645.html
モナーの *やさしい* Delphi質問スレ Ver.8
http://pc3.2ch.net/tech/kako/1027/10278/1027873869.html
モナーの *やさしい* Delphi質問スレ Ver.7
http://pc.2ch.net/tech/kako/1021/10212/1021262086.html
モナーの *やさしい* Delphi質問スレ Ver.6
http://pc.2ch.net/tech/kako/1019/10191/1019134412.html
モナーの *やさしい* Delphi質問スレ Ver.5
http://pc.2ch.net/tech/kako/1017/10178/1017803412.html
モナーの *やさしい* Delphi質問スレ Ver4
http://pc.2ch.net/tech/kako/1016/10164/1016467137.html
モナーの *やさしい* Delphi質問スレ Ver3
http://pc.2ch.net/tech/kako/1014/10144/1014474727.html
モナーの *やさしい* Delphi質問スレ Ver2
http://pc.2ch.net/tech/kako/1011/10116/1011649179.html
モナーの *やさしい* Delphi質問スレ
http://pc.2ch.net/tech/kako/1003/10031/1003113413.html
0004フサギコNGNG
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/
0005デフォルトの名無しさんNGNG
またフサギコか。
0006デフォルトの名無しさんNGNG
なんだかわけわかんなくなってきた。
0007デフォルトの名無しさんNGNG
マウスジャスチャーを実装したいんだけど、
何か良いコンポウネントとかありますか?
0008デフォルトの名無しさんNGNG
>>7
ああ、おもしろそうだな・・・作るか。
0009デフォルトの名無しさんNGNG
>>7
Irvineの遺跡
http://hp.vector.co.jp/authors/VA024591/
0010デフォルトの名無しさんNGNG
コンポーネントってこういうもんなの?
ただのソースに見えるけど・・・
0011デフォルトの名無しさんNGNG
>>10
数度しんどけ。
0012デフォルトの名無しさんNGNG
Borland Sparta Professional
0013デフォルトの名無しさんNGNG
>>10
コンポーネントは貼り付けられるクラス。
0014デフォルトの名無しさんNGNG
if文の始めの一行で、「〜では無い時」とすることはできないのでしょうか?
0015デフォルトの名無しさんNGNG
if notじゃどうせ満足しないだろうから
ありません
0016デフォルトの名無しさんNGNG
「〜である時」だけで十分。
0017デフォルトの名無しさんNGNG
後置できないifは不十分。
0018デフォルトの名無しさんNGNG
やはり無いのですか
0019デフォルトの名無しさんNGNG
repeat〜untilで何とかすれ
0020デフォルトの名無しさんNGNG
if notで良いじゃん。
0021デフォルトの名無しさんNGNG
if A = False then 〜。
0022デフォルトの名無しさんNGNG
Application.Minimize;があるのにApplication.Maximize;が無いのは何故ですか?
0023デフォルトの名無しさんNGNG
最大化はそのままやっても問題ないから。
002423NGNG
Application.MainForm.WindowState:=wsMinimized;
と直接最小化状態に変更するとタスクバーに格納されずに左下にウィンドウが残る。
タスクバーボタンはメインフォームのものではなくアプリケーションウィンドウのもので、
普通のフォームはタスクバーに格納されないウィンドウだから。
それを回避するのがApplication.Minimize。だと思う。
0025デフォルトの名無しさんNGNG
Delphiって融通利かないんですね
0026デフォルトの名無しさんNGNG
>>25
どこら辺が?
0027デフォルトの名無しさんNGNG
>>25
ここは質問スレ
Delphiへの文句は別スレでしる
0028デフォルトの名無しさんNGNG
TQuery で使えるSQL文について教えて下さい。

例えば test.db に time という項目名があり、 timeは整数型で
10時20分30秒なら 102030 と値が入っているとします。

これを1時間ごとにまとめたい場合はどうすれば良いでしょうか?

select code, time, sum(goukei) from test.db
group by code, time

だと1秒ごとになります。
これを1時間(60分)ごとにまとめる事は可能ですか?
(デルファイのプログラミングで解決するのではなく、あくまでTQueryのSQL文で
解決したいのです)
0029デフォルトの名無しさんNGNG
>>28
SQL教えてっ!! lt;3gt;
http://pc2.2ch.net/test/read.cgi/tech/1042208762/l50
003028NGNG
>>29
サンクス。
移動します。
0031デフォルトの名無しさんNGNG
var
i: Integer;
x: array of integer;
begin
for i := 0 to 9 do
x[i] := i;
end;

ってやりたいんですけど、エラーがでてしまいます。
何がいけないのかおしえてください。
0032デフォルトの名無しさんNGNG
>>31
setlength してない
0033デフォルトの名無しさんNGNG
>>32
ありがとうございます

Delphiというかプログラミング始めたばかりなので
setlength調べてみます。
0034デフォルトの名無しさんNGNG
>>31
まさかとは思うけど
xが0〜9だと決まっている(静的配列)なら
x: array[0..9] of integer
003531NGNG
>>34
動的配列?の場合
x: array[0..y] of integer
で大丈夫でしょうか。

あとこの程度の質問はこのスレでOKですか?
0036デフォルトの名無しさんNGNG
>>35
動的配列の場合は そういう定義の仕方は出来ません

SetLength を使いfor文の前に SetLength(x,10); とします。
0037デフォルトの名無しさんNGNG
>>35
yが変数だと駄目
yが定数ならOk
つまり静的配列でないと[*..*]という書き方はできない
動的配列は32さんの通り

>あとこの程度の質問はこのスレでOKですか?
多分この板ではここが一番初心者にやさしいスレだと思います
(多少の罵声はあるかも知れないけど)
003831NGNG
みなさん本当にありがとうございました。
昨日から悩んでいたので助かりました。
0039デフォルトの名無しさんNGNG
TDBChart はSQLだけで範囲選択できない場合
(つまりプログラミングで出力するデータを選択する場合)や
数字を縦書きにしてラベルに出力する必要がある場合は
使えませんか?

TChart を使った方が良いですか?
0040デフォルトの名無しさんNGNG
>>39
TDBChar は SQL とは関係ないんだが。
DataSource を直接受け取れるだけ。
0041デフォルトの名無しさんNGNG
IEの右クリックになんぞ付け足すソフトソフトは作れますか?
みた感じスタンドアローンなソフトしか作れなそうです。
0042デフォルトの名無しさんNGNG
>>41
この情報があれば出来そう?
http://www.google.co.jp/search?q=HKEY_CURRENT_USER%5CSoftware%5CMicrosoft%5CInternet+Explorer%5CMenuExt&lr=lang_ja
0043デフォルトの名無しさんNGNG
一体何をみたんだろう…
0044デフォルトの名無しさんNGNG
D6パーソナルじゃない?
>>42 の情報があっても、
ActiveXが簡単に作れるのはProからだから
0045デフォルトの名無しさんNGNG
デルファイで作ると昔風の画面になる
004641NGNG
>>42さんのおかげでメニューの足し方わかりました。
でも結局処理はスクリプトでやるか、スクリプト用のオブジェクト?みたいな物作るんですな。
いまはIEを拡張したい気持ちよりDelphiで遊びたい気持ちが勝ってるので、
Delphiでできないことはあきらめます。
ありがとうございました。
0047デフォルトの名無しさんNGNG
>>45
アホがいます。
0048デフォルトの名無しさんNGNG
>>47
質問スレはアホしかいないと思って我慢してください。
0049デフォルトの名無しさんNGNG
MaxIntValue 関数について
MaxIntValue 関数は,整数配列で最大の値を符号付きで返します。
ユニット:Math
カテゴリ:統計ルーチン
function MaxIntValue(const Data: array of Integer): Integer;
説明
MaxIntValue 関数を呼び出すと,Data 配列で最大の整数を取得できます。

これってどう書けば配列の最大値が分かるの
デルってサンプルはないの?
0050番組の途中ですが名無しですNGNG
DELPHI最高マジ最高。nyで落として気に入ったから、今度買いに行きます。
0051デフォルトの名無しさんNGNG
>>49
>これってどう書けば配列の最大値が分かるの

引数と説明見りゃ分かるだろう。これは。
0052デフォルトの名無しさんNGNG
>>50
これからもBorlandを助けてあげてね。
0053デフォルトの名無しさんNGNG
落としたら買う必要ないんじゃないの?
0054デフォルトの名無しさんNGNG
犯罪者が現れました。
0055デフォルトの名無しさんNGNG
>>53
正規ユーザーになりたくなるくらい感動させる出来だったと言うことだろう。
あるいは古いの落としたか。
0056デフォルトの名無しさんNGNG
Delphiで何かつくって一儲けしたいからだろ。
さすがに割れで商売はまずい。
0057デフォルトの名無しさんNGNG
割れ厨にそんな意識無い
落としてる時点で既に逮捕モノなのに
0058デフォルトの名無しさんNGNG
コードばっかり書いてないでもうちょっと一般常識身につけたら?
0059デフォルトの名無しさんNGNG
WindowsXP使ってると突然タスクバーに"CDプレイヤー"とか言うのが出現してすぐ消えるんだけどこれはいったい何なんですか?
0060デフォルトの名無しさんNGNG
>>59
CDプレイヤーですよ?
0061デフォルトの名無しさんNGNG
せっかく無料版を公開しているのになぜ割れに頼る・・・・
0062デフォルトの名無しさんNGNG
TEditでEnterを押されても改行しようとしないようにするにはどうしたらよいですか?
「ぽーん」ってエラー音がでてしまうやつです。
検索しても見つからなかった・・・。
0063デフォルトの名無しさんNGNG
>>62
もともとTEditって1行ですが。
0064デフォルトの名無しさんNGNG
Enterを押されたときの音を消したい。
0065デフォルトの名無しさんNGNG
>>64
消す必要があるのか?

1行エディットボックスで改行しようとしたらエラー。問題なくない?
0066デフォルトの名無しさんNGNG
>>64
キーを処理してるどこかで例外を投げれば、デフォルトハンドラを通らなくなるから
キーイベントで改行を処理した後、abort 例外を投げてやればいいよ
0067デフォルトの名無しさんNGNG
>>64
まぁ、ごちゃごちゃ言ってもしゃあないか。ほれ。

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if(Key = #13)then
key := #0;
end;
0068デフォルトの名無しさんNGNG
すみません。音を消すというか、改行をしようとさせなくしたいです。
0069デフォルトの名無しさんNGNG
>>68

>>63

そうしてもと言うならEnterキーほじくり出せ。
0070デフォルトの名無しさんNGNG
起動するとEnterキーが砕け散るようにするにはどうプログラムを書けばよいでしょうか。
0071デフォルトの名無しさんNGNG
Windows Messengerのように、タスクトレイの上に
小さなメッセージボックスをポップアップさせる方法はありませんか?
0072デフォルトの名無しさんNGNG
>>70
スタートアップに
Enterキーを100万回押さないと他のアプリの起動が一切できないプログラムを
仕込むようにする
0073デフォルトの名無しさんNGNG
>>71
あります。
タスクトレイの座標を取得してそのあたりにフォームを表示させましょう。
多分できるはずです。

http://www.google.co.jp/search?num=100&hl=ja&ie=Shift_JIS&c2coff=1&q=%83%5E%83X%83N%83g%83%8C%83C%81@%8D%C0%95W&lr=lang_ja
0074デフォルトの名無しさんNGNG
d
0075デフォルトの名無しさんNGNG
>>73
ありがとうございます
0076デフォルトの名無しさんNGNG
>>74
ワロタw
0077デフォルトの名無しさんNGNG
>>72
ああなるほど!
是非その方法を使わせてください。
0078デフォルトの名無しさんNGNG
abortではきえませんでした;
他に音を消すabortみたいなやつないんすかね?
0079デフォルトの名無しさんNGNG
>>71
Shell_NotifyIcon()でツールチップが登録できる。APIリファレンス熟読。

>>78
何がしたいかはっきり知る。
0080デフォルトの名無しさんNGNG
一瞬だけミュートすればいいじゃん。
0081ANGNG
>>78
>>67 のではダメなの?
0082デフォルトの名無しさんNGNG
>>79
Messanger のあれはツールチップではないよ。
0083デフォルトの名無しさんNGNG
バルーンだろ
0084デフォルトの名無しさんNGNG
日本人が作ったコンポーネントって中途半端なものばかりですね
0085デフォルトの名無しさんNGNG
サンプルムービーです
http://homepage3.nifty.com/digikei/sample/sample.html
0086デフォルトの名無しさんNGNG
>>84
文句があったら自分で作れよ
0087デフォルトの名無しさんNGNG
>>83
なにそれなにそれ
0088デフォルトの名無しさんNGNG
>>84
日本と全世界で比べるからだ。
0089デフォルトの名無しさんNGNG
XPテーマのボタンとかにならないの?(見た目が)
0090デフォルトの名無しさんNGNG
>>89
なるよ
0091NullPointerExceptionはぬるぽNGNG
>>71
そのものズバリがある。
http://www.tmssoftware.com/htmlpopup.htm

まあ、このあたりのコンポ群は購入しておいて損はないよ。
0092デフォルトの名無しさんNGNG
>>89
ならないよ
Delphiなんて、その程度
0093デフォルトの名無しさんNGNG
>>92
アホがいます。
0094デフォルトの名無しさんNGNG
>>92は、相当実力がないんだな。
かわいそうに。
0095デフォルトの名無しさんNGNG
>>93-94
プ
0096デフォルトの名無しさんNGNG
>>95
>>92さん、自分の意見を持つのは良いがそれが間違いの場合は素直に認めるべきだ。
0097デフォルトの名無しさんNGNG
Win32APIとインラインアセンブラが使えるから出来ないことなんてほとんど無いんじゃないの?
0098デフォルトの名無しさんNGNG
>>97
うん、どこぞのVBとかとはポテンシャルが違う。
0099デフォルトの名無しさんNGNG
きのうデルファイ始めたが、コンポーネントの配列ってないんでしょうか。
(VBのコントロール配列のような。)
0100デフォルトの名無しさんNGNG
VCL リファレンス

TComponent.Components


Components プロパティは,コンポーネントが所有するすべてのコンポーネントを一覧表示します。
property Components[Index: Integer]: TComponent;
0101デフォルトの名無しさんNGNG
>>97
ドライバ書ける?
0102デフォルトの名無しさんNGNG
>>101
普通に。
010399NGNG
つまり、vbで作ったソフトをデルファイに移植したいのですが、

Button1[1]、Button1[2]、Button1[3]・・・Button1[100]というように
コンポーネントを配列にして、
フォーム上にマインスイーパ風ボタンを百個置くというようなことは
できますか。
0104デフォルトの名無しさんNGNG
実力って何?プ
0105デフォルトの名無しさんNGNG
実力(*^o^*)
0106デフォルトの名無しさんNGNG
>>103
var
ButtonList :TList;
Button :TButton;
i :integer;
begin
for i := 0 to 99 do
begin
Button := TButton.Create(Form1);
Button.tag := i;
ButtonList.Add(Button);
end;

end;

とか。
0107デフォルトの名無しさんNGNG
全然わからないんですけど
Diffのコンパイルってどうやるんですか?
010899NGNG
>>106
大変ありがとうございます。解析します。
0109デフォルトの名無しさんNGNG
俺、デルファイの実力あるよ
0110デフォルトの名無しさんNGNG
>>108
中身
Button := TButton.Create(Form1);
Button.tag := i;
Button.Parent := Form1;
Button.Top := 10;
Button.left := 10;
Button.Height := 10;
Button.Width := 10;
ButtonList.Add(Button);

にして。
0111108NGNG
どもども。
0112184NGNG
Delphi.ぷっ!馬鹿じゃね〜
0113デフォルトの名無しさんNGNG

同意。>>112は馬鹿だ。
0114デフォルトの名無しさんNGNG
タブコントロールで隣のタブをアクティブにするのってどういう風にやるんでしょうか?
0115デフォルトの名無しさんNGNG
>>114
TabControl.TabIndexを足したり引いたり
0116デフォルトの名無しさんNGNG
>>115
出来ました。ありがとう
0117ANGNG
>>110
それだと、全部のボタンが同じ位置に重なっちゃうような…
0118108NGNG
>>117
for文を使ってすべてのボタンを消したり、ボタンのcaptionを0から99にする
とかできますか?
0119デフォルトの名無しさんNGNG
>>118
親の Components 配列に全部入ってるから
たとえば親がパネルなら、

for i=0 to Panel1.ComponentCount-1 do begin
if Panel1.Components[i] is TButton then
 with Panel1.Components[i] as TButton do begin
  caption:=StrToInt(i);
end;
end;

みたいにやればいいよ。
0120108NGNG
>>119
どうも。やってみます。
0121108NGNG
>>119
そうですか。やってみます。どうも
0122108NGNG
かぶったスマソ
0123108NGNG
もういっちょ
0124デフォルトの名無しさんNGNG
A: Integer;
A := Random(100)

で、0〜99の整数の乱数が取得できるらしいですが、
10〜99の整数の乱数を取得する簡単な方法はありますか?
0125デフォルトの名無しさんNGNG
>>124
0〜89の整数の乱数を取得して10加える。
0126デフォルトの名無しさんNGNG
Random(90) + 10
0127デフォルトの名無しさんNGNG
なるほど、、ありがとうございます
っていうか、なんか恥ずかしい質問をした気がする・・・(−_−)ウツダ
0128デフォルトの名無しさんNGNG
>>127
恥ずかしがる必要はないよ。良くあることさ。
「問題を解く」訓練をしっかりやれば、じきに自分で思いつくようになるよ。
0129ANGNG
>>118
>>106+>>110 の方法を使ってるなら、ButtonList に作ったボタンが
みんな入ってるから、

 for i:=0 to ButtonList.Count-1 do
  with TButton(ButtonList.Items[i]) do
   caption := StrToInt(i);

でいいと思う。
0130107NGNG
僕の質問はおかしいですか?
0131デフォルトの名無しさんNGNG
>>107
質問の意図がよくわかりません
0132107NGNG
差分パッチですといわれて
Diffファイルだけ渡されたんです
0133デフォルトの名無しさんNGNG
今さら言うのもなんだが、マインスイーパみたいにしたいんだったら
グリッド使った方が……マテオマエラ、オレヲドコヘツレテ
0134デフォルトの名無しさんNGNG
>>132
patch コマンドで元のソースにパッチを当ててからコンパイルする。
0135デフォルトの名無しさんNGNG
>>133
いや、激しく同意。どうせオーナードロー的な処理が入るんだからTImageとか使った方が良いと思うよ。
0136デフォルトの名無しさんNGNG
プログラム起動時の状態にリセットするコマンドないですか?
いちいち〜 False;と長々と書いていくのは面倒です。
0137デフォルトの名無しさんNGNG
>>136
>いちいち〜 False;と長々と書いていくのは面倒です。

状況がさっぱり分かりません。
0138デフォルトの名無しさんNGNG
テレビゲームのリセットボタンみたいなやつ
0139デフォルトの名無しさんNGNG
>>138
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E3%83%86%E3%82%AF%E3%83%8B%E3%82%AB%E3%83%AB%E3%83%A9%E3%82%A4%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80
0140デフォルトの名無しさんNGNG
>>136
グローバル変数使い杉。
0141デフォルトの名無しさんNGNG
>>140
メンバ変数だと思う今日この頃。
0142ANGNG
>>136
そもそもDelphiにコマンドなんて無い気もするけど…
初期化したいだけなら、初期化メソッドを用意して、それを呼べばいいだけでは。
0143デフォルトの名無しさんNGNG
>>142
ま、妥当な意見だと思う。
0144デフォルトの名無しさんNGNG
Reset;
0145デフォルトの名無しさんNGNG
全フォームを破棄して作り直せばいい。
0146デフォルトの名無しさんNGNG
★総理大臣賞受賞★
http://www.pink-angel.jp/2/index2.html
0147デフォルトの名無しさんNGNG
Indy8の日本語ヘルプって存在しないんですか?
存在するのならダウンロードできる場所を教えて頂きたいのですが。
0148デフォルトの名無しさんNGNG
ないよ。必要なら作ったら。
0149デフォルトの名無しさんNGNG
>>148
ないのですか。ありがとうございました。
0150デフォルトの名無しさんNGNG
>>149
作ってくださいよ。機器逃げですか?
0151デフォルトの名無しさんNGNG
D6 って Indy8 じゃなかったかな?
http://www.borland.co.jp/delphi/del6docup.html からダウンロードして
Indy のヘルプだけ分捕る。ってのは?
0152デフォルトの名無しさんNGNG
>>151
8.0.25
使えるね
0153デフォルトの名無しさんNGNG
Close;
0154デフォルトの名無しさんNGNG
DELPHIが寂れてるのだろうか。このスレが寂れてるのだろうか。
0155107NGNG
>>134
激感謝m(__)m
0156デフォルトの名無しさんNGNG
小数点も使えるIntegerみたいなやつないですか?
0157デフォルトの名無しさんNGNG
>>156
みたいってなんだ。
なにがしたいんだ?
0158デフォルトの名無しさんNGNG
さげ
0159デフォルトの名無しさんNGNG
>>157
ホンキで言ってるの?初心者ですか?
0160デフォルトの名無しさんNGNG
>>159
どの言語のどういう機能と同等のことをしたいのか
と聞いてるんでないかい?

俺も知りたい(まさかバリアントのことでもあるまいし)
0161デフォルトの名無しさんNGNG
>小数点も使えるInteger

恐ろしい矛盾があるな。
0162デフォルトの名無しさんNGNG
var
 a: チョメチョメ;
0163デフォルトの名無しさんNGNG
156(=159?)もこれだけ釣れれば満足だろう
0164デフォルトの名無しさんNGNG
>小数点も使えるInteger
Currencyを思い出した。
0165デフォルトの名無しさんNGNG
小数点を扱える整数。Variant?
0166デフォルトの名無しさんNGNG
>>165
小数点数を入れた時点でそれは整数型ではなくなる。よって答え無し出良いと思われ。
0167デフォルトの名無しさんNGNG
結局156は何がしたかったんだろ?
0168デフォルトの名無しさんNGNG
>>167
多分floatとかrealとかのことを聞きたかったんだと思うよ。
0169156NGNG
分かりました。
Delphiでは小数点のある数を扱えないんですね。
0170デフォルトの名無しさんNGNG
>>169
そうですよ。VBは使えるのでVBを覚えなさい。
0171デフォルトの名無しさんNGNG
>>169
そんな餌じゃ誰も釣れないと思うが。
0172デフォルトの名無しさんNGNG
>>169
きゃーっはっはっはっは!バカでー

使えるに決まってるじゃん!おばかちゃーん!ぷぷ。

マニュアル読め。英語読め。アホちん。ぶちぶちぶちちちちちちち
0173デフォルトの名無しさんNGNG
>>172
( ゚д゚)ポカーン・・・
0174デフォルトの名無しさんNGNG
春ですなあ。
0175デフォルトの名無しさんNGNG
釣れないとみて、自作自演で釣れたみたいだな。
0176デフォルトの名無しさんNGNG
VBの方が何でも出来るしな
0177デフォルトの名無しさんNGNG
いいじゃん。なんでもブビ厨っと言っとけば。そうすりゃ勝った事になるだろ。
0178デフォルトの名無しさんNGNG
>>177
「ブビ厨」
この言葉がこのスレで使われたのが177が最初
0179デフォルトの名無しさんNGNG
ブビ厨って何だよ(禿藁
0180デフォルトの名無しさんNGNG
おっ。さっそくブビ厨が釣れたぞ。相変わらず対抗意識強いなぁ(禿藁
0181デフォルトの名無しさんNGNG
Delphiが敬遠される理由(ワケ)が垣間見えるスレはここですか?
0182デフォルトの名無しさんNGNG
お前ら、ここは質問スレだから
そういうのは別スレでやってください
0183デフォルトの名無しさんNGNG
ある文字列の行数を調べるソースはどのように記述したらよいですか?
0184デフォルトの名無しさんNGNG
ListViewを使ったファイラを作ってまして
フォルダのリネームで変な動作をするのでアドバイスください

※カレントディレクトリは起動時に SetCurrentDirで設定して
※そのディレクトリ以下のファイル/フォルダをListViewに展開してます
※ListViewEditedで「編集後の値」と「Itemを取得」して以下のようにリネーム処理してます
RenameFile(item.Caption , 「編集後の値」) //リネーム
Item.Caption := 「編集後の値」 //リストビューに反映

これでフォルダ・ファイルに関わらず、ちゃんとリネームするのですが
フォルダをリネーム→リネームしたフォルダを開く→戻る→もう一度フォルダのリネーム
をするとリネームされません
ShowMessageで処理前にリネーム元フルパスとリネーム後フルパスとカレントディレクトリを見ても
すべて間違ってないのに失敗します
(リストビューはItem.Captionがちゃんと変更されますがファイルはリネームされてません)
0185デフォルトの名無しさんNGNG
>>182
すまん。俺が悪かった。あまりにもブビ厨がうざかったので
決着をつけようとしただけなんだ。
つーか、もう決着はついたな。ブビ厨の負けだ。
お前らもう帰って良いぞ。もう二度とくるなよ。
0186デフォルトの名無しさんNGNG
>>183
function CountOfLine(const s: string): Integer;
begin
 with TStringList.Create do
 begin
  Text := s;
  Result := Count;
  Free;
 end;
end;
0187デフォルトの名無しさんNGNG
>>183
ある文字列の行数を調べるように記述したらよいです
0188デフォルトの名無しさんNGNG
186さんありがとうございました。posを使って調べる方法は
どうしたらよいのでしょうか?
0189デフォルトの名無しさんNGNG
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/<先生!こんなのがありました!
 _ / /   /   \___________
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
http://saitama.gasuki.com/aomori/
0190デフォルトの名無しさんNGNG
>>188
これで我慢汁
function GetLineCount(const Value: string): Integer;
var
 P: PChar;
begin
 Result:=0;
 P:=Pointer(Value);
 if P<>nil then
  while P^<>#0 do
  begin
   while not (P^ in [#0, #10]) do Inc(P);
   Inc(P);
   Inc(Result);
  end;
end;
0191デフォルトの名無しさんNGNG
・・・マルチバイトに対応できとらんかった
0192デフォルトの名無しさんNGNG
function CountOfLine(const s: string): Integer;
var
 len, i: Integer;
begin
 Result := 0;
 len := Length(s);
 for i := 1 to len do
  if (s[i] = $a) and (ByteType(s, i) = mbSingleByte) or (i = len) then
   Inc(Result);
end;
0193192NGNG
(s[i] = $a) → (s[i] = #$a)
0194デフォルトの名無しさんNGNG
無知な者の素朴な疑問だけど、
BIOSってどんな言語で作ってるの?
0195デフォルトの名無しさんNGNG
Delphiのスレで訊くくらいだから、
Delphiで作ってるとボケなければならないのだろう
0196デフォルトの名無しさんNGNG
>>184
最後のフォルダのリネームが共有違反か何かで失敗してるのかも。。。
0197デフォルトの名無しさんNGNG
>>184
見当違いかもしれないけど
リネームできなかったフォルダがエクスプローラとかでもリネームできず、そのアプリを終了するとリネームできるようになるというのなら>>196の言うとおりかもしれない。
その場合はTSearchRecをとかの解放し忘れを見直したらいいかも。try..finallyで必ず解放するようにするとか。
0198184NGNG
>>196-197
BINGOです
見てみたら思いっきり共有違反してました
FindCloseで開放すんの忘れてました
うーむ、この手のミスしないようにちゃんと癖つけないとなぁ…

ありがとましたー
0199デフォルトの名無しさんNGNG
質問させていただきます。よろしくお願いします。

function TForm1.BDF(s,t:string):integer;
var
i:integer;
begin
result:=0;
for i:=0 to gd.mx_ed do
if(gd.ed[i].b=s)and(gd.ed[i].t=t)then
if(gd.ed[i].r<>a1)and
(gd.ed[i].r<>a2)then
result:=result+1;
end;

意図通りに動かなかったので
この関数中にブレイクポイントを置いて監視してみたところ
iもresultも
「最適化のため変数をこの位置から参照することはできません」
となり、変数として正しく機能してくれません。
何故でしょうか?
0200デフォルトの名無しさんNGNG
>>199
最適化されてしまっているからです。
0201デフォルトの名無しさんNGNG
最適化してるから。
プロジェクト−オプション−コンパイラ−コード生成−最適化
0202199NGNG
文頭のスペースが消えてコードがみにくくなってしまいました

>200-201
最適化のチェックを外しても同じことを言われてしまいした………
別の関数ではこのようなことを言われなかったのですが
使用verはDelphi6Parsonalです
0203デフォルトの名無しさんNGNG
>>202
コンパイルしなおした?
0204199NGNG
>>203
御指摘の通り、
どうやらコンパイルをし直していなかったようです。
スイマセン。

コンパイルし直した結果、原因がようやくわかりました。
コードではなく、外部データの問題だったようです。
ありがとうございました。
0205デフォルトの名無しさんNGNG
Windows2000以降にはマウスカーソルをデフォルトボタンにジャンプできる機能がありますよね
TFormに貼り付けたTButtonをその移動対象となるデフォルトボタンにしたいのですが
DefaultプロパティをTrueにしても飛んでくれません
ダイアログ以外じゃダメなんですかねぇ?
0206デフォルトの名無しさんNGNG
>>205
標準的なダイアログボックスならって話じゃないの?
0207デフォルトの名無しさんNGNG
「あの」機能は、DefaultDialogWindowProc がやっている。
Delphi のダイアログ「もどき」は他のウィンドウと同じく DefaultWindowProc を使っている。だから無理。

.NET の WinForm でも、デフォルトボタンにジャンプしないから、似たようなものさ。
0208デフォルトの名無しさんNGNG
procedureを自動でABC順に並べることできますか?
0209デフォルトの名無しさんNGNG
GXExpert で可能じゃなかったけ?
0210デフォルトの名無しさんNGNG
マウスのホイール機能を無効にする方法というのはありますでしょうか?
0211デフォルトの名無しさんNGNG
BS_DEFPUSHBUTTONってのがあって、無理って訳でもない。
ただし、フォーカス移動とともに変わっちゃったりするので注意。
0212デフォルトの名無しさんNGNG
>210
他のプログラムでも無効になるようにしたいというなら、これじゃ無理だけど、
そうじゃないなら、こんなんで出来ると思う。
試してないけど。
procedure TMainForm.ApplicationEventsMessage(var Msg: tagMSG; var Handled: Boolean);
begin
 Handled := False;
 case Msg.message of
  WM_MOUSEWHEEL: Handled := True;
  WM_MBUTTONDOWN: Handled := True;
 end;
end;
0213デフォルトの名無しさんNGNG
TToolbar.Menuプロパティのおかげで、
メインメニューで作った物をツールバー形式にするのは簡単ですね。

昔ツールバーとポップアップメニューで作ったものを、
いったんメインメニューに移し替えて、さらにTToolbar.Menuで作り直すつもりですが、
ポップアップからメインに移す作業がやたらめんどくさいです。
勝手にリネーム食らうし、イベント解除されるし、手動でやったらバグだらけになりそうです。
何かいい方法ありませんか?
0214デフォルトの名無しさんNGNG
>>213
PopupMenuにフォーカスを当ててCtrl+C。
メモ帳に貼り付けてTPopupMenuの部分をTMainMenuに変える。
Ctrl+A, Ctrl+CでコピーしてフォームにCtrl+Vで貼り付ける。
0215デフォルトの名無しさんNGNG
>>214
クリップボードがテキスト型だったなんて知らなかったです。
これってdfmと同じ形式ですなぁ。
今回はdfm直接編集で、メニュー項目移植しました。
0216デフォルトの名無しさんNGNG
>>206-207
ダメなんですね
まさか出来ないとは思わなかった…

自分でジャンプさせます(;´Д`)
0217ななしへたぐらま ◆XcB18Bks.Y NGNG
>>156 >>169
小数が扱える変数の型はあるのかというご質問だとお見受けしました.
そういう型は実数型といって色々あるのですが
とりあえずDouble型でよろしいかと思います.
0218デフォルトの名無しさんNGNG
ネット関係なんですけど、プロバイタとの接続を切断しても、
次にプロバイタに繋いだとき、変わっていないホスト名やIPアドレス
ってあるんですか?
0219デフォルトの名無しさんNGNG
>>218
DHCPはなるべく同じIPアドレスを割り当てようとします。
0220デフォルトの名無しさんNGNG
どの程度のなるべくなのですかな?
0221デフォルトの名無しさんNGNG
>>220
DHCPサーバさんの気持ち次第です。期待はしない方がよし。
0222デフォルトの名無しさんNGNG
鯖管理者にNICのMACと金一封送ると固定化してくれるよ。
0223デフォルトの名無しさんNGNG
100%変わらないホスト名はないのですか?
0224デフォルトの名無しさんNGNG
100%って言ってしまいましたね
0225デフォルトの名無しさんNGNG
いっちゃいました。ないですか・・・?
0226223NGNG
>>224
訂正します
13.5%あるかないか程度変わらないホスト名はないのですか?
0227デフォルトの名無しさんNGNG
>>226 それはDHCPではなくて?w
0228デフォルトの名無しさんNGNG
>>218-226
スレどころか板違い
ケーブルインターネットだと固定IPだとか色々あるけど
「自宅サーバー」板へでも逝って聞いてみるよろし
0229デフォルトの名無しさんNGNG
ActionListほどくだらないコンポーネントは無いな
0230デフォルトの名無しさんNGNG
釣られてみようか...
どこらへんがくだらなかったの?
0231デフォルトの名無しさんNGNG
ショートカットの矢印アイコンやスタートメニューのプログラムフォルダアイコンが
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
ですぐに反映できないみたいなのですが何か良い方法はありませんか?
ちなみにXPです。
0232デフォルトの名無しさんNGNG
エイプリルフールだからマジレスできないよ。明日まで待って( ´,_ゝ`)
0233デフォルトの名無しさんNGNG
MEMOの内容を更新すると、一番上まで勝手にスクロールしてしまうんですが、
逆に一番下にスクロールさせる方法はありませんか?
0234デフォルトの名無しさんNGNG
>>233
SelStart
(SelText)
0235デフォルトの名無しさんNGNG
>>234
それをどう使えばスクロールできるんですか?
0236デフォルトの名無しさんNGNG
>>233
Delphiじゃ無理。
0237デフォルトの名無しさんNGNG
ListViewの表示速度についてなんですが
色々検索してみると
検索先で紹介されているコンポーネントがことごとく配布終了しているので
自前でやろうとしているのですが
VirtualModeなるものを使う
オーナードローでなんとかする
やはり検索するとあたりが出てきたのですが
VirtualMode(仮想モード)が激早らしいのですが情報がさっぱりです

んでやろうとしてることは指定ディレクトリのファイル・フォルダの一覧で
リストを読み込むときに別スレッドで情報を取得して
空のリストを必要分作っておき、ListView上の実際表示されるアイテムだけそのつど情報をListviewに追加する
って形がベストですか?
エクスプローラースピードを目指したいのですが

やる前はFAQだろうなぁとたかをくくってたのですが
なんだか古い情報が多いわりに決定版って感じの情報がないのはなんでなんざんしょ…
0238233NGNG
>>236
やはりそうですか。。。VS.NETやります。
0239デフォルトの名無しさんNGNG
ここにも四月馬鹿の被害者が。
0240デフォルトの名無しさんNGNG
バーサス.NET
0241初心者ですNGNG
突然すみません。
Unit1にあるボタンのOnClickイベントで
Unit2にあるEdit1のTextを使いたいのですが、
Edit1.Textは未定義だと怒られます。
どのように定義すればUnit2のコンポーネントを
Unit1で扱えますか?
ほんとうに初心者ですみません<(__)>
0242デフォルトの名無しさんNGNG
unit Unit1;
interface
uses Unit2; {*}
...
implementation
uses Unit2; {*}
...
{*}どちらかを追加
0243デフォルトの名無しさんNGNG
usesにUnit2を追加したら、出来るかも。
初心者なので間違ってるかもしれません。
Form2.Edit1.Text
0244241NGNG
>>242
>>243
ありがとうございます<(__)>
ばっちりできました。
Form2をEdit1.Textの前に書いていませんでした
0245 NGNG
>>241
1.「ユニットを使う」ってのを探して
2.>>243氏の通りにusesに加える

で、いいんでない?
0246デフォルトの名無しさんNGNG
「新規作成」→「スレッドオブジェクト」でクラス名を「exp」でスレッドを作成して、
procedure exp.Execute;
begin
{ ToDo : スレッドとして実行したいコードをここに記述 }
 ShowMessage('成功');
end;
と変えたんですけど、
違うユニットから呼び出す方法が分かりません。
ヘルプを読んでもいまいち分かりませんでした。
よろしくお願いします。
0247 NGNG
>>233
メモコンポって使わないから知らんけど、richeditのなら
「ケツまでスクロール」ってのは検索すれば必ず見つかるよん。
それじゃダメ?
0248 NGNG
なんだか忙しいな(藁
オレは知ったかなんで、間違ってたらフォローよろぴく♥

>>246
usesして宣言してcreateでは?
0249デフォルトの名無しさんNGNG
>>248
そのCreateはどうやってつかうんですか?何も分からなくてすみません。。。
0250デフォルトの名無しさんNGNG
>>233
たぶんログみたいにどんどん後ろにテキストを追加していってるんだろうけど、
そういう場合はテキストを全部置き換えるんじゃなくて、
SelStart := Length(Text); SelText := 追加分;
みたいにしてケツに足していくのが上等手段。

>>249
ヘルプでTThread.Createを検索したら例が載ってる。
まずその例の通りにやってみろ。
0251デフォルトの名無しさんNGNG
>>249
Exp:=TExp.Create;
みたいな文になるはず(TExpの派生元によって引数が付くこともある)

なおDelphiの世界ではクラス名・レコード名の頭にはTをつけるのでよろしく
0252 NGNG
>>249
usesしてあー…なんだ、インスタンスに…えーとなんだ、代入ってか?

とりあえず、usesして「exp」の後に「.」を打った時点で「Create」が補間されれば
成功ってとこではないでしょか。

Create(True)
Resume
Terminate
WaitFor
Destroy
あたりを検索してみては…。
0253 NGNG
先にレスが付いてた(藁
つーか、変数に代入ってか…。で、インスタンスってか。
0254デフォルトの名無しさんNGNG
ありがとうございます。
0255デフォルトの名無しさんNGNG
>>246
つかこのコードには問題があります。
0256デフォルトの名無しさんNGNG
>>255
え?どこに問題がありますか?
0257ななしへたぐらま ◆XcB18Bks.Y NGNG
>>237
仮想リストビューというのはリストビュー自身がリストを持つ代わりに
下請けに丸投げするモードです.
リストビューが項目情報を必要としたときにアプリ側に「情報よこせやゴルァ」とわめくので
下請けであるプログラマはそれに対して「どうぞ親方」と情報を渡します.

手順:

・リストを自前で用意する.
 リストの代わりに配列でも出来ると思いますが
 TMyFileList, TMyFileInfo みたいにリストクラスを定義した方が美しいでしょう.

・リストビューコンポのOwnerDataをTrueにする(丸投げモード指定).

・リストの内容に変更があったときはUpdateItemsメソッドで,
 項目の数に変更があったときはItems.Countプロパティで伝える,というコードを書く.

・リストビューのOnDataイベントハンドラを書く.
 「インデックスxxの情報よこせやゴルァ」に対して情報を渡すイベントです.
 引数のItemに情報を書き込みます.

※より速度を上げるためにはOnDataHintイベントを使うと良いらしいのですが
 私は使ったことがないのでよくわかりません.

ちょっと調べてみたところでは鶴亀メールではリストビューの代わりに
ヘッダーコントロールとリストボックスを使って速度を上げているそうです.
Delphiならリストボックスの代わりにグリッドでも良いかも知れません.

0258私はイラク攻撃反対していますNGNG
解像度を800x600に変えて、フルスクリーンにする方法をPlease!
0259デフォルトの名無しさんNGNG
イラク攻撃に反対する人には教えません。
0260デフォルトの名無しさんNGNG
ユーザの操作(マウスの軌道、キー入力など)を記録するやり方がわかりません。
どのような関数、APIを使えばできるのでしょうか?
教えてください。
0261デフォルトの名無しさんNGNG
SetWindowsHookEx
0262デフォルトの名無しさんNGNG
>>261
アリガトです。
さっそく実装にかかります〜
0263イラク攻撃に賛成していますNGNG
>>259
小泉を応援します
0264初心者ですすみませんNGNG
OpenDialog1.Filenameだと、
オープンダイアログで選択したファイルのフルパスが表示されてしまいます。
これを、選択したファイル名だけにするには
(C:\picture.jpg → picture.jpg)
OpenDialog1.Filenameをどのように書き換えればいいでしょうか?
0265デフォルトの名無しさんNGNG

>>264

ExtractFileName
0266デフォルトの名無しさんNGNG
「隠しファイルを表示しない」ようにレジストリいじりますよね。
だけど、ただいじるだけじゃ反映されないみたいなんですけど。
その反映させる方法がわかりませぬ。。。
どすればいいんでしょか?
0267266NGNG
つまり、デスクトップ右クリで出てくる
最新の情報に更新  のことなんですが
0268264NGNG
>>265
ありが�d
ExtractFileName(OpenDialog1.FileName)でできました
0269デフォルトの名無しさんNGNG
OpenDialog1.Executeで選択されたのを
未選択にするにはどのように書けばいいか教えて下さい。
何かのファイルを選択した
OpenDialog1.FileNameを
どんなファイルも選択していない
OpenDialog1.FileNameにしたいのです。
0270ななしへたぐらま ◆XcB18Bks.Y NGNG
>>237
もうチェック済みかも知れませんが
ちょうど他スレにこの話題が出ていましたので.

ミ,,゚Д゚彡フサギコのフサフサDelphi相談室�H
http://pc2.2ch.net/test/read.cgi/tech/1045813143/324-
0271デフォルトの名無しさんNGNG
Delphiっていつの間に浸透したの?
まわりをみてももうDelphiばかりだよ。
Delphiのおかげで稼げたった声が沢山。
フリーなのにスゴイ
0272デフォルトの名無しさんNGNG
>>271
フリーので火星じゃだめじゃん
0273デフォルトの名無しさんNGNG
ばれなきゃいいのです。
0274デフォルトの名無しさんNGNG
Memo1に入力した文字のバイト数を
Label1に書くにはどうすればいいか教えていただけませんか?
0275デフォルトの名無しさんNGNG
>>272
何か勘違いしていないかい?
金を稼いだんじゃないぜ。点数(まわりからの評価)を稼いだんだぜ。
0276デフォルトの名無しさんNGNG
>>275
うまい! でも稼いだのは金なんだな。
0277デフォルトの名無しさんNGNG
勘違いというかふつうそうとる。
0278274NGNG
procedure TForm1.Memo1Change(Sender: TObject);
begin
Label1.Caption := Length(Memo1.Lines.Text);
end;
と書いてやると
[エラー] Unit1.pas(126): 'String' と 'Integer' には互換性がありません
と言って怒られます。
どうか助けてください<(__)>
0279デフォルトの名無しさんNGNG
ShowMessageで表示される文字のサイズって変えられますか?
0280デフォルトの名無しさんNGNG
>>278
元VB屋さんですか?
 それなら一度バリアント変数を中継するといいですよ
procedure TForm1.Memo1Change(Sender: TObject);
var w:Variant;
begin
w:=Length(Memo1.Lines.Text);
Label1.Caption :=w;
end;
0281278NGNG
>>280
ほんとうにありがと!!
感謝です!!
はい、少し前にVBかじってましたが
Delphiのうわさを聞きつけて
Delphiに移ってきました。
0282ANGNG
>>278
エラーのとおりで、Lengthが返すのは、Integer型
Label1.Captionは、String型、互換性は無いので、変換してやる必要がある。
「型変換」で調べるといい
0283デフォルトの名無しさんNGNG
>>279
DELPHIだから無理
0284デフォルトの名無しさんNGNG

========以上、自作自演のサンプルでした。============
0285デフォルトの名無しさんNGNG
>>281
普通はバリアントを使わずに
Formatを使うか
IntToStrのような関数で明示的に変換するんだけどね

Delphi(というよりPascal)では型のチェックが厳しいから
慣れないうちはうっとうしいかもしれないけど
そのうちこれが信頼感に変わってくるよ
0286デフォルトの名無しさんNGNG
>>279
コントロールパネルで画面のプロパティ。
(レジストリのどこに書かれるかは知らん。)
0287デフォルトの名無しさんNGNG
レジストリのどこに書かれるかは変更前と後のレジストリ書き出し
を行ってDiffを取ってみればよい。
0288ななしへたぐらま ◆XcB18Bks.Y NGNG
>>285
せっかくだから具体例もあげておきます.

procedure TForm1.Memo1Change(Sender: TObject);
begin
Label1.Caption := IntToStr(Length(Memo1.Lines.Text));
end;

0289ヴァリアントNGNG
VB厨を軽くアシラッタノネ
0290デフォルトの名無しさんNGNG
で、デルファイでは画面解像度を変更することは出来ないんですね?
0291デフォルトの名無しさんNGNG
>>290
俺には出来るけど君には出来ないよ。
0292デフォルトの名無しさんNGNG
最近おかしな煽りをする奴がいるねぇ。
よっぽどdelphiが嫌なんだな。
0293デフォルトの名無しさんNGNG
>>290
おっしゃる通りDelphiでは解像度は変えられません。
Delphiを(貴方以外の人間が)使って作ったプログラムからは変えられます。

…という返答でいいの?
0294デフォルトの名無しさんNGNG
だめ
0295デフォルトの名無しさんNGNG
OpenDialogでファイルを選択した後に
何も選択していない初期状態に戻すには
どうすればいいか教えて頂けないでしょうか?
0296デフォルトの名無しさんNGNG
292は290にいったのよ。
0297 NGNG
いくら「やさしい」でもさー、検索の1回くらいするのがマナーだと思うなぁ。
0298デフォルトの名無しさんNGNG
>>297
モナーからフサギコになったんですよ?
0299デフォルトの名無しさんNGNG
>>295
Executeする前にFileNameをクリア
0300デフォルトの名無しさんNGNG
DELPHIマンセー^^
0301デフォルトの名無しさんNGNG

.        /~ヽ   /~~ヽ
.        |  |i _∧ゝ ノ
..       ノ ノ:´Д`) /   アアアアアアアアアアアアアアア〜〜スレッドがどうしても理解できない!
.      ( ノ     ソ           
..       ヽ      ヽ
.        \      \
.          \      \
      _   /   つ  .\ _
    /ミ (⌒Y.   / ̄.\  .\ ミヽ
        ̄\ ,_ _,/     \,_ _,ノ
0302デフォルトの名無しさんNGNG
321とカウントダウンするプログラムで、Sleep(1000);をはさんだのですが、
順に表示されず、1しか表示されませんでした。
タイマーを使わないで簡単に出来ないものでしょうか?
0303デフォルトの名無しさんNGNG
>>302
最適化されちゃってるんでしょ
RefreshをはさむとOkだよ
0304ANGNG
>>302
その書き込みだと、状況が良くわからないので、たぶんだけど、
間に、update を入れるといいんじゃないかと。
0305デフォルトの名無しさんNGNG
( ´,_ゝ`)プッ どっちだよ
0306302NGNG
>>303-304
どうもありがとうございます!
RefreshでもUpdateでも希望する効果が得られました。
0307デフォルトの名無しさんNGNG
>>305
( ´,_ゝ`)プッ
0308デフォルトの名無しさんNGNG
var i:integer;
i_left:array[0..135] of integer;

begin
i_left[i] := [i Mod 8] * 48 + 40;
と書いたら、「この型には指定した演算子は使えません」
といふエラーがでました。どういう意味でせうか。
0309デフォルトの名無しさんNGNG
演算子とは+や*のことである
0310308NGNG
わかりました。
[i Mod 8]は(i Mod 8) でした。すまそ。
0311初歩的ですみませんNGNG
アプリケーション起動時にiniファイルを読みたいのですが、
アプリケーション起動時の procedure はどういったイベントですか?
0312デフォルトの名無しさんNGNG
>>311
メインフォーム(デフォルトではForm1)の
OnCreateイベントハンドラか
OnShowイベントハンドラで読み込むのがひとつのパターン
0313311NGNG
procedure TForm1.OnShow(Sender: TObject);
でよろしいでしょうか?
0314311NGNG
>>312
あ、OnCreateでできました<(__)>
ありがとうございました<(__)>
0315デフォルトの名無しさんNGNG
>>313
自分は大抵
procedure TForm1.FormCreate(Sender: TObject);
を使っています
(ReadIniFileといった手続きを作っておいて
 この中で呼び出すことが多いです
 書き込むときはFormDestroyでWriteIniFileを呼び出します)
0316デフォルトの名無しさんNGNG
コンパイル時に
uses節のProCtrlsという記述部分でエラーがおきてしまいます。
これの原因っていうのはいったいなんなんでしょうか。
0317デフォルトの名無しさんNGNG
var
i:integer;
begin
i := Int(Random * 68);
end;

この文で「integerとExtendedは互換性がありません。」という
エラーがでましたが、どうすれば代入できますか?
0318デフォルトの名無しさんNGNG
Form2.LabeledEdit1 := IniFile.ReadString('Settings','SMTP', Form2.LabeledEdit1.Text);
としてiniファイルを読もうとすると
TLabeledEditとStringは互換性がないと怒られてしまいます。
WriteStringではOKだったのにどうしてでしょうか?
あと、どうすれば読み込めるでしょうか?
どうか教えて下さい。
0319デフォルトの名無しさんNGNG
>>317
どんな値を期待してるのかいまいちわからんが。
i:=Random(68)

>>318
.Textが抜けてる
0320デフォルトの名無しさんNGNG
初心者質問スレなんて必要ないとおもふ。
0321デフォルトの名無しさんNGNG
320なんて必要ないとおもふ。
0322デフォルトの名無しさんNGNG
>>317
今後のために
Intは小数部を切り捨てた実数型を返す
整数型が欲しかったらTruncを使う
(Ceil、Floorも合わせて見ておくとよい)
0323318NGNG
ΣΣ(゚д゚lll)ガガーン
すみません.Textが抜けてました逝ってきます。
あ、でも例外エラーが出ました…
何か書かないと
Form2にあるLabeledEditは読み込めないのでしょうか?
無知でほんとうにすみません。
ググってみたのですが分かりませんでした…
0324デフォルトの名無しさんNGNG
>>319
気づきませんでした。ありがとうございました。
それと遅れましたが>>119さんのレスも参考になりました。
ありがとうございました。
0325デフォルトの名無しさんNGNG
>>318
困ったときは問題を切り分けてゆく癖をつけること
 tempStr := IniFile.ReadString('Settings','SMTP', Form2.LabeledEdit1.Text);
 Form2.LabeledEdit1 := tempStr;
みたいにしてひたすらトレース。
そのままだとバグの原因が式のどっちが側の辺にあるのか分からないでしょ?

それと、エラーが出たなら文面も書くこと
色々突っ込みたいトコが沢山ありすぎて323だけでは返答出来ません
0326324NGNG
>>322
さすがプロ。ありがとうございます。
0327ANGNG
>>316
なんていうエラーなのか書かないと、誰にもわからないと思う。
0328ANGNG
>>324
>>119のだと、親となるコンポにボタン以外が混ざってると、
エラーは出ないけど、数字がずれるから注意。
0329318NGNG
>>325
procedure TForm1.FormCreate(Sender: TObject);
Var
IniFile : TIniFile;
TempStr: string;
begin
IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
tempStr := IniFile.ReadString('Settings', 'SMTP', Form2.LabeledEdit1.Text); ☆
Form2.LabeledEdit1.Text := tempStr;
IniFile.Free;
end;
と書きました。
すると、☆の行が何かおかしいみたいで警告が出てきて

 プロジェクトTest.exeがEAccessViolation クラスの例外を生成しました。
 'Access Violation at adress 0046893D in module 'Test.exe' Read of
 adress 000002FC'

ということです。この意味が私にはサッパリです…
どうかお助けください<(__)>
0330デフォルトの名無しさんNGNG
>>329
そのIniFileが存在しないのでは?
フルパスが必要ですよ。
0331デフォルトの名無しさんNGNG
なるほど。
多分Form1がメインフォームで、フォームの生成はデフォルトで行ってるよね?

TForm1.FormCreateが実行されたときはまだForm2は生成されていないので、
Form2上のインスタンスForm2.LabeledEdit1.Textにアクセスしようとすると保護違反になります。

簡単な回避法は初期化処理をOnShowの中で行うことなんだけど、生成されていない
(副次的な)フォームからデータを読もうとするアルゴリズムそのものを見直したほうがいいのかも。

以下ツッコミ
・Form1, Form2, LabeledEdit1のようなコンポーネントには分かり易い名前を振ったほうが吉
・自前で生成、破棄するオブジェクト、IniFileはtry...finally節で保護すると吉
0332318NGNG
>>330
Left := IniFile.ReadInteger('Window','Left',Left);
は読み込めましたので、IniFileには問題ないと思います。
0333デフォルトの名無しさんNGNG
>>329
Form1が作られた時にForm2は存在しているの?
0334デフォルトの名無しさんNGNG
>>318さん
普通、IniFileの初期値には本当の固定値を使うものでし
(メインフォームは通常、最初に作成されるフォームなので
 OnCreateで他のフォームを参照したら大抵はアクセス違反になるでし)

Form2のエディットへ値をコピーしたければ
いったんForm1の変数へでも保存しておいて
Form1のプロパティを参照するという形で
Form2の作成時または表示時にコピーするのでし

でもってForm2を閉じる際にForm1のプロパティへ変更した値を保存し
最終的にIniFileで書き込むんでし
0335318NGNG
みなさんありがとう<(__)>
ようやく解決しました。
Form2を開くときにForm2のiniを読み込むことにしました。
with do
try finallyの使い方も習得できました。
ほんとうに勉強になりました☆
ありがとう!!
0336デフォルトの名無しさんNGNG
今日は優しい人が一杯常駐してるね・・・・・
0337デフォルトの名無しさんNGNG
>>318
これからもガソバって。他人のソースを読むようにすると上達も早いよ。
VCLのソース読むのがお勧め。Delphiのコーディングスタイルも身に付くし。
0338デフォルトの名無しさんNGNG
そうでもないよ
0339デフォルトの名無しさんNGNG
じゃあ、今のうちに質問しておくか

画面解像度の変えた方
0340デフォルトの名無しさんNGNG
>>339
EnumDisplaySettingsで使いたい解像度が存在するかを検索して
存在するならChangeDisplaySettingsで変更する。
サンプルは検索すればごろごろ出てくる。
0341デフォルトの名無しさんNGNG
>>339
何か日本語が壊れかけてないかい?
http://www.google.co.jp/search?num=100&hl=ja&ie=Shift_JIS&c2coff=1&q=delphi%81@%89%E6%96%CA%89%F0%91%9C%93x&btnG=Google+%8C%9F%8D%F5&lr=lang_ja

0342デフォルトの名無しさんNGNG
>>339
つーか氏ねよバーカ。うんこうんこチンカス。マンコに首突っ込んで窒息しろ。
0343デフォルトの名無しさんNGNG
急に悪人が出てきましたね
0344デフォルトの名無しさんNGNG
あれだ。類は友を呼ぶって奴。
0345デフォルトの名無しさんNGNG
>>339
VCL以外のことならここへ逝った方が詳しかろう
↓
Win32API質問箱
http://pc2.2ch.net/test/read.cgi/tech/1047819779/l50
0346デフォルトの名無しさんNGNG
>>343
お前Gunner
0347バブルソートって遅いんですか?NGNG
バブルソートって遅いんですか?
0348デフォルトの名無しさんNGNG
>347
超早いよ
0349バブルソートって超早いんですか?NGNG
バブルソートって超早いんですか?
0350デフォルトの名無しさんNGNG
>>349
超遅いよ
0351バブルソートって超遅いんですか?NGNG
バブルソートって超遅いんですか?
0352デフォルトの名無しさんNGNG
おまいよりは早いよ。
0353デフォルトの名無しさんNGNG
>>351
まあまあ速い
0354デフォルトの名無しさんNGNG
>>352
滅茶苦茶早いじゃん!!
0355デフォルトの名無しさんNGNG
>>353
なにとくらべてんだ?超遅いだろ。
0356バブルソートって超遅いんですか?NGNG
おせえええええええええええええええええええ
1000まで行ったスレのIDを並べ替えるのに10分以上かかったぞ!!!!!!!!!!
0357デフォルトの名無しさんNGNG
Edit1.TextにEdit2.Textを付け足したいのですが、
Edit1.Text := Edit1.Text.Add(Edit2.Text);
とするとレコード、オブジェクト、クラスのいづれかが必要ですと
言われてしまいます。
どのように変更すればいいか教えて下さい。
0358デフォルトの名無しさんNGNG
>>356
じゃあごちゃごちゃ言わんとヒープソートかクイックソート使えや。
0359デフォルトの名無しさんNGNG
>>357
Edit1.Text := Edit1.Text.Add(Edit2.Text);

って言うかstring型はクラスではないけれど。
0360バブルソートって超遅いんですか?NGNG
>>357
Edit1.Text:=Edit1.Text+Edit2.Text;
でいいじゃんか(藁
0361357NGNG
>>360
解決です(笑)
すみませんありがとうございました
0362デフォルトの名無しさんNGNG
現在簡易言語で動いてる
顧客管理+販売管理システムを作りなおすことになりました
とりあえず、PC2−3台で運用するものです。
MSアクセスで開発するのを10とすると、
DELPHIだと、どのくらいですか?
DELPHIはまったくの素人ですが
JAVAとアクセスはかじったことがあります。
アクセスもVBAとか、複雑なことをすると
こみいってそうなんで
どうせ苦労するなら、DELPHIに魅力を感じてます。
0363デフォルトの名無しさんNGNG
>>362
DBは何を使う?
0364デフォルトの名無しさんNGNG
キャプションバーがクリックされたらイベントが起きるようにするには
どうすればいいんでしょうか。。。
0365デフォルトの名無しさんNGNG
>>364
http://www.google.co.jp/search?q=cache:2iZaohTRWFQC:black.sakura.ne.jp/~third/win42.html+%E9%9D%9E%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88&hl=ja&lr=lang_ja&ie=UTF-8
0366デフォルトの名無しさんNGNG
>>363
DBはまだ決めてませんが
MSDEか、DB2か、安くて安定してるのがいいです(^^;
0367デフォルトの名無しさんNGNG
>>366
そら、不安定なDBほど無意味なモノはない。
0368バブルソートって超遅いんですか?NGNG
>>364
キャプションバーをクリックして、オブジェクト インスペクタ
のイベント欄の「OnClick」をダブルクリックすれば手続きが作成される
0369デフォルトの名無しさんNGNG
>>363
VBでやるよりはいいんじゃないかと思うが
よほどタコな設計しない限り、パフォーマンスも上だしな
0370369NGNG
誤:>>363
正:>>362

スマソ
0371デフォルトの名無しさんNGNG
>>368
お前は非クライアント領域とクイックソートの勉強しる。
0372237NGNG
>>257
激遅レスになっちまいました
そういうのを仮想リストビューつうんですな
詳細なレスどうもです
これから実装を試みます

>>270
ふさふさスレは見落としてました
Delphiスレ多すぎですなここ…

なにはともあれサンクスコ
0373バブルソートって超遅いんですか?NGNG
>>371
なんだよ非クライアント領域って・・・・・( ´,_ゝ`)プッ
0374デフォルトの名無しさんNGNG
>>373
知らないのに笑うな。
0375バブルソートって超遅いんですか?NGNG
( ^▽^)まあ俺はセンスあるからそんなの知らなくたってお前らよりいいソフト作れる罠☆キャハハハハハ
0376デフォルトの名無しさんNGNG
>>375
成る程。文章に不気味なセンスが漂ってる。
0377デフォルトの名無しさんNGNG
>>375
じゃあ、それを知らずにタイトルバーのないアプリケーションを書いてください。
ちゃんとドラッグアンドドロップしたらウインドウ移動できる奴。
0378非375NGNG
>>377
いや、ドロップはいらんだろ。取り敢えず、一番下のコード嫁。
http://bdn.borland.com/article/0,1410,29579,00.html
0379デフォルトの名無しさんNGNG
今TDrawGridから派生したコンポーネントを作成しているのですが、
DoMouseWheelDownメゾットをオーバーライドするとき、TDrawGridのではなく
TCustomControlのそれを直接継承するにはどうしたらよいのでしょうか?
0380バブルソートって超遅いんですか?NGNG
>>377
え?俺の作ったソフトが欲しいって?うん?
0381デフォルトの名無しさんNGNG
春休みももうすぐ終りですなあ。まあ、引き篭もりは年中休みだが。
0382デフォルトの名無しさんNGNG
教えを請わせてください。

時間がかかりそうな処理をする時に、プログレスバーを持ったフォームを出し、
進行状況を表示しながら処理を進めたいのです。

Form1で処理をしながら、Form2でProgressBarを更新するとして、

Form1.Enabled := False;
Form2.Show;
//処理
Form2.Hide;
Form1.Enabled := True;

というようにしてみたのですが、処理終了後Form1が背面に潜ってしまいます。

どうしたらいいでしょうか?
よろしくお願いします。
0383デフォルトの名無しさんNGNG
a
0384バブルソートって超遅いんですか?NGNG
>>383
ワロタw
0385釣り?NGNG
>>382
その前に、その仕様で目的の動作は望めないと思うのだが、どうか?
0386藪に恐れ入りますNGNG
procedure TForm5.Button1Click(Sender: TObject);
begin
with Form4.ListView1.Items.Add do
Caption := LabeledEdit1.Text;
SubItems.Text := LabeledEdit2.Text;
Form5.Close;
end;
というふうにしますと、SuiItemsは未定義の識別子だと
怒られてしまいます。
Form5にあるボタンを押してLabeledEdit1.TextとLabeledEdit2.Textの文字を
Form4にあるListViewの同じ行のところに2つ書きたいのですが
どう書けばいいですか?
0387 NGNG
>>386
まず、スコープは?

ListView1.Items.Add.Caption:=LabeledEdit1.Text;
ListView1.Items[i].SubItems.Add(LabeledEdit2.Text);
ってとこかな?
0388デフォルトの名無しさんNGNG
>>382
処理後にForm1.Show;やってみれば?
0389デフォルトの名無しさんNGNG
あと、Form2.ShowModal;ってやれば、Form2が閉じるまでForm1を操作できなくなるらしいよ
0390デフォルトの名無しさんNGNG
DelphiでDirectXを使ってビットマップを表示する方法を教えてください。

たとえば、デスクトップにtest.bmpというファイルがあったときに
全画面に表示するコードはどう書けばいいですか?
またコンパイルするときのDelphiの設定とかも教えてください。
0391デフォルトの名無しさんNGNG
コンポーネントのインストールの仕方が分かりません
0392あぼーんNGNG
             ∩
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (  ´Д`)//  < 先生!こんなのを発見シマスタ!
      /       /    |
     / /|    /      \  http://saitama.gasuki.com/shinagawa/
  __| | .|    |         \
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\     \_____________
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0393デフォルトの名無しさんNGNG
Memoで、指定した行の文字を選択した状態にするにはどうしたらいいんですか?
0394デフォルトの名無しさんNGNG
自己解決しました。すみません。
0395ANGNG
>>390
DelphiXを使う方法でいいなら。
DelphiXをインストールする。(Delphi6以降は細工が必要)

uses に DXClass を加える。
メインフォームの継承元を、TDXForm にする。
フォームのクライアント領域を使いたい解像度にセット。
TDXDrawをフォームに載せて、AlignをalCliantにする。
DXDraw1のdoFullScreenプロパティを、Trueにする。
TDXImageListをフォームに張る。
DXImageList1のDXDrawプロパティに、DXDraw1を指定。
test.bmpを、DXImageList1に読み込む。

てきとうなメソッドに以下のコードを書いて呼び出す。

if not DXDraw1.CanDraw then Exit;
DXImageList1.Item[0].Draw(DXDraw.Surface,0,0,0);
DXDraw1.Flip;

これだけで大丈夫なはず。
試してないけど。
0396382NGNG
>>385

??
Form1が潜ってしまう以外は問題ないんですが。

>>388

おお。出来たみたいです。
こんな感じで期待通り動きました。

Form1.Enabled := False;
Form2.Show;
Form2.ProgressBar1.Position := 0;
//処理
Enabled := True;
Form1.Show;
Form2.Hide;

Form1.BringToFrontでもいいみたいですね。


>>389

Form2.ShowModalだと、Form2を閉じるまでForm1の処理が止まってしまうみたいでした。


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

0397デフォルトの名無しさんNGNG
>67の例に1行足して

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if(Key = #13)then
key := #0;
Edit1.Text := 'Pressed Enter';
end;

ってすると、Backspace2回押してもPressed Enterと表示されます。
thenの後をbeginとend;でくくると正常に動作します。
なぜでしょう?細かくbeginとendをつかったほうがいいのでしょうか?
0398デフォルトの名無しさんNGNG
>>397
Keyが#13(Enter)のとき、
key := #0;(音を消す)とEdit1.Text := 'Pressed Enter';をしたいわけだから
beginとendを使わなければなりません。
0399デフォルトの名無しさんNGNG
>>397
if文をヘルプで読め。条件式がtrueならthenの後の文一つ、あるいはbegin..endで括った構造化文が実行される。
それと#13じゃわかりにくいからiif Key=Chr(VK_RETURN) thenとする。
0400デフォルトの名無しさんNGNG
メインメニューの中の一部のサブメニューだけをポップアップさせたい場合どうすればいいですか?
0401386NGNG
var
i : TListItem;
としたいのですが、ListViewは違うフォームにあります
(この動作はForm2上でやりたいのですが、ListViewはForm1にあります)
TListItemが未定義の識別子だと言われてしまいます。
どうすればよろしいでしょうか?
0402デフォルトの名無しさんNGNG
>>400
そっくりなメニューを作るか
不要なメニュー項目を非表示にしてポップアップ
0403デフォルトの名無しさんNGNG
>>402
ありがとうございます。
0404デフォルトの名無しさんNGNG
>>398,399
説明ありがとうございます。
文法をしっかり覚えないとだめですね。

今1000行程のプログラム書いているんですが、書き足すうちに
いろいろ予期しない動きをするようになってきました。
恐らく、今回のようなことの積み重ねだと思いますが・・・。

Edit1.Text:='Press Enter';が実行されなければ、ミスを特定しやすいですね。
あと、Backspaceでも実行されるのは何故なんでしょう?
0405デフォルトの名無しさんNGNG
>>404
基礎の基礎からやり直せ。以上。
0406デフォルトの名無しさんNGNG
>>401
usesにComCtrlsを追加。
0407401NGNG
var
i : TListItem;
begin
i := Form1.ListView1.Items.Add();
i.Caption := LabeledEdit1.Text;
Form1.ListView1.Items.Item[i.Index].SubItems.Add(LabeledEdit2.Text);
でできました。
けど、何かもっと綺麗に書けそうです…
何かアドバイスくれませんか?
0408デフォルトの名無しさんNGNG
>>407
with Form1.ListView1.Items.Add do
begin
Caption:=LabeledEdit1.Text;
SubItems.Add(LabeledEdit2.Text);
end;
0409407NGNG
>>408
ありが�d
0410ANGNG
>>404
順を追って考える。

Edit1でキーが押されると、それが何であれ、OnPressイベントが呼ばれる。

if(Key = #13)then
 key := #0;
Edit1.Text := 'Pressed Enter';

こう書いた場合。意味はこうなる。

1.もしキーコードが#13(エンター)なら、キーコードを#0にする。
2.Edis1のTextを、Pressed Enter にする。

2は、if文の外にあるから、どんなキーが来てもかまわず実行される。
0411デフォルトの名無しさんNGNG
あるファイル(バイナリファイル)の内容を丸ごとString型の変数に放り込みたいのですが、
どんな方法が良いのでしょうか?
0412デフォルトの名無しさんNGNG
>>411
メモリマップドファイルにしてファイルサイズ分strncopyとか。
0413デフォルトの名無しさんNGNG
>>411
var
  FS: TFileStream;
  Buf: String;
begin
  FS:=TFileStream.Create(Application.ExeName, fmOpenRead or fmShareDenyNone);
  try
    SetLength(Buf, FS.Size);
    FS.Read(Buf[1], FS.Size);
  finally
    FS.Free;
  end;
end;
0414デフォルトの名無しさんNGNG
あの〜スミマセン!!
MassageBoxの出し方教えて下さい。
ガッコウの兄貴に指示されました。
コニチワ、マッサージボックスで出せなさいと。
どうすればいい?
0415デフォルトの名無しさんNGNG
begin
ShowMessage('釣りですか?')
end;
0416bloomNGNG
http://www.agemasukudasai.com/bloom/
0417デフォルトの名無しさんNGNG
>>414
MassageBoxってなんですか?(ワラ
0418デフォルトの名無しさんNGNG
>>417
Fuck ME!!

>>415
Thanx!!
0419デフォルトの名無しさんNGNG
アドレス帳作りに悪戦苦闘しております。
iniファイルに
[Address]
Address1=名前,ふりがな,アドレス
Address2=名前,ふりがな,アドレス
…
…
というふうにAddress(数字)と追加するにつれて
(数字)を増やしていきたいのですが、
begin
with TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')) do
try
WriteString('Address', 'Address' + ??? , Edit1.Text + ',' + Edit2.Text + ',' Edit3.Text);
finally
Free;
end;
end;
としても???に何を書けばいいか分かりません…
どうか力を貸してください<(__)>
もっと綺麗な書き方があれば教えてください
0420いつでもどこでも太郎さんNGNG
すみません。初心者です。
Delphiで、一定時間ごとに、画面をキャプチャするなんていうアプリを作れるのでしょうか?
0421デフォルトの名無しさんNGNG
>>419
with TMemIniFile.Create(省略) do
begin
I:=0;
while I<アドレスの数 do
begin
WriteString('Address', 'Address'+IntToStr(I), I番目のアドレス);
Inc(I);
end;
Update;
end;
0422デフォルトの名無しさんNGNG
>>421
Free忘れた
0423デフォルトの名無しさんNGNG
リストビューのアイコンについて質問です。
var idicon:TIcon;
begin
idicon:=TIcon.Create;
try
idicon.LoadFromFile(Edit1.Text);
ImageList1.AddIcon(idicon);
finally
idicon.Free;
end;
end;
これでアイコンを変更したところ32bitのアイコンのα値が
無視されて描画されてしまうのですが・・・。
だれか良い方法教えてください。
0424デフォルトの名無しさんNGNG
>>419
まずは住所リストをメモリに保持することを考えましょう。
TListを内部に持つクラスを作るかTListを継承するのがお勧めです。
その次にUIをどうするか考えましょう。
Edit1, Edit2...なんてのを置いただけじゃ不特定多数の住所を編集することは出来ないから却下して、
例えばTListBoxに名前一覧を表示して、それをクリックしたときに、それに対応する
住所データを先に作ったリストから読み出して、TEdit等に表示するとかね。
ここまでいけば保存は421のようなコードで簡単に出来るはず。
0425デフォルトの名無しさんNGNG
シェルファイル関係のOle2とかもう少し整理してくれると
ありがたい。
0426419NGNG
>>421
MemIniFileを使わなければなりませんか?
IniFileを使いたいのですが…
>>424
新規アドレスをEditに書いてListViewに移すという形にしています。
それで新規アドレスをListViewに移すときに
その新規アドレスをiniファイルに追加していきたいです。
やはりMemIniFileでなければなりませんか?
まだ初心者で、MemIniFileはややこしそうなので
IniFileだけ手をつけています。


0427デフォルトの名無しさんNGNG
>>426
あきらめた方が良いんじゃない。
0428419NGNG
>>427
やはりそうですか…
根本的に見直すことにします。
難しいですね。
0429419NGNG
やはりMemIniFileを勉強して見てから考えます。
このスレの人はほんと親切で
2chじゃないみたいです。
ほんとうにありがとう
0430 NGNG
聞くときは敬語で礼は「ありが�d」ってのはどーなの?
0431デフォルトの名無しさんNGNG
>>430
同意。死んだ方が良いな。
0432デフォルトの名無しさんNGNG
俺も死んだ方が良いと思うよ。
0433デフォルトの名無しさんNGNG
>>429
よって死ね
0434デフォルトの名無しさんNGNG
もまぁ等、正しくって美しくって穏やかな日本語キボンヌだ(゚Д゚)ゴルァ(゚Д゚)モ゙ルァ(゚Д゚)フォルァ

初心者たん達が安心して質問できる環境にしましょう。
0435ANGNG
>>420
作れるはず。
画面をキャプチャするほうほうがわかってるなら、
あとは、タイマーで呼び出すだけ。
0436デフォルトの名無しさんNGNG
>>435
しゃべんな。素人よ。
0437デフォルトの名無しさんNGNG
>>435
それ、マルチ。

>>436
煽る暇があったら回答しとけ。

マジレスするとGetDCして画面のデバイスコンテキスト貰って、Bitmapに保存。
つぅかこのぐらいググレ。
0438デフォルトの名無しさんNGNG
この時期、新人君が増えるは普通なんだが、
低脳な煽りも同時に増えるのは何故だろう?
0439409NGNG
>>430〜433
ほんとすみません<(__)>
�dを使ってみたくて使ってしまいました。
ごめんなさい。
0440デフォルトの名無しさんNGNG
最近
ふさぎ子
見ないな
0441デフォルトの名無しさんNGNG
春には、まっとうなユニットを提供してほしいものだ。
シェルユニットを整理して下さい。そうすれば、
まだパスカルが使えるのに
0442デフォルトの名無しさんNGNG
>>473
ありが�d」
0443デフォルトの名無しさん NGNG
コンパイル時のエラーで質問なのですが
致命的なエラー 〜.pas  〜.dcu’が作成できません
となってしまいコンパイルができません
dcuファイルについてぐぐっても見たのですが
dcuが見つからないというエラーでしかなく
作成できないという部分に触れてるページが見つかりませんでした
どなたかご教授お願いします
コンパイル環境は
Delphi6.0です
0444デフォルトの名無しさんNGNG
>>443
再起動してもだめなら、多分パス設定が狂ってる。
別な場所に保存し直すとか、プロジェクトオプションの出力パスを弄ってみるとか。
0445デフォルトの名無しさんNGNG
問題のdcuは、自分のプロジェクトのファイル?それともdelphi付属のファイル?
今まではコンパイルできてたの?
何かコンポーネントを新しく追加した?

とりあえずエラーメッセージを書き写してちょ。
0446デフォルトの名無しさんNGNG
レスTHXです
>>444様
別のところに移してもエラーはでました_| ̄|○
出力パスの方は弄り方がすこし分からなかったので手を出せない状況です
>>445様
エラーメッセージは
[致命的エラー]Common.pas(2560): ファイル'..\obj\Common.dcu'を作成できません
というものです
他のモノではコンパイル可能でした

0447デフォルトの名無しさんNGNG
>>446
>ファイル'..\obj\Common.dcu'を作成できません

そのobjというディレクトリが実在していないと見た。
0448デフォルトの名無しさんNGNG
>>447様
一応objディレクトリは存在しています
一体何が原因なんだろう・・・_| ̄|○
0449デフォルトの名無しさんNGNG
           __________________________
   ∧,,∧    / よしよし
  ミ,,゚Д゚彡 <  いいこだ
   U  つ∀ \  今教えてあげるよ
 〜ミ  ミ ┴    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪
0450デフォルトの名無しさんNGNG
うーん、それはdelphiの付属物じゃなくて自分のプロジェクトのファイルだよね。
いつからコンパイルできなくなったの?
0451デフォルトの名無しさんNGNG
447様のレスを参考に色々考えてみたらできました
どうやらファイルを置く位置とobjディレクトリの場所が悪かったようです
レスくれた方ありがとうございました
0452デフォルトの名無しさんNGNG
それはよかった。これからも頑張ってねん
0453ねこまNGNG
こないだ久しぶりに Iria を起動したら,URL を登録すると直後にエラーで落ちるようになってて
見てみたら IRIAF.INI が 64KB を越えそうになっていた.
TIniFile でのエラーをキャッチしていないからそのまま死ぬみたい
こんなソフト結構多そう (w
0454デフォルトの名無しさんNGNG
>>454
Win9x? NT?
0455デフォルトの名無しさんNGNG
↑自分のOSくらい覚えとけよな
0456デフォルトの名無しさんNGNG
Common.dcuは削除できますか?
0457Del6Per,WinXPProNGNG
よくソフトのバージョン情報のところに自分のサイトのハイパーリンクが張ってあるものを見かけるんですが、どうやって記述してるのでしょうか?
0458デフォルトの名無しさんNGNG
単にアンダーライン付きで文字描いて、クリックされたらURLをShellExecuteするだけじゃ?
0459デフォルトの名無しさんNGNG
BoolToIntが無いのは何故?
0460デフォルトの名無しさんNGNG
>>459
Trueを表す数字
Falseを表す数字

なんてもんが存在しないからだと思います。
0461デフォルトの名無しさんNGNG
では、次回作ではTrueなら0、Falseなら1とするように進化して欲しいですね
0462デフォルトの名無しさんNGNG
>>461
意味の無い進化ですね。
0463デフォルトの名無しさんNGNG
すみませんでした
0464デフォルトの名無しさんNGNG
>>461
trueなら1falseなら0だろ?
function BoolToInt(Bool: Boolean): Integer;
begin
Result:=Integer(Bool);
end;
0465デフォルトの名無しさんNGNG
>>459
Ordで済むから。
number := Ord(bool);
0466デフォルトの名無しさんNGNG
>>1
0467デフォルトの名無しさんNGNG
 ∧_∧
ミ ´∀`彡 < ふさぽ
0468デフォルトの名無しさんNGNG
Delphi 6 Personal使ってるのですが、
OpenDialog ,SaveDialogを呼び出した後は
TIniFileでINIファイルが作成できません。。
呼び出さなければINIファイルは作成できるのですが、、
バグ(?)解決方法教えてください。

0469ANGNG
>>468
試してないから想像だけど、カレントが変わっちゃってるからじゃない?
0470デフォルトの名無しさんNGNG
というわけでofNoChangeDirをTrueに。
0471デフォルトの名無しさんNGNG
>>468
バグじゃない。
君の書いたコードのどこかにバカなことが存在する。
素人ってのは玄人の想像もつかないバカなことをやる物だ。
よって玄人はこのままでは何が原因か特定できない。
しかし、君が書いたコードをそのまま公開すれば、玄人は数秒で答えを出せる。
まわりくどくならないようにスマートにやりたまえよ。
0472デフォルトの名無しさんNGNG
>>410
遅くなりましたが、ありがとうございます。
0473素人ですNGNG
iniファイルの
[Add]
Name0=0
Kana0=0
Add0=0
Name1=1
Kana1=1
Add1=1
…
NameX=X (Xは任意の数)
KanaX=X
AddX=X
というような値を読みたいのですが
var
I : Integer;
begin
with TMemIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')) do
begin
I := 0;
while I < ☆ do
begin
ListView1.Items.Item[I].Caption := ReadString('Add', 'Name'+ IntToStr(I), ListView1.Items.Item[I].Caption);
ListView1.Items.Item[I].SubItems[0] := ReadString('Add', 'Kana'+ IntToStr(I), ListView1.Items.Item[I].SubItems[0]);
ListView1.Items.Item[I].SubItems[1] := ReadString('Add', 'Add'+ IntToStr(I), ListView1.Items.Item[I].SubItems[1]);
Inc(I);
end;
Free;
end;
end;
としたとき、☆に何と書けばいいか教えて下さい。
0474デフォルトの名無しさんNGNG
while ValueExists('Add', 'Name' + IntToStr(I)) do
で良いんじゃない?
Xかどこまであるかわからないってことでしょ?

まー連続で存在するってことと
NameXがあればKanaXとAddXがあるってことが前提だけど。
0475デフォルトの名無しさんNGNG
つーか、try..finallyさねばまねし。
0476ななしへたぐらま ◆XcB18Bks.Y NGNG
>>426

そのリストビューの名前が ListView1 だとすると….

var
 i: integer;
begin
 with TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')) do
 try
  for i := 0 to ListView1.Items.Count - 1 do
   WriteString('Address', 'Address' + IntToStr(i), Edit1.Text + ',' + Edit2.Text + ',' Edit3.Text); // ☆
 finally
  Free;
 end;
end;

もしかして変数宣言もfor文もお使いになったことがありませんか?
どちらもプログラミングでは一番基本的かつ重要な部分なので
(英語ならアルファベット,算数なら引き算の繰り下がりくらい重要)
プログラミング初心者向けの入門書をお読みになって
ここをしっかり身につけてください.

なんとなくDelphiにさわっているだけでは決して身につきません.

※私のような旧世代人類は
 PRINT "HELLO"の次はもう変数でしたから
 今の若い子たちの悩みには気づきにくいのかもしれません.

※ちなみにTIniFileとTMemIniFileの使い方は全く同じで
 TIniFileが内部でWindowsのAPIを使って読み書きしている事が違うだけ.
0477デフォルトの名無しさんNGNG
>>476
TMemIniFileはwrite後にUpdateメソッドがなにかを呼ばないと書き込まれない(はず)
0478デフォルトの名無しさんNGNG
Form1がメニュー画面で、内容を選択するとForm1が Hide し、Form2(メイン画面)と
その上に乗ってるコンポーネントを動的に生成するようにしています。

今までは、Form2を閉じるとアプリケーションも終了するようになっていたのですが、
Form1に戻る必要ができたため、Form2に「戻る」ボタンを配置し、Form2.Release → Form1.show するように
しました。(これで、戻るを押したら、Form2とその仲間達が消滅するはず?)

ところが、Form1に戻ってから、もう一度メニュー選択でForm2を生成しようとしたところ、
EAbstractErrorが発生してしまいました。
地点は、ちょうどForm2上のImageを生成しようとした瞬間でした。

これって何を意味するのでしょうか・・・。
0479デフォルトの名無しさんNGNG
才能の無さを意味する
0480デフォルトの名無しさんNGNG
enterキーが押下されたときのイベントのロジックがどうも起動されないので

Label1.Caption:='KeyPress : #'+ IntToStr(Integer(Key));

でキーを表示してみたんですがどうもenterキーを認識していないようです。
単にラベル貼っただけのテストプログラムを作成してみたところ
enterキーは認識したので、何かとの組み合わせによりenterキーが無効になった
ようです。
わけがわからんので教えてください。
だれか同じようなことなったりしてませんか?

ちなみにDelphi 5 Personal win2k です
0481デフォルトの名無しさんNGNG
その時他のキーは反応するの?
駄目なのはenterだけ?
0482デフォルトの名無しさんNGNG
>>480
複数キーの同時押しだけ反応しないの?
もしそうならキーボードの(ハードウェア上の)制限だったりするかも。
0483473NGNG
>>474
begin
i := 0;
with TMemIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')) do
try
while ValueExists('Address', 'Name'+ IntToStr(i)) do
begin
ListView1.Items.Item[i].Caption := ReadString('Address', 'Name'+ IntToStr(i), ListView1.Items.Item[i].Caption); ※
ListView1.Items.Item[i].SubItems[0] := ReadString('Address', 'Kana'+ IntToStr(i), ListView1.Items.Item[i].SubItems[0]);
ListView1.Items.Item[i].SubItems[1] := ReadString('Address', 'Address'+ IntToStr(i), ListView1.Items.Item[i].SubItems[1]);
Inc(i);
end;
finally
Free;
end;
end;
とすると、
 プロジェクトTest.exeがEAccessViolation クラスの例外を生成しました。
 'Access Violation at adress 0047ECFE in module 'Test.exe' Read of
 adress 00000024'
と警告されて実行できませんでした…
※部分がおかしいみたいです。
たびたびすみません。どうかお助けください。
0484426NGNG
>>476
詳しく教えていただけてほんと勉強になります。
一度for doで書いてみたのですが-1を書いていませんでした。
Countは1つ多く数えている事が知りませんでした。
ほんと勉強になりますありがとうございます<(__)>
0485デフォルトの名無しさんNGNG
TListView(MultiSelect=False,ViewStyle=vs_Report,Columnの数は1)を使っているんですが
リストの中で右左どちらかのキーを押すと項目を一度全て削除して新たに追加後、
特定の項目を選択するようにしたいんですけど

procedure TForm1.ListView1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
C :Integer; // TListView
ListItem : TListItem;
begin
if (Key=VK_Left)or(Key=VK_Right) then begin
ListView1.Clear;
for C:=0 to 10 do begin
ListItem := ListView1.Items.Add;
ListItem.Caption := 'String'+IntToStr(C);
end;
ListView1.ItemIndex := 2;
end;
end;

このようにコードを書いた場合、確かに3番目の項目が選択されているように見えるのですが
何故か上を押しても項目移動しないし下を押すと1番目の項目が選択されてしまいます。
どうすればいいでしょういか。ちなみにDelphi6のパーソナルです。
0486485NGNG
途中に無意味なコメント入ってるけど気にしないでください。
0487478NGNG
プログラムを削りまくったところ、どうやら、Imageを作ってから
img.parent:=self; ってやってるんですが、これを nil にせずに Releaseすると
次にcreateしたときにアクセス違反になるみたいだ・・・。

で、本プログラムでこれを試してみたらダメだった・・・もうだめぽ。
0488デフォルトの名無しさんNGNG
無料の6Perより有料の5Perの方が優れてるの?
0489デフォルトの名無しさんNGNG
>>480
たぶん、DefaultプロパティがTrueになってるボタンがいる。
0490ななしへたぐらま ◆XcB18Bks.Y NGNG
>>477
ふぉろー蟻賀登.

>>485
こちらにはDelphi 6がなく
またDelphi 5のTListViewにはClearメソッドもItemIndexプロパティもないので
再現できないのですが

ListView1.Selected := ListView1.Items[2]; // ☆
ListView1.ItemFocused := ListView1.Items[2]; // ★

こちらの環境(Delphi 5/Win XP)これでうまくいきました.
3番目の項目を☆で選択状態にして★でここにフォーカスを移動します.

実は今回の例では☆のコードが無くても選択状態になるのですが
これは選択状態になっている項目がないときに[←][→]キーを押すと
フォーカスのある項目が選択状態になるということで,
★のコードによって選択状態になったわけではありません.

たとえばVK_LEFT を ord('2') に変えてみて実行し,
テンキーでない方の[2]を押すと
3番目の項目にフォーカスは来ますが選択状態になりません.
この状態から[←]キーか[→]キーを押すと選択状態になります.

それにしてもItemIndexというプロパティ名ならばTListBoxのそれと同様に
代入すると選択状態してかつフォーカスがそこに移動すべきだと思います>某
0491473NGNG
ListView1.Items.Item[i].Caption := ReadString('Address', 'Name'+ IntToStr(i), '');
にしてもまだだめです…
ReadStringの中に変数iを入れてはいけないのですか?
どうぞお願いします教えて下さい<(__)>
0492あぼーんNGNG
( ´Д`)/< 先生!!こんなのを見つけました。
http://muryou.gasuki.com/hankaku/jaz09.html
http://muryou.gasuki.com/hankaku/jaz10.html
http://muryou.gasuki.com/hankaku/jaz07.html
http://muryou.gasuki.com/hankaku/jaz08.html
http://muryou.gasuki.com/hankaku/jaz05.html
http://muryou.gasuki.com/hankaku/jaz06.html
http://muryou.gasuki.com/hankaku/jaz03.html
http://muryou.gasuki.com/hankaku/jaz04.html
http://muryou.gasuki.com/hankaku/jaz01.html
http://muryou.gasuki.com/hankaku/jaz02.html
0493デフォルトの名無しさんNGNG
>>491
Addしてください。

with ListView1.Items.Add do begin
 Caption := ReadString...
 SubItems.Add(ReadString...
 SubItems.Add(ReadString...
end;

こんな感じで。
0494485NGNG
>>490
選択するだけでフォーカスは移動してなかったんですね。
ItemIndexに代入した後にItemFocusedを使う事でうまく行きました。
ありがとうございます。
0495491NGNG
>>493
ついにできました〜感動です!!
ほんとうに感謝です!!
何でAddにしてなかったんだろう…
勉強不足ですね。
ほんとうにありがとうございました<(__)>
0496137 件ヒットしましたNGNG
http://www.lib.city.yokohama.jp/cgi-bin/Swwwssrt.sh?0+24674+137+4+0+1
0497デフォルトの名無しさんNGNG
iniファイルのセクション丸ごと消す
VBでいうDeleteSectionといったものは
Delphiにありますか?
0498497NGNG
EraseSectionを発見しましたすみません。
スレ汚しスマソ
0499始めまして☆NGNG
ListViewのItemをアルファベット順で並べたいのですが
どうすればいいか教えて下さい
0500あぼーんNGNG
   ______________
 /:\.____\
 |: ̄\(∩´∀`) \  <先生!こんなのがありました!
 |:在  |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/aomori/
0501デフォルトの名無しさんNGNG
>>499
TListViewのCustomSortメソッド。
ヘルプのCustomSortメソッドに例がのってる。
0502デフォルトの名無しさんNGNG
別のソフトから操作されないようにすることって出来るんですかね?
0503デフォルトの名無しさんNGNG
其以上具体性解
0504デフォルトの名無しさんNGNG
DELPHIだから無理
0505デフォルトの名無しさんNGNG
>>502
わけわかんねーよカス!!
0506デフォルトの名無しさんNGNG
WM_KEYDOWNみたいなのを受け取ったとして、他のソフトからPostされたものじゃないことを
識別できればいいのだろうけど、俺は知らない。

入力を全部DirectInputで受け取るようにすれば、他のソフトも通常の手段では
手が出せないのではないだろうか、とか考えてみる。
0507デフォルトの名無しさんNGNG
ハンドルが無いプログラムってのはどう
0508デフォルトの名無しさんNGNG
パスワード入力する時、キーを打つリズムで本人かどうか判断するって技術があったな。
あれを応用して作れ。
0509StatulBar好きNGNG
StatusBar.Panel[1]のTextの色を変えたいのですが
Panelのことについてヘルプにのっていませんでした。
begin

end;
という形で書いていただけませんか?
青色に変えるというふうに書いて下さい。
よろしくおねがいします。
0510デフォルトの名無しさんNGNG
>>509
あなたが望んだ形ではないですが、とりあえず回答してみます。

1) Panel の Style プロパティを psOwnerDraw にします
2) StatusBar の OnDrawPanel イベント・ハンドラで
  a) StatusBar.Font.Color プロパティに目的の色を設定
  b) StatusBar.Canvas.TextOut とイベント・ハンドラの引数で渡ってくる Rect を使って、目的の文字列を出力

の流れで目的の処理を達成できると思います。
0511StatulBar好きNGNG
>>510
予想外にややこしいですね…。
ビックリしました。
頑張って朝鮮してみます。
レスありがとうございます
0512まだまだ初心者ですNGNG
過去にもありましたが
OpenDialog1.FileNameを削除するには
どう書けばいいか教えて下さい。
FileNameをクリアすればいいということですが
ClearでもDeleteでも失敗しました。
0513まだまだ初心者ですNGNG
あ、OpenDialogで選択したファイルを削除するのではなく
FileNameを何も選択していない時の状況に
したいです。
0514デフォルトの名無しさんNGNG
OpenDialog1.FileName := '';
OpenDialog1.Execute;
0515まだまだ初心者ですNGNG
>>514
ありがとうございました。
できました。
このスレはいい人が多いですね。
0516デフォルトの名無しさんNGNG
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0517デフォルトの名無しさんNGNG
ファイルの読み込みの処理で

ttp://133.1.184.245/medinfo/takemura/delphi/del2.htm
ここの参考:ファイルを最後まで読み込むを参考にしていたのですが
readln(F,str); //memo1を一行ずつ読み込む
ここの行で[エラー] Unit1.pas(64): 'String' と 'Text' には互換性がありませんと出てコンパイルできません。
このエラーを回避し、ファイルの最後まで読み込むにはどういった書き方をすればいいのでしょうか。
どなたかご教授ください。
0518517NGNG
使っているのはDelphi6 パーソナルです
0519デフォルトの名無しさんNGNG
Delphi6パーソナルをつかっているのですが、質問宜しいでしょうか。

MP3を鳴らすプログラムを作っているのですが、
コンポーネントでActiveXでMediaPlayerを取り込んだのです。
そこで、

procedure TMainForm.MusicPlay(fn : Integer);
begin
MediaPlayer21.Open(Format('sound\\bg%.2d.mp3', [fn]));

end;

という手続きをつくったら無事になることができたのですが、
曲の最後まで進むと、曲が止まってしまいます。
これをループさせたい(曲の最後まで進むと同じ曲の最初に戻り再生しつづける)のですが、
どうやったらよいのでしょうか?
タイマーを使って

どうかお願いいたします。
0520佐々木健介NGNG
     ______
    /_      |
    /. \ ̄ ̄ ̄ ̄|
  /  /  ― ― |
  |  /    -  - |
  ||| (5      > |
 | | |     ┏━┓|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | |     ┃─┃|  < こんなサイトを見つけた
|| | | |  \ ┃  ┃/    \  正直、スマンカッタ
| || | |    ̄         \_________
http://www.saitama.gasuki.com/nonaka/
0521あぼーんNGNG
   ,.´ / Vヽヽ
    ! i iノノリ)) 〉
    i l l.´ヮ`ノリ <先生!こんなのがありました!
    l く/_只ヽ    
  | ̄ ̄ ̄ ̄ ̄|
http://www.saitama.gasuki.com/2ch/
0522デフォルトの名無しさんNGNG
DelphiでI/Oポートを叩くにはどんなコードを書けばいいのでしょうか?
そもそもDelphiでできるんですか?
先輩に言われて困っています。よろしくお願いします。
0523デフォルトの名無しさんNGNG
むり
0524デフォルトの名無しさんNGNG
>>517

変数strやFが正しく宣言してありますか?
また、517さんが書いたプログラムの「AssignFile〜」の行が
どうなっていますか?

エラーメッセージどおりのエラーなら、「AssignFile〜」の行でも
エラーになることが多いんだけど、エラーになってないんですよね?
0525522NGNG
>>523
糞レスしてないで教えろよ。
0526デフォルトの名無しさんNGNG
begin
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←I/Oポート
end;
0527522NGNG
>>526
コンパイルとおりませんでしたよ。
Delphiでって書きましたよね。
0528デフォルトの名無しさんNGNG
>>527
Delphiを7にアップグレードしろ
0529デフォルトの名無しさんNGNG
インラインアセンブラでinpとかoutpとか書く。9x系でのみ有効。
0530522NGNG
>>528
コードって書きましたよね。
ったくネタしか書けない厨房は2ちゃんねるから出て行け。
0531522NGNG
>>529
ありがとう。でもなんでランタイムいらないのに9x系だけなの?
どのOSでも動く奴お願い。Kylixでも使うつもりだから。
0532デフォルトの名無しさんNGNG
Windowsのことを全然理解していないようでは無理なんじゃ・・・
0533522NGNG
>>532
ん? ばか?
Delphiで作ったらEXEだけで動くんだからどのOSでも動くはずでしょ。
さすがに対応してないCPUとかハードウェアが違ったら動かないだろうけど。
0534517NGNG
>>524
>変数strやFが正しく宣言してありますか?
はい、間違いありません。

>また、517さんが書いたプログラムの「AssignFile〜」の行が
>どうなっていますか?
まずはコピペで動かしてみようと思っていましたので
サンプルのassignfile(F,filename);のままです。

>エラーメッセージどおりのエラーなら、「AssignFile〜」の行でも
>エラーになることが多いんだけど、エラーになってないんですよね?
はい、なっていません。
0535529NGNG
>>531
NT系の場合普通のプロセスからはポートにアクセスできない。(サービスとかデバドラからならOKだったかな)
OSがどんな保護をしているかの問題なので、Linuxはご自分で試してください。
0536デフォルトの名無しさんNGNG
>>530
ネタしか書かないのはお前じゃない。それともマジレス・・・?
0537デフォルトの名無しさんNGNG
>>519
最後のタイマーつかってってのはなんなんだ?
そのファイル名からしてMP3ファイルがいくつかあるんだろうが、
曲の長さをととのえないと面倒だろうな。

曲の先頭に戻るだけ、普通のリピートならコンポーネントあたりさがせばあるのかも
しれんが俺は知らん。
きっと538が答えてくれる。
0538デフォルトの名無しさんNGNG
>>531
勘違いしているDel厨多いけど、Delphiでもランタイムいるよ。
EXEをDependency Walkerとかで調べてみ。
どこでそういう誤解が生まれたんだろうね。困ったもんだ。
0539デフォルトの名無しさんNGNG
>>519
MediaPlayerを取り込んだら、そのEXEはMediaPlayerの
バージョンやバグに依存してしまうがそれでも良いのか?
Delphiで作ったEXEと一緒に配布は出来ないぞ。
0540ドキューンズ ◆DQNES/NnnM NGNG
デルファイは初心者です。
メニューの項目にチェックマークが付いているかどうかを取得
するにはどうすればよいですか?
0541デフォルトの名無しさんNGNG
>>538
そらま、user/gdi/kernelに依存せずに作るのは事実上無理だ。
でも、I/Oポートの場合、特権とか保護とかの話でランタイムは関係無いけどなー…
0542522NGNG
>>536
答える気がないならでてこなくっていいからさ。
0543デフォルトの名無しさんNGNG
本物の522はまだか?
0544デフォルトの名無しさんNGNG
Delphiではなく、C++Builderなのですが、VCLに関することなので

TTimerで、Form->Invalidate()を呼ぶと、ちらつくのですが
Form->OnPaint(Sender)とすると、ちらつきが抑えられるのは何故ですか?
0545デフォルトの名無しさんNGNG
>>544
前者だと、WM_ERASEBKGNDが送られて一度背景色で全部塗られるけど、
後者だと既に描かれているものの上に直接上書きするからじゃない?
0546519NGNG
>>539
Delphiビジュアルプログラミラング秘密のテクニック150という本を参考に
やって見たのです。
MediaPlayerに依存しないで、最初からあるTMediaPlayerだけでできればいいんですけど。
CDからの演奏ならできたんですが、MP3だとできなくて。
0547デフォルトの名無しさんNGNG
>>540
TMenuItem.Checked
0548522NGNG
>>543
>>522は俺しかいないけどな。
0549ドキューンズ ◆DQNES/NnnM NGNG
>>547
If TMenuItem.Checked=true then

とかですか?
0550デフォルトの名無しさんNGNG
Delphiのライブラリって所詮APIかActiveXをラップしただけなんだね。
0551デフォルトの名無しさんNGNG
>>549
OK
0552ドキューンズ ◆DQNES/NnnM NGNG
ありがとうございます。
0553基本すぎてごめんなさいNGNG
StingGridというコンポーネントに挑戦中なのですが
セルを編集できないんです…。
MemoとかEditとかならLinesとかTextといった
プロパティーで予め文字を入力しておけますよね?
StringGridはフォームエディタ上でセルを編集したりできないのですか?
とても基本的な事なのだと思いますが
フォームエディタ上でどうすればセルを編集できるかで
1時間も悩んでいます…
どうぞお助けください
0554Delフサギコ ◆A6VzDeLphI NGNG
    ,,,,,,,,,,,,,,,∧,,∧   / できませんので
  〜′,,,,,,,,,,ミ,,゚Д゚彡<   ご安心してください。
   UU"""" U  ⊃  \>>553さん
0555デフォルトの名無しさんNGNG
アクセスカウンタほしいのですが…
0556デフォルトの名無しさんNGNG
はぁ、そうですか。
0557デフォルトの名無しさんNGNG
今日は荒らしが沢山
0558デフォルトの名無しさんNGNG
他のソフト上のボタンの(画面上の)位置を取得するには、どんなAPI(?)を使えば良いのでしょうか?
ヒントだけでもお願いします。
0559デフォルトの名無しさんNGNG
また荒らし出現
0560デフォルトの名無しさんNGNG
すいませんDelphiでDirectX使うにはどうすればいいんですか。
ヒントだけでもお願いします。
0561デフォルトの名無しさんNGNG
DelphiでGIF解凍アルゴリズムを作りたいです。
ライセンスに抵触しますか?
0562デフォルトの名無しさんNGNG
アクセスカウンタおねがいしまする
0563デフォルトの名無しさんNGNG
>>561
研究用に作るだけなら特許には抵触しないはずです。
0564Delフサギコ ◆A6VzDeLphI NGNG
            _____________
   ∧,,∧    />>558さん
   ミ,,゚Д゚彡 <  EnumChildWindowとか・使う?
   ,;゙   ミ     \ボタンがWindowだったらいいけどな
 @ミ,,,UUミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
マ板でマインスイパを解くスレってあったけど
マイスパのボタンはWindowじゃないから
位置を特定するのは画面をBitmapとして
取得してから解析するんでしょうか?
面倒そうです。
0565デフォルトの名無しさんNGNG
Delphiで魚釣り死体です。どうすればいいか
0566デフォルトの名無しさんNGNG
Delphiで彼女作りたいです。タダ版のやつで作れますか? 作った後売れますか?
0567デフォルトの名無しさんNGNG
>>566
ソースを公開してください。
0568デフォルトの名無しさんNGNG
ソースといわれてもいろんなのがあるのでどれか分かりません。
0569517NGNG
私の問題はどうすれば解決するのでしょうか…
0570デフォルトの名無しさんNGNG
いいソースを使えば解決します。ちなみに僕は辛口が好きです。
0571デフォルトの名無しさんNGNG
フォームを閉じるとき、もし後から生成したモノがあれば後始末をしなければいけませんが、
OnClose、OnCloseQuery、OnDestroyはどう使い分けたらいいのでしょうか?

もし、親がDestroyされてから子をFreeしようとするとコケるかなと思いまして・・・。
0572デフォルトの名無しさんNGNG
こけたなら立て直せばいい。
発想の転換だ。
こけないようにするのは難しい。
0573デフォルトの名無しさんNGNG
釣れた!!
0574デフォルトの名無しさんNGNG
萌えっ萌えっ萌えっ萌え〜!
っもーっえーっ!
0575デフォルトの名無しさんNGNG
>>572
了解!悩んでもしょうがないので
OnCreateで作ったモノはOnDestroyで解放しとけば問題なし!として一旦やってみます。
0576デフォルトの名無しさんNGNG
DelphiのクラスをVCで継承するにはどうすれば良いでしょうか?
0577デフォルトの名無しさんNGNG
VCLとVCは同違いますか? LGPLとGPLの違いと同じですか?
0578デフォルトの名無しさんNGNG
今日は釣りが多いので明日までカキコ禁止。
0579デフォルトの名無しさんNGNG
>>578

零時一分。和露タ。
0580デフォルトの名無しさんNGNG
>>517
assignfileを使うファイルアクセスはobsolateになるべき手法で、下位互換性のために存在してます。
基本的にTFileStreamを使ってください。

それと、string型のファイルを読み込むのならストリームを使わずにTStringListのLoadFromFileを
使うと簡便でいいですよ。 (そこ、手抜きなんてイウナ)
0581517NGNG
>>580
ありがとうございます!TStringsを使って自分で書き直してみます。
0582 NGNG
あー、オレなんか何も考えずにTStringlistだな。
0583580NGNG
待ってー。TStringsは直接生成できないクラスです。

もう少し勉強すると出てきますが、TStringsは抽象クラスと呼ばれ、
メソッドの名前だけが定義されたクラスです。
実際にはTStringsから派生した、メソッドが実装されたクラスを使うことになります。

それがTStringListです。
0584517NGNG
>>583
あせってしまってすいません。今からヘルプ見て頑張ってみます。
ありがとうございました。
0585580NGNG
>>584
どういたしまして。がんばってくださいねぇ。私もがんばります。
0586580NGNG
あらま、ドッペルゲンガーさんですか。>>585
私の言いたいことを正確にimplementしてくれてありがとうございました。

>>583
頑張ってくださいね。コーディングはどれだけ手札を持っているかが大きく効いて来ます。
ここで質問すれば自分が考えていた以外の手法を教えてもらえるかもしれません。
困ったら(ググールで検索してから)気軽にまた来てくださいね。
0587デフォルトの名無しさんNGNG
アクセスカウンタとりつけたいのですが…
0588デフォルトの名無しさんNGNG
>>587
http://www.google.com/search?num=50&lr=lang_ja&q=アクセスカウンタ%20設置
0589580NGNG
>>586
偽者消えろ
0590デフォルトの名無しさんNGNG
ttp://isweb41.infoseek.co.jp/computer/ultra-k/emoji.jpg
のように小さいボタンを密集させて押せる
もしくは、小さなセルを選択できるようにしたいのですが
どのコンポーネントをつかっていいのか分かりません。
ListView、ListBox、StringGridを頑張って見たのですが
うまくいきませんでした…。
上にあるような感じにしたいのですが
どのコンポーネントを使えばいいのでしょうか?
どうか教えていただけませんか?
0591デフォルトの名無しさんNGNG
DrawGridが近そうだね。
0592デフォルトの名無しさんNGNG
>>591
DrawGridってなんですか?
0593デフォルトの名無しさんNGNG
>>592
それはヘルプで引いてみてください。F1押してヘルプが立ち上がったら、TDrawGridで検索を。
升目の中に色々なデータやグラフィックを保持・表示するためのコンポーネントです。
実際の使い方はググールで引けば潤沢に見つかると思います。

>>589
もう少しスマートなコーディングでお願いします。
0594592NGNG
>>593
ググールってなんですか?
0595デフォルトの名無しさんNGNG
>>594
www.google.com
0596デフォルトの名無しさんNGNG
>>594
googleのことです。HPはhttp://www.google.com
Larry PageとSergey Brinの二人が1998年9月に創立した検索エンジンサービスです。
高速検索、シンプルなサイトデザイン、キャッシュシステム、そして何より、独自のページランキング
による的確な検索により、検索エンジン業界をたちまちに席巻しました。

便利ですよ。一度行って見てはどうでしょう?
0597592NGNG
>>596
googleの関係者ですか?
宣伝に必死ですね(w
0598デフォルトの名無しさんNGNG
>>592
TDrawGridは使いこなせましたか?
あなたはまだまだスキルが足りなさそうでとても心配です。
分からないことがあったらまた来てくださいね。
0599592NGNG
>>598
> 分からないことがあったらまた来てくださいね。
お言葉に甘えてまた来ました。

TDrawGridの使い方が分かりません。
具体的なコードを教えてくれませんか。

私の悩みがなくなったら、あなたの心配事がなくなると思います。
一緒にがんばりましょう。
0600デフォルトの名無しさんNGNG
>>592
具体的なコードはgoogleで検索すると沢山みつかりますよ。
”http://www.google.com/search?num=50&lr=lang_ja&q=TDrawGrid”
とIEのアドレスバーに書き込んで、Enterを押してみてください。
アドレスバーが表示されていない場合はctrl+oと押すとアドレスを入力する欄が現れます。
0601デフォルトの名無しさんNGNG
>>592
検索の結果、Delphiで理解できないところがあるならまたここへ来てください。
日本語が理解できない場合は小学校からやり直してください。
精神的に切ないのならメンタルヘルス板http://etc.2ch.net/utu/
或いは人生相談板http://life2.2ch.net/jinsei/
に行くと的確なアドバイスが貰えるでしょう。

それともう一つ。
何でもすぐに他人から答えを貰おうという姿勢ではプログラミングも、人生も、決して上達しませんよ。
もっと自分で解決する癖をつけましょう。
0602592NGNG
>>600
> 具体的なコードはgoogleで検索すると沢山みつかりますよ。
沢山見つかりますよといわれてもねぇ。あるのは容易に想像できます。
宇宙人はいますよ。と同じようなことです。問題はどこにあるかです。
残念ながらその程度の少ない情報では私の求める答えは見つかりません。
0603デフォルトの名無しさんNGNG
深夜営業の釣堀はここですか?
0604592NGNG
>>601
あなたは私を侮辱したいだけなのですか?
もう少し大人になって、物事の論点を見抜く力を養いましょう。
0605デフォルトの名無しさんNGNG
>>603 部外者は帰れ
0606デフォルトの名無しさんNGNG
604は侮辱されたことは分かるんだ
文盲のくせに自分の悪口には敏感だね(プッ
0607592NGNG
>>606
バカのようですね。
文盲ではないから侮辱だと分かるのです。
自分の発言の矛盾点すら気づかないのですか?
0608592NGNG
うざい煽り厨はいいからさ、話元に戻そうぜ。

TDrawGridの具体的なコード書いてください。
0609デフォルトの名無しさんNGNG
>>608
マニュアル嫁
話はそれからだ
0610デフォルトの名無しさんNGNG
>>606
侮辱なんてしてませんよ。もぅ、失礼な。

>>592
>宇宙人はいますよ。と同じようなことです。問題はどこにあるかです。
私はあなたにパッフル望遠鏡をあげたのです。あとはあなたがそれを覗き込むだけです。
(電波望遠鏡じゃないかってツッコミは無しですよ)

>あるのは容易に想像できます。
覗き方が分からないのなら、それを教えることは出来ます。ですが、覗く気が無い
人に宇宙人を探すことはできません。リンク先を順に読んでいって下さい。
ここは、読んでもDelphiが理解できない人に解釈の仕方を教えるスレです。

プログラミングは情熱です。文献を読む気力も無くては、この先ままなりませんよ。
今日はもう寝ます。おやすみなさい。

明日は、文献のどこが理解できないのか、きちんと指摘してくださいね。
0611デフォルトの名無しさんNGNG
>>592
それと、寝る前に最後に二つ。
あなたはもっと日本語を勉強するべきですよ。
読解力も、言葉の遣い方も、決して人前で胸を張れるものではありません。
プログラミングは論理の構築です。日本語が正しく遣えないうちは決して極めることはできません。

もう一つ、あなたは忍耐力が足りません。プログラミングは根気の要る作業です。
もっと大人になりましょう。
0612558NGNG
>>564
また色々調べて見ます
レスありがりとうございました
0613デフォルトの名無しさんNGNG
いくらやさしいフサギコスレっていってもネタ師は無視したほうが・・・
0614デフォルトの名無しさんNGNG
Delphi7のダウンロードが終了しました。
これからここの世話になると思いますので、よろしくお願いします。
0615デフォルトの名無しさんNGNG
>>614
Del7は.netスレいけ
0616デフォルトの名無しさんNGNG
>>615
度阿呆
0617デフォルトの名無しさんNGNG
ダウンロード販売やってたのか
知らなかったよ
0618デフォルトの名無しさんNGNG
Shift押すと,Label1.Captionの値が変わる.というのはどう書けばよいですか?
例えば,プログラムを実行してるときに,
Shiftを押す → a が表示される.
Shiftを押さない → b が表示される.

...でgoogleしれ,っていうのでもいいんでお願いします.
0619デフォルトの名無しさんNGNG
GetKeyStateを検索
0620618NGNG
>>619 ありがとうございます.
0621デフォルトの名無しさんNGNG
イベントはOnKeyPressあたりで
0622618NGNG
>>621 
なるほど.やってみます.ありがとうございます.
0623デフォルトの名無しさんNGNG
if Key = Chr(VK_SHIFT) then
の方が合ってるみたいだねスマソ
0624デフォルトの名無しさんNGNG
goto文の存在価値とは?
0625デフォルトの名無しさんNGNG
>>624
無に等しい。
0626デフォルトの名無しさんNGNG
Delphi6 って XP 上での動作保証、してないんですって?
0627デフォルトの名無しさんNGNG
XPの方が後から発売されたからね
0628618NGNG
OnKeyPressでGetKeyState使ってみました.
Shift押してもLabelは変化しません.
Shift押しながら適当なキーを押したら変わってくれるのですが...
朝からやってるのですが,できません.
だれか助けてくだせい.
一応,ソースを.
procedure TForm1.CheckShift(Sender: TObject; var Key: char);
begin
if GetKeyState(VK_SHIFT) < 0 then
Label1.Caption := 'a'
else
Label1.Caption := 'b';
end;
0629480NGNG
>>489
亀レスですが...
確かにDefaultプロパティがTrueになってるボタンがいました!
ありがとうございますた。恩にきます。
0630デフォルトの名無しさんNGNG
>>618
OnKeyDownでラベル変えて、OnKeyUpで戻す。のでは?
0631デフォルトの名無しさんNGNG
>>627
D6 発売時には XP は存在しなかったから某にしても「動作保証」はできないが、
D6 Update2 を当てることで XP での動作が「保証」されているぞ。

ここの
http://bdn.borland.com/article/0,1410,28187,00.html
Answer: の後半。「..しかしながら二つ目のアップデートパックをインストールすることで
XP での動作が保証されます」

あの ML の、彼とか彼とか戸田とかの記述はあまり信用しないほうが良い。必ず裏を取るように。
裏が取れない場合は、彼らの根拠なしの感想だと思ったほうがよい。
0632626NGNG
>>631
サンクス。ためになったよ。

ML のことは、まぁあまり悪口は書かかんほうが良いよ。荒れる原因になるし。
0633デフォルトの名無しさんNGNG
Tmemo上でcntl+Enterを押した時、HTMLの閉じタグを補完したいのですが、
具体的にどのようにしたらよいのでしょうか?
<table><tr><td>とあったら、
<table><tr><td></td>
<table><tr><td></td></tr>
<table><tr><td></td></tr></table>
という風に補完していきたいのです。
環境はD6 per です。
よろしくお願いします。
0634デフォルトの名無しさんNGNG
HTML のパーサーを持っているとして、不完全 HTML ソースから補完したソースを
返す関数を function HTMLComplete( const s : string ) : string; とする。

OnKeyPress で inherited を呼び出してから(押されたキーのデータを Memo に反映させてから)
Memo1.Text := HTMLComplete( Memo1.Text);

このままだと、ちらつきやキー反応速度が低下するので、実用的には OnKeyPress でタイマーを
動かし、0.5 秒程度で補完コードを呼ぶ用にするとよいかも。
0635aaaaNGNG
http://www5b.biglobe.ne.jp/~ryo-kyo/osu.html

http://my.vector.co.jp/servlet/System.FileDownload/download/ftp/0/279026/pack/win95/game/table/pachinko/sikisai.lzh
0636デフォルトの名無しさんNGNG
>>635は「MONEY」というネットで稼ぐ系の個人サイトでした
0637デフォルトの名無しさんNGNG
ところでTDrawGridについて分かりやすいサイトないですか?
0638デフォルトの名無しさんNGNG
ボリュームコントロールをクイックランチャーに入れて、アイコンの上で数秒待つと「音量を調節します」というのがポップアップされます。
で、プロパティを見たら、コメントのところ文字列が表示されてることが分かりました。

ショートカットが作られたときに、このコメントに文字を入れるにはどうすればいいのでしょうか?
0639デフォルトの名無しさんNGNG
>>638
IShellLink
0640デフォルトの名無しさんNGNG
>>637 VCL ソース。
0641デフォルトの名無しさんNGNG
>>640
ダウソできるところ教えてください。
0642デフォルトの名無しさんNGNG
朝一番あげ
0643デフォルトの名無しさんNGNG
>>641
Winny
0644デフォルトの名無しさんNGNG
>>643
ハッシュ教えてください
0645デフォルトの名無しさんNGNG
>>642
Winnyをダウソする方法を教えてください
0646デフォルトの名無しさんNGNG
>>639
Thank you very much!
0647デフォルトの名無しさんNGNG
ショートカット関係調べてたら、嫌なこと発見してしまった。
最大化ボタンを無効にしてるのに、ショートカットの起動時のサイズってところを最大化にすると強制的に最大化で表示されてしまう・・・。
アア、ナンテマヌケナスガタ...
0648デフォルトの名無しさんNGNG
キニスンナ。
0649デフォルトの名無しさんNGNG
>>647
タスクマネージャとかでも出来るよ。
0650デフォルトの名無しさんNGNG
タスクマネージャで強制的に最大化したら操作不能になったからヨシ
0651ななしへたぐらま ◆XcB18Bks.Y NGNG
>>608
DrawGridを使う場合,画像は別に用意します(※DrawGridに画像を持たせることは出来ません).

以下は画像の一覧がイメージリスト(TImageList)に格納されている場合の例.
DrawGrid1のプロパティは
・FixedRows, FixedCols →0
・ScrollBars→ssNone
・ColCont, RowCount →必要な桁数と行数

ここから(一部省略しています)

type
TForm1 = class(TForm)
DrawGrid1: TDrawGrid;
ImageList1: TImageList;
procedure DrawGrid1Click(Sender: TObject);
procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure DrawGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private 宣言 }
FMouseDown: boolean;
function ImageIndexOfGridCell(aCol, aRow: integer): integer;
public
{ Public 宣言 }
end;

つづく
0652ななしへたぐらま ◆XcB18Bks.Y NGNG
( >651 のつづき:実装)
procedure TForm1.DrawGrid1Click(Sender: TObject);
var
ImageIndex: integer;
begin
if FMouseDown then
begin
ImageIndex := ImageIndexOfGridCell(DrawGrid1.Col, DrawGrid1.Row);
if ImageIndex >= 0 then
ShowMessageFmt('(%d, %d)のセルがクリックされたぜ!この絵の番号は%dだ!', [DrawGrid1.Col, DrawGrid1.Row, ImageIndex])
else
ShowMessageFmt('(%d, %d)のセルがクリックされたけどここには絵がないぜ!', [DrawGrid1.Col, DrawGrid1.Row]);
end;
end;
// セルに画像を描画します.※DrawGrid1のFixedRows, FixedColsが0でないと正しく動きません!
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
ImageIndex: integer;
begin
ImageIndex := ImageIndexOfGridCell(ACol, ARow);
if ImageIndex >= 0 then
ImageList1.Draw(DrawGrid1.Canvas, Rect.Left, Rect.Top, ImageIndex)
else
begin
DrawGrid1.Canvas.MoveTo(Rect.Left, Rect.Top);
DrawGrid1.Canvas.LineTo(Rect.Right, Rect.Bottom);
end;
end;

(すまぬ,まだつづく)
0653ななしへたぐらま ◆XcB18Bks.Y NGNG
( >652 のつづき)
procedure TForm1.DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FMouseDown := True;
end;

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

// DrawGrid1の指定された位置のセルに対応する画像の番号(0〜)を返します.
// 対応する画像がない場合はー1を返します.
// ※DrawGrid1のFixedRows, FixedColsが0でないと正しく動きません!
function TForm1.ImageIndexOfGridCell(ACol, ARow: integer): integer;
begin
Result := DrawGrid1.ColCount * ARow + ACol;
if Result >= ImageList1.Count then
Result := -1;
end;

(以上)
0654デフォルトの名無しさんNGNG
コンポーネントのインストールっていうのは
どういうことが行なわれているんですか?
コンポーネントがインストールされたのはわかりますが、
結局、何がどうなってインストールされたのかが気になります。
0655ListViewに挑戦中NGNG
ListViewのItemたちをSortしたいのですが
オブジェクトインスペクタのSortTypeプロパティで
seTextを選択したらItem(ListViewの最も左の列)
を基準にSortしますよね。
これをSubItem[0](ListViewの左から二番目の列)
の順にSortするにはどうすればいいでしょうか?
0656デフォルトの名無しさんNGNG
>654
BPLにコンパイルしてIDEが読み込んでRegisterルーチンを呼び出す。
0657デフォルトの名無しさんNGNG
IntToStr(SizeOf(OpenDialog1.FileName))
はOpenDialog1で選択されたファイルに関係なく
常に「4」を示すのですが何故なのでしょうか?
OpenDialogで開いたファイルのサイズをバイト数で
出したいです。
0658デフォルトの名無しさんNGNG
>>655
SortType を stData にして、OnCompare イベントハンドラ↓を追加

procedure TForm1.ListViewCompare(Sender: TObject; Item1,
 Item2: TListItem; Data: Integer; var Compare: Integer);
begin
 Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]);
end;
0659デフォルトの名無しさんNGNG
>>656
サンクス。
0660655NGNG
>>658
ありがとうございます。
OnComareは初耳でした。
この機会にマスターしておきます。
0661デフォルトの名無しさんNGNG
>>657
>常に「4」を示すのですが
文字列変数のサイズが4だから。

>ファイルのサイズをバイト数で
GetFileSize(OpenDialog1.FileName)として取得

function GetFileSize(const path: string): Integer;
var
 searchRec: TSearchRec;
begin
 if FindFirst(path, faAnyFile, searchRec) = 0 then
 begin
  Result := searchRec.Size;
  FindClose(searchRec);
 end
 else
  Result := 0;
end;
0662デフォルトの名無しさんNGNG
みなさんはDELPHI6をつかってるんですか?
0663655NGNG
>>658
納得できて書いたのですが
いざItemを入れてやるとSortしてくれません。
OnCompareイベントは自動でSortしてくれないのですか?
それとも何か間違っているのでしょうか?
0664657NGNG
>>661
ファイルサイズを取得するは
そんなにややこしいのですね(;´Д⊂)
0665デフォルトの名無しさんNGNG
>>663
ListView と OnCompare イベントハンドラがリンクしていないのかも。。。
オブジェクトインスペクタでイベントハンドラを作成しましたか?
ListView の SortType を stData にしましたか?
0666663NGNG
>>665
オブジェクトインスペクタのOnCompareイベントをダブルクリックして
procedure TForm4.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
begin

end;
をコードエディタに出しました。
それでbegin と end;の間には
Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]);
と書きました。
SortTypeはstDataになっています…
ん〜やっぱりItemを追加してもSortしてくれません…
0667デフォルトの名無しさんNGNG
>>666
BeginUpdateとEndUpdateの間でアイテムを追加・設定してみて下さい。
var
item: TListItem;
begin
ListView.Items.BeginUpdate;
item := ListView.Items.Add;
item.Caption := '';
item.SubItems.Add('');
ListView.Items.EndUpdate;
end;
0668663NGNG
ListViewのプロパティーが何か間違っているのでしょうか?
Sortする時はこのプロパティーをTrueにしていてはダメ
といった項目はあるのですか?
0669663NGNG
>>667
はいやってみます!!
ありがとうございます。
0670663NGNG
>>667
Sortされました!!
Itemを追加したり削除したりする時は
BeginUpdateとEndUpdateの間に
はさめばいいということですか?
0671デフォルトの名無しさんNGNG
BeginUpdate〜EndUpdateで狭んでおかないと
Items.Addした時点ですぐにSortしようとする→まだSubItemない→マズー
ってことなのかな。推測だけど。
0672デフォルトの名無しさんNGNG
BeginUpdateとEndUpdateの間でまとめてアイテムの更新等をして下さい。
処理時間も短縮します。
0673657NGNG
>>664
やっと理解できました。゚(゚^ヮ^゚)゚。
ありがとうございました☆
0674663NGNG
>>671
>>672
Sortできました〜。
ほんと親切にありがとうございました。
早くDelphiを使いこなせるように頑張ります!
0675 NGNG
質問は敬語でも礼は「サンクス」なのはどうだろう?
0676デフォルトの名無しさんNGNG
またこいつウザ
0677ななしへたぐらま ◆XcB18Bks.Y NGNG
スルーしる(w.
0678デフォルトの名無しさんNGNG
質問ですが、既に開かれているポートにDelphiから文字列を送信することってできるのでしょうか?
例えばこんな感じ
TCP 自分のアドレス:ポート(1973) サーバーアドレス:ポート(43200) ESTABLISHED
当然indy等ででつなごうとすると既にポートは使われています。
といわれます。
0679デフォルトの名無しさんNGNG
>>678
>当然indy等ででつなごうとすると既にポートは使われています。といわれます。

当然あなたのミスだと思います。
0680Delフサギコ ◆A6VzDeLphI NGNG
 ミ,,゚Д゚彡
使われているポートとは
通信を確立できなかったのではなかったすか?

0681678NGNG
不明な文章ですみません;;
サーバーアプリAとクライアントアプリAの通信が確立され維持されているポート
に別のアプリBからあたかもクライアントアプリAが送信したかのような効果をねらっています。
その際アプリBとクライアントAが同じIPアドレスを所有していればもしかして可能なのではとおもって質問させていただいています。
Indyみたいな高級なコンポーネントで無理なのは分かったのですが、Winsockを直接いじるにはスキル不足でソースが作れません。
単に送信できるだけで十分なのですが…
よろしくおねがいします。
0682デフォルトの名無しさんNGNG
何を「よろしく」なの?
0683デフォルトの名無しさんNGNG
ソフトを初めて起動したときにOnActive, OnCreate, OnHide, OnShowの起こる順番を教えてください
0684デフォルトの名無しさんNGNG
>>683
自分で試せよ。
0685デフォルトの名無しさんNGNG
[起動時]
FormCreate
FormShow
FormActivate
FormCanResize
FormConstrainedResize
FormResize
FormPaint

[終了時]
FormCloseQuery
FormClose
FormHide
FormDestroy
0686デフォルトの名無しさんNGNG
>>681
よーするに、TCP/IP で別人へのなりすましをやりたいと。
できません。

もし、やり方が見つかったら、即刻ふさがれます。
安心して、そのようなことはできない。と理解してください。
0687デフォルトの名無しさんNGNG
>>681
アプリBからクライアントアプリAにメッセージを送って操作して下さい。
0688デフォルトの名無しさんNGNG
>>687
妥当だな。
0689デフォルトの名無しさんNGNG
コンボボックスの入力文字数を制限したいんですが、
そういったプロパティはないのでしょうか?
具体的には
・半角文字特定数以外は入力出来ないようにしたい
・全角文字が入力された場合は何も入力出来ないようにしたい
と思ってます。
0690デフォルトの名無しさんNGNG
>>689
サブクラス化とか言ってみる。
0691デフォルトの名無しさんNGNG
いつのまにかできてる「.~dpr」って、どういうことするファイルですか?
0692デフォルトの名無しさんNGNG
>>691
バックアップファイル。

何かの拍子に、

CTRL + A
Del
CTRL + S

なんて操作をしてしまったときに有効。
0693デフォルトの名無しさんNGNG
バックアップという言葉があるならバックダウンやフロントアップもありそうだ。
0694デフォルトの名無しさんNGNG
>>693
バックドロップならあるぞ
0695デフォルトの名無しさんNGNG
>>681
TCP/IPのパケをキャプチャするだけならlibpcapと言う手もありますが、
成りすましで送るっていうのは手法としては分からないです。ごめんなさい。

ネットゲームの世界でチートに使われるwpeというツールではローカルPC上の
プロセスからサーバへのパケットを横取り、改竄して再送信できているようですし
全く方法がないというものでの無いようです。
(個人的には687氏の仰ることが正論そのものだと思いますけどね。)
0696デフォルトの名無しさんNGNG
プロフェッショナル版にはAPI辞典みたいなヘルプが付いてますか?
0697デフォルトの名無しさんNGNG
API辞典というのはwindowsプラットフォームSDK文書のことでしょうか。
D5Proには付属してますよ。但し英語版ですが。
私はVisualStudio付属のMSDNライブラリを使ってます。困ったときはMSDNオンラインをどうぞ。
http://www.microsoft.com/japan/msdn/library/
0698デフォルトの名無しさんNGNG
日本のMSDNオンラインは糞
0699デフォルトの名無しさんNGNG
そんなこと言う人嫌いです。
0700デフォルトの名無しさんNGNG
D6Proには付属してますよ。やっぱり英語版ですが。
私もVisualStudio付属のMSDNライブラリを使ってます。

>>699
オレサマ オマエ マルカジリ
0701デフォルトの名無しさんNGNG
>>700
キョウモ、ドッペルゲンガーハッケソ
ヨロシクネ
0702681NGNG
>>687
>>695
レスありがとうございます。
やりたい事はチャットアプリ汎用ゴースト(自分の代わりに文字を送る事)
なのですが、成りすましは通信上ではなかなか難しいみたいですね。
クライアントAにメッセージを送る事なら簡単なので今回はこれでOKとさせ
ていただきます。
どうもご意見ありがとうございました。
0703デフォルトの名無しさんNGNG
Delphi落としたはいいけど、使えないよ。ウワァァァン
0704デフォルトの名無しさんNGNG
>>703
( ゚,_ゝ゚)ザマーミロ
0705デフォルトの名無しさんNGNG
Editに半角英数を入力して欲しいのですが
Editに入力するときに半角と全角ひらがなに切り替えできない
ようにしたいのですがEditのどのプロパティーを
変更すればよろしいですか?
0706デフォルトの名無しさんNGNG
***の部分を見えるようにするソフトをDelphiで作ってみたいのですが
何から始めるとよいのか・・。
Delphiを始めたばかりなので・・。よろしくお願いします。
0707590NGNG
590で小さいボタンを密集させて押せるように
したかった者です。
結局色々と頑張った結果、ToolButtonを
大量に密集させることにしました。
配置したはいいのですが、
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
end;
を全て書くのは大変です…。
これを
procedure TForm1.ToolButtonIClick(Sender: TObject);
Iは押されたボタンの数
みたいにあっさりかけないものでしょうか?
どうかアドバイスよろしくお願いします<(__)>
0708デフォルトの名無しさんNGNG
>>705
ImeModeをimDisableにする
0709デフォルトの名無しさんNGNG
>>708
まぁそれだけじゃぁ全角入力できるわけだが。
0710デフォルトの名無しさんNGNG
>>707
イベントハンドラをひとつにしてTToolButton(Sender)で振り分ける
(イベントのOnClickで同じパラメータを持つ既存のイベントハンドラを選択できる
 配置したボタンを全部選択してまとめて設定するとあっという間に作業終了)

例えば、押したボタンの名前は
TToolButton(Sender).Name
で得られる
0711デフォルトの名無しさんNGNG
>>709
コピー&ペーストすることまで想定すればそうだけど実用上問題あるまい
0712デフォルトの名無しさんNGNG
>>711
実用を知らないくせに語るな。
0713デフォルトの名無しさんNGNG
706=712なら死ね
でなきゃ「実用的な答え」をしてやれよ
0714705NGNG
>>708
>>709
>>711
ありがとございます。
無事思っていたとおりのことができました。
ありがとうございました。
0715デフォルトの名無しさんNGNG
いまどきスペルミスや構文エラー程度は
エディタがバックグラウンドで勝手に調べて
指摘してくれるくらいじゃないと使ってられない
って本当ですか?
0716デフォルトの名無しさんNGNG
>>715
誤爆でないがけ。
0717デフォルトの名無しさんNGNG
本当です。デルファイもいずれそうなります。
0718デフォルトの名無しさんNGNG
>>706
質問の意味を理解できる人がどれだけいるか疑問。
もう少し具体的に。
0719デフォルトの名無しさんNGNG
>>706
OSをハイバネーションするとメモリ情報がすべてファイルに書き出されるから
そのファイルを別のPCに移して解析すれば見えるよ。
0720707NGNG
>>710
ありがとうございます。
とても簡単に綺麗にかけました!
0721デフォルトの名無しさんNGNG
TabSheetのTab(クリックするところ)の
最小サイズは変えられないのですか?
Captionに2バイトしか書いていないのに
6バイト分くらいの大きさになっています。
もっと小さくしたいのですが無理難題ですか?
0722デフォルトの名無しさんNGNG
TabCtrl_SetMinTabWidth(PageControl1.Handle, width);
0723721NGNG
>>722
レスありがとうございます。
すみません、PageControlのTabは無理ですか?
0724デフォルトの名無しさんNGNG
>>723
試した?PageControlでもTabControlでも
同じ方法で出来るはず。
0725デフォルトの名無しさんNGNG
Delphiって終わってますよね?
0726デフォルトの名無しさんNGNG
人によりVBが終わっていると感じる人もいます。
人によりC#.netが終わっていると感じる人もいます。
人によりJavaが終わっていると感じる人もいます。
人によりLinuxが終わっていると感じる人もいます。
0727デフォルトの名無しさんNGNG
>>706
http://village.infoweb.ne.jp/~furumizo/masksrc.lzh
0728デフォルトの名無しさんNGNG
でもDelphiって終わってるでしょ?
みんなそう言ってます。
0729デフォルトの名無しさんNGNG
オハッス。
日本のDelphiは中村タンが支えてくれるから安心。
0730デフォルトの名無しさんNGNG
中村正三郎さんですか?
0731デフォルトの名無しさんNGNG
SetForegroundWindow(FindWindow('TForm1', 'Form1'));

この指定したWindowが自分自身である場合、他のスマートな書き方はありますか?
0732デフォルトの名無しさんNGNG
>>728
NECは終わってませんか?(w
0733あぼーんNGNG
あぼーん
0734デフォルトの名無しさんNGNG
>>731
SetForegroundWindow(Handle);
0735デフォルトの名無しさんNGNG
>>734
なるほど、分かりました。ありがとうございます。
0736ななしへたぐらま ◆XcB18Bks.Y NGNG
>>729
いつまでも誰かを当てにしているのはよくないと思う.
私がFDELPHIにいた頃,謎全さんがいなくなるなんて
考えてもみませんでしたし….
0737デフォルトの名無しさんNGNG
フサギコがいるから大丈夫だよ。
0738デフォルトの名無しさんNGNG
タクオちゃんは Delphi シロートから金を集めることに専念しはじめたし。
英語資料を翻訳もどきで 5000 円は痛いよ。英語が読めれば全部オンラインでタダで
手に入る資料を何でヘコヘコしてありがたがっているんだか。
C# / Delphi で一儲けを狙っている模様。
NEC くびになったのは知っているんだよね?
073999NGNG
アプリケーションの中で、他のフォームを開いたり閉じたりする
メソッドは何でしょうか?
ヘルプを見てもぜんぜんわかりません。
0740デフォルトの名無しさんNGNG
>>739
(フォーム変数).Showで普通に開く。
(フォーム変数).Showmodalでモーダルで開く。

だが、おそらくおのれの場合はフォーム変数の初期化から
手こずっているのではないか?
状況をもっと詳しく描かないとこれ以上の説明のしようがない。



ネタでない事を祈りたいが。
074199NGNG
ネタだよ〜ん(w
0742デフォルトの名無しさんNGNG
>>739
始めて間がないみたいだからわからないのがあたりまえ
TFormのヘルプは読みごたえがあるから時間をかけてゆっくりどうぞ
(TForm型のインスタンスの破棄にはFreeではなくReleaseを使うとか色々な注意も書いてあるし)
0743739NGNG
>>740
どうも。

ネタではありません。
ソフト本体はだいたい出来たんですが、バージョン情報などのダイアログの
開きかたがわからなかったんで。

リファレンスガイドとオフィシャルコースウエアは買いましたが、
ほかに基本がわかる良い本ありますか?(擦れ違い?)

0744デフォルトの名無しさんNGNG
>>743
「基礎からわかるDelphi*」なんかがいいんじゃない?
0745デフォルトの名無しさんNGNG
Delphiの本ぐらい全部コンプリートしろよ。
0746あぼーんNGNG
あぼーん
0747デフォルトの名無しさんNGNG
本なんか買わなくてもヘルプとネット上の情報で充分
0748739NGNG
>>744
どうも。
いま調べたら「他言語経験者向き」と評されてますた。よさそうだから
本屋逝ってみます。
0749デフォルトの名無しさんNGNG
他言語っていってもねぇ...どんな言語を使っていたかによるけどねぇ。
0750デフォルトの名無しさんNGNG
>>746
埼玉は嫌いなんだ、俺
埼玉って基地外赤フェミの巣窟だそうじゃないか
0751デフォルトの名無しさんNGNG
Delphi2達人テクニック とかいうのを薦めてみたり
って、もう売ってないんだっけ?
0752デフォルトの名無しさんNGNG
>>750
エロゲメーカーに、エデュケーションソフト発注する役人が居る県でつ。
0753デフォルトの名無しさんNGNG
>>722さんのやつ、俺もやりたいんだけど、
未定義の識別子って出ちゃう、、
usesに何か追加すればいいんですかね?
Googleで調べたけど情報が少ない・・・
0754デフォルトの名無しさんNGNG
>>753
uses CommCtrl
0755デフォルトの名無しさんNGNG
>>754
どうもありがとうございます!
コンパイルできました
0756デフォルトの名無しさんNGNG
もう自作自演には飽き飽きしてきたよ。
0757デフォルトの名無しさんNGNG
>634さん
超遅レスすみません。
まず、パーサを作ってみることにします。
解説ありがとうございました。
0758ななしへたぐらま ◆XcB18Bks.Y NGNG
>>743
1. バージョン情報ダイアログにするフォームを作って保存する.
※ここではフォームの名前(Nameプロパティの値)をVersionForm,ユニット名をVersionとして説明する.

2. メインフォームのユニットが上記フォームを参照するようにする.
 メインフォームがアクティブな状態で[ファイル]→[ユニットを使う]を実行.一覧からVersionを選んで[OK]ボタンを押す.
※メインフォームのソースのimplementation節の始めの方に
   uses Version;
  という記述が追加されたはず.(違うユニット名にしたならその名前)

3. メインフォームから呼び出す処理を書く.
 たとえばVersionButtonという名前のボタンを押したら表示する場合,
procedure TForm1.VersionButtonClick(Sender: TObject);
begin
VersionForm.ShowModal;
end;
※ShowModalメソッドはそのフォームを表示してそのフォームが閉じられるのを待ちます.
 この間,アプリケーションの他のフォームをアクティブにすることは出来ません.
※フォームを開くメソッドは他にShowlがあり,これはフォームが閉じられるのは待ちませんし,
 アプリケーションの他のフォームをアクティブにすることも出来ます.

>>752
それ自体はよいのでは?
大企業に頼んでぼったくられるよりは賢いと思います.
昔,花王のフロッピーディスクにキララ(現F&C)製の
推理アドベンチャーゲームがついてたのが懐かしい.
0759743NGNG
>>758
大変ありがとうございました。

ところでダイアログから値を受け取るような場合はどこで変数を宣言すれば
よいのでしょうか?
0760デフォルトの名無しさんNGNG
 TreeView でデータを表示するときたとえば100ノード目のデータが一番上に来るように表示させるにはどうしたらよいのでしょう。
0761デフォルトの名無しさんNGNG
TStringlistを使ってると、「リストのインデックスの範囲を超えています」
と例外処理になってしまいます。どうすれば出なくなりますか?
0762デフォルトの名無しさんNGNG
TStringList.Items[0..TStringList.Count-1]以外にアクセスしない
0763デフォルトの名無しさんNGNG
>>760
TreeView.TopItem := TreeView.Items[99];

>761
文字列の削除処理を含む場合は、特にTStringList.Countの変化に注意すること。
0764デフォルトの名無しさんNGNG
>>759
変数というよりもその値を保存するのに最もふさわしいクラスに
プロパティを作っておいてそこへ書き込むのが常套手段
(当面はメインフォームかデータモジュールで結構)
0765743NGNG
>>764
thank you.
やってみます。
0766706NGNG
自分が書いた文を見てもよくわからない質問文だったのですいません。
よくパスワード入力の再、****のようなカタチで表示されているものを
abcdのように実際の内容でみることができるソフトがありましたが
実際に作ってみたくDelphiに挑戦したのですが、いろいろ調べても
作成の糸口が見えないもので。アドバイスよろしくおねがいします。
0767デフォルトの名無しさんNGNG
初歩的な質問です。
自分でプロシージャ?を作って、そこで何かのコンポーネントのプロパティーを
変えようとすると「未定義の(略)」とエラーがでるようですが
こういうときの定義はどうすればよいのでしょうか?
0768デフォルトの名無しさんNGNG
>>767
たぶんクラス外にprocedureを作ったんだね。
フォームのクラスの中にprocedureを入れるか
外部変数のForm1.とか使って変数経由でコンポーネントにアクセスできる。
0769デフォルトの名無しさんNGNG
>>738
日本語で書いてあるだけ貴重だろー。
特に中級者向けの書籍って日本じゃ少ないし。
昔、謎全氏のコンポ本でコンポーネントを作る方法を覚えた人って多いと思う。
Delphi6perで初めてDelphiを使った人などは、こういった中級者向けの本で
Delphiの奥の深さ、面白さを知るきっかけにもなる。
0770デフォルトの名無しさんNGNG
>>766
目的のウィンドウを探してGetWindowTextでミッションコンプリート。

>>767
プロシージャじゃなくてメソッドにする。
× procedure hoge; begin Button1.Caption := 'hage'; end;
○ procedure TForm1.hoge; begin Button1.Caption := 'hage'; end;
0771767NGNG
>>768
>>770
そうなんですか。
助かります。
0772デフォルトの名無しさんNGNG
>>763
> TreeView.TopItem := TreeView.Items[99];
 どうもありがとうございます。 OnDrawItem で書くしかないのかなあと思っていたら
こんなプロパティあったんですね。

0773ミ,,゚Д゚彡 ◆A6VzDeLphI NGNG
>>766>>706さんは>>770さんの説明で
やり方わかるですか?

確か、通常Windowsアプリと
IE上で[****]と表示される部分では
やり方が異なるので、注意してください。
後者のやり方は俺も全くわからないですが。
0774772NGNG
> TreeView.TopItem := TreeView.Items[99];
 すみません。
 20ノードのデータを、 5つだけ表示できるようにTreeView.Height を調整しています。
 ここで12番目のデータがSelectedであるとき
TreeView1.TopItem := TreeView1.Selected;
としたのですが期待したように12から16のデータは表示されません。
 こういう使い方はおかしいのでしょうか?
0775706NGNG
>>773さん
実のところ、まったくわかってないのですが(すいません
770さんの発言から糸口がすこしわかったので
GetWindowTextについて片っ端から調べてます。
(Delhiの勉強を始めたばかりなので
0776デフォルトの名無しさんNGNG
ListView1.ItemFocused.SubItems[1].CopyToClipboard;
とするとレコード、オブジェクト又はクラスが必要ですと言われてしまいます。
ListView1で選択されたSubItems[1]のTextをクリップボードに
コピーしたいです。
どのように変更すればいいか教えて下さい。
0777ミ,,゚Д゚彡 ◆A6VzDeLphI NGNG
>>775さん
EnumWindows APIでWindowを列挙して
EnumChildWindows でそのWindowの中にある
Windowを列挙して、該当のEditをみつけたら
GetWindowTextをすればいいって

感じなのかな?
やったことないので間違っているかもしれません。
ガンガレ。
0778 NGNG
1.uses Clipbrd
2.SubItems[1].Text:= Clipboard.AsText;
0779ミ,,゚Д゚彡 ◆A6VzDeLphI NGNG
Clipboard.AsTextに代入汁。>>776さん
0780778NGNG
訂正:2.だけ逆だ。

0781776NGNG
>>778
>>779
できました。
迅速なレス&適切なアドバイスに
心から感謝します。
ありがとうございました
0782デフォルトの名無しさんNGNG
>>774
こちらでは正しく表示されましたが。。。
0783772NGNG
>>782
> こちらでは正しく表示されましたが。。。
 上記のコードを
 Items.BeginUpdate〜Items.EndUpdate
で挟んでいたことが原因でした。お騒がせいたしました。
0784デフォルトの名無しさんNGNG
Single型の最大値って整数ではいくらになるのですか?
Eの意味がよくわからないので、整数で知りたいのですが。
0785デフォルトの名無しさんNGNG
>>784 中学生に戻りなさい。
1.23E5 は 1.23 × 10の5乗
0786デフォルトの名無しさんNGNG
>>785
戻れるなら戻りたい。

MaxSingle = 3.4E38 = 3.4 * 10^38 = 340000000000000000000000000000000000000
こんなにでかいの??? 4バイトなのに。

と思ったら、有効桁数が 7-8 ですね。
0787デフォルトの名無しさんNGNG
>>762-763
ありがとうございました
0788デフォルトの名無しさんNGNG
ブサギコは聞かれてもいないこと教えすぎ
自分で調べるって言ってるんだから行き詰るまで調べさせろ
そんなんじゃ、いつまで経っても詰まらんプログラムしか書けないままになる
0789デフォルトの名無しさんNGNG
>>788
何に怒っているんだか。フサに対する嫉妬か?
つまらんプログラマになるか、つまるプログラマになるかは質問者の勝手だろ?
偉そうに能書きたれてる 788 が、初心者の未来に責任でも持つ気か?
やれるもんならやってみな。やれないならとっととうせろ。
0790デフォルトの名無しさんNGNG
動的とか性的とkなお意味が良く分かりませんよろしくお願いッします。
0791788NGNG
>>789
俺の書き込みを見て、やれるとかやれないとかってどういうこと?
0792デフォルトの名無しさんNGNG
dynamicかstatic。

0793デフォルトの名無しさんNGNG
ENCTYPE="multipart/form-data" を使ってファイルを
アップロードしたいのですが、どうしたらいいのでしょうか?

POST コマンドをサーバに送るときに、
ファイルを添付すればいいような気がしますが、
仕様が解りません。
0794デフォルトの名無しさんNGNG
>>793
http://www.ietf.org/rfc/rfc2388.txt
0795デフォルトの名無しさんNGNG
>>793
http://www.assist.media.nagoya-u.ac.jp/ASDP/aswiki.cgi/HTTP/POST

SMTPでよく使うMIMEなデータをPOSTするだけらしい。
SMTPでの添付ファイルの送り方の勉強をすればいいと思います。

0796793NGNG
$B$"$j$,$H$&$4$6$$$^$9!#(J $BFI$s$G$_$^$9!#(J

$BF|K\8lLu8+$D$1$^$7$?!#(J
http://hp.vector.co.jp/authors/VA014833/rfc2388J.html
0797デフォルトの名無しさんNGNG
RFC 2388 は、Post するときは multi-part mime の技術を使いましょう。
ってことだけで、実際に送るデータのエンコードは規定していないので間違えないでください。

一般には元 HTML のエンコーディングが使われますが、MS-IE のように常に UTF-8 で送信する
ブラウザもありますよん。
0798デフォルトの名無しさんNGNG
クラスを配列として扱うにはどうすればいいのでしょうか?
type
 Tclass1 = class
  i: integer;
 end;

 Tclass2 = class
  class1: array of Tclass1
 end:


class2 := class2.create;
class1 := class1.create;
setlength( class2.class1, 10 );
setlength( class1, high(class2.class1) );

class1 := class2.class1;

とやってみたのですがエラーが出て出来ません
copyでもエラーが出てできませんでした

クラスの複製が出来れば何でもいいのですが何か良い方法はないでしょうか?
0799デフォルトの名無しさんNGNG
しっぱい

class2 := Tclass2.create;
class1 := Tclass1.create;

で
0800デフォルトの名無しさんNGNG
>>798-799
TObjectList
0801デフォルトの名無しさんNGNG
StringGrid1.Rows[1].CommaText:=',,,,,';
とすると各セルに#32が入ってしまいます。どうしてですか?
0802デフォルトの名無しさんNGNG
プログラム起動から終了までに一度だけリークするメモリリークは放置しても問題ないですか?
というかプログラムを終了すればメモリは解放されるんでしょうか?
0803デフォルトの名無しさんNGNG
>>802
 メモリについてはプロセス終了によりOSに回収されます。
 ですから、プロセスにつき1つしか作成されないようなメモリについて
 解放しない手法も普通に使われます。

 ただ、一般的に初心者がそういう手法を使う事はやめた方がいいでしょう
0804デフォルトの名無しさんNGNG
解放されます
0805デフォルトの名無しさんNGNG
>>803-804
ありがとうございました
0806デフォルトの名無しさんNGNG
begin
 開く系文
 try
  処理系文
  ...
 finally
  閉じる系文
 end;
 関係ない系文
end;

これで、処理系文でエラーが出たとき、finallyで閉じる系文にとんだ後、
関係ない系文は実行されるんでしょうか?
もしされるなら、閉じる系文はfinally節でなくその後に書いてもいいと思います。
もしされないなら、ダイアログを出さないで例外を使った分岐ができると思います。
0807デフォルトの名無しさんNGNG
>>806
  処理系文 で例外が出れば 以後の処理系文と関係ない系文は実行されないよ

ダイアログを出したくない場合は、try ・・・ except end を使わないとダメだよ
0808デフォルトの名無しさんNGNG
画面の設定でメニューのフォントを小さくしていて気がついたのですが、
エクスプローラのメインメニューのうちで、
「お気に入り」「新規作成」「送る」メニューだけアイコンがついていて、
そこだけ一行の高さが違っています。
たぶん調節できると思うのですが、
システムメニュー(?)にアイコン付きのメニューを入れたときに、
ビットマップサイズにあわせてメニューの行を高くすることはできますか?
現在は小さいフォントにするとアイコンが右下から省略されています。
0809デフォルトの名無しさんNGNG
初歩的な質問で申し訳ないです。
テキストのFontColorは
Colorプロパティーで選択できる色以外でも
指定することはできますか?
オレンジ色系の色がなくてこまってます。
0810デフォルトの名無しさんNGNG
>>809
Color:=TColor($0099FF);
0811デフォルトの名無しさんNGNG
>>808
何言ってるのかよく分からない
0812デフォルトの名無しさんNGNG
>>808
TMenuItemのOnMeasureItemでできる。
0813ななしへたぐらま ◆XcB18Bks.Y NGNG
>>759
ダイアログとして作ったフォームに値を返すメソッドかプロパティを作ります.
単にOK/キャンセル/Yes/Noのどのボタンを押したかという情報はShowModalの戻り値を使います.
(ダイアログが自分を閉じるときにCloseの代わりにModalResult := mrOk; などとします.)
ところで受け取る値ってもしかしてバージョン情報ですか?
だったらこの方法はだめですよ.

>>761
デバッグ機能を駆使してエラーの原因をつきとめましょう.
ヘルプ見ろと言いたいところですが目次からちゃんとたどれない…(Del5).
例外の種類はEListErrorですよね?これが発生すると言うことは
StringsかObjectsの[]内に存在しないインデックス(項目が10個なら0〜9以外は×)
を間違って指定ちゃったようですね.

どうしてそうなったかを調べるために例外が発生した行にブレークポイント[F5]を置いて実行してみてください.
ここで停止したら文字列リストのインデックスに指定している値をチェックしてください.
範囲を超えていないようなら[F9]で実行を再開して,これを例外が発生するまで繰り返します.
0814ななしへたぐらま ◆XcB18Bks.Y NGNG
>>798
class2 := class2.create;
setlength( class2.class1, 10 ); // Tclass1型のオブジェクトの場所を置く場所を10カ所確保
for i := 0 to High(class2.class1) do
class2.class1[i] := Tclass1.Create; // Tclass1型のオブジェクトを10個作って,その場所を保管

また,class2を破棄する前に以下のよう自分でひとつずつclass1のオブジェクトを廃棄しなければなりません.

for i := 0 to High(class2.class1) do
class2.class1[i].Free; // ひとつずつ破棄してます.

Delphiのオブジェクト変数はオブジェクトの場所を覚えているだけだと言うことを頭に入れておいてください.
0815ななしへたぐらま ◆XcB18Bks.Y NGNG
>>814
訂正.
× class2 := class2.create;
○ class2 := Tclass2.create;
0816デフォルトの名無しさんNGNG
ファイル/フォルダの移動、削除、コピーを行うメソッドはないのでしょうか?
RenameFileで移動は可能らしいんですが、調べてみると同一ドライブしかダメらしく… 

http://216.239.53.100/search?q=cache:5fgh1RG6PwIC:www.nifty.ne.jp/forum/fdelphi/faq/00074.htm+delphi+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%A7%BB%E5%8B%95&hl=ja&lr=lang_ja&ie=UTF-8

ファイルアクセス関連の参考サイト等教えて頂ければ幸いです。
「基礎からわかるDelphi6」買ってきたんですが、載ってないYO…
0817デフォルトの名無しさんNGNG
>>816
C:\Program Files\Borland\Delphi\Demos\Doc\Filmanex\FmxUtils.pas
0818デフォルトの名無しさんNGNG
>816
なにか制限あるかもしれんが、一応こういう関数とかAPIとか有った気がする。
DeleteFile CopyFile MoveFile

それよりFDelphiのURLがいつのまにか変わってた。
ttp://forum.nifty.com/fdelphi/
0819デフォルトの名無しさんNGNG
>>817
ちょっと解読不可能ですた・゚ ・(ノД`)・゚・。 説明も英語だから何が何だか…

>>818
これかな? ちょっと読んでみます。情報ありがとうございました。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsmthmovefile.asp
0820デフォルトの名無しさんNGNG
初心者です。質問があります。
実行時にPopupMenuにメニューアイテムを追加するにはどうすればいいのでしょうか?
0821816NGNG
SHFileOperationAPIを使用して解決出来ました。失礼しましたー
0822デフォルトの名無しさんNGNG
>初心者です。
内容でわかります。

>質問があります。
それもわかります。

>実行時にPopupMenuにメニューアイテムを追加するにはどうすればいいのでしょうか?
TPopupMenuならヘルプを読んでください。
IEやその他のメニューなら、なんのメニューか詳しく書いてください。
0823デフォルトの名無しさんNGNG
下記のようなコールバック関数内で例外が発生します。

function CallBackImageProc:BOOL;stdcall;
var
image : TImage;
begin
image := TImage.Create(application);
image.Picture.BitMap.width := 100;
 result := true;
end;

「EAccess Violationクラスの例外を発生しました」
と言われます。

image.Picture.BitMap.width := 100;

の部分で例外が発生するのですが、なぜだか分かりません。
お助け下さいまし。
0824ななしへたぐらま ◆XcB18Bks.Y NGNG
>>823
こちらの環境(Delphi5/WinXP)では再現しませんでした.
TPictureのBitmapプロパティを参照するとTBitmap型の画像を持っていないときは
それまで持っていた画像があればそれを捨てて
新たにTBitmap型の画像を作りますので
この行のコード自体は問題ないように見えます.

実体のない場所を参照しようとしていると出ることが多いので
例外が発生する行にブレークポイントを置き,ここで実行が止まったら
image
image.Picture
image.Picture.BitMap
の値を調べてみてください.
オブジェクトの実体が存在しないとnilと表示され,
存在しないオブジェクトのプロパティを参照しようとするとDelphiの例外と表示されるので
考えられる原因を絞り込む事が出来ると思います.
0825823NGNG
>>824
懇切丁寧なレスありがとうございます。

わざわざテストして下さったようで恐縮です。

やはりインスタンスに何か不具合が起こって参照できなくなってる
みたいですね。

コールバック関数に何か特殊な制約があって例外が出ているのかと
思いました。

そうではないという事が分かったので助かりました。

もう少し色々いじってみます。
0826823NGNG
連続カキコごめんなさい。

imageを監視してみた所

image := TImage.Create(application);

この部分では値が[csInheritable](なんじゃこりゃ)になっていて

image.Picture.BitMap.width := 100;

この部分になったとたん値が「未定義の識別子:image」になりました。
どこかでとちっているんだと思うのですが、見当が付きません。
0827デフォルトの名無しさんNGNG
>>826
間違ってたらごめんだけど・・・
TImage.Createの引数にApplicationを使うのはやったことないな。
TApplicationはTComponentから派生してるから間違ってないんだけど
なんか気持ち悪い。
普通はTControl型(それこそメインフォームのSelfとか)
を渡すんじゃなかったっけ?
0828823NGNG
>>827
そうかもしれません。
でもTComponentから派生させたクラスではないのでSelfは使えないようです。
フォームに配置したimageを引数で渡して、そのimage.parentをSelfの代わりにも
しましたが出来ませんでした。(クリエイトした瞬間に未定義の・・になる)
0829809NGNG
>>810
遅レスごめんなさい。
ありがとうございました。
できました☆
0830デフォルトの名無しさんNGNG
行き当たりばったりでプログラムしてるんですが、アドバイスください。

TStringListにファイルからロードしたデータを扱うというようなことをやっていて、
ロードが正常に終わったかとか、ロードしたファイル名とかを個別の変数に持っています。
これがファイルの数だけあるのです。(ファイル数は今のところ固定)
雰囲気としてはこんな。
aaa_data: TStringList;
aaa_file_name: String;
aaa_file_ok: Boolean;

bbb_data: TStringList;
bbb_file_name: String;
bbb_file_ok: Boolean;

なんか不恰好なので構造体みたいにまとめたいと思ったのですが、
record型でいいんでしょうか?それともクラス?にする必要があるんでしょうか。
0831デフォルトの名無しさんNGNG
>>830
1、 レコード型で data,file,file_ok のメンバを持たせて、それを配列にする方法
2、そのまま それぞれを配列にする方法

0832デフォルトの名無しさんNGNG
>>830
クラスにしたほうが柔軟な記述ができるとは思うけど。
ファイルをロードしたりするメソッドも一緒にできるし。
0833830NGNG
レスあがりがとうございます。
根本的にわかってないことに気付きました。

レコードにした場合、TStringListのCreateというのは、どのように行うのでしょうか?
type
TMyFile = record
data: TStringList;
file_name: String;
file_ok: Boolean;
end;

var
aaa: TMyFile;

とやるだけでいいんでしょうか..

クラスはまた調べてみます

0834デフォルトの名無しさんNGNG
>>833
aaaを使う際に
data:=TStringList.Create;

aaaが不要になったら
data.Free;

本当はTMyFileをクラスにした方が
コンストラクタとデストラクタで以上の処理ができるので安全確実
0835デフォルトの名無しさんNGNG
>>833
 それでいいと思うよ。
 それで、初期化関数と、終了関数を作成するといい

procedure NewTMyFile(var this:TMyFile);
begin
this.data:=TStringList.Create;
end;

procedure DeleteTMyFile(var this:TMyFile);
begin
this.data.Free;
this.data.=nil;
end;

でもさ、
type TMyFile = class(TStringList);
public
 file_name: String;
 file_ok: Boolean;
end;
の方が楽だと思うけどね。 
0836830NGNG
またまたありがとうございます。
>835
なるほど、クラスはそのように定義すればいいんですね。
やってみます。

これとは別の質問があるのですが、
文字列を渡して、文字列の変更を行う関数で、
変更したかどうかをBooleanの戻り値で返して、
引数で変更された文字列を返したい場合どのように記述するのでしょうか。

function MyFunc(text: String): Boolean;

とやってみましたが、関数無いでtextを変更しても、
呼び出し元には反映されません。
Delphiではどのように記述するのでしょうか。



0837デフォルトの名無しさんNGNG
>>836
function MyFunc(var text: String): Boolean;
0838830NGNG
>837
できました、ありがとうございます。
人のソースで見たことはあったんですが、意味わかってなかったです。
ヘルプの値パラメータと変数パラメータというヤツをよく読んでおきます。


0839デフォルトの名無しさんNGNG
サーバーからIndyのIdHTTPコンポでファイルを読み込んでいる途中に
どれくらいファイルを読み込んでいるかProgressBarに表示させたいのですが
どのような書き方をすればいいのでしょうか?
0840デフォルトの名無しさんNGNG
>>839
writeメソッドをoverride
0841デフォルトの名無しさんNGNG
>>839
OnWorkBeginとOnWork
0842839NGNG
>>840さん、>>841さんありがとうございました。
私にはまだ早かった事だったようです。精進します。
0843デフォルトの名無しさんNGNG
ShowHintで表示するHintの文字群を
改行するにはどうすればいいですか?
オブジェクトインスペクタのHintプロパティーに
\nとか#13#10と書いても
そのまま表示されてしまいます…
どうぞ教えて下さい。
0844デフォルトの名無しさんNGNG
>>843
オブジェクトインスペクタに書くんじゃなくて、コードで。
xxx.hint := 'line1'#13#10'line2';
0845843NGNG
>>844
やっぱりコードで書かないといけませんか。
分かりました!コードで書きます。
ありがとうございました。
0846デフォルトの名無しさんNGNG
前スレの654-656にもあったのですが、
フォームを「エディタで表示」しておいてから
Caption = 'First'#13#10'Second'
とすればいけます。
0847デフォルトの名無しさんNGNG
>>845
わりと最近、その話題はやったんだけど(前スレくらいかな?)
1.フォーム上でマウスを右クリックして「エディタで表示」を選択する
2.Hint = 'test1'#10'test2' という具合に改行コードを入れる
でできるよ
0848847NGNG
>>846
ものの見事にかぶりました
0849デフォルトの名無しさんNGNG
両方とも「:」が無いのはナゼ?
0850デフォルトの名無しさんNGNG
>>849
いらないからです
(実際にエディタで表示してみるとわかります)
0851849NGNG
ああ、なるほど。
0852ななしへたぐらま ◆XcB18Bks.Y NGNG
>>835
初期化と後処理の自動化はオブジェクトの利点のひとつですが
ファイルを読み込んだらファイル名と読み込んだというフラグを必ず記録するので
読み込みメソッドを作ってそこで一緒に処理した方が良いと思います.

type TMyFile = class
private
// 情報を格納するフィールド変数.これを直接読み書きしないこと(同じユニットからだとアクセスできてしまうので注意)
FLines: TStrings;
FFileName: string;
FLoaded: Boolean;
public
constructor Create;
destructor Destroy; override;
// ファイルから読み込み.ファイル名とフラグも更新.
procedure LoadFromFile(const NewFileName: string);
// 読み込んだ内容のクリア.ファイル名とフラグも更新.
procedure Clear;
// プロパティ:ここから読み出します.書き込めないように読み出し専用にしています.
property Lines: TStrings read FLines; // 読み込んだテキスト(文字列リスト)
property FileName: string read FFileName; // ファイル名.読み込んでいないときはカラ.
property Loaded: Boolean read FLoaded; // 読み込んだかどうかのフラグ
end;

(つづく)
0853ななしへたぐらま ◆XcB18Bks.Y NGNG
>>852 (つづき)

procedure TMyFile.Clear;
begin
FLines.Clear;
FFileName := '';
FLoaded := False;
end;

constructor TMyFile.Create;
begin
inherited;
FLines := TStringList.Create;
end;

destructor TMyFile.Destroy;
begin
FLines.Free;
inherited;
end;

procedure TMyFile.LoadFromFile(const NewFileName: string);
begin
FLines.LoadFromFile(NewFileName);
FFileName := NewFileName;
FLoaded := True;
end;

(以上)
0854デフォルトの名無しさんNGNG
今、過去ログをあさろうと>>2を下から順に開いていたのですが
なぜか「VB初心者質問スレ」のようです。
なにか特別な経緯でもあったのでしょうか・・?
0855デフォルトの名無しさんNGNG
Label1.Caption := ExtractFilePath(Application.ExeName);
で、実行ファイルのある場所、「C:\FolderName\」が取得できましたが、
この文字列の最後の「\」を取り除いた実行ファイルのパスを取得するには、どのようにすれば良いのでしょうか?
0856デフォルトの名無しさんNGNG
>>855
ExtractFileDir(Application.ExeName)
0857デフォルトの名無しさんNGNG
>>856
出来ました。ありがとうございます。
0858デフォルトの名無しさんNGNG
Delphiを勉強しようと思うのですが、
「Delphi 7 Studio」と「Delphi for .Net」は違う商品なんですか?

「Delphi for .Net」は.Netにネイティブ対応とニュースに書いてありましたが、
発売されたのでしょうか?

0859デフォルトの名無しさんNGNG
http://www2.leverage.jp/start/
0860デフォルトの名無しさんNGNG
>852
ありがとうございます。
確かにそうまとめたほうがすっきりするようですね。
やってみます。
0861デフォルトの名無しさんNGNG
>>852
コンポーネントにしないのなら、もっと簡単に

type TMyFile = class(TStringList);
private
 FFileName: string;
public
 constructor Create(fname:string);//コンストラクタでそのファイルを読む、読めなければコンストラクタで例外
 function file_name: String; //読み込みだけのプロパティならメソッドにしても同じ
 // file_ok: Boolean; //これはクラスが作れたら必ずファイルが読めたという事で不要
end;

みたいにしたらいいんじゃないの? ちょっと冗長
0862デフォルトの名無しさんNGNG
>>861
わざわざメソッドにしなくてもプロパティなら1行ですむ。
property FileName: string read FFileName write FFileName;
0863デフォルトの名無しさんNGNG
var
i : Integer;
begin
i := 0;
with TMemIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')) do
try
while i < ComboBox1.Items.Count do
begin
WriteString('Setting', 'AttachSubject(Items[' + IntToStr(i) + '])', ComboBox1.Items[i]);
end;
finally
UpdateFile;
Free;
end;
としますと、実行中にこのFormを閉じたときに固まります。
原因はどこにあるでしょうか?
よろしくお願いします。
end;
0864デルファイの名無しさんNGNG
英語版コンパイラを使っていると、endの手前のコメントでもない日本語文字が
変な風に解釈されて、それで妙なコードが生成されていると想像できます。

…というのは無論冗談で、Inc(I)が無いので無限ループしてる。
0865863NGNG
Inc(i);を忘れてた…
自己解決ですすみません
0866861NGNG
>>862
でもさ、メソッドにすれば self が nil なら '' を返す事が出来るぞ。
ファイルの読み込みに失敗すれば インスタンスが無いという状態になるので
こういう設計にしたわけだ。
0867ねこまNGNG
読み込みを constructor に固定してしまうと,使いまわしができません.
0868861NGNG
>>867
なんで? 削除して再度Createしてもいいし、
それが負荷上勿体ないなら、Createをメソッドとして呼べばいいじゃない
0869デフォルトの名無しさんNGNG
同感です
0870デフォルトの名無しさんNGNG
constructorを何度も呼ぶなんて格好悪い。
0871ななしへたぐらま ◆XcB18Bks.Y NGNG
>>826
> image.Picture.BitMap.width := 100;
この行を実行する前の値を見ようとして「未定義の識別子:image」となったのですか.
最適化で変数の保管場所が消滅しているなら「最適化のため(ry」となるはずなので…うーん.

>>827 自分で破棄するなら TImage.Create(nil) という手も使えますね.

>>861
メインフォームかデータモジュールのフィールド変数で使うことを想定していたので
生成の後に何度でも読み込みできるようにしました.
なおコンストラクタを以下のようにすれば生成時にファイルを読み込むようにすることもできます.

constructor Create(const NewFileName: string);

constructor TMyFile.Create(const NewFileName: string);
begin
inherited Create;
FLines := TStringList.Create;
if NewFileName <> '' then
LoadFromFile(NewFileName);
end;
0872ねこまNGNG
>>868
理解しかねます.
0873861NGNG
type TMyFile = class(TStringList)
private
 FFileName: string;
public
 constructor Create(fname:string);//コンストラクタでそのファイルを読む、読めなければコンストラクタで例外
 function file_name: String; //ファイルが開かれていればファイル名、でなければ、''
 function file_ok: Boolean;
end;
 として実装は、
constructor TMyFile.Create(fname: string);
begin
  if not FileExists(fname) then raise EAbort.Create('TMyFile:'+fname+'が無い');
  inherited Create;
  FFileName:=fname;
  LoadFromFile(fname);
end;
function TMyFile.file_name: String;
begin if Self<>nil then Result:=FFileName else Result:='';
end;
function TMyFile.file_ok: Boolean;
begin Result:=Assigned(Self);
end;
0874861NGNG
>>873 追加するコードはこれだけ。

で、こうしておけば、例えば、TMemoとTRadioGroup とTOpenDialog と ボタンを貼り付けて
procedure TForm1.Button1Click(Sender: TObject);
var T:TMyFile;
begin
if OpenDialog1.Execute then with OpenDialog1 do begin
  RadioGroup1.Items.AddObject(FileName,TMyFile.Create(FileName));
end;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
with RadioGroup1 do Memo1.Lines.Assign(Items.Objects[ItemIndex] as TMyFile);
end;
と、簡単なビュアーを作れる。
これで、存在しないファイルなら単に追加されない。開けないファイルならダイアログで教えてくれて追加しない
と非常にお手軽。

 単純なのが一番だと思うが?
0875デフォルトの名無しさんNGNG
全然単純じゃないと思うんだが。
非常に読みづらい。
0876861NGNG
>>875 ギャフン
0877デフォルトの名無しさんNGNG
> RadioGroup1.Items.AddObject(FileName,TMyFile.Create(FileName));

これだといちいちTMyFileのコンストラクタを読まなくてはFileNameが開けなかった時どうなるのか分からない。
TIniFileのCreateでファイルがない場合は作られてしまうがそれと同じかと思ってしまう。
一方LoadFromFileにすればTStringsと同じ仕様で非常に単純。このコードは短いだけで単純ではない。
0878861NGNG
うーん。
コンストラクタで例外が出る=全てが実行されないというのは非常にシンプルだと思うのだがなあ・・・・

AddやInsert とかと組み合わせると非常に有り難い仕掛けだと思う。


ただ、グローバル変数とか配列とかへの代入で
MyFile:=TMyFile.Create(FileName); 
としてしまうとバグの温床で
MyFile:=nil;
MyFile:=TMyFile.Create(FileName); 
とやらなければいけないとか、やっぱりシロウトにはオススメできないか・・・・


0879861NGNG
あ>>878 の後半の話は、MyFIle.Free の後の話ね。
0880デフォルトの名無しさんNGNG
自分で作ったアプリのexeファイルがあるフォルダのパスを得たいのですが
どうすればいいでしょうか?
0881861NGNG
>>880
ええと、>>855 とか参照
0882デフォルトの名無しさんNGNG
こんなの
ExtractFilePath(Application.ExeName)
0883デフォルトの名無しさんNGNG
>>881-882
ありがとうございました。検索しないですいません
0884デフォルトの名無しさんNGNG
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vjref98/html/java.awt.event.KeyEvent001.asp
この仮想キー表でFn(ファンクション)キーがどれか分かる方教えてください。。
VK_FUNCTIONが無いんです。
0885デフォルトの名無しさんNGNG
隠しキーだし。
0886デフォルトの名無しさんNGNG
Delphiでは不可能ということですか?
0887デフォルトの名無しさんNGNG
StatusBarのPanelごとに
違うHintを表示することは可能ですか?
0888デフォルトの名無しさんNGNG
>>887
自分でコード書けば可能
OnMouseMoveでパネルの位置を割り出して
それに応じたHintを割り当てる。
0889デフォルトの名無しさんNGNG
産休
0890デフォルトの名無しさんNGNG
>>886
何なら出来ると言うんだ。
0891デフォルトの名無しさんNGNG
>>884
ネタですか?VK_F1〜VK_F12ってあるじゃん。(ネタにマジレス
0892888NGNG
>>887
すごい賢いやり方ですね!!
少し感動しました。
ありがとうございましたチャレンジしてみます!
0893ミ,,゚Д゚彡 ◆A6VzDeLphI NGNG
FnキーってファンクションキーのF1〜F12とかじゃなくて
ノートPCについていて、他キーと組みあせてて
外部CRT切り替えとか音声ON/OFF、画面明るさ調整
が出来るキーだと思うでつ。

Fnキーは確かキーイベントが発生しないのではないかと・
0894デフォルトの名無しさんNGNG
[Fn]はハードウェアに実装されている機能なのでI/Oポート直に叩かない限り絶対無理。
0895デフォルトの名無しさんNGNG
ノートPC専用ソフトですか?
0896デフォルトの名無しさんNGNG
>>891はネタにマジレスというネタを使った高度なネタですか?(ネタにマジレス
0897デフォルトの名無しさんNGNG
ファンクションエミュレーター作ったら馬鹿売れ必至!
0898デフォルトの名無しさんNGNG
>>896はネタにマジレスにネタにマジレスというネタを使った高度なネタですか?(ネタにマジレス
0899デフォルトの名無しさんNGNG
>>898はネタにマジレスにネタにマジレスにネタにマジレスというネタを使った高度なネタですか?(ネタにマジレス
0900デフォルトの名無しさんNGNG
>>896
すごい賢いやり方ですね!!
少し感動しました。
ありがとうございましたチャレンジしてみます!
0901デフォルトの名無しさんNGNG
どうでもいいけど、俺のキーボード、前に洗ったときに[Fn]潰したから
ソフトにこれ使わないでほしい。
0902Delフサギコ ◆A6VzDeLphI NGNG
  ∧,,∧
 ミ,,゚Д゚彡
 ミつ日(ミ
CtrlとFnを入れ替え常駐ソフトを
作ろうとしても、かなり不可能、
という罠がありますねー。
0903デフォルトの名無しさんNGNG
やはりDELPHIじゃ無理か
0904デフォルトの名無しさんNGNG
>>903
ソフトウェアで管理できないハードウェアでやられていたら、Delphi じゃ無理だと思うね。
0905デフォルトの名無しさんNGNG
>>904
いや日本語がわかりません
0906デフォルトの名無しさんNGNG
要するにDelphiで無理なことはC#やVBはもちろんVCやアセンブラでも無理ってことだ
0907デフォルトの名無しさんNGNG
VBならできるけどな。
0908デフォルトの名無しさんNGNG
VBは金だせば何でもできるよ
0909デフォルトの名無しさんNGNG
VB!!
0910デフォルトの名無しさんNGNG
DLLがあるんじゃない?
それを使うソフトがどんなDLLを読み込んでいるか調べてみそ。
0911デフォルトの名無しさんNGNG
NMHTTPで、 「http://pc2.2ch.net/test/read.cgi/tech/1048589518/」
に接続すると、CGIのエラーが出て開けませんでした。
どうすれば開けるようになりますか?
0912デフォルトの名無しさんNGNG
VB VB 言ってる Del厨って なに 考えてんだろ?
0913デフォルトの名無しさんNGNG
>>907-909
CtrlとFnを入れ替え常駐ソフトのようなものはグローバルフックが必要なので、
糞ActiveXでないDLLを作れないVBでは不可能です。
Delphiなら不可能ではないでしょうが、
ドライバレベルのものを作らなければならず、キーボードメーカーの
非公開のハードウェア仕様を知る必要があるため、実質不可能ということです。
馬鹿VB厨には何のことを言っているのかさっぱりでしょうけど(w
0914デフォルトの名無しさんNGNG
>>911
サーバにどんなコマンドを送ったの?
0915デフォルトの名無しさんNGNG
>>913
要するに言語は関係なく不可能なんだろ
Delphiだったら不可能ではないなんていいかげんなこと言うな
0916デフォルトの名無しさんNGNG
うん。 Fnキーはx86CPU上で管理してないと思うよ。
0917デフォルトの名無しさんNGNG
>>913
Windows 上のドライバでも、BIOS ですら変更できない部分ってのも
コンピューターには存在するんだよ。

キーボードコントローラーのファームを書き換える。ってのがベストかと。
0918デフォルトの名無しさんNGNG
>>913
ワラタ。煽る奴ほどリアル馬鹿であるという良い例だ。
0919デフォルトの名無しさんNGNG
PC上なら何でもできると思ってたのに、
あのボタンが押せないとはな
0920デフォルトの名無しさんNGNG
まあ HDDアクセスランプをソフトからやりたい・・・って言ってるのと同じ程度の希望だな

出来ない訳ではないけどね

 HDDランプならHDDをアクセスしっぱなしにすりゃいい
 Fnキーなら、キーフックして、テンキーのコードとアルファベットのコードを処理すりゃいい
0921デフォルトの名無しさんNGNG
あ、ただし、HDDアクセスしっぱなしだと他のアプリ殆ど動かせないよね
 Fnキーが押したかどうか判るのは、テンキー部分を押して貰うまで保留ね
0922デフォルトの名無しさんNGNG
”HDDアクセスランプをソフトからやりたい”
”Fnキーが押したかどうか”

あなたはプログラム言語よりまず日本語を勉強してください
0923デフォルトの名無しさんNGNG
なんでだろ〜なんでだろ〜♪
0924デフォルトの名無しさんNGNG
if MessageDlg('危険です。', mtWarning, [mbYes, mbNo], 0) = mrYes then
このように書いたら、未定義の識別子:'mrYes'というエラーが出ました。
usesにDialogsは追加してあります。他に何が足りないのでしょうか?
0925デフォルトの名無しさんNGNG
>>924
それをそのままコピペしたらエラーは出ませんでした。
0926デフォルトの名無しさんNGNG
>>924
ヘルプを検索しましょう。 mrYes は Controls ユニットで定義されています

0927デフォルトの名無しさんNGNG
ほかの言語がうらやましくなるようなDELPHI弱点
・ユニコードの扱いが面倒
・正規表現
・最新技術のSDKサンプルコード
・MMXやSSE2などCPU別最適化
・普及度

>>924
uses controls
0928デフォルトの名無しさんNGNG
>>927
1.SJISで不便しない
2.標準で対応してるのはスクリプト言語とか最近のVM言語だけだったと記憶
3.C読めるし
4.現在の高速なCPUでシビアな動作をさせなければ問題ないけど
5.普通に使うには十分普及してる
0929デフォルトの名無しさんNGNG
ユニコードの扱いが面倒って言っても、
逆にユニコードが主の言語から S-JIS扱うよりは WideStringがあるから楽だと思うけどなあ

それにユニコード主にしたフリーのコンポーネントもどこかで見たよ(使う気ないけど)
0930デフォルトの名無しさんNGNG
ヘルプは必ず見てるんですけれど、MessageDlg関数のところにはDialogsとしか書いてありませんでしたので、質問してみました。
とにかく、きちんとできました。どうもありがとうございました。
0931デフォルトの名無しさんNGNG
正規表現は、対応って言ってもライブラリレベルで対応したって、検索くらいにしか使えないでしょ
それに、必要なら CのソースをBCC32.exeでコンパイルして リンクすればそのまま使えるし
Delphi用のフリーの正規表現検索用コンポーネントもあるし

でも、lexのようなフロントプロセッサが付くなら面白いかもしれないね。
0932デフォルトの名無しさんNGNG
Formが最大化から普通サイズに戻ったときのサイズをあらかじめ設定できますか?
0933デフォルトの名無しさんNGNG
>>932
Constraintsプロパティで最小サイズ指定しておけばいいんじゃ?
最大・最小を同じ値にするとリサイズ不能なウィンドウと同じになるけど。
0934デフォルトの名無しさんNGNG
>933
そうではなく最大化の時点で、元のTop,Left,Width,Heightの値が知りたいのです。
0935デフォルトの名無しさんNGNG
>>934 いやDelphiの事はあんまりしらんのだけど、 WM_SYSCOMMAND で処理するんじゃないの?
0936デフォルトの名無しさんNGNG
>>932
GetWindowPlacement / SetWindowPlacement
0937デフォルトの名無しさんNGNG
>>935
ここはdelphiスレやぞ。
0938デフォルトの名無しさんNGNG
>>937
おう、Windows用のプログラミング環境だ。
0939デフォルトの名無しさんNGNG
>>934
つうか、デザイン時の位置やサイズがそうなんだけど。
(PositionプロパティがpoDesignだったら。)
0940ミ,,゚Д゚彡 ◆A6VzDeLphI NGNG
>>936さんの持つ
正しい日本語パーサーの実装を見習いたいですね。
0941デフォルトの名無しさんNGNG
>>940
パーサに補完機能は必要なのか?
0942デフォルトの名無しさんNGNG
デルポイのVCLソースを見ると
本来ならポインターの方が便利なのに
varになってます。このような場合、ヌルポを
関数に渡すにはどうしたらら良いんでしょうか?
0943911NGNG
>>914
コマンドは送ってません。

NMHTTP1.GET('http://pc2.2ch.net/test/read.cgi/tech/1048589518/');

としただけてす。何かコマンドを送る必要があるんですか?
0944デフォルトの名無しさんNGNG
>>942
出力用の引数だからだろう。
0945デフォルトの名無しさんNGNG
>>944
俺はヌルポを渡したいんだよ。
場所の大きさを知りたいために。
お前馬鹿か?
0946デフォルトの名無しさんNGNG
はい次の人〜
0947デフォルトの名無しさんNGNG
次スレよろ〜
0948ななしへたぐらま ◆XcB18Bks.Y NGNG
>>942
Windows APIの呼び出しでしたら関数の宣言と実際を別に書くと良いと思います.
以下,ChangeDisplaySettings APIの例

Windowsユニット(Windows.pas)に書かれているオリジナルはこうです.

・宣言(宣言部=interface節にあります)
> function ChangeDisplaySettings(var lpDevMode: TDeviceMode; dwFlags: DWORD): Longint; stdcall;
・実装(実装部=implementation節にあります)
> function ChangeDisplaySettings; external user32 name 'ChangeDisplaySettingsA';
このAPIは解像度を変更するものでもともと lpDevMode にNULL(Delphiでいうnil)を指定すればレジストリに記録されている解像度に変更できるのですが参照渡しで宣言されてしまっているために使うことが出来ません.
これを参考に自分のユニットのimplementation節に以下のようにポインタ渡しで宣言・実装します.

// 画面設定変更の Windows API の宣言と実装
function ChangeDisplaySettings00(lpDevMode: PDeviceMode; dwFlags: DWORD): Longint; stdcall; forward; // 宣言
function ChangeDisplaySettings00; external user32 name 'ChangeDisplaySettingsA'; // 実装

関数の名前は何でも良いのですがChangeDisplaySettingsにした場合,パラメータが変わっているのですでに存在する ChangeDisplaySettings を呼び出すコードがある場合はこれを修正しなければなりません.
このユニットの中で単に ChangeDisplaySettings と書くと Windows ユニットの関数ではなく,自分のユニットのほうの関数を指すからです.
0949デルファイの名無しさんNGNG
気持ち悪いけどvarパラメータに PDeviceMode(nil)^ な感じで渡しても動きますよ…
0950デフォルトの名無しさんNGNG
>>930
ヘルプ見てうまくいかなかったら
Delインストールしてあるディレクトリを*.intか*.pasでgrepしろ。
0951デフォルトの名無しさんNGNG
Memo1.Lines.SaveToFile('Log.txt');
とすると、Log.txtに書いてあった文字が
全てなくなって、Memo1のテキストのみになってしまいます。
以前にあったLog.txtの文字の最後にMemo1のテキストを
付け足すというふうにしたいのですが、
如何に書けばいいですか?
どうぞよろしくお願いします<(__)>
0952デフォルトの名無しさんNGNG
ヴぁr
 sl: TStringList;
begin
 sl := TStringList.Create;
 try
  sl.LoadFromFile('Log.txt');
  sl.AddStrings(Memo1.Lines);
  sl.SaveToFile('Log.txt');
 finally
  sl.Free;
 end;
end;
0953951NGNG
ほんとうにありがとうございます<(__)>
うまくできました。
ありがとうございました。
0954951NGNG
>>952
すみません。
AddString(DateTimeToStr(Now))
とすると、
2003/04/12
23:43:32
のようにスペースの部分が勝手に改行されてテキストファイルに
保存されてしまいます。
これは仕様ですか?
0955デフォルトの名無しさんNGNG
>>954
やぁ!TStringListのCommaTextのとこ、見てくれたかい?
0956951NGNG
>>955
ありがとうございます。
今見てきましたが…難しいですね。
sl.Text := sl.Text + Memo1.Lines.Text;
で逃げることにしました
0957デフォルトの名無しさんNGNG
>>954
べつに、>956のやり方でもいいと思うけど、、
AddStringメソッドってなにのメソッド?
AddStringsだと引数はTStringsだよ???
0958951NGNG
あ、…。
すみません"s"をぬかしていました。
逝ってきます。
みなさん親切にほんとうにありがとうございました<(__)>
0959デフォルトの名無しさんNGNG
>>958
いやいや、"s"を書き忘れただけならいいんだけど、
AddStrings(DateTimeToStr(Now))
これはコンパイルエラーになるから改行が入る入らない以前の問題だよ。
TStrings と String はまったくの別物。うんことちんこくらい違う。
0960デフォルトの名無しさんNGNG
ステップアップとしてWindowsAPIを学びたいのですが、
どの関数がどういう働きで、どんなパラメータ値があるのか
とか、そういうのが纏まってるDelphi用の書籍ってありますか?
やはりMSDNなどに載っている他言語用のサンプルプログラムから
推測するなりして使い方を模索するしかないのでしょうか?
0961デフォルトの名無しさんNGNG
>>943
Host: pc2.2ch.net
Accept-Language: jp
を追加してみて。
0962デフォルトの名無しさんNGNG
>>960
Del3.1の時代なら英語ながらAPIヘルプ付いてた。
今はMSDNで参照すればよし。

後、常識の範囲でC知ってた方が良い。
0963デフォルトの名無しさんNGNG
レスどもです。なんというか、例えば画像処理をしたいときには
どんな関数を使えばいいのか、とか音関係はどんな関数を
使えばいいのかとか、使いたい目的に関する関数を直ぐに
引けるようなリファレンスが欲しいのです。

MSDNだと、あらかじめどんな関数がどの効果か知ってないと
ちょっと探り当てるのは不可能な気が…

# Cは大学でやっとりますが、Windows環境で学んでないんだよなぁ…
0964デフォルトの名無しさんNGNG
>>943
答えにはならんが
http://members.jcom.home.ne.jp/monazilla/document/index.html
の「その他」のあたりが参考になるかも。
0965デフォルトの名無しさんNGNG
>>963
Windows OS / API は画像処理や音響処理のために設計されているわけではないので
おそらくあなたの使いたい機能は API レベルとしては用意されていない。と思います。

DirectX 関係の入門書をざっと読んで、できることとできないこと。提供されていることと
されていないことの見当を身につけるのが先かと。

今まで特定のライブラリを使っていたのであればそれの Windows 版実装を探すのが
はやいかもね。
0966デフォルトの名無しさんNGNG
あーいや、例えばの話なんですが… 上でも同じこと
書きましたが、使いたい目的とする関数を直ぐに
調べられる書籍等の情報が欲しいなと。

# あと、画像や音関係だとBitbltとかsndPlaySoundとかあると
# 思うんですが(昔VBでゲーム作ったときに使った)違うのかな
0967デフォルトの名無しさんNGNG
なんか日本語変だな。あるプログラムを作成する際、
特定の実現したい内容があり、それに利用できそうな
関数等を参考書のように調べられる書籍等の情報が
欲しいんです。

現在はネットで調べてコピペすることが多いんですが、
そうではなく自分で勉強したいなと…
0968デフォルトの名無しさんNGNG
>>965
MCIとかGDIとか知らない人ですか?
0969デフォルトの名無しさんNGNG
>>967
昔のWindowsNT用のAPIリファレンスはそんな感じだった。
逆引き!とか謳ってる痛い本読むしか。

まぁ、暇なときにぱらぱらめくって存在だけ確認しとくのが良いかも知れない。
0970デフォルトの名無しさんNGNG
Bitblt はビットマップの描画に使う一番基本的な APIだが、基本的なのでありと
あらゆるところで使われている。それを逆引きにしろ?と?
必ず漏れがでるし、無理だよ。逆引き本には期待しないほうが。

よーするに、API のリファレンスを読まずに楽をしたい。ってことかな?それは甘い。

基本的な API セットは元祖 Mac/QuickDraw の時代から大して変わっていません。
余計な機能拡張が無い、Win31/NT4 時代の API 解説書をしっかり読破するのが
結果として一番楽な勉強法でしょう。

最新じゃないけど日本語版が Web でみられる MSDN の Win32 API ライブラリを端から読む。
ってのがいまどきのやりかたかな?
0971デフォルトの名無しさんNGNG
>>970
同意。今のplatform SDKのリファレンスを読み解くのはおすすめできないが。
0972デフォルトの名無しさんNGNG
ExtractFileNameでファイル名は取得できるんですけど
URLのファイル名を取得するにはどのメソッドを使えばよいのですか?
0973デフォルトの名無しさんNGNG
URL のファイル名。とは?
たぶんあのことだろうけど、具体例を明記してくだされな。
0974デフォルトの名無しさんNGNG
>>972
最後の'/'を探してそれ以降を抜き出すだけでしょ?
AnsiPosとCopyをヒントとして挙げておくから、自分でやってみなされ。
0975デフォルトの名無しさんNGNG
>>974
?や#をどう扱うかという問題がある。
0976972NGNG
>>973
ファイル名という言い方がまずかったかな?
それ以外の言い方知らないし
例えば
http://xxxxxxx.com/xxxxx/xxxx.jpg
のxxxx.jpgをExtractFileNameと同じ様に取得したかっただけです。
0977デフォルトの名無しさんNGNG
>>975
最後の'/'を探してそれ以降終端か'?'か'#'まで取得。
0978デフォルトの名無しさんNGNG
URL / URI の分解は Indy に備わっていたと思ったが。
0979デフォルトの名無しさんNGNG
http://を抜けばextractFileNameでパースできる予感。
0980デフォルトの名無しさんNGNG
>>974
とりあえずはそれで解決できるんですけど
Delphiで用意されてるメソッドがあるならそれを
利用したかったのです。
0981デフォルトの名無しさんNGNG
Indy 9.0 系だと、IdURI ユニットに TIdURI クラスがある
0982デフォルトの名無しさんNGNG
自分でコードを書くのも勉強
ライブラリを探し回って適切なものを見つけるのも勉強
他人に(適度に)聞くのも勉強。

がんがれ > 989
0983デフォルトの名無しさんNGNG
まぁ、暇つぶしにVCLリファレンスとか眺めるのが一番ですな。
0984982NGNG
とりあえず
>>974さんを参考に
URLからhttp://
ExtractFileName(AnsiReplaceText('xxxxxxx.com/xxxxx/xxxx.jpg ', '/', '\'));
でできました。
いろいろなありがとう
0985jpgNGNG
>>972はエロい人ですか?
0986デフォルトの名無しさんNGNG
>>984
ぎゃあミス
×URLからhttp://
○URLからhttp://を取り除いて
0987デフォルトの名無しさんNGNG
>>979
extractFileName は \ と : しか、区切り文字として見ないぞ。
0988743NGNG
まったくの初心者ですが、このスレのおかげでゲームソフトができました。
フリーソフトとして公開予定です。ありがとうございました。
0989デフォルトの名無しさんNGNG
>>988
いいえどうしたしまして。
私たちの煽りが役に立ったようで感激です。
0990デフォルトの名無しさんNGNG
with TIdURI.Create( URI ) do
begin
 edit1.text := Document;
 Free;
end;
0991デフォルトの名無しさんNGNG
次スレは〜??
0992デフォルトの名無しさんNGNG
いま俺が準備中。ちょっとまっとれ。
0993デフォルトの名無しさんNGNG
次スレ たてました。
http://pc2.2ch.net/test/read.cgi/tech/1045813143
0994デフォルトの名無しさんNGNG
>>993
おつ
0995デフォルトの名無しさんNGNG
1000
0996ドキューンズ ◆DQNES/NnnM NGNG
千
0997デフォルトの名無しさんNGNG
次スレまだ?
0998デフォルトの名無しさんNGNG
1000は厨房が取るものである
0999デフォルトの名無しさんNGNG
次スレ立てとくように
1000デフォルトの名無しさんNGNG
1000ゲットだわあああああん♪
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。