モナーの *やさしい* Delphi質問スレ Ver.7
■ このスレッドは過去ログ倉庫に格納されています
0001Delモナー ◆fPymXWHY
NGNG( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
( ) .| Delモナーは時に私であり、時には別の人。
| | | | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
(__)_) \_________________________
前スレ モナーの *やさしい* Delphi質問スレ Ver.6
http://pc.2ch.net/test/read.cgi/tech/1019134412/
前スレが埋まるまでは書き込まないで
(あるいはsage進行にして)ください。
>>2-10あたりに関連情報あり
○過去スレ >>2
○関連スレ >>3-5
○Delphi製品情報 >>6
○関連リンク >>7
○質問者へ・回答者へ >>7
○ソース置き場案内 >>8
0175デフォルトの名無しさん
NGNG>VCL使いまくりなんでFormの上がごちゃごちゃになってます。
VCL は Delphi ひとつにひとつしかありません。
0176デフォルトの名無しさん
NGNG>UPXで、あっしく
これをすると何が楽しいのでしょう?
0177デフォルトの名無しさん
NGNG>s := 'ABCDEFG';
>SetLength(s, Length(s)-1);
>とやった場合、自動的にsの末尾の文字はメモリ上から解放されるのでしょうか?
おもしろい質問だね。「そうじゃない」という答えがあったらどうするつもり
なんだろうね。
0178デフォルトの名無しさん
NGNG本についてるサンプルコードの「書込み禁止」を解除したいのですが、できません。
右クリックで出るヤツのチェックをはずしてもダメでした。
どのようにすればいいですか?
0179デフォルトの名無しさん
NGNGそれ以上の方法はない。
CD-ROMのファイルとか言ったら殴る。
0180デフォルトの名無しさん
NGNGReset(f);
for i := 0 to c do
BlockWrite(f, Data[i]);
という感じにしたとき、Closeするまでファイルに書き込まれる全データは
メモリ上に確保されているのですか?
0181この話題は散々既出だが
NGNG圧縮率とかによって違うかも知れないが、1MB程に膨らんだアプリが
やはりモノ次第ではあるが約300K程度に縮んで、
アプリの起動が速くなることがある。
あとネットワークでプログラムを配布したいとき、
FD等の低速少容量メディアで常用したいときも、
結構(゚д゚)ウマーになれる。
要は目的次第で使うか使わないか決めればいいだけ。
馬鹿の一つ覚えのように全部のプログラムにやる必要はない。
0182デフォルトの名無しさん
NGNG、、、なんというか、、申し訳ありません、、。できました。
>右クリックで出るヤツのチェックをはずしても
エディタ上でこれをやってました。(コンパイルもセーブも不可)
Delの外からフォルダ内の全部のヤツの「読み取り専用」のチェックをはずしたらできました。
約1日のどツボでした、、。ありがとうございました。
0183デフォルトの名無しさん
NGNG直接APIを叩くか sndvol32.exe を実行。
/R オプションとか付けて実行すると録音ボリュームが出せるよん。
0184168
NGNG0185デフォルトの名無しさん
NGNGひとりより、ふたりがいい♪
ふたりより、さんにんがいい〜♪
0186174
NGNGサンクス!助かりました。
0187デフォルトの名無しさん
NGNGサンバルカンかよ!!
0188デフォルトの名無しさん
NGNGHですか?
0189デフォルトの名無しさん
NGNG>>188 ひとしくん人形没収
0190デフォルトの名無しさん
NGNGっていう問題を教えてください
0191デフォルトの名無しさん
NGNGいい加減にしな。
0193デフォルトの名無しさん
NGNG一重積んでは母のため・・・
二重積んでは父のため・・・
0194デフォルトの名無しさん
NGNG場合によりけり。これだけの情報ではなんともいえん。
ただ2つにするなら、2つ目は自動作成の対象から外しとけよ。
0195168
NGNGthx!
0196デフォルトの名無しさん
NGNGFileSizeを使用すると、開かなければならないし、テキストファイルはできないみたいだし。
0197デフォルトの名無しさん
NGNGAPIにないか?
0198196
NGNG自己レス
解決しました。
TSearchFile.Sizeで取得できました。
0199デフォルトの名無しさん
NGNG繰り返し中にエラーが出た場合、エラー処理後次の繰り返しの処理を
行ってほしいのですがどうすればいいでしょうか?
try
for i:=0 to count-1 do
listview.Items.Item[i].SubItems.Add(strName[i]);
except
on EOLeException do begin
lstFile.Items.Item[i].SubItems.Add('エラー');
statusbar.Panels[0].Text:='エラーです');
//ここで次の繰り返しに処理が戻ってほしいです
end
end;
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGfor i:=0 to count-1 do
try
listview.Items.Item[i].SubItems.Add(strName[i]);
except
on EOLeException do begin
lstFile.Items.Item[i].SubItems.Add('エラー');
statusbar.Panels[0].Text:='エラーです');
end
end
0202デフォルトの名無しさん
NGNGforの中にtry入れれば動きそうな・・・。
0203デフォルトの名無しさん
NGNG何故そのような複雑怪奇なブロック構造…はどうでもいいが、
単にforループの中にtry〜exceptを記述したらだめなの?
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG0206真人間
NGNGいいと聞いたんでこれからフリー版で
始めてみようかなとおもっとるんですが。
ちょっとした簡単なソフトを作成するぐらい
だとして、開発環境にはデルファイ本体含めてどれくらいの
容量を必要としますか?
HDDが残り6Gなので心配ですです。
あと、でるふぁいをインストールしたことで
なにかしら問題がおこったり、アンインストールが
大変だったりしませんか?
よろしくお願いします。
0207デフォルトの名無しさん
NGNGネタですよね。
0208デフォルトの名無しさん
NGNGダウンロードページにも行かないで真人間とか言われても困る。
それくらいの実験も出来ないで〃
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNGそう言えば女神様の顔結構長時間見てた記憶が・・・。
BCBよりは有機質的で好きだけど。
起動後はさくさくだけどね。
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNGそう言えばVB、コンパイル中のプログレス結構長時間見てた記憶が・・・。
VCよりは早くて好きだけど。
コンパイル後はバグバグだけどね。
0213デフォルトの名無しさん
NGNGインストールできないという罠。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGつぅか未だにRC使ってるってタイーホ。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG表示がおかしくなるのですが(256を越えると0に戻るっぽい)
1つのセル(?)の高さを256ピクセル以上にする方法は
無いもんでしょうか?
0218真人間
NGNGコンパイルが早いとかはもう調べてありますし、
ボーランドのサイトにもいって落としそうにもなりました。
聞きたいのは、でるふぁいの本体のサイズとかじゃなくて
なにかしら小規模なアプリを作成出来るような環境にするには
どれくらいのスペースが必要ですかということなんでし。
本体展開すればそれであとは必要ないんでしょか?
ねたじゃないでう。
0219デフォルトの名無しさん
NGNGDrawGridかなんか使うしかないんかな。
0220デフォルトの名無しさん
NGNG6GBありゃ十分、
開発するシステムの規模によるが、小規模アプリなら
ひとつで bin / src あわせても 10MB ぐらいじゃないの。
0221デフォルトの名無しさん
NGNGCD3枚入れたとしても半分も埋まらないのに…
0222デフォルトの名無しさん
NGNGDelphiで10MBは中規模かと。
日曜プログラマとしては。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG0225真人間
NGNGいやー、mpgは容量食うんで、いま6Gでもそのうちなくなっちまうんじゃ
ないかと。
そろそろCDRに焼きたいんですが、自分家にはないもんでなかなか・・・。
どうもでした。
まずはHSPから始めてみようと思います。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGHNからしてネタ
0228デフォルトの名無しさん
NGNGどうでもいいけどあなたは誤った道を選択したと言っておく。
あくまで俺の価値観だから気にしなくても良いよ。
0229デフォルトの名無しさん
NGNGいいヤツと聞いたんでこれからメルトモとして
付き合い始めてみようかなとおもっとるんですが。
0230真人間
NGNG本当にアリガトウございました。独女板にかえります。
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG0236デフォルト
NGNG0237デフォルトの名無しさん
NGNG0238199
NGNGエラーが出たらtryから抜けるのでfor文の中に入れればいいのですね
ひとつ賢くなりました。
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG画像を表示させて画像をマウスで選択したら、選択したところを拡大
するようにしたいので、まずmousedownイベント時にX座標とY座標を
記憶させ、mouseupイベントでマウスボタンを離した場所のX,Y座標から
選択範囲を計算させintX:=abs(startX-X);intY:=abs(startY-Y);
perX:=imgEdit.Width / intX;perY:=imgEdit.Height / intY;
imgEdit.zoom:=(min(perX,perY))*100;
というふうに拡大率を出し、(startX,startY:選択開始位置)
imgEdit.ScrollPositionX:=startX;imgEdit.ScrollPositionY:=startY;
と画像を表示する場所を指定してあげても指定した位置に表示されません
どうかお願いします
0244デフォルトの名無しさん
NGNG獲得ページにて毎日ポイント獲得!広告すると毎日のポイント増えるかも!?
http://www.fkfk.net/PrPointMail/PointMail.ASP?WCI=Home&WCE=125176
======================================================== [ ▲PR ] ====
銭欲しいか?
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG過去ログぐらいみやがれよ、散々がいしゅつだが使えます。
ちっとはweb検索しやがっていただきたく思う所存にございます。
0247246
NGNGhttp://turbo.gamedev.net/delphixd6.asp
ホレ。
0249デフォルトの名無しさん
NGNGを作っていい?
いや、別スレ立ててまでやる必要はないとは思うが、
こういう事やっていいスレはどこかにないか?と。
0250デフォルトの名無しさん
NGNGとりあえず、相談室あたりでネタが続くかどうかやってみてからでも遅くないのでは?
0251デフォルトの名無しさん
NGNGフォームが閉じられた時にparentで指定したオブジェクトが開放されると
動的に生成したオブジェクトも開放されるのでしょうか?
それとも FormのDestroyあたりで、明示的に開放しないと駄目でしょうか?
こんな感じでやってます、
procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
begin
for i:=1 to 99 do
begin
Frame[i]:=TFrameDenBody.Create(Self);
Frame[i].Parent:=Self.ScrollBox1; //<---フォーム上のScrollBoxの上に作成
Frame[i].Visible:=True;
Frame[i].Name:='iFrame'+IntToStr(i);
Frame[i].AutoSize:=True;
Frame[i].Top:=(Frame[i].Height*(i-1));
end;
あと、実際開放されているか否かを確認する方法ってパフォーマンス
モニタで確認するのでしょうか?それとも何か良いツールがありますか?
あれば教えて下さい。
0252デフォルトの名無しさん
NGNGvar
i:Integer;
begin
for i:=1 to 99 do
begin
Frame[i]:=TFrameDenBody.Create(Self);
なんでこんなのをうつと
プログラムになって
pcがうごくのかよくわからん
0254デフォルトの名無しさん
NGNG2、解放されたかどうかを見たいなら、
type TFrameDenBodyExt=class(TFrameDenBody)
public
destructor Destroy; override;
end;
として destructor TFrameDenBodyExt.Destroy; でログに吐いてみたら?
例えば
destructor TFrameDenBodyExt.Destroy;
begin
AllocConsole; writeln(Name);
inherited;
endl;
とか
もちろん 作成は
Frame[i]:=TFrameDenBodyEx.Create(Self);
0255Delフサギコ ◆zE1iiRdQ
NGNG> Frame[i].Parent:=Self.ScrollBox1; //<---フォーム上のScrollBoxの上に作成
FrameのOwnerはSelf=Form1
FrameのParentはScrollBox1
Ownerが破棄されるときには一緒に破棄されるけど
Parentが破棄されても一緒には破棄されんかったと思う。
Parentが破棄されると消えちゃうけど。
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧
ミ,, ゚Д゚彡
〃つ旦O
〜ミ,,[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0257251
NGNGつまり、Create(Self.ScrollBox1)の方がいいって事でしょうか?
0258デフォルトの名無しさん
NGNG折れは Frame[i]:=TFrameDenBody.Create(Self);でいいと思うよ。
但し、初期化をサボってOwnerを破棄して再作成する事で初期化するってなら、scrollbox1を指定した方が楽かな。
0259デフォルトの名無しさん
NGNGなるほど、Delフサギコ さんありがとう御座いました。
0261Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧
ミ゚Д゚,,彡 .┳ そういう時は
ミ "⊃ミ ┃
〜ミ " ミ ┃
ミ_ミ`,ミ (◎) ̄))
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧,,∧
ミ,,゚Д゚彡 ジンジャーで・・・
ミ "⊃┳⊃
〜ミ " ┃ミ
ミ ミ┃ミ
(◎) ̄))
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
-= ∧,,∧
-=≡ ミ,,゚Д゚彡 逃亡や!
-= ミ "⊃┯つ
-=≡〜ミ "//ミ
-=≡ミ_ミ'/,ミ
-=(◎) ̄))
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0262デフォルトの名無しさん
NGNGvar
sfi: TSHFileInfo;
hi: THandle;
begin
hi := SHGetFileInfo('',
FILE_ATTRIBUTE_DIRECTORY,
sfi, SizeOf(sfi),
SHGFI_SMALLICON or SHGFI_SYSICONINDEX or
SHGFI_USEFILEATTRIBUTES);
Result := ImageList_GetIcon(hi, sfi.iIcon, 0);
end;
と、MLからソースを探し出して使おうとお持っているのですが
ImageList_GetIconメソッドがそのままだと未識別とでてしまいます
何かapiが必要なのでしょうか?
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGfor Int := 1 to 50 do begin
if Odd(Int) = False then continue;
〜
end;
または
for Int := 1 to 50 do
if Odd(Int) = True then begin
〜
end;
ってやるしかない?できるだけ高速な処理を望みたいのだが。
0265デフォルトの名無しさん
NGNGInt(こんな変数使うなよぅ) * 2 + 1。
0266デフォルトの名無しさん
NGNGサンキューです
0267デフォルトの名無しさん
NGNGよく分かんないんですけど、
for Int := 1 to Int * 2 + 1 ですか?
0268デフォルトの名無しさん
NGNGカウンタを自分でインクリメントしてwhileでまわすのが多分速い。
0269デフォルトの名無しさん
NGNGInt を変数名にするのは C系言語の経験のあるプログラマから見ると
「凄く気持ち悪い」ということでしょ
* 2 + 1 の意味までは考えてないけど
0270デフォルトの名無しさん
NGNGInt := 1;
while Int = 50 do begin
Int := Int + 2;
〜
end;
っていうことですね。
0271デフォルトの名無しさん
NGNG気持ち悪いんですか。なるほど。
0272デフォルトの名無しさん
NGNGwhileの条件が変だけどそんな感じです。ただInc(Int, 2)の方が速いかも。
0273デフォルトの名無しさん
NGNGそのままだと
while文の中は1度も実行されないね
多分 while Int<50 の方がご希望通り
0274デフォルトの名無しさん
NGNGbegin
a[i * 2 + 1] = i;
end;
x * 2 + 1は絶対奇数。授業でやらんかったか?
■ このスレッドは過去ログ倉庫に格納されています