くだすれDelphi(超初心者用)その37
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/11/02(木) 18:03:49他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。
<前スレ>
くだすれDelphi(超初心者用)その36
http://pc8.2ch.net/test/read.cgi/tech/1159485364/
<過去スレ>
http://delwiki.info/?Delphi+%B4%D8%CF%A2%A4%CE%B2%E1%B5%EE%A5%B9%A5%EC%A5%C3%A5%C9 (上のDelWiki避難所内)
または>>2-10あたりにある過去スレURL
<関連スレ>
※Delphiに関係してる雑談および関係してない雑談については以下でどうぞ
バカボンのDelphi不買・販促・その他談話室その29
http://pc8.2ch.net/test/read.cgi/tech/1153227982/
<その他>
BorlandHomePage
http://www.borland.com/jp/
DelWiki避難所
http://delwiki.info/
BDN(BorlandDeveloperNetwork)
http://bdn.borland.com/jp/delphi
過去スレは>>2-10あたりのどこかに
0002デフォルトの名無しさん
2006/11/02(木) 18:06:07<過去スレ>
01:http://pc5.2ch.net/tech/kako/1051/10518/1051882835.html
02:http://pc5.2ch.net/tech/kako/1053/10537/1053757982.html
03:http://pc5.2ch.net/tech/kako/1055/10559/1055986736.html
04:http://pc5.2ch.net/tech/kako/1058/10588/1058834815.html
05:http://pc5.2ch.net/tech/kako/1061/10610/1061090908.html
06:http://pc5.2ch.net/tech/kako/1063/10632/1063202727.html
07:http://pc5.2ch.net/tech/kako/1065/10651/1065195699.html
08:http://pc5.2ch.net/tech/kako/1068/10682/1068201045.html
09:http://pc5.2ch.net/test/read.cgi/tech/1071294733/
10:http://pc5.2ch.net/test/read.cgi/tech/1074523803/
11:http://pc5.2ch.net/test/read.cgi/tech/1076609666/
12:http://pc5.2ch.net/test/read.cgi/tech/1076610073/
13:http://pc5.2ch.net/test/read.cgi/tech/1081003641/
14:http://pc5.2ch.net/test/read.cgi/tech/1085239007/
----(続く)----
0003デフォルトの名無しさん
2006/11/02(木) 18:06:5715:http://pc5.2ch.net/test/read.cgi/tech/1087823906/
16:http://pc5.2ch.net/test/read.cgi/tech/1089779142/
17:http://pc5.2ch.net/test/read.cgi/tech/1091671391/
18:http://pc5.2ch.net/test/read.cgi/tech/1093996761/
19:http://pc5.2ch.net/test/read.cgi/tech/1097454588/
20:http://pc5.2ch.net/test/read.cgi/tech/1101530485/
21:http://pc5.2ch.net/test/read.cgi/tech/1104511938/
22:http://pc5.2ch.net/test/read.cgi/tech/1107332482/
23:http://pc8.2ch.net/test/read.cgi/tech/1110470895/
24:http://pc8.2ch.net/test/read.cgi/tech/1115581376/
25:http://pc8.2ch.net/test/read.cgi/tech/1119008091/
26:http://pc8.2ch.net/test/read.cgi/tech/1121249711/
27:http://pc8.2ch.net/test/read.cgi/tech/1126590039/
28:http://pc8.2ch.net/test/read.cgi/tech/1131168199/
----(続く)----
0004デフォルトの名無しさん
2006/11/02(木) 18:07:4029:http://pc8.2ch.net/test/read.cgi/tech/1135866929/
30:http://pc8.2ch.net/test/read.cgi/tech/1138370150/
31:http://pc8.2ch.net/test/read.cgi/tech/1142594051/
32:http://pc8.2ch.net/test/read.cgi/tech/1145267913/
33:http://pc8.2ch.net/test/read.cgi/tech/1148378877/
34:http://pc8.2ch.net/test/read.cgi/tech/1151143010/
35:http://pc8.2ch.net/test/read.cgi/tech/1155263138/
36:http://pc8.2ch.net/test/read.cgi/tech/1159485364/
<関連?スレ>
Delphi初心者のための寺子屋
http://pc8.2ch.net/test/read.cgi/tech/1132756268/
【Delphi】 Indyコンポーネント 【C++Builder】
http://pc8.2ch.net/test/read.cgi/tech/1093654251/
【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】 (※ゲーム制作技術板)
http://pc8.2ch.net/test/read.cgi/gamedev/1097836469/
※ほかにもスレッドあります。
0005デフォルトの名無しさん
2006/11/02(木) 18:40:310006デフォルトの名無しさん
2006/11/02(木) 21:17:500007デフォルトの名無しさん
2006/11/02(木) 23:02:16値を渡すと、それに対応するコンポーネントを操作する関数を作りたいのですが、
やり方が分かりません。
以下のように記述したところ、当然エラーでした。
procedure Draw( imageNum : integer );
begin
if imageNum = 1 then with Image1.Canvas do begin
else if imageNum = 2 then with Image2.Canvas do begin
// 値が1の時はイメージ1のキャンバスを、2の時はイメージ2のキャンバスを操作したい
TextOut(100,100,'abc');
end;//← with 〜 do begin用のend
end;
どのようにすればよいでしょうか。よろしくお願いします。
0008デフォルトの名無しさん
2006/11/02(木) 23:03:360009デフォルトの名無しさん
2006/11/02(木) 23:14:49for i := 0 to Form1.ControlCount -1 do
begin
c := Form1.Controls[i];
c.Name
end;
0010デフォルトの名無しさん
2006/11/02(木) 23:19:36var
TI:TImage
begin
TI = nil;
if imageNum = 1 then TI = Image1;
else if imageNum = 2 then TI = Image2;
if TI <> nil then TI.Canvas.TextOut(100,100,'abc');
end;
00129
2006/11/02(木) 23:26:29var
name:string;
c:TControl;
name := ' Image'+IntToStr(num);
c:=Form1.FindChildControl(name);
0015名無し募集中。。。
2006/11/02(木) 23:58:16公式サイトで見ても全部書いてなくて…
0016デフォルトの名無しさん
2006/11/03(金) 00:04:36TImage にキャスト
0017デフォルトの名無しさん
2006/11/03(金) 00:04:43name := ' Image'+IntToStr(num);
c := Form1.FindChildControl(name);
TImage(c).Canvas.TextOut(100,100,'abc');
これで出来ん?
0018デフォルトの名無しさん
2006/11/03(金) 00:07:34NewButtonを生成した後に
NewButton.Assign(Button1);
としたのですが、
EConvertError クラスの例外を生成しました。
'TButton を TButton に代入することはできません'
とエラーになってしまいます。
どうすれば全てのプロパティをコピーできるのでしょうか?
NewButton := Button1;
だと意味が違ってきますよね?
00197
2006/11/03(金) 00:11:093行目でエラーになってしまいます…
procedure Test(num : integer);
var
name : string;
c : TControl;
begin
name := 'Image'+IntToStr(num);
c := Form1.FindChildControl(name);
TImage(c).Canvas.TextOut(10,10,'abc');
end;
0020デフォルトの名無しさん
2006/11/03(金) 00:26:48コンポーネントの全てのプロパティはコピー出来ないよ
だって同じNameを持つコンポーネントが作られちゃうでしょ?
必要なプロパティを選んで代入する必要がある
>NewButton := Button1;
これをやるとNewButtonもButton1を指すことになる(NewButton == Button1じゃないことに注意)
Delphiのオブジェクトの実態はポインタとなる
002118
2006/11/03(金) 00:29:13そうですか。
使うプロパティを1個ずつ代入するしかないのですか。(確かにNameがかぶっちゃいますね)
面倒だけどしょうがないですね。ありがとうございました。
0022デフォルトの名無しさん
2006/11/03(金) 00:39:15FindChildControlの結果はnil?
0023デフォルトの名無しさん
2006/11/03(金) 00:44:08すまん、FindControlはTImage引っかからないわ・・・
if文か>>9でControlとって来てになるね。
0025デフォルトの名無しさん
2006/11/03(金) 00:56:240026デフォルトの名無しさん
2006/11/03(金) 00:59:37標準でついているコンポーネント
http://www.dragonsoftru.com/delphi_d7d2006.php
あとはよく分からんがIndy9 あたりかな。
Pro ならIntraWeb, RaveReports が付いてくる?
0027デフォルトの名無しさん
2006/11/03(金) 01:02:13すまぬ。言い訳できぬわ・・・
>>24
var
name : string;
c : TComponent;
name := 'Image'+IntToStr(num);
c := FindComponent(name);
TImage(c).Canvas.TextOut(10,10,'abc');
0028デフォルトの名無しさん
2006/11/03(金) 01:36:21Actionでやればいいじゃん。
0029デフォルトの名無しさん
2006/11/03(金) 05:26:54動かない原因として、
ifとwithを混ぜてるということもある。
0030デフォルトの名無しさん
2006/11/03(金) 06:08:09どのようにすればよいのでしょうか?
0031ななしへたぐらま ◆XcB18Bks.Y
2006/11/03(金) 19:13:00質問とは無関係ですが,処理の内容がフォームの中で完結するなら普通の手続きではなくてメソッドにしましょう(ソースコードがいろんな意味でわかりやすくなる).
それともうひとつ,管理番号からイメージコンポ(の実体)を特定する処理とイメージコンポに対し描画処理をする部分は分離した方が良いと思います.
フォームの宣言のprivate節に参照専用の配列を作り,コンストラクタで実際のイメージコンポの場所を覚えさせます.
(※宣言:interface節に書く)
type
TForm1 = class(TForm)
private
FImages: array [1..2] of TImage; // イメージコンポの場所を記憶させる変数
procedure Draw(Image: TImage); // 描画メソッド
procedure YOBIDASHI; // 使い方の例
public
constructor Create(AOwner: TComponent); override;
end;
(※実装:implementation節に書く)
constructor TForm1.Create(AOwner: TComponent);
begin
inherited;
FImages[1] := Image1; // Image1の場所を覚えさせる(コンポを複製しているのではない!)
FImages[2] := Image2; // Image2の場所を覚えさせる(同)
end;
procedure TForm1.Draw(Image: TImage);
begin
Image.Canvas.TextOut(100,100,'abc');
end;
procedure TForm1.YOBIDASHI;
begin
Draw(FImages[1]);
Draw(FImages[2]);
end;
こうしておけばイメージコンポが3枚以上に増えてもほとんどそのまま使えますし,
イメージコンポに違う描画処理を加えたい場合にも違う描画処理だけを書いたメソッドを追加するだけで済みます.
0032ななしへたぐらま ◆XcB18Bks.Y
2006/11/03(金) 19:56:02具体的に何がしたいかを書いた方がよろしいのでは?
もしボタンの見出しやOnClickイベントハンドラを同じにしたいということでしたら
>>28氏の仰るようにアクションオブジェクトを使います.
0033デフォルトの名無しさん
2006/11/03(金) 20:44:020034デフォルトの名無しさん
2006/11/03(金) 22:24:320035デフォルトの名無しさん
2006/11/03(金) 22:26:100036デフォルトの名無しさん
2006/11/03(金) 22:26:51003718
2006/11/03(金) 22:27:04どうも、18です。
具体的にやりたいことはボタン(などの一般的なコンポーネント)のコピーをコード上で作りたいのです。
Name以外の全てのプロパティ(+イベントハンドラ)が等しいもう1つのコンポーネントを作りたいです。
新しいコンポーネントをコード上で作成するのはできました。
全てのプロパティをコピーする命令文が1行でビシっと決まるのかと思い、Assignを使ったところエラーが出ました。
いまは必要なプロパティとOnClickなどのイベントハンドラをコピー元のボタンから新規作成したボタンへ代入して目的を達成してます。
(ちょっと面倒だし、コードがきたない。あとから必要なプロパティが増えた場合修正するのが大変そう。)
アクションオブジェクトはヘルプを見ましたが、具体的な使い方がわかりません。
イベントハンドラを共有化できそうですが、例えばCaptionなどのプロパティもActionを使ってコピーできるのですか?
0038デフォルトの名無しさん
2006/11/03(金) 22:30:05while True do
Mouse.CursorPos := Point(0, 0);
でいいんでね?
0039デフォルトの名無しさん
2006/11/03(金) 22:31:39RegisterHotkeyはWinキー指定できるのよ
0040ななしへたぐらま ◆XcB18Bks.Y
2006/11/03(金) 22:42:03字面だけだと意味を特定できないのですが
もしマウスカーソルの移動範囲をアプリケーションのウィンドウの範囲に制限させたいということでしたら
ClipCursorというAPIで実現できるみたいですよ.
0041デフォルトの名無しさん
2006/11/03(金) 22:45:51ありがとうございます。
移動範囲を制限するのではなく、
マウスのカーソルの表示を固定したいのです。
たとえば自アプリの中のみの表示でしたら以下のソースで制御できます。
TForm内に記述。
Screen.Cursor := crCross;
しかし、このソースだと自アプリのフォームを抜けたときに
通常のマウスカーソルになってしまいます。
これを持続させたいのですが、よい方法が思いつかないのです。
0042デフォルトの名無しさん
2006/11/03(金) 22:48:000043デフォルトの名無しさん
2006/11/03(金) 22:48:39そんな解決方法は求めていません。
真面目にお願いします。
0044デフォルトの名無しさん
2006/11/03(金) 22:52:13とても聞く人間の姿勢ではないよな。
少しは自分で調べてるのか?
0045デフォルトの名無しさん
2006/11/03(金) 22:54:48その回答で答えたあなたが、ふざけているからです。
姿勢がどうのこうの言われる筋合いはありません。
後、自分では調べています。
しかし解決しないから質問しているのです。
0046デフォルトの名無しさん
2006/11/03(金) 22:57:03たまにはこういう冗談もいいんじゃねw
笑いのツボにははまらないけど。
0047デフォルトの名無しさん
2006/11/03(金) 22:58:220048デフォルトの名無しさん
2006/11/03(金) 23:02:03「 ̄ `ヽ、 ______
L -‐ '´  ̄ `ヽ- 、 〉
/ ヽ\ /
// / / ヽヽ ヽ〈
ヽ、レ! { ム-t ハ li 、 i i }ト、
ハN | lヽ八l ヽjハVヽ、i j/ l !
/ハ. l ヽk== , r= 、ノルl lL」
ヽN、ハ l ┌‐┐ ゙l ノl l
ヽトjヽ、 ヽ_ノ ノ//レ′
r777777777tノ` ー r ´フ/′
j´ニゝ l|ヽ _/`\
〈 ‐ 知ってるが lト、 / 〃ゝ、
〈、ネ.. .lF V=="/ イl.
ト |お前の態度が とニヽ二/ l
ヽ.|l 〈ー- ! `ヽ. l
|l気に入らない lトニ、_ノ ヾ、!
|l__________l| \ ソ
0049デフォルトの名無しさん
2006/11/03(金) 23:02:05つかそんなの誰も求めないからなw
そんなの欲しがるのはえらそうに質問できるゆとりだけだよw
0050ミ,,゚Д゚彡 ◆A6VzDeLphI
2006/11/03(金) 23:11:50MemStream := TMemoryStream.Create;
try
MemStream.WriteComponent(Original);
Original.Free;
MemStream.Position := 0;
MemStream.ReadComponent(Self);
finally
MemStream.Free;
end;
ストリームにWriteComponentとReadComponent
で、書込読込すると、
たしか、Publishプロパティの属性は
コピーできるよ。
0051デフォルトの名無しさん
2006/11/03(金) 23:26:07ActionListを貼り付けて新しいアクションを作成。
CaptionとかHintとかイベントとかを設定。
NewButton1.Action := Action1;
でOk。
005218
2006/11/03(金) 23:28:14MemoryStreamというのは使ったことが無いのでヘルプと格闘しながらがんばってみます。
コードまで示してくれて、ありがとうございました。
0053デフォルトの名無しさん
2006/11/03(金) 23:28:18他のアプリがアクティブな状態でカーソルだけ自アプリで制御したいの?
他のアプリもカーソル形状を設定しているのは理解できるよね?
0055デフォルトの名無しさん
2006/11/03(金) 23:31:48ええ、理解できます。
それを何とかしたいのですが、何か方法はないものかと模索していました。
出来ないというのであれば、諦めたいと思います。
0056デフォルトの名無しさん
2006/11/04(土) 01:31:30とりあえず、ある時点でのファイルの内容を取り出そうとしたのですが
AssignFile→Resetとした時点で書き込み禁止がセットされて、テキストファイルの成長が止まってしまいます。
使える関数名などを教えていただけないでしょうか。
0057デフォルトの名無しさん
2006/11/04(土) 01:41:02FileMode
0058デフォルトの名無しさん
2006/11/04(土) 01:50:32ありがとうございます。
0059デフォルトの名無しさん
2006/11/04(土) 03:00:150060デフォルトの名無しさん
2006/11/04(土) 04:17:28ある程度で良いなら、グローバルフックでWM_SETCURSORを奪えば可能かも。
根本的にやるなら、全プロセスの SetCursor API を書き換えるとか。
(可能かどうかは知らない)
0061デフォルトの名無しさん
2006/11/04(土) 05:28:07if X then
begin
____処理A;
____if Y then
____begin
________処理B;
____end
end;
が、OKで
if X then
begin
____if Y then
____begin
________処理B;
____end
____処理A;
end;
だと、処理Aのところでセミコロンが必要ってエラー出るのは何故なんでしょ?
0062デフォルトの名無しさん
2006/11/04(土) 05:30:26そりゃ当然だべ
endの次に処理Aが来るので、まだ文が続くから区切りとしてセミコロンが
必要。前の例はもう文が終わっているのでセミコロン不要
006361
2006/11/04(土) 05:37:31レスどうもです。
やっと、ネストでのセミコロンの要否の意味合いが分かりました。汗)
単純に if_if_end_end; のように間のセミコロンは必要ないものだと思ってました。
、、、そっか、確かにそうだよな。
0064デフォルトの名無しさん
2006/11/04(土) 06:00:38Cは単文の終わり、Pascalは単なる区切り
0065デフォルトの名無しさん
2006/11/04(土) 06:46:35TMyMemo=class(Tmemo)
constructor Create; override;
end;
constructor TMymemo.Create;
begin
inherited;
Color := clYerrow;
Font.Color := clBlue;
end;
でいいんでしょうか?inheritedはかならずいります?
006665
2006/11/04(土) 06:48:58begin
inherited Create;
Color := clYerrow;
自分で書いたの見たらinherited Create;でした。
見えないバグがあったら怖いし、教えてください!
0067デフォルトの名無しさん
2006/11/04(土) 06:51:50inherited Create; {inherited:「上位クラスの処理を行う」という意味}
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/8945/delphi/tip1.html
006865
2006/11/04(土) 06:57:41つまり、上位クラスのCreateをさせておいてから、自前クラスの処理(Color := clYerrow;)やらをしてるわけで、俺の書いたのでおkってことですか?
0069デフォルトの名無しさん
2006/11/04(土) 09:47:25begin
inherited Create(AOwner); // TCustomMemoのコンストラクタを呼ぶ
Color := clYerrow;
:
end;
のほうがいいと思うよ。
0070デフォルトの名無しさん
2006/11/04(土) 10:44:15inheritedが上位クラスのメソッドを呼び出しかと。
この場合上位クラスは継承元のTMemoで、TMyMemoはTMemoを継承したクラスということになる
んで、何もコードを書かない状態ならばTMyMemoはTMemoと同じ動作をする(はず)
例えば、犬(上位クラス)を飼っているとして回れ右(というメソッド)を覚えさせたとしよう
だが犬は心不全で死んでしまったのでクローン技術でよみがえらせることにした
クローン犬(子クラス)は犬のクローンなので生まれた時から回れ右を覚えているわけだが、
それだけでは犬と同じになってしまってどこか寂しい
そこで回れ右(というメソッド)と言うだけで回れ右+ジャンプを覚えさることにする
本当なら飼い主は回れ右という命令で(回れ右+ジャンプ)をしてほしいと思っているが、
しかし犬は回れ右という命令で(ジャンプ)をするようになってしまった
つまり回れ右(という継承元と同じ名称のメソッド)という命令がジャンプ(という継承元とは別の動作)に置き換わったわけだ
困った飼い主がブリーダーに相談したところ本来の命令を思い出す魔法の首輪(inherited)をくれた
そしてその首輪を付けて回れ右と言うと(ジャンプ)ではなく(回れ右+ジャンプ)をするようになったとさ
0071デフォルトの名無しさん
2006/11/04(土) 10:45:26public
procedure MawareMigi; {犬の回れ右}
end;
TCloneDog = class(TDog)
public
procedure MawareMigi; {クローン犬の回れ右}
end;
implementation
procedure TDog.MawareMigi;
begin
MawatteMawatteMawaru;
end;
procedure TCloneDog.MawareMigi;
begin
inherited; {これで犬の回れ右を呼び出す}
JumpJumpJump; {三段跳び}
end;
同じ名称のメソッドだが中身は別物
という解釈でよろしいでしょうかえろい人('A`;)
0072デフォルトの名無しさん
2006/11/04(土) 13:33:260073デフォルトの名無しさん
2006/11/04(土) 13:34:250074デフォルトの名無しさん
2006/11/04(土) 13:50:49TCloneDog = class(TDog)
public
procedure MawareMigi; override;
end;
0075デフォルトの名無しさん
2006/11/04(土) 14:39:15下にある画像に重ね合わせるにはどうしたらいいんでしょうか?
自分なりにずっと調べてるんですがどうしても分かりません。
どうか御教授ください><
0076デフォルトの名無しさん
2006/11/04(土) 18:53:420077デフォルトの名無しさん
2006/11/04(土) 20:38:02読み込んだ画像の一部のみをCopyRectとかそういうので切り貼りしたいんです。
そういうことってdelphiでは出来ないんでしょうか?
0078デフォルトの名無しさん
2006/11/04(土) 21:01:460079デフォルトの名無しさん
2006/11/04(土) 21:33:570080デフォルトの名無しさん
2006/11/04(土) 21:42:570081デフォルトの名無しさん
2006/11/04(土) 21:49:450082デフォルトの名無しさん
2006/11/04(土) 21:57:22008375=77
2006/11/04(土) 22:04:07Bitmapを弄ってもどうしても指定色を透過しての切り貼りが出来ません…(´・ω・`)
教えていただいたことをヒントにもう少し頑張ってみたいと思います。
どうもありがとうございました。
0084デフォルトの名無しさん
2006/11/04(土) 22:09:33上の文字列からnest(より後の文字列で','の後ろから次の','までを取得したいです。
但しnest1(2,3,"nest2(4,,)")のなかの','はカウントしないようにしたいのですが、
どういう風にしたらいいか分かりません。
0085デフォルトの名無しさん
2006/11/04(土) 22:15:31答えたいが、なにを言っているのかわからない
0086デフォルトの名無しさん
2006/11/04(土) 22:20:08例えばその例だと結局どんな文字列を切り出したいんだ?
0087デフォルトの名無しさん
2006/11/04(土) 22:24:49分かりづらい聞き方ですみません。
上の答えは'nest1(2,3,"nest2(4,,)")'が取得したかったのです。
また同じように'nest1(2,3,"nest2(4,,)")'から2番目の','から3番目つまり"nest2(4,,)"が取得したいです。
ぜひ教えてください。お願いします。
0088ななしへたぐらま ◆XcB18Bks.Y
2006/11/04(土) 23:07:14TransparentBltというAPIではどうですか?
Win95には存在せずWin98にはメモリリークのバグがあって使えないらしいのですが.
文法)
TransparentBlt(転送先デバイスコンテキスト, 同左上X座標,同Y, 同幅, 同高さ,
転送元デバイスコンテキスト, 同左上X座標,同Y, 同幅, 同高さ, 透明色);
補足)
デバイスコンテキストってところには,キャンバス(Canvas)のHandleプロパティを指定してください.
例)
TransparentBlt(PaintBox1.Canvas.Handle, 10, 10, 120, 120, FBmp_Char.Canvas.Handle, 0, 40, 120, 120, clWhite);
自宅の環境(XPのSP2)で手元の画像で確認はしています.
0089デフォルトの名無しさん
2006/11/04(土) 23:21:28透明色を設定する
好きなところへ描画
全部 VCL だけでできるわな
0090デフォルトの名無しさん
2006/11/04(土) 23:28:49()を調べて、
'nest(1,nest1(2,3,"nest2(4,,)"),)';
11111222222223333333333344433221
2に該当した','が引数の区切りだなーて分かるので、
2番目の引数なら
左の(2 and ',')と右の(2 and ',') の間の文字
みたいな事をやる。
0091デフォルトの名無しさん
2006/11/04(土) 23:36:10ようはパーサを作りたいんだね
関数引数取得処理内で関数呼び出しに出会ったときは、その引数を
再帰的に処理して後で上のレベルの文字列と合成すればいい
0092デフォルトの名無しさん
2006/11/05(日) 00:35:53>constructor TMymemo.Create;
>begin
> inherited;
コード補完でImplementation以下のコードを出すと、overrideした手続の中は、
inherited;だけ出ますよね?
これはinherited;だけで、 inherited Create;みたいに子クラスで呼ぶ手続名を省略すると、
継承元のオーバーライドしてるのと同名の手続がinheritedされるっていう、暗黙の掟みたいなのがあるんですか?
if bool1 thenって省略できるみたいに?
0093デフォルトの名無しさん
2006/11/05(日) 00:41:14同じ名前で同じパラメータの手続きが呼ばれる
暗黙の掟などではなく、仕様
0094デフォルトの名無しさん
2006/11/05(日) 00:45:53クラスを派生させて作るとき、
親クラス、更にはその親〜基底までについて、全て知っておかなければならないのですか?
もしかしたら、親クラスにあるメソッドやフィールドと同名のものを作ってしまう、と言うこともあると思います。
Delphiでいうと、TObjectを全て知らない限りは、自分でクラスを作るなどしないほうが良いですか?
0095デフォルトの名無しさん
2006/11/05(日) 00:49:09なんか問題あるの?
0096デフォルトの名無しさん
2006/11/05(日) 00:53:48コンパイラがエラー出してくれるから心配いらないと思うよ。
0097デフォルトの名無しさん
2006/11/05(日) 01:02:21外から継承元クラスのそのメンバを使いたい時にはちと面倒があるが、特に大きな問題は無い。
継承元のクラスの仕様のうち、多態性の為に仕様が厳密に定められているものはそれに正しく従う必要があるが、
そのあたりは軽くドキュメント(標準のクラスならHELP)を流し読みすれば大体解るようになってる。
009897
2006/11/05(日) 01:03:560099デフォルトの名無しさん
2006/11/05(日) 01:27:380100デフォルトの名無しさん
2006/11/05(日) 01:39:11それは釣りですか?
0102デフォルトの名無しさん
2006/11/05(日) 03:38:09TControl の protected にあるから、不可能では無いけど、
表示ルーチンを自分で書く必要がある。
>>101 マニュアル読む。
0104デフォルトの名無しさん
2006/11/05(日) 08:26:12> この場合上位クラスは継承元のTMemoで、TMyMemoはTMemoを継承したクラスということになる
> んで、何もコードを書かない状態ならばTMyMemoはTMemoと同じ動作をする(はず)
TMymemoのコンストラクタには何も引数を指定してないのに、TMemoのコンストラクタが
正常に呼ばれるのか?
>>99
下にPanelを敷けばいいんじゃない。
0105デフォルトの名無しさん
2006/11/05(日) 20:23:06のような、カッコに入れた変数に影響を与えるような関数は
どうやって作ればいいのでしょうか?
0106デフォルトの名無しさん
2006/11/05(日) 20:38:080107ななしへたぐらま ◆XcB18Bks.Y
2006/11/05(日) 23:28:36良い悪い以前にコンパイラエラーになりませんか?
手元のDelphi 5ではコンパイルできなかったのですがDelphi 6以降は違うのでしょうか.
>>104
パネルのBevelInnerとBevelOuterをbvNoneにすれば枠無しのパネルが出来ますからね.
もっともデフォルトのくぼんだようなイメージで表示させるならパネルだけで可能ですね.
0108デフォルトの名無しさん
2006/11/05(日) 23:34:067から比べてめぼしい機能はありますか?
0109デフォルトの名無しさん
2006/11/05(日) 23:38:25どとねと対応w
0110デフォルトの名無しさん
2006/11/06(月) 00:19:00D6みたいにちょっとした事で吐きだすコードが
大きく変わる事は少ないっぽい気はするけど
0111デフォルトの名無しさん
2006/11/06(月) 00:26:16インライン展開とFastMMがあっても遅いTurbo終わってるな
0112デフォルトの名無しさん
2006/11/06(月) 01:35:52速度を上げるならFastMoveとFastCodeだけでよさそう。
0113デフォルトの名無しさん
2006/11/06(月) 01:39:24ライブラリが糞化しているの?
0114デフォルトの名無しさん
2006/11/06(月) 02:23:13それともそれ以降の開発者がクソなのか。
0115デフォルトの名無しさん
2006/11/06(月) 02:30:34> TurboよりD6が吐くコードのが速い
また根拠の無いことを。
> FastMMは結構メモリを食うね。
どう食うのか、具体的に言ってみな>実行力の無いアンチ君。
0116デフォルトの名無しさん
2006/11/06(月) 02:33:42http://bdn.borland.com/article/0,1410,33050,00.html#6Functionandprocedureinlining
0117デフォルトの名無しさん
2006/11/06(月) 03:18:22スクロールバーのツマミ部分や、ラジオグループのラジオ部分などを
任意の画像に変えることってできますか?
0118デフォルトの名無しさん
2006/11/06(月) 03:33:260119デフォルトの名無しさん
2006/11/06(月) 03:37:55D6でFastMMを使用するとメモリは大体5%〜10%増しになる。
Initializeでメモリを仮に確保しているだけの場合は通常のメモリマネージャーのほうが効率がいい。
正直FastMoveと比べるとあまりご利益は無いわな。
>>117
自力ですべてを描写するのが定石では?
茨の道だけど、SpTBXLibやTBXが参考になると思う。
0120デフォルトの名無しさん
2006/11/06(月) 04:31:01仕組み上、最初に確保してるだけだろ。
5%−10%じゃ微増・誤差の範囲だ。
もうちょっと正確な表現を頼むよ。
0121デフォルトの名無しさん
2006/11/06(月) 04:37:38> 正直FastMoveと比べるとあまりご利益は無いわな。
断片化しないというご利益があるよ。
0122デフォルトの名無しさん
2006/11/06(月) 04:56:440123デフォルトの名無しさん
2006/11/06(月) 05:11:48きっちり調べてみた。
XP home SP2 Mem768MB、KEN_ALL.CSVで
TStringList: 15872k→17220k
TEditorEx: 21696k→23004k、
TStringGrid: 240280k→151332k
THogeTextView:: 49548k→50496k
印象だけで書込みしていたな…
0124デフォルトの名無しさん
2006/11/06(月) 05:13:310125デフォルトの名無しさん
2006/11/06(月) 08:22:400126デフォルトの名無しさん
2006/11/06(月) 09:21:250127デフォルトの名無しさん
2006/11/06(月) 09:47:020128デフォルトの名無しさん
2006/11/06(月) 10:51:36報告、乙。
オプションの設定をどこか変えれば
消費量を抑えられるとか、無いの?
0129デフォルトの名無しさん
2006/11/06(月) 11:09:04見にくくてさ…
けどそのために2万9千円か。
すげぇコンポとかついてないの?
0130デフォルトの名無しさん
2006/11/06(月) 11:20:12Borland Developer Studio 2006 No.10
http://pc8.2ch.net/test/read.cgi/tech/1162262669/
0131デフォルトの名無しさん
2006/11/06(月) 11:46:000132デフォルトの名無しさん
2006/11/06(月) 12:07:33購入の参考にならんじゃん。
0133デフォルトの名無しさん
2006/11/06(月) 12:32:260134デフォルトの名無しさん
2006/11/06(月) 13:50:55落としてためせば全部わかるんじゃねえのか
0135デフォルトの名無しさん
2006/11/06(月) 18:40:020136デフォルトの名無しさん
2006/11/06(月) 21:01:070137デフォルトの名無しさん
2006/11/06(月) 23:22:120138デフォルトの名無しさん
2006/11/06(月) 23:36:560139デフォルトの名無しさん
2006/11/07(火) 00:22:01http://homepage1.nifty.com/MADIA/delphi/Tokusen/NewBUtton.htm
0140デフォルトの名無しさん
2006/11/07(火) 00:39:08ポトベタでSpinEdit使ったソース書き換えないといコンパイル出来ない・・・
0141デフォルトの名無しさん
2006/11/07(火) 03:30:510142デフォルトの名無しさん
2006/11/07(火) 03:39:01俺はPascalの文法が好きだ。
0143デフォルトの名無しさん
2006/11/07(火) 04:51:550144デフォルトの名無しさん
2006/11/07(火) 06:24:300145デフォルトの名無しさん
2006/11/07(火) 06:25:310146デフォルトの名無しさん
2006/11/07(火) 06:33:59Caption := 'hoge'#9'hage';
0147デフォルトの名無しさん
2006/11/07(火) 07:50:56でも、発展性からいって、もっと柔軟なことができそうな気がします。
構造体のメンバのポインタを使ってこんなことできるゼってのを素人のボキュに紹介してくれませんか?
0148デフォルトの名無しさん
2006/11/07(火) 07:53:240149デフォルトの名無しさん
2006/11/07(火) 07:59:480150デフォルトの名無しさん
2006/11/07(火) 08:00:44悲しいね。
0152デフォルトの名無しさん
2006/11/07(火) 10:19:410153デフォルトの名無しさん
2006/11/07(火) 11:41:190154デフォルトの名無しさん
2006/11/07(火) 11:45:15Dephiインタープリタってのがあるぉ。
ttp://www.kobira.co.jp/sakura/d_Con_Cgi.htm
del_005.zip
0155デフォルトの名無しさん
2006/11/07(火) 13:06:39>このファイル書式は、アーキテクチャの異なるシステム間または機能もしくは設計
>の異なる装置間で交換可能な形で図形を記述するための要素の集合からなる。
UNIXとかでも使えるってことですか?
0156デフォルトの名無しさん
2006/11/07(火) 13:21:280157デフォルトの名無しさん
2006/11/07(火) 13:40:57むりぽ
WindowsとUnixの描画命令に互換性ないでしょ?
メタファイルは画像じゃなくて描き方をデータとして記憶する
メリットは
・データサイズが小さい
・拡大縮小が綺麗に行える
・パーツ単位の移動、回転等が容易
デメリットは
・いちいち描画を行うので遅い
・写真みたいな画像は扱えない
0158デフォルトの名無しさん
2006/11/07(火) 17:56:35Metafile にリッチテキストファイルを描きたいのですがどうすればよいでしょうか。
0159デフォルトの名無しさん
2006/11/07(火) 20:54:11これいいなー
0160デフォルトの名無しさん
2006/11/08(水) 00:54:29の後に
コード取得時にエラーが発生しました。Connection Failed
ってでてインストールできないです
Delphi6Personalはもう使えないのでしょうか?
0161147
2006/11/08(水) 00:58:43これの解りやすいサイトか、やり方教えてください!
0162デフォルトの名無しさん
2006/11/08(水) 01:03:56ttp://bdn.borland.com/article/33580
これでどうよ?
0163デフォルトの名無しさん
2006/11/08(水) 01:07:26日本の本家がゲフンゲフンでアレなので
「Delphi 使用許諾」で検索すれ。
代わりの方法が見つかるハズ。
0164デフォルトの名無しさん
2006/11/08(水) 06:15:01Explorerのコンテキストメニューを出す方法ってありますか?
今はcontextmenu.exeという外部ツールを呼び出しているんですが
どうも呼び出しがもっさりしているのでアプリ内に組み込んでしまいたいのですが。
0165デフォルトの名無しさん
2006/11/08(水) 07:50:58ttp://forum.nifty.com/fdelphi/samples/01162.html
0166デフォルトの名無しさん
2006/11/08(水) 09:38:45コンポーネントは付いているのでしたっけ?
0167816
2006/11/08(水) 09:56:36ある。
> フォルダ選択
SHBrowseForFolder のこと?
API で呼べるし、コンポにしてコードでCreateするという手もある。
0168デフォルトの名無しさん
2006/11/08(水) 10:11:43タスクトレイの方はあるみたいですね。
>SHBrowseForFolder のこと?
そうです。
>API で呼べるし、コンポにしてコードでCreateするという手もある。
て事は、こちらはないのか・・・
0169デフォルトの名無しさん
2006/11/08(水) 11:18:41簡単に作れるから、コンポがいくらでもあるよ。
コンポ初心者の定番。
ソースを拾ってきて、Create すればいいだけ。
非ビジュアルなんだからForm に置いても意味ないし。
0170デフォルトの名無しさん
2006/11/08(水) 12:18:30わかりました。
探してみます。
0171デフォルトの名無しさん
2006/11/08(水) 12:25:430172デフォルトの名無しさん
2006/11/08(水) 12:30:55ダウンロードしました。
一番下にありましたね。
感謝!
0173デフォルトの名無しさん
2006/11/08(水) 13:19:18http://www.delphianworld.com/
0174デフォルトの名無しさん
2006/11/08(水) 13:19:58http://norg1964.hp.infoseek.co.jp/delphianworld/
0175デフォルトの名無しさん
2006/11/08(水) 23:49:01>>163
http://bdn.borland.com/article/33580でうまくいきました
登録してから約一日でキーが届きました
ありがとうございました
0176デフォルトの名無しさん
2006/11/08(水) 23:59:34のキーワードで検索して出てきたページの説明通りにやったらすぐできたよ
これでやっとすっきりした
俺からもありがとう
0177デフォルトの名無しさん
2006/11/09(木) 07:23:26もしくは、リサイズ中かを表すフラグでもいいです。
0178デフォルトの名無しさん
2006/11/09(木) 07:32:47> フォームがリサイズされ始める時
WM_SIZING
> リサイズが終了したときに
WM_ENTERSIZEMOVE
WM_EXITSIZEMOVE
0179デフォルトの名無しさん
2006/11/09(木) 07:35:27> フォームがリサイズされ始める時
WM_ENTERSIZEMOVE
途中:WM_SIZING
> リサイズが終了したときに
WM_EXITSIZEMOVE
0180デフォルトの名無しさん
2006/11/09(木) 07:42:020181デフォルトの名無しさん
2006/11/09(木) 07:53:54ウインドウの移動中にも来るようですが、この方法を使うことにします。
0182デフォルトの名無しさん
2006/11/09(木) 08:32:49作成したいのですが、どう書けばいいのでしょうか?
0183デフォルトの名無しさん
2006/11/09(木) 08:41:51var
fs:TFileStream;
begin
if fileexists(TEST.txt)=false then
begin
fs := TFileStream.create( 'TEST.txt' , fmcreate );
fs.free;
end;
end;
とかなんとか。
0184デフォルトの名無しさん
2006/11/09(木) 08:45:20fp: TextFile;
begin
AssignFile(fp, 'TEST.txt');
if FileExists('TEST.txt') then
Append(fp)
else
Rewrite(fp);
try
//なんたらかんたら〜
except
CloseFile(fp);
end;
end;
0185デフォルトの名無しさん
2006/11/09(木) 08:46:06try〜exceptの部分はtry〜finallyが正解
0186デフォルトの名無しさん
2006/11/09(木) 08:50:52sl: TStringList;
begin
sl:= TStringList.Create;
try
if FileExists('test.txt') then sl.LoadFromFile('test.txt');
//なんたらかんたら〜
sl.SaveToFile('test.txt');
finally
sl.Free;
end;
end;
0188デフォルトの名無しさん
2006/11/09(木) 09:10:297-zip32.dllの圧縮と解凍をしたいのですが・・
コンポーネント無しでしたいのです、面倒でしょうか?
簡単なコンポーネントなどありましたら教えてください。m(__)m
0189デフォルトの名無しさん
2006/11/09(木) 09:12:48簡単なコンポーネント教えてくださいとは是如何に
0190188
2006/11/09(木) 09:20:20すいません
コンポーネント無しのコードが長くなって貼ったりすると
スレに迷惑がかかると思いまして・・
長くて貼るの面倒な場合はコンポーネントで我慢しますの意です
すません
0191デフォルトの名無しさん
2006/11/09(木) 09:31:300192デフォルトの名無しさん
2006/11/09(木) 09:38:130194デフォルトの名無しさん
2006/11/09(木) 11:20:371.7-zip32.dllをLoadLibary
2.GetProcAddressで関数SevenZipのアドレスを取得
3.FreeLibraryで解放
これだけ
0195デフォルトの名無しさん
2006/11/09(木) 11:29:12Delphiの場合、わざわざSafeLoadeLibrary()が用意されているんだが、
LoadLibraryを使わずこっちを使うべきなんかね?
0196デフォルトの名無しさん
2006/11/09(木) 11:53:070197デフォルトの名無しさん
2006/11/09(木) 11:55:380198196
2006/11/09(木) 11:58:29Image1.picture.bitmapのbitmapを引数で渡している関数でクリアするにはどうしたら良いでしょう?
0199デフォルトの名無しさん
2006/11/09(木) 12:03:100200デフォルトの名無しさん
2006/11/09(木) 12:06:03ってこと?
Image1が変になりそうな悪寒でちょっと怖い
0201デフォルトの名無しさん
2006/11/09(木) 12:08:38>bitmap.free
これはやっちゃダメ
詳しくは書かないけどDelphiの神様の天罰が下る
0202196
2006/11/09(木) 12:17:47本当は、汎用性のために引数TBitmapのままにしたいんだけどなぁ。
0203デフォルトの名無しさん
2006/11/09(木) 12:24:35サンプル作ったからケツを出せ
var
NaNaZipHandle: THandle;
AppHandle : THandle;
SevenZip: function (const hWnd: HWND; szCmdLine: PChar; szOutput: PChar; dwSize: DWORD): Integer; stdcall;
procedure TForm1.Button1Click(Sender: TObject);
begin
SevenZipCommand('a ' + '"' + Edit1.Text + '"' + ' ' + '"' + Edit2.Text + '"');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SevenZipCommand('e "'+Edit1.Text+'"');
end;
0204デフォルトの名無しさん
2006/11/09(木) 12:25:31function SevenZipCommand(command: string): string;
begin
NaNaZipHandle := LoadLibrary('7-zip32.dll');
if NaNaZipHandle = 0 then
begin
ShowMessage('7-zip32.dllが見つからないっス!');
exit;
end;
try
SevenZip := GetProcAddress(NaNaZipHandle, 'SevenZip');
SetLength(Result, 1024);
SevenZip(AppHandle, PChar(command), PChar(Result), 1023);
Result := string(PChar(Result));
if StrToInt(Result) =0 then
begin
ShowMessage('エラーっス![ ' + Result + ']' + 'っス!');
exit;
end;
finally
FreeLibrary(NaNaZipHandle);
end;
end;
0205デフォルトの名無しさん
2006/11/09(木) 12:32:55こんなことしたいのかな?
procedure BitmapChange(var ABitmap: TBitmap; AFileName: String);
begin
ABitmap := nil;
if FileExists(AFileName) then
ABitmap.LoadFromFile(AFileName);
end;
0206202
2006/11/09(木) 12:38:58ビットマップを差し替えたいんじゃなくて、
ビットマップ印刷処理中にTBitmapのメモリを開放したいです。
TBitmap→DIB→DIB印刷
なのを、
TBitmap→DIB→TBitmap開放→DIB印刷
みたいな。
0208デフォルトの名無しさん
2006/11/09(木) 12:48:57Delphiのオブジェクトの実体はポインタだから
nilを代入すれば何も指さない=保持している内容のクリア
0209202
2006/11/09(木) 12:55:220210デフォルトの名無しさん
2006/11/09(木) 13:07:11それならFreeメソッドでメモリ解放出来る
0211202
2006/11/09(木) 13:19:25じゃあ、TImageに消させろといっても、
TBitmapを印刷する関数の引数をTImageに変えたくない。
だって、必ずしもTImageを経由するわけじゃなく、TBitmapを自前でCreateすることが将来あるかも。
0213ななしへたぐらま ◆XcB18Bks.Y
2006/11/09(木) 16:05:54nilを代入しても保持している内容はクリアされません.
Delphiのオブジェクト変数は常にポインターなので,
つまりオブジェクトのある場所を覚えているだけなので,
オブジェクト変数にnilを代入しても
生成したオブジェクト(オブジェクトの実体=インスタンス)がどこにあるかという情報を
書き換えられてしまう(消されてしまう)だけなのです.
一方でコンポーネントなどのオブジェクト型のプロパティにnilを代入する場合は話が違ってきます.
これはソースコードの上では代入でも変数への代入になる場合と代入用のメソッドが呼ばれる場合とがあります.
後者の場合はメソッドの中にどのようなコードを書くかはプログラマーの自由です.
イメージコンポの Image1.Picture := nil や Image1.Picture.Bitmap := nil といったコードでは
プロパティへの代入はメソッドに関連づけられ,
このメソッドの中でグラフィックオブジェクトを解放しています(解放するコードが書かれています).
0214ななしへたぐらま ◆XcB18Bks.Y
2006/11/09(木) 16:19:03TBitmapのビットマップを空にする方法についてはヘルプにも書かれていないようですが
Delphi 5のGraphicsユニットのソースをちょっと見てみた感じでは
パラメータをnilにしてAssignメソッドを呼び出せば空になりそうです.
(bmp1.Assign(nil) みたいな感じで)
0215202
2006/11/09(木) 16:22:03うお、そうなんだ!>>214
実はあきらめて、206のフローをバラせるように関数をクラス化してる作業中でした。
やっぱ、やめてbmp1.Assign(nil)にしようかなぁ。。。
0216デフォルトの名無しさん
2006/11/09(木) 19:14:270217デフォルトの名無しさん
2006/11/09(木) 20:22:24もっとエレガントな方法もあるかも。
0218デフォルトの名無しさん
2006/11/09(木) 23:03:590219デフォルトの名無しさん
2006/11/09(木) 23:23:400220デフォルトの名無しさん
2006/11/10(金) 00:45:26リストビュー(OWnerData=True)の選択アイテム(ファイル)の合計ファイルサイズを
選択された毎に求めたい場合はどうすればいいですか?
全検索すれば楽なんだけど何か効率が悪い気がする・・・
0221デフォルトの名無しさん
2006/11/10(金) 01:34:01Delphiクイックリファレンス
ttp://www.oreilly.co.jp/books/4873110408/toc.html
書籍とか絶版になってるの多くて、座学ができません。そもそもDelphi本自体本屋にないし(うちの地方)。
どなたか、Delphiのポインタ関連を自分のブログとかに整理してる人とか、されてるurlとかうpってくれませんか?
ようやくポインタが理解できかかってきてるので、、
0222デフォルトの名無しさん
2006/11/10(金) 01:46:41部員弐号たんだな。
部員弐号でぐぐってみそ。
でも関数ポインタについては書いてなかったかも。
0223デフォルトの名無しさん
2006/11/10(金) 01:48:260224デフォルトの名無しさん
2006/11/10(金) 02:51:07本屋行けば、ポインタだけを説明してる本があるよ。
0225デフォルトの名無しさん
2006/11/10(金) 02:56:27拝見しましたが、関数ポインタにはふれられてなかったですね…
(´・ω・`)ショボーン
0226デフォルトの名無しさん
2006/11/10(金) 03:04:40gethostbyaddr
WinSockの話。
0227デフォルトの名無しさん
2006/11/10(金) 03:07:01変数やら、関数やら、クラスのインスタンスやらが、実際にメモリ上にあるときの
アドレスだよ。それだけ。
0229デフォルトの名無しさん
2006/11/10(金) 05:52:35コテは>>227でした
0230デフォルトの名無しさん
2006/11/10(金) 05:59:06Lengthを使えばよさそうだけどどうも上手くいきません…
0231デフォルトの名無しさん
2006/11/10(金) 06:18:14理解しかかってるときなら徹底的にやったほうがいいよ。
苦労は実になる。
0232デフォルトの名無しさん
2006/11/10(金) 06:26:26Label.Caption := IntToStr(Length(Edit.Text));
0233デフォルトの名無しさん
2006/11/10(金) 06:27:33label1.caption := length(tedit(sender).text) + ' byte';
0234デフォルトの名無しさん
2006/11/10(金) 07:19:260235デフォルトの名無しさん
2006/11/10(金) 08:28:14あーそうか、文字列に変えればいいのか
なんでこんなことに気付かなかったんだろw
>>231
そーなんですよー…orz
0236デフォルトの名無しさん
2006/11/10(金) 08:28:38同じは言いすぎだと思うよ
0237デフォルトの名無しさん
2006/11/10(金) 08:56:17んー。
Delphiのポインタだけの本ってのは見ないね。
CやC++はいろいろ出てるけど。
DelphiはじめたばかりでC++のポインタ理解汁ってのはちょっと酷かもな。
微妙に違うし。
0238デフォルトの名無しさん
2006/11/10(金) 09:08:19「概念」は同じでしょ。文法が違うだけで。
0239デフォルトの名無しさん
2006/11/10(金) 11:10:14ヒント:Pascal
0240デフォルトの名無しさん
2006/11/10(金) 11:15:070241デフォルトの名無しさん
2006/11/10(金) 11:32:540242デフォルトの名無しさん
2006/11/10(金) 16:29:040243デフォルトの名無しさん
2006/11/10(金) 16:38:340244デフォルトの名無しさん
2006/11/10(金) 17:25:480245デフォルトの名無しさん
2006/11/10(金) 18:39:23TPrinter.GetPrinterで取得できるのはDEVMODE構造体じゃなくて、ハンドルみたいなので。
0246245
2006/11/10(金) 19:19:460247デフォルトの名無しさん
2006/11/10(金) 19:56:15オンオフを検出する方法を教えてください
0248デフォルトの名無しさん
2006/11/10(金) 20:15:00お前はK&Rから勉強しなおして来い
それでも同じ概念だと思うなら首をつったほうがいい
0249デフォルトの名無しさん
2006/11/10(金) 21:04:12お前もK&Rから勉強しなおして来い
それでも違う概念だと思うなら首をつったほうがいい
0250デフォルトの名無しさん
2006/11/10(金) 21:04:500251デフォルトの名無しさん
2006/11/10(金) 21:13:440252デフォルトの名無しさん
2006/11/10(金) 21:17:191 物事の概括的な意味内容。「―をつかむ」「文学という―から外れる」
2 《concept》形式論理学で、事物の本質をとらえる思考の形式。
個々に共通な特徴が抽象によって抽出され、それ以外の性質は捨象されて構成される。内包と外延をもち、
言語によって表される。
0253デフォルトの名無しさん
2006/11/10(金) 21:19:560254デフォルトの名無しさん
2006/11/10(金) 21:24:31先にDelphiのオブジェクト指向を勉強してそれがようやくわかったあと、
じゃあ、クラスじゃなくて整数型変数を動的に扱いたいなあと思ったときに
ようやくポインタがなんなのかよくわかったってな経験があったなあ
やっぱりポインタは、本だけじゃわからんよね
0255デフォルトの名無しさん
2006/11/10(金) 21:43:340256デフォルトの名無しさん
2006/11/10(金) 21:51:49その本の販売URLを頼む
0257デフォルトの名無しさん
2006/11/10(金) 21:57:22ネタだよね?
0258デフォルトの名無しさん
2006/11/10(金) 22:01:400259デフォルトの名無しさん
2006/11/10(金) 22:18:29さすモノってだけじゃないのでしょうか。ずっとそう思ってたのですが…
0260デフォルトの名無しさん
2006/11/10(金) 22:19:41ポインタの概念そのものは言語に依存しない。ただしフードの下に隠されているものはまったく異なるのかもしれないが。
0261ななしへたぐらま ◆XcB18Bks.Y
2006/11/10(金) 22:23:38ご質問の内容が実際にグリッドの行数を減らすという意味なのか,
表計算ソフトのようにセルの内容だけを削除するという意味なのかはわかりませんが,
いずれにしても途中の行を削除するためのメソッドはありません.
削除する行から下の行のCellsの値(文字列)をひとつずつ,1行下からコピーしてください.
Objectsプロパティを利用している場合はCellsと同様にコピーしてください.
>>219
ファイル一覧を表示させる前にファイル一覧を作るために
FindFirst関数などでファイルの検索を行っているはずですが
そのときにファイル名と一緒にファイルの長さを覚えておけば
再び検索する必要が無くなりますね.
0263デフォルトの名無しさん
2006/11/10(金) 22:53:16クラスも塚越タンの本がきっかけだった気がする
0264デフォルトの名無しさん
2006/11/10(金) 23:02:36国内においてのDelphiの衰退が始まったような希ガス
0265デフォルトの名無しさん
2006/11/10(金) 23:20:35衰退するほど盛んだった時期あったっけか?www
0266デフォルトの名無しさん
2006/11/10(金) 23:22:25Pascalのポインタはその認識で良いよ
C言語のポインタはPascalのポインタの機能を包括した上で機械語のアドレッシングモードを模した
多様な演算機能を持っている、これはPascalのポインタには無い概念だ
0267デフォルトの名無しさん
2006/11/10(金) 23:24:26整数型にキャストすりゃなんでもありな気が。
0268デフォルトの名無しさん
2006/11/10(金) 23:29:18これはどうかな
ttp://www.terra.dti.ne.jp/~vivas/delphi/index.html#THotkeyEx
0269デフォルトの名無しさん
2006/11/11(土) 00:38:110270デフォルトの名無しさん
2006/11/11(土) 00:43:000271デフォルトの名無しさん
2006/11/11(土) 00:45:45fmOpenWriteでCreate→Freeしただけでは何も変わらないし
開いたあと何か書き込んでもファイルサイズ自体は変わらないしで…。
0272デフォルトの名無しさん
2006/11/11(土) 00:46:46むかし、ラオックスブック館(今はマック館)があったころVC++もVBもDelphiも売場の棚の面積は同じくらいだったよなぁ(遠い目)。
いまはJavaにも追い抜かれてるね。
0273デフォルトの名無しさん
2006/11/11(土) 01:54:24プログラム初心者の俺にとってはDelphiはわかりやすくていいのに
0274デフォルトの名無しさん
2006/11/11(土) 01:56:18バカボンのDelphi不買・販促・その他談話室その29
http://pc8.2ch.net/test/read.cgi/tech/1153227982/
0275デフォルトの名無しさん
2006/11/11(土) 03:26:03もしくはコンポーネントありませんか?
0276デフォルトの名無しさん
2006/11/11(土) 03:30:230277デフォルトの名無しさん
2006/11/11(土) 08:58:44演算機能はDelphiにもありますが・・・
Delphiスレで純粋Pascalの話ですとかいうなよ今更wwwwwww
0278デフォルトの名無しさん
2006/11/11(土) 09:00:420279デフォルトの名無しさん
2006/11/11(土) 09:03:140280デフォルトの名無しさん
2006/11/11(土) 09:06:07こうなってくるとCの方も怪しいが。
0281デフォルトの名無しさん
2006/11/11(土) 09:23:29sizeプロパティを0に設定すれば良いはず
0282デフォルトの名無しさん
2006/11/11(土) 09:29:010283デフォルトの名無しさん
2006/11/11(土) 09:53:280284デフォルトの名無しさん
2006/11/11(土) 11:24:58pAnsiCharなんかだと+が使えるとかだっけか。
でもまあ、DLLを使うとき以外は、動的配列でだいたいなんとかなるんでさ。
俺もポインタを覚えた時は喜んでDelphiでもポインタ使ってたけど、
最近は、動的配列でどうにかなるときはポインタを使わずに動的配列使うようにしている。
ガベコレはいいよやっぱり。
0285デフォルトの名無しさん
2006/11/11(土) 11:50:440286デフォルトの名無しさん
2006/11/11(土) 12:04:51ありがと。
0287デフォルトの名無しさん
2006/11/11(土) 12:05:220288275
2006/11/11(土) 12:08:55↑これで事故解決
0289デフォルトの名無しさん
2006/11/11(土) 12:45:42VBと間違えてない?アンチ君
0290デフォルトの名無しさん
2006/11/11(土) 14:28:21TQuery や TIBQuery でこんな感じでパラメータクエリを使って SQL 文を
投げます。
Query1.SQL.Text := 'SELECT col3 FROM Table1' +
' WHERE col1 = :col1' +
' AND col2 = :col2';
Query1.ParamByName('col1').AsInteger := self.IntegerVar;
Query1.ParamByName('col2').AsString := self.StringVar;
Query1.Prepare;
Query1.Open;
:
Query1.Close;
Query1.UnPrepare;
パラメータ設定後に Query1.SQL.Text を見ても「WHERE col1 = :col1」の
ようにプレースホルダがそのまま見えます。実際に投げられる SQL 文を
取得する方法はありますか。
何がしたいのかというと、更新系の SQL 文が発行されたらそれを日時や
ユーザ ID とともにログテーブルに記録したいのです。
0291デフォルトの名無しさん
2006/11/11(土) 15:03:330292デフォルトの名無しさん
2006/11/11(土) 16:17:14Ent 版以上についている、SQL Monitor
IBX だと管理用コンポーネントが色々あったような。
0293デフォルトの名無しさん
2006/11/11(土) 17:14:39Turboの無料版をダウンロードしたのですが、インストール後の初回起動時に
シリアルNoとキーを入力しなければならないみたいですが、このシリアルNoとキーは
どこで入手すればいいかわかりません。
ちなみにTurboの無料はオフィシャルHPからダウンロードしました。
よろしくお願いします。
0294デフォルトの名無しさん
2006/11/11(土) 17:22:500295デフォルトの名無しさん
2006/11/11(土) 17:28:46http://bdn.borland.com/article/33742
0296デフォルトの名無しさん
2006/11/11(土) 17:30:23http://bdn.borland.com/article/33605
0297293
2006/11/11(土) 17:32:20暗号みたいな文章が来たんですが、それ以外にはシリアルナンバーとキーは
ありませんでした。
暗号みたいなテキスト文を置く場所間違ってるのかな・・・。
もう一度やってみます。
0298デフォルトの名無しさん
2006/11/11(土) 17:46:52> ダウンロード時にきたメールには、beginblock/endblockで囲まれた
> 暗号みたいな文章が来たんですが、
体験版と間違えてない?
0299デフォルトの名無しさん
2006/11/11(土) 17:53:28ホームページのマイアカウントのMy Registered Productsで見られた
0300293
2006/11/11(土) 18:46:38それを指定の場所に置いたらシリアル番号聞かれずに起動できたよ!
みんなどうもアリヤトー(*´ω`*)
0301デフォルトの名無しさん
2006/11/11(土) 21:56:15質問なんですけどDelphiでボタンを押すとフォームの色が赤と青に
順々にかわるようにプログラムを書くにはどうしたらいいのでしょうか!?
if文を使って書くのいうことはわかるんですが・・・。
0302デフォルトの名無しさん
2006/11/11(土) 22:07:260303デフォルトの名無しさん
2006/11/11(土) 22:09:26procedure TForm1.Button1Click(Sender: TObject);
begin
if Form1.Color = clBtnFace then
Form1.Color := clRed
else if Form1.Color = clRed then
Form1.Color := clBlue
else
Form1.Color := clBtnFace;
end;
0304デフォルトの名無しさん
2006/11/11(土) 22:22:24int func() {
static int i = 1;
このstatic intは、Delphiではどう訳せばいいですか?
var i: Integer; じゃダメだと思うんですが
0305デフォルトの名無しさん
2006/11/11(土) 22:26:590306デフォルトの名無しさん
2006/11/11(土) 22:39:56嘘を教えてやるなよw
>>304
型付き定数を使う。
ただし、オプションによっては、型付き定数は完全な定数みたいになっちゃうので注意。
function hoge():integer;
const
i:integer=1;
begin
end;
とかなんとか。
ちなみに、Delphi7くらいまででは、C++のクラス変数を移植したいときはこの肩付き定数を使うのが楽なのであった。
0307ななしへたぐらま ◆XcB18Bks.Y
2006/11/11(土) 22:58:27別なやり方としてコンパイラに「型付き定数への代入」を有効にするように指令する方法があります.
これによってCのstatic変数と同様の処理を実現できます.
{$J+} // ここから先は「型付き定数への代入」を有効にする
procedure TForm1.Exp1ActionExecute(Sender: TObject);
const
StaticNum: integer = 0;
begin
ShowMessageFmt('現在の値:%d', [StaticNum]);
inc(StaticNum);
end;
{$J-} // ここから先は「型付き定数への代入」を無効にする.
※注意!:
この指令が有効になっている間はどの定数にも値を代入できます.
つまり,本当に定数として定数を宣言しているのに
誤って値を代入するコードを書いてしまってもエラーにならないため,
見えないバグを生み出す原因となります.
この指令はプロジェクトオプションのダイアログからも設定できるのですが,
ソースの中に無効にする指令を埋め込んでいない限りプロジェクト全体で有効になってしまうのでおすすめできません.
上の例のようにソースの中に埋め込む方がよいと思います.
0308デフォルトの名無しさん
2006/11/11(土) 23:01:39素で今の今まで知らなかったや
0309デフォルトの名無しさん
2006/11/11(土) 23:04:11型付き定数だけね。
0310ななしへたぐらま ◆XcB18Bks.Y
2006/11/11(土) 23:09:51私の書き込みも一部間違えてしまいましたので
>>307を以下のように訂正します.
この指令が有効になっている間はどの型付き定数にも値を代入できます.
つまり,本当に定数として型付き定数を宣言しているのに
誤って値を代入するコードを書いてしまってもエラーにならないため,
見えないバグを生み出す原因となります.
0311デフォルトの名無しさん
2006/11/12(日) 00:17:43そういう意味ではこのように適用範囲を最低限にしたほうがいいでしょう。
procedure TForm1.Exp1ActionExecute(Sender: TObject);
const
{$J+} // ここから先は「型付き定数への代入」を有効にする
StaticNum: integer = 0;
{$J-} // ここから先は「型付き定数への代入」を無効にする.
ConstNum: integer = 0;
begin
ShowMessageFmt('現在の値:%d', [StaticNum]);
inc(StaticNum);
//inc(ConstNum); //コンパイルエラー
end;
0312デフォルトの名無しさん
2006/11/12(日) 00:31:57const
COLOR_TBL:array[Boolean] of TColor = (clRed,clBlue);
begin
Form1.Color := COLOR_TBL[Form1.Color = clRed];
end;
0313デフォルトの名無しさん
2006/11/12(日) 00:34:39おお凄い!
でも宿題として、そんなの出したら・・・
0314デフォルトの名無しさん
2006/11/12(日) 01:16:560316デフォルトの名無しさん
2006/11/12(日) 01:33:30わからん
0317デフォルトの名無しさん
2006/11/12(日) 01:46:50OnMouseMoveだとコンポーネント上を動いてる間中発生してしまい、うまくいきません。
マウスがコンポーネント上を通った時に一度だけ処理をしたいのです。
0318デフォルトの名無しさん
2006/11/12(日) 01:47:36配列の宣言の話なら
array[*ここ*] of hoge
*ここ* は列挙型なら何でも入れられる。
例えば Boolean は False..True、Byte は 0..255 といった具合に順序値は列挙型でもあるのでこのような指定が可能。
テーブル参照の話なら
COLOR_TBL[*ここ*]
*ここ* に Boolean 値を渡せば対応した cl*** が返る。
順序値を別に形に変換する際に良く用いられる手法。
COLOR_TBL[Form1.Color = clRed];
で要素番号に式が使われている話なら
= 演算子は Boolean 値を返す演算子なので、Form1.Color が clRed なら True を、
Form1.Color が clRed 以外なら False を返し、テーブル参照を行う事が出来る。
0319デフォルトの名無しさん
2006/11/12(日) 01:51:45文字列と値の組み合わせがあり、文字列を渡すと値を得るような仕組みが欲しいのです。
例えば、
'http',80
'ftp',21
'pop3',110
というテーブルを定義して、
PortNo := PortValue['http'];
と言ったように取得したいのです。
これをできればconstで宣言して、値を取得するための関数等を作らずに実現したいのですが、
うまい方法は無いでしょうか。
0320304
2006/11/12(日) 01:52:02COROL_TBL という array[Boolean] of TColor の配列を定義して、
COROL_TBL[false] := clRed;
COROL_TBL[true] := clBlue;
として初期化。
Form1.Color が clRed だったら Form1.Color = clRed は true なので、
Form1.Color := COLOR_TBL[true]; つまり
Form1.Color := clBlue;
同様に、Form1.Color が clBlue だったら、
Form1.Color := COLOR_TBL[false]; つまり
Form1.Color := clRed;
という感じだと思います。
>>317
OnMouseEnterイベント
0321デフォルトの名無しさん
2006/11/12(日) 01:52:37CM_MOUSEENTER
0323デフォルトの名無しさん
2006/11/12(日) 02:28:50ありがとう。なんとなくわかったけど不思議な書き方だな。勉強になった。
0324デフォルトの名無しさん
2006/11/12(日) 03:28:07関数が嫌なら、TStringListを使うか。 const じゃ無理。
0325デフォルトの名無しさん
2006/11/12(日) 03:30:48TResourceStreamはSaveToFileはあるけどLoadFromFileがないす。
0326デフォルトの名無しさん
2006/11/12(日) 04:25:21TResourceStream はコンストラクタで指定したリソースを扱う。
TResourceStream.Read でおk。
0327デフォルトの名無しさん
2006/11/12(日) 05:54:52TResourceStream.Readはバッファから読むみたいだから、あらかじめTMemoryStream.LoadFromFileででも読んでおいてから渡すんですか?
頭わるい質問でごめんね。
(´・ω・`)
0328デフォルトの名無しさん
2006/11/12(日) 06:32:31Create でインスタンスのハンドルを渡す必要があるけど、
resファイルからインスタンスハンドルが取得できなかったら、
TResourceStream は使えないかも。
0329デフォルトの名無しさん
2006/11/12(日) 06:36:42LoadLibraryでインスタンスハンドルは取得できるよ。
0330デフォルトの名無しさん
2006/11/12(日) 07:43:12みたいですね。
Delphi リソース DLLなんかでググッってみてるんですけど、わかりやすいサイトがない…
普通のDLLをつくるサイトはみつかるんですが、
0331デフォルトの名無しさん
2006/11/12(日) 09:51:12TStringList.Objects[]に参照値をぶら下げられるからそれに数値を突っ込むという手もあるし
var sl: TStringList;
sl := TStringList.Create;
sl.AddObject('http', TObject(80));
Integer(sl[sl.IndexOf('http')]) // ==> 80
パフォーマンス低くてさらに文字列でよければ
sl := TStringList.Create;
sl.Values['http'] := '80';
ShowMessage(sl.Values['http']);
0332デフォルトの名無しさん
2006/11/12(日) 10:49:10(1)DLLウィザードで出来たDPRファイルから
(2)uses節とコメントを取り払う
(3){$R *.res}の部分を藻前が作ったresファイルを指定
(4)コンパイル汁
0333332
2006/11/12(日) 10:49:53○330
×328
0334デフォルトの名無しさん
2006/11/12(日) 16:03:59どうすればよいでしょうか?
0335デフォルトの名無しさん
2006/11/12(日) 17:49:18北斗の拳の荒くれ者の絵かと思ってたけど、どう考えても不自然だと最近気づいた。
0336デフォルトの名無しさん
2006/11/12(日) 17:58:21そのコンポを継承して手動で Loaded を呼ぶか
TForm1内 なら TForm1(HOGE).Loaded; で強引に呼べる。
しかし、そもそもコンポの設計がおかしい。
作者に Loaded は必ずしも呼ばれないって教えてやれ。
0337デフォルトの名無しさん
2006/11/12(日) 18:07:470338デフォルトの名無しさん
2006/11/12(日) 18:08:48誤:呼ばれるような設計になってた気がするな
正:呼ばれるのが前提になってたような設計になってた気がするな
0339デフォルトの名無しさん
2006/11/12(日) 21:17:25(s1 := TObject.ClassNameて感じで呼び出してます。)
ソース見るとclass functionとして定義されてるけど、どういう意味か分かんないです。
0340デフォルトの名無しさん
2006/11/12(日) 21:37:50レス、サンクスです!
0341ななしへたぐらま ◆XcB18Bks.Y
2006/11/12(日) 21:44:27関数を作りたくないというのは
if s = "http" then
result := 80
else if s = "ftp" then
result := 21
else if (ry
みたいなことはしたくないという意味だと勝手に解釈してレスしますが
Delphiでは連想配列を言語仕様でもライブラリも実装されていません(最近のバージョンはわかりませんが).
しかしテーブルが定数でかつ物件数が数十とかなら簡単な関数で何とかなると思います.
【宣言】
TStrToNum = record
str: string;
num: integer;
end;
function StrToNum(const Table: array of TStrToNum; const Str: string): integer;
(※続く)
0342ななしへたぐらま ◆XcB18Bks.Y
2006/11/12(日) 21:45:32【実装】
function StrToNum(const Table: array of TStrToNum; const Str: string): integer;
var
i: integer;
begin
for i := Low(Table) to High(Table) do
if Table[i].str = Str then // 大文字と小文字を同一視させたい時は代わりに AnsiCompareStr 関数を使うにょ
begin
Result := Table[i].num;
exit;
end;
raise Exception.CreateFmt('"%s"ってのは見つからなかったにょ', [Str]);
end;
【例】
const
cPortNumbers: array[1..3] of TStrToNum = (
(Str: 'http'; Num: 80),
(Str: 'ftp'; Num: 21),
(Str: 'pop3'; Num: 110)
);
procedure TForm1.ConvertActionExecute(Sender: TObject);
var
Num: integer;
begin
Num := StrToNum(cPortNumbers, Edit1.Text);
Edit2.Text := IntToStr(Num);
end;
0343319
2006/11/12(日) 23:52:28今回の場合は、文字列から値を参照する回数があまりに多く、
そのたびにその処理をしていると時間がかかるため、もっと早く実行
できないかと思ったのですが、やはりそう上手くは行かないですよね。
コードの実例をありがとうございます。
挙げていただいた例は、それぞれベンチを取り、最適なものを
使わせて頂ければと思います。
親切に、どうも有り難うございました。
0344デフォルトの名無しさん
2006/11/13(月) 00:14:26要は文字列検索を高速にしたいってことだね、はじめにそう言えばいいのに
ハッシュ使うなり二分探索するなり、データの量や性質に合わせて最適なの探しな
0345デフォルトの名無しさん
2006/11/13(月) 01:01:57問題無い。
0346デフォルトの名無しさん
2006/11/13(月) 02:07:55パスの入った文字列の終端が、必ず'\'で終わるようにしたいのですが、適した関数はないでしょうか。
例:
A:\abc → A:\abc\
A:\abc\ → A:\abc\
A:\ → A:\
0347デフォルトの名無しさん
2006/11/13(月) 02:10:47IncludeTrailingPathDelimiter
逆は
ExcludeTrailingPathDelimiter
0349デフォルトの名無しさん
2006/11/13(月) 02:30:37http://pc8.2ch.net/test/read.cgi/tech/1157535150/
こっちの話題じゃない?
確かに北斗の拳の悪い方の下っ端が横向いてるように見えるな。
お茶壷がひっくり返ってるようにも見える。
はて、何だろう?
0350デフォルトの名無しさん
2006/11/13(月) 03:05:030351デフォルトの名無しさん
2006/11/13(月) 04:19:390352デフォルトの名無しさん
2006/11/13(月) 05:16:120353デフォルトの名無しさん
2006/11/13(月) 08:01:24ギリシャ兵かなんかのつもりなんじゃね?
あと、北斗の拳の悪い方の下っ端とか…
0354デフォルトの名無しさん
2006/11/13(月) 08:19:18http://www.treasureshop.org/JPG/mononofu4/11.gif
古代の不思議
http://members3.jcom.home.ne.jp/dandy2/works/works_14_r.html
こういうところから来てるんじゃね?
0355デフォルトの名無しさん
2006/11/13(月) 08:24:26http://ja.wikipedia.org/wiki/Delphi
0356デフォルトの名無しさん
2006/11/13(月) 08:31:560357デフォルトの名無しさん
2006/11/13(月) 10:03:23ライブラリもというのはどうかな。TStringsあるし。確かVer1.0からあるような。
0358デフォルトの名無しさん
2006/11/13(月) 10:40:23同じコードで再構築しても、exeが異なりますが、なんの情報が埋め込まれているんでしょうか?
これを、同じコード=同じバイナリにすることは可能でしょうか?
神さま、教えてください、ついでに地震がいつくるかも。
0359デフォルトの名無しさん
2006/11/13(月) 10:43:150360デフォルトの名無しさん
2006/11/13(月) 11:16:490361デフォルトの名無しさん
2006/11/13(月) 14:11:28TObject(a) := TStringList.Create;
TObject(a) := TObjectList.Create;
といった、オブジェクトの生成なのですが、上記例の、TStringList、TObjectListを変数ChildClassに格納して、
TObject(a) := ChildClass.Create;
みたいに生成することってできませんか?
0362361
2006/11/13(月) 14:25:13TObjectRef = class of TObject;
をtypeに宣言して、例のChildClassをTObjectRef型にする事でできました。
0363デフォルトの名無しさん
2006/11/13(月) 15:32:420364363
2006/11/13(月) 15:38:090365デフォルトの名無しさん
2006/11/13(月) 17:48:23表示->テンプレート。
テンプレートで右クリックして、ボタンの文字列をOFF
一番右のフィルタボタンをOFF
テンプレートの編集。
それでコードスニペットはGExperts を使うと。
0366デフォルトの名無しさん
2006/11/13(月) 20:36:54バージョン情報のビルド番号自動インクリメントしてたらそのたびに上がる
0367デフォルトの名無しさん
2006/11/13(月) 20:57:09バイナリ内にタイムスタンプが含まれてるから。
多分無効化出来ないんじゃない?
0368デフォルトの名無しさん
2006/11/13(月) 21:02:00Font.Sizeだとカラムの高さまで変わってしまう。
0369364
2006/11/13(月) 23:21:29今ライブテンプレートっていうの?
テンプレートの編集しても、xmlデータだよね。
Delphi7や2005の、cdiファイルをインポートしたいんだけど、できないの?って話なんです。
0371デフォルトの名無しさん
2006/11/13(月) 23:42:35BDS\4.0\Objrepos にあるbds.dci って奴じゃね。
0372デフォルトの名無しさん
2006/11/14(火) 00:02:56こんどはxmlで記述しなきゃいけないってのは、機能的に
質が下がった気がするのは俺だけ?
しかも、記述方法にろくな説明ないし、ヘルプ見ると、
オプションの中で設定できることになってるし。(BDS2005の残骸?)
0373デフォルトの名無しさん
2006/11/14(火) 00:11:42テンプレートを新規作成で作ってみたら分かると思うが
0374デフォルトの名無しさん
2006/11/14(火) 00:17:11そういうことではない
0375デフォルトの名無しさん
2006/11/14(火) 00:20:05> しかも、記述方法にろくな説明ないし
http://blog.so-net.ne.jp/bousyo/2005-12-25
http://blog.so-net.ne.jp/bousyo/2005-12-27-1
0376デフォルトの名無しさん
2006/11/14(火) 01:30:23TClass があるよ。
0377デフォルトの名無しさん
2006/11/14(火) 01:38:36エイジオブエンパイアにしか見えない
0378デフォルトの名無しさん
2006/11/14(火) 04:27:180379デフォルトの名無しさん
2006/11/14(火) 10:25:35たとえば文字列s,sa,sb,scがあってsに
s:='aabbbcccc';
と代入すると
sa='aa'
sb='bbb'
sc='cccc'
となってくれるような変数の宣言の仕方って無いですかね。
0380デフォルトの名無しさん
2006/11/14(火) 10:38:17s := 's,sa,sb,sc';
sList.CommaText := s;
sList.Strings[0]はs
sList.Strings[1]はsa
sList.Strings[2]はsb
sList.Strings[3]はscがそれぞれセットされる
0381デフォルトの名無しさん
2006/11/14(火) 11:09:39いえ、コンマ区切りじゃなく固定長データなんです。
0382デフォルトの名無しさん
2006/11/14(火) 11:13:32TDivChar = Packed Record
case boolean of
true:(str:string[9]);
false:(a:string[2];
b:string[3];
c:string[4]);
end;
こんなの宣言して、
var
s:TDivChar;
begin
s.str:='aabbbccc';
ShowMessage(s.a); //aa
ShowMessage(s.b); //bbb
ShowMessage(s.c); //cccc
end;
こんなんでいいんじゃね?
0383369
2006/11/14(火) 11:18:57使い勝手が悪いと言ってるのであって、使い方がわからないんじゃない。
XMLの仕組みを理解するのに数分かかったんだろうが、前の仕組みだと数秒で
理解できたのだから、機能的には質が下がったと言いたいのよ。
>>375
ありがとう。なんでヘルプにはまともな例も載ってないのか・・。
caseのテンプレートとか編集してみたら、すぐ理解できたけど。
しかし、何十個も登録した前のテンプレートを、手打ちで移植するって効率悪い・・。
0384デフォルトの名無しさん
2006/11/14(火) 11:25:55・技術評論社 Delphi応用プログラミング
・技術評論社 Delphiオブジェクト指向プログラミング
・インプレス Delphielphi 6 プログラミングバイブル
上の3つの購入を考えているのですが他にお勧めってありますか?
Delphi自体はそれなり使えます
0385デフォルトの名無しさん
2006/11/14(火) 11:26:27> 手打ちで移植するって効率悪い・・。
>>371
0386デフォルトの名無しさん
2006/11/14(火) 11:28:38Delphiコンポーネント設計&開発完全解説。PDF版もある。
Delphi Graphic Secrets―Know‐how & Libraries。こちらは入手しにくい。
0387デフォルトの名無しさん
2006/11/14(火) 11:34:32その3冊はどれも入手困難(名著だけど)
0388デフォルトの名無しさん
2006/11/14(火) 12:04:16http://www.amazon.co.jp/gp/product/4756119514
急いで買う必要はないだろうけど必要になった時に手にはいるかどうか
0389デフォルトの名無しさん
2006/11/14(火) 12:16:470390デフォルトの名無しさん
2006/11/14(火) 12:18:38んなもんない。
SetLength(sa, 2);
しておいて
Move(s[1], sa[1], 2);
とやるのが最速か。
まあ正規表現クラスでばらして配列に突っ込むという手はなくもないが。
0391デフォルトの名無しさん
2006/11/14(火) 12:41:39商用利用不可って書いてあるので仕方なくPro版を買おうと思います
6pro や 7proって今でも買えるんですか?
またどのVerに移行したらいいでしょうか? .NETは使ってません
0392デフォルトの名無しさん
2006/11/14(火) 12:49:570393デフォルトの名無しさん
2006/11/14(火) 12:52:170394デフォルトの名無しさん
2006/11/14(火) 13:00:04へんなコンポーネントでも使ってるんだろ多分
0395デフォルトの名無しさん
2006/11/14(火) 13:13:26中古でいいよ
新品だと9000円だぜ
0396デフォルトの名無しさん
2006/11/14(火) 13:27:330397デフォルトの名無しさん
2006/11/14(火) 13:43:16Borlandは、規約によると中古販売品の使用を認めていないから、
それでライセンスを語る自体が無意味になるから新品以外の選択肢はないだろ
って、新品だと9000円って何さ。
0398デフォルトの名無しさん
2006/11/14(火) 13:44:00あ、ごめん
レス番号見間違えたorz
本の話だったわけね。
失敬失敬。
0399デフォルトの名無しさん
2006/11/14(火) 14:03:03在庫あるぞ
0400デフォルトの名無しさん
2006/11/14(火) 14:23:270401デフォルトの名無しさん
2006/11/14(火) 14:25:52試してみたが、反映されない。
0402デフォルトの名無しさん
2006/11/14(火) 15:10:06これは失礼。
書き直しが必要みたいだな。
0403デフォルトの名無しさん
2006/11/14(火) 15:20:540404デフォルトの名無しさん
2006/11/14(火) 16:05:370405デフォルトの名無しさん
2006/11/14(火) 16:11:47まあ、ちょっと使い勝手は悪いけど。(同じソースを2画面で開いたりとかできなかったり)
0406デフォルトの名無しさん
2006/11/14(火) 16:15:472006はもっさりして使いもんにならん。
0407デフォルトの名無しさん
2006/11/14(火) 17:07:40って、実行速度の話?
0408デフォルトの名無しさん
2006/11/14(火) 17:36:200409デフォルトの名無しさん
2006/11/14(火) 18:17:45interface
type
THoge = record
Name: String;
ID: Integer;
end;
implementation
const
ConstHoge: THoge = (Name: 'Hoge'; ID: 1);
こんな感じでおk
ちなみに最後の1行を
ConstHogeArray: array[0..1] of THoge = ((Name: 'HogeA'; ID: 1), (Name: 'HogeB'; ID: 2));
とすることでレコード型の定数配列もできる。
0410デフォルトの名無しさん
2006/11/14(火) 18:36:54そうやって作ったレコード型とかは、型付き定数なんで、結局書き換え可能だから注意。
0411デフォルトの名無しさん
2006/11/14(火) 20:16:320412デフォルトの名無しさん
2006/11/14(火) 20:33:40MSDN ライブラリ 2006年6月版
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=373930CB-A3D7-4EA5-B421-DD6818DC7C41
0413358
2006/11/14(火) 21:57:282枚のEtherカードを実装しているとき
TCPコンポーネントなどで、どちらをつかうかはどのようにして選ぶことができるのでしょう
よろしくお願いします
0414デフォルトの名無しさん
2006/11/14(火) 22:07:56コマンドラインのrouteコマンド。
くわしくは
ttp://www.microsoft.com/technet/prodtechnol/windowsserver2003/ja/library/ServerHelp/dfc5383f-5ec0-4a0f-96da-acee2da3ac2f.mspx?mfr=true
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060418/235589/
あたりで。
0416413
2006/11/14(火) 23:44:560417デフォルトの名無しさん
2006/11/14(火) 23:49:15?
い
は
DHCPならまーそうでしょうね。固定IPアドレスなら起動したときから定まりますけど。
0419デフォルトの名無しさん
2006/11/15(水) 00:08:56それぞれのカードに
0420413
2006/11/15(水) 00:44:35>413でTCPコンポーネントの使い方について質問をしていた、つづきなんですが
TCPコンポーネントにおけるLOCALアドレス値はいつ決まります?
0421デフォルトの名無しさん
2006/11/15(水) 00:59:06TChartで表示したグラフを印刷すると、チャートのタイトルが印刷されません。
ビットマップの保存ではタイトル部分もちゃんと保存されるのですが。
後、印刷時のドキュメント名が「Chart」なので、出来れば任意に変更したい
のですが可能でしょうか?
0422デフォルトの名無しさん
2006/11/15(水) 01:24:45なんか話しがかみ合ってない気がする
おまえさんのいうLOCALアドレスの定義をおしえてください
0423デフォルトの名無しさん
2006/11/15(水) 08:18:390424413
2006/11/15(水) 10:29:08わかりにくくてすみません
カードを複数枚挿しているとき
このクラス
TcpClient1:TTcpClient の
この値
TcpClient1.LocalHost
を使いたいのですが
これがいつ決定されるかということです
0425デフォルトの名無しさん
2006/11/15(水) 14:33:02普通に噴いた
0426デフォルトの名無しさん
2006/11/15(水) 16:06:45元がoverloadされててできないんです。
カスタムのコンストラクタを作りたい場合は、どうしたらいいでしょう。
0427デフォルトの名無しさん
2006/11/15(水) 16:11:12てきとーな引数作って、オーバーロードすれば?
0428427
2006/11/15(水) 16:12:07Create以外の名前でコンストラクタつれば良いだけ。
0429デフォルトの名無しさん
2006/11/15(水) 16:19:02TMyObjectList = class(TObjectList)
public
constructor MyCreate;
end;
constructor TMyObjectList.MyCreate;
begin
inherited Create;
end;
はい論破
0430426
2006/11/15(水) 16:25:18しかし、Createがoverrideできないって厳しいですね。
どうも有り難うございます、解決しました。
0431デフォルトの名無しさん
2006/11/15(水) 16:38:48ちょまち、できるぞ。
0432デフォルトの名無しさん
2006/11/15(水) 16:42:02できないんだっけ?
0433デフォルトの名無しさん
2006/11/15(水) 16:45:280434431
2006/11/15(水) 16:46:54TObjectListはオーバーロードしたCreateは仮想関数になってなかったわ。
0435デフォルトの名無しさん
2006/11/15(水) 16:47:090436426
2006/11/15(水) 16:48:250437431
2006/11/15(水) 16:52:00VCLのコンポーネント自体、「かゆいところに手が届かない」ってのは多いから...
コンポーネント自体のソースは、同じユニット内に継承コンポーネント作成して、
派生元クラスのプライベートなメンバーをがんがん参照してたりするけど、
俺らはそれが出来ないから、「そのプロパティーにアクセスさせろー!」って
事はスゲー多い。
0438デフォルトの名無しさん
2006/11/15(水) 18:47:46コンポーネント以外でコンストラクタをオーバーライドする意味無いじゃんという気はする。
0439デフォルトの名無しさん
2006/11/15(水) 18:56:28, - ':::::::::::::::::::::::::::::::::::::::::\
/ ;;;;;;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;\
/,,;,,,,, ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ,,,,,,,;:::丶
/ :::::::::;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:::::::::::::::ヽ
i゙:::;:::::||::::::ii:::::::::::||::::::::::::::::::;:::::::::::::::::::::::::::゙i
i゙::::|;;;;| |;;;;| |::::::::::| |:::::::::::::::::||:::::::::::::::::::::::::::::|
. i゙::::::i ''''''''''' '───' |;;;;;;;;;;::::::::::::::::::::|
.|:::::::|,-====-´ ゙ヽ,,,,,,,,,,,,、 |:::::::::::::::::::|
|;::::::::|,-----、 ~ニニ,,_` |:::::::::::::::::::|
`ヽ、i (、i´ノ ´い,, ノ ' |;;;::::::::::::::/ なんで、初心者の試行錯誤にとどめ差すん?
. i ^~~~ー==-- ー'-+、 / ゙-、;;;;/
{ ヽゝ '-'~ノ
λ ''゙゙゙'''-''---、 /-'^
ヽ, ^~^ (
/ `丶 、 , - /^l
| /( ノ `''''''´~ __, - ' ゙i、
{ / /| ̄ ̄ ̄ ̄ _,- '¨ }
{/ / ゙ー────'~ \|
/ ヽ \
0440デフォルトの名無しさん
2006/11/15(水) 19:05:240441デフォルトの名無しさん
2006/11/15(水) 19:19:390442デフォルトの名無しさん
2006/11/15(水) 19:28:310443デフォルトの名無しさん
2006/11/15(水) 22:41:31かぶと手作りベーコンの炒め物
わかめとごぼうのサラダ
五穀米
ほっけのつみれ汁
もずく酢
0444デフォルトの名無しさん
2006/11/15(水) 22:43:50冷凍のチャーハン 1/2
みかん 1
0445デフォルトの名無しさん
2006/11/15(水) 22:44:22別のコンストラクタからinheritedで呼べばいいのでしょうが、
直感的にCreateを使うので、できればCreateメソッド内に
コードを書きたかったのです。
通常のCreateと同じ引数なので、overloadできません。
まあ、ダミーの引数を付けてoverloadってのも手ですが、
Createするときにどれを選んで良いかわかりづらいので・・。
0446デフォルトの名無しさん
2006/11/15(水) 22:46:31そういう関数ってありますか?
0447デフォルトの名無しさん
2006/11/15(水) 23:24:37鯛のマリネ。
白身魚のフライ。
かぼちゃの煮物。
なすの天ぷら。
カレー風味の野菜炒め。
豆の和え物。
にら玉。
りんご1個。
ライス。
0448デフォルトの名無しさん
2006/11/15(水) 23:24:52StringReplaceを使うか、WideStringに変換して数える。
高速にやりたいのなら、全角文字に注意しながら1byteづつ調べる。
0449ミ,,゚Д゚彡 ◆A6VzDeLphI
2006/11/16(木) 00:13:26http://delfusa.main.jp/delfusalibrary/20060527212010/StringUnit/StringUnitLight.pas
function StrCount
を使ってみてください。
0451デフォルトの名無しさん
2006/11/16(木) 08:29:36フサさん、これのInStrってIndexにマイナス値入れるとお尻から見てくれるのかな?
あと、OracleでいうところのSUBSTR(CopyのIndexが正逆指定可能なヤツ)って
実装されてません?
いや、興味本位で聞いてみただけです。ごめんなさい。
0452デフォルトの名無しさん
2006/11/16(木) 13:55:36みなさんはどういう風に名前付けてます?
0453デフォルトの名無しさん
2006/11/16(木) 13:57:13>chkCheck
チェキチェキラの江戸っ子ですな?
0454デフォルトの名無しさん
2006/11/16(木) 14:01:320455デフォルトの名無しさん
2006/11/16(木) 14:02:46Button_Jikkou
CheckBox_Sentaku
みたいな長くてクラス名そのまんまの方が好きだな。
0456デフォルトの名無しさん
2006/11/16(木) 14:05:28・プロジェクト名
・ユニット名
・フォーム名
が同じ名前しか思い浮かばなくて悩む事がある。
0457デフォルトの名無しさん
2006/11/16(木) 14:09:16どうにも希望が理解できないんだけどreintroduce付ければいいんじゃね?
0458デフォルトの名無しさん
2006/11/16(木) 14:10:15どんなオブジェクトに育ってほしいかをよく考えて(^.^メ)
0459デフォルトの名無しさん
2006/11/16(木) 14:14:52俺はいつも↓
プロジェクト名→アプリケーション名
ユニット名→Main
フォーム名→frmMain
0460デフォルトの名無しさん
2006/11/16(木) 14:30:33あと、イベントに名前付けます?
0461デフォルトの名無しさん
2006/11/16(木) 14:32:29名前は勝手に命名されるのでは
0462デフォルトの名無しさん
2006/11/16(木) 14:34:08自前でコーディングしてコントロールのハンドラに割り付ける時以外は
デフォルトで行くけどね。
コメント入れとけば分かるから。
0463デフォルトの名無しさん
2006/11/16(木) 14:45:36>Event_
ってプレフィックス付ける。
全体で、
>Event_OnChange
とか。
気持ち悪いけど、目に留まるほうが良いと思う。
0464デフォルトの名無しさん
2006/11/16(木) 19:09:130465デフォルトの名無しさん
2006/11/16(木) 19:37:080466デフォルトの名無しさん
2006/11/16(木) 20:29:02lsたん乙
0467デフォルトの名無しさん
2006/11/16(木) 20:56:09うちの上司にそのコーディング規約頼んでおく。
バグをいれたのが誰か探しやすくなるし、いいね
0468デフォルトの名無しさん
2006/11/17(金) 01:28:57with 〜.create do な変数を宣言せずに使うやり方で、
下のようにCreate使ってインスタンスを参照したら、
思わぬ副作用的なモノがなにかありますでしょうか。
procedure test(TST:Tstringlist);
begin
TST.Add('fuge');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with TStringList.Create do
try
add('hoge');
test(Create);
add('hoge');
Form1.Memo1.Lines.Text:=Text;
finally
Free;
end;
end;
よろしくお願いします。
0469デフォルトの名無しさん
2006/11/17(金) 01:41:39一つだけならいいが、入れ子になったらハチャメチャ。第一、IDE のアシストも
受けられないし。
一つだけでも、TForm1 のプロパティーやメソッドとかぶってるとややこしいことに
なるし。
0470デフォルトの名無しさん
2006/11/17(金) 01:44:05こんなのははじめて見た・・・
TStringList.Create は TObject.Create だった。初期化はされないや。
識別子の解決は一番深いスコープから優先的されるから、一応期待通りの動作にはなるだろうけど、
test(Create) とか一般的ではないし、可読性の問題もあるので、特に理由がないなら変数に入れた方がいいと思うけどね。
0473デフォルトの名無しさん
2006/11/17(金) 02:10:32参照する方法がないっていう記述を何箇所かで見たので、
これにも致命的問題があるのかと思って質問しました。
>TStringList.Create は TObject.Create だった。初期化はされないや。
Delphiに元々ついてくるクラスでCreateで初期化とか、
何か実行するようなクラスってあるんですか?
と、自分が使ってるのはDelphi6 personalなんですけれど。
>Delphiに元々ついてくるクラスでCreateで初期化とか
大多数のクラスは何かしらやってる。
また、現状でやっていないクラスも、今後もそうであるという保証があるわけではない。
0475デフォルトの名無しさん
2006/11/17(金) 02:24:17そうですか…いろいろ試してみます。
ありがとうございました。
0476デフォルトの名無しさん
2006/11/17(金) 03:11:00一般的な構文で実現できるのではないだろか。
しかしメリットは感じない。。。
0477デフォルトの名無しさん
2006/11/17(金) 11:40:54Delphiのエディタをviっぽいキーバインドにすることはできないでしょうか?
フリーカーソル無効化アドインを使って大分使いやすくなったので
できればキーバインドも使い慣れたvi風にしたいと思ってます。
ツールに外部エディタとして好きなエディタを登録すればいいみたいですが、
Delphiのエディタと外部エディタを行ったり来たりするのが少し面倒なので
できればDelphiのエディタだけに統一したいと思ってます。
0478Delフサギコ ◆A6VzDeLphI
2006/11/17(金) 23:00:01∧,,∧ レスがあるのは
ミ,,゚Д゚彡 大変感謝です
ミ つ旦)~~
〜と,,,~),,~)
Indexにマイナス値には対応してないと思います。
予測されうる仕様はtestInStrに記述しています。
マイナス値に対応しているとすれば、testInStrにテスト関数を
用意しているのです。
おしりからみるという仕様がいまひとつわからないですが
AnsiPosBackward、で実装している事なのかな?
testRangeAnsiPosForwardBackward
で、テスト関数をみて仕様を理解していただくと
早いかと思います。
0479デフォルトの名無しさん
2006/11/18(土) 00:16:06Cで
int *p;
p = (int *)malloc(sizeof(int) * 255);
p[0] = 123;
p[1] = 456;
...
は、Delphiではどう書きますか?下は自分の知識で書いてみたものです。
var p: PInteger;
begin
GetMem(p, SizeOf(Integer) * 255);
p[0] := 123;
p[1] := 456;
p[0]という書き方がダメそうですが、どう書けばいいのでしょう。(p + 1)^ でもダメでした。
0480デフォルトの名無しさん
2006/11/18(土) 00:20:48var
p : array of integer;
begin
SetLength(p, 255)
p[0] := 123;
p[1] := 456;
0481デフォルトの名無しさん
2006/11/18(土) 00:52:06TIntegerArray = array[0..99999] of Integer;
PIntegerArray = ^TIntegerArray;
として、
var
P: PIntegerArray;
と宣言するか、
PIntegerArray(P)[0] := 123;
の様にキャストして使うか。
0482デフォルトの名無しさん
2006/11/18(土) 09:24:51TIntegerArray、PIntegerArrayはSystem.pasで定義されてるよ
0483デフォルトの名無しさん
2006/11/18(土) 09:31:58配列として扱うなら配列型使うのが素直だけど
p, pp: PInteger;
pp:=p;
pp^ := 123;
Inc(pp);
pp^:= 456;
でもよい
0484デフォルトの名無しさん
2006/11/18(土) 09:35:49PInteger(PChar(p)+SizeOf(Integer)* 1)^:= 456;
つうのもあるな。
0485デフォルトの名無しさん
2006/11/18(土) 11:21:49Delphiではポインタを使うのはポインタ型を作らなくちゃいけなくて面倒なようになってるから、
動的配列で代用できるときは動的配列を使った方がいいさね。
0486デフォルトの名無しさん
2006/11/18(土) 13:17:23上のレス見ててよく分からなかったけど、なんとなく分かった。
ありがとう。
0487デフォルトの名無しさん
2006/11/18(土) 16:02:04DBCtrlGidで入力中に直前のレコードの同じフィールドのデータを現在のフィールドにコピーしたいのですが、
どのような方法が考えられるでしょうか。
直前のレコードはcommitされていない場合もあります。
また、直前のレコードが最後に編集/postしたレコードとは限りません。
2行目まで入力してから1行目を編集して3行目を新規に追加するとき2行目のデータを参照したいと言うことです。
DBとの接続はTIBQUERYを使用しています。
0488デフォルトの名無しさん
2006/11/18(土) 16:16:27書き忘れましたがキャッシュアップデートを使用しています。
0489デフォルトの名無しさん
2006/11/18(土) 17:41:03現在のカーソルをブックマークしておいて、カーソル移動で探しにいく。
0490デフォルトの名無しさん
2006/11/19(日) 01:11:20モジュール'coreide60.bpl'のアドレス 008818D0 でアドレス 00000008 に対する読み込み違反がおきました。
とエラーがでるようになってしまいました
ファイル→プロジェクトを開く
だとエラーはでません
なにか対策方法はないでしょうか?
また、Vistaが原因か知りたいので、他にこのほうな症状が出てる方、出てない方いればレスください
0491デフォルトの名無しさん
2006/11/19(日) 01:12:250492デフォルトの名無しさん
2006/11/19(日) 01:40:050493デフォルトの名無しさん
2006/11/19(日) 01:40:53Delphi 6 だし。
0494デフォルトの名無しさん
2006/11/19(日) 03:06:08>PInteger(PChar(p)+SizeOf(Integer)* 0)^:= 123;
PInteger(Integer(P) + SizeOf(Integer) * 0)^ := 123;
の方が自然だと思うけど、世間じゃ PChar にキャストするの?
0495デフォルトの名無しさん
2006/11/19(日) 03:26:130496デフォルトの名無しさん
2006/11/19(日) 04:14:35俺は>>484じゃないけど、PCharだと、Delphiのポインタ型の中では珍しく+演算子が使えるのよ
C++っぽくさ。
0497デフォルトの名無しさん
2006/11/19(日) 09:45:38だからどれも定義済みだというのに。
0498デフォルトの名無しさん
2006/11/19(日) 09:56:080499デフォルトの名無しさん
2006/11/19(日) 10:10:04初心者には何がどこに定義してあるかわからないじゃん
しかも定義してあるって何がどう定義してあるかは、
Delphiのポインタ型の宣言について知っていなくちゃならないじゃん
自分で定義したレコード型その他の型のポインタはもちろん自分で定義しなくちゃならんし
そういう意味で、C/C++に比べてDelphiではポインタを使うのがめんどいってことっしょ
0500デフォルトの名無しさん
2006/11/19(日) 12:37:30おじさんは。
0501デフォルトの名無しさん
2006/11/19(日) 13:28:37おまえに言われんでもわかっとる
0502デフォルトの名無しさん
2006/11/19(日) 13:46:52日本語でお願い
0503デフォルトの名無しさん
2006/11/19(日) 13:48:28一時的に無効にする方法を教えてください。
0504デフォルトの名無しさん
2006/11/19(日) 13:50:36定義されてるし、前期のようにいろいろなやり方があるしぜんぜん面倒じゃないじゃん。
面倒かどうかを言い出したらbegin面倒、「{」にしろって話といっしょ。
0505デフォルトの名無しさん
2006/11/19(日) 15:15:430506デフォルトの名無しさん
2006/11/19(日) 15:21:010507デフォルトの名無しさん
2006/11/19(日) 15:29:26コンパイル速度の話ならDelphiの圧勝
0508デフォルトの名無しさん
2006/11/19(日) 15:44:270509デフォルトの名無しさん
2006/11/19(日) 15:48:33どちらの方が保守しやすいですか?
0510デフォルトの名無しさん
2006/11/19(日) 16:02:03タイピング速度はスキル依存なんで人それぞれ
保守は可読性の高さでDelphiと言いたいが
言語スキル依存なのでやっぱり人それぞれ
0511デフォルトの名無しさん
2006/11/19(日) 17:35:30Delphiをアンインストールしてから再インストールすると、
すべての状態(ツールバーや、フォントなどの設定など)が
初期状態になってしまいますが、これらの設定を保存してい
るファイルは何でしょうか?
再インストール後に復元したい設定は、
・ツールバーの状態
・コードテンプレートの内容
・フォントの種類、フォントサイズ、フォントの色
などです。
0512デフォルトの名無しさん
2006/11/19(日) 17:49:220513デフォルトの名無しさん
2006/11/19(日) 18:05:08オブジェクトを引数として渡す時、値渡し/参照渡しのどちらの書き方をしても
渡されるのは「コピー」ではなく「オブジェクトのメモリアドレス」なので、
呼び出し先での変更が必ず反映されると考えていいのでしょうか?
携帯から書き込んでいるため、具体的なソースを書けず分かりにくいと思いますが、
なんとなくでも質問の意味が分かった方がいたらご回答お願いします。
0514デフォルトの名無しさん
2006/11/19(日) 18:13:14あってる。
つか、オブジェクトの参照渡し(つまり結果的には参照の参照渡しになるわけだが)にしても、
Delphiのコンパイラが最適化でオブジェクトの値渡しに直しているらしいよ。
0515デフォルトの名無しさん
2006/11/19(日) 18:14:00varだとまた別の話。
0516デフォルトの名無しさん
2006/11/19(日) 18:27:18インストールしたフォルダにあるdelphi32.* ファイルも忘れずに。
bds だと、Application Dataも保存しておいた方が良い。
0517513
2006/11/19(日) 18:33:46ネットでいろいろ調べて何となく「こういうことなのかな?」と思ったのですが
イマイチハッキリした確証が得られず悶々としてました・・・解決してすっきりです(・∀・)
どうもありがとうございました。
0519n
2006/11/19(日) 20:20:510520デフォルトの名無しさん
2006/11/19(日) 21:24:390521デフォルトの名無しさん
2006/11/19(日) 21:26:250522デフォルトの名無しさん
2006/11/19(日) 21:29:100523デフォルトの名無しさん
2006/11/19(日) 21:37:530524デフォルトの名無しさん
2006/11/19(日) 21:38:220525デフォルトの名無しさん
2006/11/19(日) 21:59:07Delphi1.0が発売された直後に、アメリカ出張した同僚が居たんで
「でるふぃー買ってきてくれ」と頼んだ
が、買ってきてもらえなかった
曰く、「店員にでるふぃーなんて無いって言われたぞ」
0526デフォルトの名無しさん
2006/11/19(日) 22:02:400527デフォルトの名無しさん
2006/11/20(月) 01:57:090528デフォルトの名無しさん
2006/11/20(月) 02:00:070529デフォルトの名無しさん
2006/11/20(月) 03:36:29TurboDelphiで使えるclass varが使えないみたいなのですが、
どうすればいいでしょうか?
0530デフォルトの名無しさん
2006/11/20(月) 04:21:47別の方法での実装を考えてください。
0531デフォルトの名無しさん
2006/11/20(月) 04:25:000532デフォルトの名無しさん
2006/11/20(月) 04:26:020533529
2006/11/20(月) 05:11:28どうやら7は静的フィールドを作れないみたいですね。
という事で、ユニットの変数でやりたいと思います。
0534デフォルトの名無しさん
2006/11/20(月) 07:37:250535デフォルトの名無しさん
2006/11/20(月) 09:47:41メソッドを作って、その中で型付き定数を使う。
その後は、必要に応じて、そのメソッドをプロパティでラップするとか。
0536n
2006/11/20(月) 15:57:11ありがとうございます!^-^
0537デフォルトの名無しさん
2006/11/20(月) 16:12:03どのようにすればよいのでしょうか?
0538デフォルトの名無しさん
2006/11/20(月) 16:41:50違っていれば何らかの処理を
ちゃんとやるならスレッドを立ててFindFirstChangeNotification、FindFirestNextNotification
FindCloseChangeNotification、WaitForSingleObjectを使る
0539デフォルトの名無しさん
2006/11/20(月) 16:42:24ありがとうございます。
さっそく調べてみたいと思います。
0540デフォルトの名無しさん
2006/11/20(月) 16:44:04http://forum.nifty.com/fdelphi/samples/00969.html
0541デフォルトの名無しさん
2006/11/20(月) 16:44:53ありがとうございます。
( * )これでいいでしょうか?
0542デフォルトの名無しさん
2006/11/20(月) 16:49:000543デフォルトの名無しさん
2006/11/20(月) 18:29:060544543
2006/11/20(月) 18:31:480545デフォルトの名無しさん
2006/11/20(月) 19:31:12(1)文字列が何行あるかはどうやって調べればよいですか?
(2)HTMLエディタのようなものを作りたいと思っています。
RichEdit1がエディタ表示部、Memo1がソース表示部だとしますと、
RichEdit1の太字部分を、Memo1で<b>〜</b>に置換するには、
どのような処理をすればよいでしょうか。
よろしくお願いします。
0546545
2006/11/20(月) 19:55:14(2)は、地道に1文字ずつ取り出すのが一番でしょうか…。
0547デフォルトの名無しさん
2006/11/20(月) 22:11:020548デフォルトの名無しさん
2006/11/20(月) 22:23:140549デフォルトの名無しさん
2006/11/20(月) 23:23:270550デフォルトの名無しさん
2006/11/20(月) 23:57:100551デフォルトの名無しさん
2006/11/21(火) 04:02:35うむ。
0552デフォルトの名無しさん
2006/11/21(火) 08:18:21ttp://homepage1.nifty.com/ht_deko/tech002.html#tech021
↑これらを参考にマニフェストをプロジェクトに組み込むと
「[エラー] RLINK32: Unsupported 16bit resource in file "C:\Documents and Settings\Zenin\Program Files\ResUpdate\Commander\manifest.res"」
って出ちゃうんですが、上手く組み込むにはどうすれば…?
0553デフォルトの名無しさん
2006/11/21(火) 08:26:250554デフォルトの名無しさん
2006/11/21(火) 08:28:09マニフェストファイルの中身も晒さないで質問されても分かるわけない
こちとらオールドタイプなもんで
0555デフォルトの名無しさん
2006/11/21(火) 08:34:38http://www.lischke-online.de/ThemeManager.php
そういう話じゃない?
0556デフォルトの名無しさん
2006/11/21(火) 09:22:400557デフォルトの名無しさん
2006/11/21(火) 09:57:100558デフォルトの名無しさん
2006/11/21(火) 12:15:17use節に Mplayer が追加されます
この状態で実行すると
MPlayer.pasが見つからないとのエラーが出ます。
googleなどで調べましたら
Pro版なのでは
C:/Program Files/Borland/Delphi6/Source/Vcl/MPlayer.pas
このアドレスにファイルがあるとの記述が見つかりました
しかしPersonal版の私の同アドレスには
MPlayer.pasがありません
Personal版ではMediaplayer コンポーネントは仕様できないのでしょうか?
それとも何か解決策があるのでしょうか?
お手数ですが教えていただければ幸いです
0559デフォルトの名無しさん
2006/11/21(火) 12:36:35ActiveXのインストールで、MediaPlayerでも入れて使いましょう。
0560デフォルトの名無しさん
2006/11/21(火) 12:37:00なかったら諦めて
あればそのパスを上のメニューからプロジェクト→オプション→
ディレクトリ/条件タブの検索パスに追加
0561デフォルトの名無しさん
2006/11/21(火) 12:40:540562デフォルトの名無しさん
2006/11/21(火) 12:46:10Media PlayerってSystem/Media Playerにあるやつ?
俺も6 Personalだけどコンパイルできたぞ。
ライブラリのパスとかちゃんと通ってるか?
0563デフォルトの名無しさん
2006/11/21(火) 14:18:52SystemタブにあるMedia Playerコンポーネントです
ライブラリのパスとは何んのことでしょうか?
すんません初心者でorz
Media Playerコンポーネント、Buttonコンポーネント、Labelコンポーネント、OpenDialog
を使って
ボタンを押し、ダイアログを使ってMP3ファイルを指定
ファイル名をラベルに表示させて
mp3ファイルを実行するという処理をさせようとしました
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MPlayer, StdCtrls;
-------------------------------------------------------------------
-------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if OpenDialog1.FileName <> '' then
begin
MediaPlayer1.FileName := OpenDialog1.FileName;
Label1.Caption := ExtractFilename(MediaPlayer1.FileName);
MediaPlayer1.Open;
end;
end;
end;
どこかおかしいですか?
0564デフォルトの名無しさん
2006/11/21(火) 16:53:46同じ構成で試しましたがエラーは出ませんでした。
上にも書いてありますが、
C:/Program Files/Borland/Delphi6/Lib/MPlayer.dcu があるか
ツール->環境オプション->ライブラリタブのライブラリパスに”$(DELPHI)\Lib” があるか
確認してみてください。(多分あるはず)
> MPlayer.pasが見つからないとのエラーが出ます。
存在しないユニットをUseした場合「Unit1.pas(n): ファイル'hoge.dcu'が見つかりません」
等と表示されるようですので「MPlayer.pasが見つからない」のは他に原因があるか、
もしくはエラーメッセージを読み違えていると思われます。
試しにDelphiを起動して新規プロジェクトでMPlayerのみを配置して実行(F9)してみてください。
エラーが出ない場合、作成されているプロジェクトに問題があると思われます。
(プロジェクト保存後にファイルを移動した/リネームした、作成したユニット名にMPlayerを使った等)
0565537
2006/11/21(火) 18:55:20問題はおおかた解決したのですが、これを特定のファイルが更新されたときだけ
何か処理したいのですがいい方法は無いのでしょうか?
今の処理ですと同一フォルダに有る、監視したくないファイルが更新されていても
イベントが実行されてしまいます。
どのファイルが更新されたというような返り値があればベストなのですが・・・。
0566デフォルトの名無しさん
2006/11/21(火) 18:57:28Cでいう (const int *i) みたいな。
0567デフォルトの名無しさん
2006/11/21(火) 20:50:40最近Delphiの勉強を始めたヒヨッ子なんですが、
PaintboxのCanvasに描画させたものを印刷したいのですが、
下記のコードでは実際にプリンターから印刷されません。
procedure TForm1.Print2Click(Sender: TObject);
begin
if dlgPrint.Execute then
with Printer do
begin
BeginDoc;
Printer.Canvas.CopyRect(rect(0,0,100,100),PntPaint.Canvas,
rect(0,0,100,100));
EndDoc;
end;
end;
私なりの考えでは、
PaintBoxの内容をPrinterのCanvasにコピーして印刷しようと考えました。
PntPaintがPaintBoxのNameです。
あれこれ調べながらこういう書き方をするのかな?という感じで
手探りでやってみたのですが・・・
ご教授のほど、よろしくお願いいたします。
また、コレ読んでおけ!ってのがあったら、
教えて頂ければ幸いです。
0569デフォルトの名無しさん
2006/11/21(火) 21:52:44>教えて頂ければ幸いです。
良書はことごとく廃刊ってのがDelphiの現実だ。
0570デフォルトの名無しさん
2006/11/21(火) 22:42:58今は本に書いてある事って全部Webでわかっちゃうし、買う意味あんのか。
0571デフォルトの名無しさん
2006/11/21(火) 22:57:200572デフォルトの名無しさん
2006/11/22(水) 00:02:33放出したらいい値になるかな?オフィシャルコースウェア、洋書、DBやCGI、DelphiXやらゲーム制作本までいろいろあるでよ。
30冊以上はあるかな…
0573デフォルトの名無しさん
2006/11/22(水) 00:07:18トイレットペーパー二つくらいにはなるんでは?
0574デフォルトの名無しさん
2006/11/22(水) 00:07:230575デフォルトの名無しさん
2006/11/22(水) 00:23:57今日Vistaのリリース版出たね。今DL中。
Delphiは2006なので試せない。
0576デフォルトの名無しさん
2006/11/22(水) 00:25:40マジだったらDelphi4をメインで使ってる俺はどうすればいい?
0577デフォルトの名無しさん
2006/11/22(水) 00:37:370578デフォルトの名無しさん
2006/11/22(水) 01:29:520579デフォルトの名無しさん
2006/11/22(水) 02:45:01動かないことはない。
0580デフォルトの名無しさん
2006/11/22(水) 02:49:21QuadrupleDのマスパック使って、ある3次元ベクトルを、別の3次元ベクトルを軸に
回転させる関数をつくっているのですが、うまくいきません。どうも、ベクトルの方向が変わらないのです。
function NowRotV(v1,v2:D3DVector; r:single) :D3DVECTOR; //v1:基準軸、v2:回転させたいベクトル、r:角度
var
cosr,sinr,DP:single;
ax,p1,p2,p3,CP:D3DVector;
begin
ax:=NowNormalize(v1);
cosr:=Cos(DegToRad(r));
sinr:=Sin(DegToRad(r));
p1:=NowScale(v2,cosr);
DP:=NowDotProduct(ax,v2)*(1.0-cosr);
CP:=NowCrossProduct(ax,v2);
p2:=NowScale(CP,sinr);
p3:=NowScale(ax,DP);
Result:=NowAdd(NowAdd(p1,p2),p3);
end;
汚いコードですが、何が問題なのか、教えてくださいませんか?
0581デフォルトの名無しさん
2006/11/22(水) 03:05:56ムチャクチャすぎる。
Quadruple Dのs_mathpackの角度は、ラジアンじゃなくて4096度系。
ドキュメントくらい一度は通して嫁。
あと、その関数設計も変。
それだと値渡しが多すぎるので、俺なら、
procedure NowRotV(const v1:D3DVector;var v2:D3DVector; r:single);
にする。
この方がパフォーマンス的に有利。
でっかいレコード型はできるだけ値渡しすんな。
でっかいレコード型はできるだけ返り値にすんな。
0582581
2006/11/22(水) 03:11:10もう一度、線形代数の勉強し直して味噌。
0583581
2006/11/22(水) 03:12:58とか参考にするといいかもしんない
0584デフォルトの名無しさん
2006/11/22(水) 03:17:380585デフォルトの名無しさん
2006/11/22(水) 03:44:14がしたいわけでしょ、>>583のサイトのloc.rotate(軸、角度)もそれだし。
コードよく読んでないけど、間違ってないように見える。なんだろうね、わかんね。
0586デフォルトの名無しさん
2006/11/22(水) 03:56:54適応状況とかまとめてくれてるサイトってないのかなぁ
0587585
2006/11/22(水) 04:19:55p' = pcosθ+r×psinθ+r<r|p>(1-cosθ)
=p1 + CPsinθ+rDP
=p1 + p2 + p3
だから、やっぱりあってるような…。
0588デフォルトの名無しさん
2006/11/22(水) 07:00:28> VistaだとDelphi6.0は使えないって聞いたんですが
どこで聞いたのですか? >>490 の話?
これは使えないってレベルじゃないけど・・・あんまり話を広げないように。
2chはアンチがデマを流そうと、てぐすね引いているから
ソースの確認や検証が大切。
Vista はMy Document みたいな物のパスや環境変数が変わっているから
そのあたりの調整が必要と思われ。
0589デフォルトの名無しさん
2006/11/22(水) 08:40:34http://itpro.nikkeibp.co.jp/article/NEWS/20061121/254439/
http://www.microsoft.com/japan/windowsvista/compatible/
0590デフォルトの名無しさん
2006/11/22(水) 10:09:06もうだめぽなのでしょうか?
0591デフォルトの名無しさん
2006/11/22(水) 10:25:190592デフォルトの名無しさん
2006/11/22(水) 10:48:29わ・・訳わかんねぇ・・
高校で授業聞いておけばよかったぜぇ
0593デフォルトの名無しさん
2006/11/22(水) 11:24:260594567
2006/11/22(水) 11:46:12おっしゃるとおりだと思います。
どう書けばいいかわからず、
とりあえずコードが通ったので、そのままにしてました。
堀越氏の本は古本を買い集めて、
「はじめての〜」は読みました。
その本で紹介されているグラフィック描画ツールに印刷機能を
付けてみようとやってみているのですが・・・
0595デフォルトの名無しさん
2006/11/22(水) 12:56:18delwikiにそこらへんは書いてあるよ
0596デフォルトの名無しさん
2006/11/22(水) 13:22:290597デフォルトの名無しさん
2006/11/22(水) 13:24:040598デフォルトの名無しさん
2006/11/22(水) 13:27:19そういう事を勧めるなよ基地外
0599デフォルトの名無しさん
2006/11/22(水) 13:28:030600デフォルトの名無しさん
2006/11/22(水) 13:33:12実はTPrinter.Canvas.CopyRectはTCanvas.CopyRectとは異なる
なので別のCanvasをPrinter.Canvasにコピーという用途には使えない
Printer.CanvasにもPaintBoxに描画したのと同じように記述すればよい
0601580
2006/11/22(水) 13:41:58結局、回転したいベクトルの初期化をするときに、識別子を間違えていました。
なんていうかほんともう、ごめんなさいです。
0602デフォルトの名無しさん
2006/11/22(水) 13:43:39Printer.Canvasに何も描かれてないため
1.BeginDocメソッドで印刷始めるぞ(゚Д゚)ゴルア!!
2.>Printer.Canvas.CopyRect(rect(0,0,100,100),PntPaint.Canvas,rect(0,0,100,100));
この文ではPrint.Canvasに何も描かれない
3.EndDocメソッドで何だよ印刷終わりかよ
あれ、Canvasに何も無いじゃん( ´,_ゝ`)プッ
じゃあ印刷しねwってことで印刷されない
Printer.Canvas.CopyRect(rect(0,0,100,100),PntPaint.Canvas,rect(0,0,100,100));
の代わりにCanvas.TextOut(10, 10, 'Text Test');
とか書くと印刷されるよ
0603デフォルトの名無しさん
2006/11/22(水) 13:58:36デバイスコンテクストのヤツ、ムカつく。
0604デフォルトの名無しさん
2006/11/22(水) 14:04:25function Round(X: Real): Int64;
なんて書いてありません。
ヘルプには 「ユニット System」 と書かれてありますが、これは嘘で、別のところに書かれているのでしょうか。
0605デフォルトの名無しさん
2006/11/22(水) 14:44:12一部のコアな関数はアセンブラで書かれているので
0606594
2006/11/22(水) 15:45:39なるほど!そういうことでしたか。
ようやく解ってきました。
で、早速試してみたのですが、
OnMousedown、Move、Upなどの各プロシージャに
PaintBoxに描画するのと同時に、
Paintbox1.Canvas.LineTo(X,Y);
Printer.Canvas.LineTo(X,Y);
と記述するとエラーが出てしまいますね。
ということは、
ツールでユーザーに描かせたLineToなどの座標を
全て配列か何かに保存して、
BeginDocのあとでPrinter.Canvasに描画する形になるんでしょうか。
0607594
2006/11/22(水) 16:30:51Image使えば済む話なのかな・・・と書籍を読み進めて思いました。
0608デフォルトの名無しさん
2006/11/22(水) 17:02:59うん
なんでTPaintBox使ってるのか不思議だった
0609CodeGear(笑)
2006/11/22(水) 18:28:580610ななしへたぐらま ◆XcB18Bks.Y
2006/11/22(水) 18:38:32『渡したい変数型へのポインタ』型を定義して定数パラメータにすればできます.以下コンソールプログラムの例.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
PInteger = ^Integer; // 「整数型へのポインタ」型の宣言
procedure Foo(const i: PInteger); // const宣言によって変更が禁止されます.
begin
//i := i + 1; // パラメータの値を変更しようとするとコンパイルエラーになるよ!
writeln(i^);
end;
var
i: integer;
begin
i := 10;
Foo(@i);
i := 20;
Foo(@i);
readln;
end.
Delphiではパラメータのconstは『値の変更を禁止する』という意味しかありません.
具体的には条件によって値渡しや参照渡しになります.
しかしパラメータがポインタ型の場合は必ずポインタが渡されます.
なおInteger型へのポインタはすでにWindowsユニットでPIntegerとして定義済みですので新たに定義する必要はありません.
0612デフォルトの名無しさん
2006/11/22(水) 21:33:280613デフォルトの名無しさん
2006/11/23(木) 01:27:23ヘルプが起動しない
製品版なら後からファイル足せば大丈夫だが
ベータやRCは無理
0614デフォルトの名無しさん
2006/11/23(木) 02:26:11Delphi6だけの問題じゃないよ。
0615デフォルトの名無しさん
2006/11/23(木) 04:28:48大分仕様変わってますか?
書籍等買いなおす必要はあるのでしょうか?
教えて下さい
0616デフォルトの名無しさん
2006/11/23(木) 04:34:07いいえ。
基本的にはIDE が変わっているだけです。
コンポーネントを追加できないなどの制限はありますが
機能的にはProfessional なのでDB 接続が出来るようになります。
> 書籍等買いなおす必要はあるのでしょうか?
いいえ。
0617デフォルトの名無しさん
2006/11/23(木) 11:36:30なんでwinhlp32.exeくらいつけないんだろうな。
俺がつくったヘルプってこればっかりなのに。
0618デフォルトの名無しさん
2006/11/23(木) 13:08:070619デフォルトの名無しさん
2006/11/23(木) 13:22:49同名のファイルは入ってて、起動すると
「HLP形式のヘルプはサポート終了するぞ。 どっかからWinhlp.32.exe持ってくれば
動くが、再配布は禁止だからな」って主旨のメッセージを表示した。
0620デフォルトの名無しさん
2006/11/23(木) 13:25:03>動くが、再配布は禁止だからな」って主旨のメッセージを表示した。
なんかいやらしいな…
0622デフォルトの名無しさん
2006/11/23(木) 13:55:40チェックボックスに分けて選んでリレーを
ON/OFFしたいんですが
procedure TForm1.Button1Click(Sender: TObject);
begin
Relay[Time]:=True;
Time:=Time+1;
RelayChange;
end;
これからどう増やせばいいでしょうか?
0623デフォルトの名無しさん
2006/11/23(木) 14:09:220624デフォルトの名無しさん
2006/11/23(木) 14:24:030625デフォルトの名無しさん
2006/11/23(木) 15:45:11よくわからんが、チェックボックス64個フォームに貼り付けて、
チェックボックスのTagプロパティに0〜63の値を入れて、
全てのチェックボックスのonClickにそのButton1Clickを入れて、
procedure TForm1.Button1Click(Sender: TObject);
var
c:TCheckbox;
begin
c:=Sender as TCheckBox;
Relay[c.Tag]:=Relay[c.Tag].Checked;
RelayChange;
end;
これでいいんじゃね?
0626625
2006/11/23(木) 15:46:05↓
Relay[c.Tag]:=c.Checked;
こうだった。
0627デフォルトの名無しさん
2006/11/23(木) 15:56:17マルチはいくないぞ!
0628デフォルトの名無しさん
2006/11/24(金) 13:44:09あちこち調べたら
TMP3Playerコンポーネントを使うのが良いとの記述を多く見かけたのですが
肝心のTMP3Playerコンポーネントのダウンロード先が全てリンク切れになってるんですが
現在は手にはいらないのでしょうか?
また現在mp3ファイルの実行するには
どのようなコンポーネントまたは関数を使えばよいのでしょうか?
お手数ですが教えて下さい
0629デフォルトの名無しさん
2006/11/24(金) 14:00:23mp3ファイル再生できるよ
但し、環境によっては再生出来ないこともある
0630デフォルトの名無しさん
2006/11/24(金) 14:10:30英語版Windowsなんかでは描画不正になるんでしたっけ?
これって実行時に動作するWindowsから情報取ってきて直してくれるんかな?
0631デフォルトの名無しさん
2006/11/24(金) 14:43:53デルファイワールドにあるよ
0632デフォルトの名無しさん
2006/11/24(金) 14:47:260633デフォルトの名無しさん
2006/11/24(金) 14:52:540634デフォルトの名無しさん
2006/11/24(金) 14:53:420635デフォルトの名無しさん
2006/11/24(金) 14:56:27デルファイワールドじゃなかったのか。。。
0636デフォルトの名無しさん
2006/11/24(金) 15:17:24あるの?どんな場合ですか?修正しなきゃならないかなあ…
0637デフォルトの名無しさん
2006/11/24(金) 15:19:530638デフォルトの名無しさん
2006/11/24(金) 15:26:36CODECにFraunhofer IIS MPEG Layer-3 Codecがないと
mp3ファイルが再生出来ない
ただ、IE4だか5を入れると自動的にインストールされるみたいなので
Win95とかWinNT4とかでない限り問題はないと思う
0639デフォルトの名無しさん
2006/11/24(金) 16:19:30コンポーネントをどうしても追加したい場合、製品を買うしかないのでしょうか?
0640デフォルトの名無しさん
2006/11/24(金) 16:29:440641デフォルトの名無しさん
2006/11/24(金) 16:42:59これで作ったプログラムは商用非商用関係なく配布不可能だから
0642デフォルトの名無しさん
2006/11/24(金) 17:40:030643デフォルトの名無しさん
2006/11/24(金) 17:57:00ビルドをTurboにやらせているだけだとライセンス的には解決していないだろ
0644デフォルトの名無しさん
2006/11/24(金) 19:24:01Delphi とは関係なかったんですね。あとは自分で調べてみたいと思います。
ありがとうございました。
0645デフォルトの名無しさん
2006/11/24(金) 21:44:530646デフォルトの名無しさん
2006/11/24(金) 21:51:08たとえば
var
i,j:real;
i:=12.3456789
で、小数点第三位以下を切り捨てて
j:=12.34にしたいのですが
0647デフォルトの名無しさん
2006/11/24(金) 21:55:470648デフォルトの名無しさん
2006/11/24(金) 22:19:44procedure TForm1.Button1Click(Sender: TObject);
var
RandArray: array[1..1000000] of real;
i:integer;
j:real;
begin
j:=0;
for i:=1 to 1000000 do
begin
Randarray[i]:=random;
end;
Label1.Caption:=FloatToStr(Randarray[StrtoInt(Edit1.Text)]);
{*
for i:=1 to 1000000 do
begin
j:=j+Randarray[i];
end;
j:=j/1000000;
Label2.Caption:=FloatToStr(j);
*}
end;
これやったら、スタックオーバーフローとか出てきたんだけど
配列が1000000もあるのが悪いみたいです
arreyはいくつまで宣言可能なのですか?
0649デフォルトの名無しさん
2006/11/24(金) 22:42:59俺も数年前まで、そういうエラーに悩まされた。
変数は制限のあるスタックに割り当てられるようで、GetMemとかでヒープを使えばいいと思う。多分
俺にも、一番最適な方法を、詳しい方、教えてください。
0650デフォルトの名無しさん
2006/11/24(金) 22:49:430651デフォルトの名無しさん
2006/11/24(金) 23:04:38ローカル変数はスタックと呼ばれる上限値の決まっているメモリに置かれるので
デカい配列を定義するとメモリ内に収まらなくなる
引数に大きな配列を渡す場合も同様
解決方法は以下の2つ
1.[プロジェクト]-[オプション] のリンカページでスタックサイズを増やしてあげる
2.動的にメモリを確保する
0652デフォルトの名無しさん
2006/11/24(金) 23:09:41procedure TForm1.Button1Click(Sender: TObject);
var
RandArray: array of real;
i:integer;
j:real;
begin
try
for i := 1 to 1000000 do
begin
SetLength(RandArray, i);
Randarray[i-1] := random;
end;
Label1.Caption := FloatToStr(Randarray[StrToInt(Edit1.Text)]);
j := 0;
for i := 1 to 1000000 do
begin
j := j + Randarray[i-1];
end;
j := j / 1000000;
Label2.Caption := FloatToStr(j);
finally
Finalize(RandArray);
end;
end;
0653デフォルトの名無しさん
2006/11/24(金) 23:29:57Finalizeを呼ばないと、SetLengthで割り当てた動的配列は、メモリリークするのですか?
0654デフォルトの名無しさん
2006/11/25(土) 00:19:41それぞれ区別して結果を返すようにするにはどうしたらいいですか?
tlist := TStringList.Create;
try
tlist.text := '';
tlist.add('ゝ');
tlist.add('ー');
tlist.add('ー');
tlist.add('a');
showmessage(inttostr(tlist.IndexOf('ゝ'))); // => 0
showmessage(inttostr(tlist.IndexOf('ー'))); // => 0
showmessage(inttostr(tlist.IndexOf('ー'))); // => 0
showmessage(inttostr(tlist.IndexOf('a'))); // => 3
finally
tlist.free;
end;
0655デフォルトの名無しさん
2006/11/25(土) 00:41:24#$81#$5B
あとはしらべぃ
0656デフォルトの名無しさん
2006/11/25(土) 01:09:55ShowMessage(IntToStr((CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE,
'ー', 2, 'ゝ', 2) - 2))); // 0になる
ShowMessage(IntToStr((CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE,
#$81#$54, 2, #$81#$5B, 2) - 2))); // 0になる
0657デフォルトの名無しさん
2006/11/25(土) 01:37:36やってみた。すまんかったね
0658デフォルトの名無しさん
2006/11/25(土) 01:50:42ありがとうございました。
posでは判別できるようなので新しく関数を作って対応しました。
0659デフォルトの名無しさん
2006/11/25(土) 01:52:52は-2になったよ。
>>657 ドンマイ
0660デフォルトの名無しさん
2006/11/25(土) 03:04:33動的配列はスコープ抜ければ自動で解放される
自分で解放したい時はnilを代入すればよろし
0661デフォルトの名無しさん
2006/11/25(土) 03:56:49性格には、参照カウントが0になった時
0662デフォルトの名無しさん
2006/11/25(土) 04:12:30memoの大きさはフォーム内いっぱいに広げています
フォームのはじっこをドラッグしてサイズ変更すると
それに伴ってmemoの大きさも変わるようにするにはどうすればいいですか?
0663デフォルトの名無しさん
2006/11/25(土) 04:14:220664デフォルトの名無しさん
2006/11/25(土) 04:22:23うをー!?!?まぢでー!?!?すげーすげすげすげー!?!スゲスゲヴォー!!!ありがとー<丶`∀´>
0665デフォルトの名無しさん
2006/11/25(土) 04:25:160666デフォルトの名無しさん
2006/11/25(土) 04:25:500667デフォルトの名無しさん
2006/11/25(土) 04:43:510668デフォルトの名無しさん
2006/11/25(土) 04:48:440669デフォルトの名無しさん
2006/11/25(土) 04:53:230671デフォルトの名無しさん
2006/11/25(土) 06:56:10何を使えばいいんでしょうか?
TFileCreate('HONYARARA.BIN',FMOpenRead);
だと、開くだけだし・・・
「さすが、くだすれだな」と言われそうですが・・・
0672デフォルトの名無しさん
2006/11/25(土) 07:46:27TStream.Read
TStream.Write
TStream.Seek
0673デフォルトの名無しさん
2006/11/25(土) 08:24:04TFileStreamクラスのReadBuffer、WriteBufferメソッド
0674デフォルトの名無しさん
2006/11/25(土) 09:16:11小数を文字列に置き換えて
AnsiPosで小数点の位置を調べ
その2バイト(桁分)先から
lengthで得た文字列の終端まで
deleteで削除しちゃえば?
0675デフォルトの名無しさん
2006/11/25(土) 11:55:56数値を文字列処理するのはまずいよ
0676デフォルトの名無しさん
2006/11/25(土) 12:09:44ExtractFileExtだとピリオドが入っちゃう
0677デフォルトの名無しさん
2006/11/25(土) 12:16:372文字以上だったら最初を取り除けばいいだけやん
0678デフォルトの名無しさん
2006/11/25(土) 13:02:12#define M 1000
みたいに
0679デフォルトの名無しさん
2006/11/25(土) 13:03:21begin
fs:=tfilestream.Create(savedialog1.filename,fmcreate);
try
fs.position:=$00000302;
t:=$000000ee;
fs.write(t,sizeof(t)); //tはbyte型
finally
fs.free;
end;
end;
すいません。質問の仕方が不適切でした。↑こんな感じで
302番地の内容をEE(255)にしたいと思ってるんです。
でも、こうするとファイルのサイズが701バイトに減ってしまいます(元は30KB程度あった)。
しかも、全体(701バイトより前)がめちゃくちゃに書き換えられてしまいます。
(質問の用語に間違いがあるかも)
0680デフォルトの名無しさん
2006/11/25(土) 13:13:180681デフォルトの名無しさん
2006/11/25(土) 13:14:480682デフォルトの名無しさん
2006/11/25(土) 13:19:02いやまあそうなんですけど、何を使って削ればいいのかorz
0683デフォルトの名無しさん
2006/11/25(土) 13:24:570684デフォルトの名無しさん
2006/11/25(土) 13:36:15なんとかできそうです
ありがとうございました
0685679
2006/11/25(土) 13:47:08>>681さん
ありがとうございました。
fmOpenReadWriteで出来ました。
>>1 にあるようにDelphi布教してみます。
(自分の周りのPCユーザーの90%以上は「Delphiって何」状態です)
0686デフォルトの名無しさん
2006/11/25(土) 13:47:45constを使う以外なさげ
0687デフォルトの名無しさん
2006/11/25(土) 17:54:21http://www.highdots.com/css-tab-designer/
オフィスっぽいGUIは、どんなコンポーネントを使っているんでしょうか?
# 寺小屋のスレで間違えて聞いてしまいました。
>>110
Turboは知らんけど、同等だと思われるBDS2006は、
FastMMのおかげで、すんげー速くなった。
メモリ確保しまくりのゲームだからかもしれんけど。
>>678
C言語並に強力なマクロないはずです。
定数宣言なら、constで代用できます。
0688デフォルトの名無しさん
2006/11/25(土) 18:03:34リソースハッカーでリソース内のdfmが見れるからコンポーネント名を調べればいいんじゃね?
0689デフォルトの名無しさん
2006/11/25(土) 18:20:24spy++によるとTdxBarControlと出たからたぶんここのやつ
http://www.devexpress.com/Products/VCL/ExBars/
0690デフォルトの名無しさん
2006/11/25(土) 19:22:38を使って圧縮したやつを
FTP(Indy)に上げたいのですが
SevenZipCommand('a -t7z "'+ExtractFilePath(paramstr(0))+'test.7z" "'+ExtractFilePath(paramstr(0))+'tmp\*" -ms=off');
FTP.Put(ExtractFilePath(paramstr(0))+'test.7z','test.7z');
としても圧縮だけなってそこで処理が止まってしまいます。
個人的には圧縮完了のダイアログが悪さしているか、
圧縮完了する前にFTPコマンドがに行ってなんかなってるのかなと思います。
どうしたら良いのでしょう orz
0691デフォルトの名無しさん
2006/11/25(土) 20:26:59そうでした。そっち系のツールで見ればわかりますね。
調べてみます。
>>690
とりあえず、問題を切り分けた方がいいですよ。
・7zip側の問題なのか
・Delphiの7zipの圧縮ルーチンの問題なのか
・FTPの問題なのか
0692デフォルトの名無しさん
2006/11/26(日) 01:21:040693デフォルトの名無しさん
2006/11/26(日) 01:21:33コードエディタをカスタマイズするアドインプログラムを作りたいと思っているのですが
Delphi 6 Personalでそのようなことはできるのでしょうか?
(ネットで調べるとTools APIでIDEのカスタマイズが可能。
6 PersonalにはTools APIは含まれずのような記述があったので。)
またアドインを作る上で参考になるサイトがあれば教えてください。
Delphi 6 Personalにこだわるのに大した理由は無いのですが、
せっかく作るならDelphiで、しかも今使っているバージョンで、
と思っています。
0694デフォルトの名無しさん
2006/11/26(日) 01:53:04http://bousyo.blog45.fc2.com/blog-entry-101.html
0695デフォルトの名無しさん
2006/11/26(日) 01:54:46>>693
http://bousyo.blog45.fc2.com/blog-entry-101.html
0696デフォルトの名無しさん
2006/11/26(日) 02:07:57この件はちょっと分からない。
ToolsAPI.pas が無かったら無理かも。
0697デフォルトの名無しさん
2006/11/26(日) 04:08:16なんか難しい。
サンプル: "FindFirst/FindNext/FindCloseの正しい用法"
ttp://forum.nifty.com/fdelphi/samples/00626.html
0698デフォルトの名無しさん
2006/11/26(日) 04:08:54FindFirstの結果が0になるときはTSearchRec内のハンドルが
INVALID_HANDLE_VALUEに設定されていますので、
FindCloseしてもしなくてもどちらでも構いません。
0699デフォルトの名無しさん
2006/11/26(日) 04:12:2440秒違いでしたね。その話(FIndFirstが0を返したときにFindCloseするとWindowsから制御が
帰ってくるまでに非常に時間がかかる)はD3時代のもので、D4以降ではその問題を回避するために
コードが変更されています。
0700デフォルトの名無しさん
2006/11/26(日) 04:54:360701デフォルトの名無しさん
2006/11/26(日) 05:02:22try
repeat
hoge
until FindNext = 0;
finally
FindClose;
end;
このパターンでいいじゃn
0702デフォルトの名無しさん
2006/11/26(日) 11:16:420703デフォルトの名無しさん
2006/11/26(日) 12:15:55ループでSetlengthの配列要素数を増やしていくと、アホみたいにメモリがなくなる。
最初にSetlength(*.1000000)みたいにしておかないと、すぐにメモリ不足。
0704デフォルトの名無しさん
2006/11/26(日) 12:55:56ありがとうございます。参考にします。
ちょっと大変そうですね。
>>696
Delphi 6 PersonalにはToolsAPI.pasがついていないし、
以前適当なプロジェクトでUse ToolsAPIした時は”ユニットが見つからない”
というようなエラーが出ていたので使えないものだとあきらめていました。
試しにフリーカーソル無効化アドインのソースをコンパイルしてみたところ
正常にコンパイルできたのでどうやら使えるようです。
先に試してみるべきでした。すみません。
同じようにUse ToolsAPIしているのにちょっと不思議ですが、
フリーカーソル無効化アドインのソースを見つつ調べてみます。
ありがとうございました。
0705デフォルトの名無しさん
2006/11/26(日) 14:51:22if FindFirst = 0 then
try
repeat
hoge
until FindNext <> 0;
finally
FindClose;
end;
0706デフォルトの名無しさん
2006/11/26(日) 15:02:49SetLength ってそうなの?ループの中で増やしていくってやり方でガンガン
やってたんだけど、最初に要素数を求めた方が良いのか…
0707デフォルトの名無しさん
2006/11/26(日) 17:08:43ようしらんけど
0708デフォルトの名無しさん
2006/11/26(日) 20:47:01> 正常にコンパイルできたのでどうやら使えるようです。
ToolsAPI.dcu がついている?
0709デフォルトの名無しさん
2006/11/26(日) 21:17:100710デフォルトの名無しさん
2006/11/26(日) 21:21:21実際にメモリ使用量を見ていると、笑えるくらい増えていく。
できるだけ、最初に多めに確保して、要素数が増えた時点で、SetLengthでぴったりの要素数にする方がいいな。
Setlengthしまくって消費したメモリは、配列のポインタがなくなるまで保持されてしまうので、かなり厄介。
どうしても途中で要素数を変更したい場合は、別の配列を作って要素をコピーして、前の配列のポインタを解放すると、
メモリ消費量が正常に戻る。
0711デフォルトの名無しさん
2006/11/26(日) 21:21:44CardinalはDelphiのバージョンによっては4バイトではない場合がある。
一番速度が速い符号無し整数型。
そのうち64ビット版Delphiでは、CardinalとかIntegerは8バイト型になるんじゃないかと昔は言われていた。
それに対して、LongWordとかLongIntはどのDelphiでも4バイトと決められている。
0712デフォルトの名無しさん
2006/11/26(日) 21:22:170713デフォルトの名無しさん
2006/11/26(日) 21:34:49普通のやり方の一つとして、要素数がたりなくなったら最大要素数を何倍かする、ってのが一般的に存在するな。
いちいち一個ずつ最大要素数を増やすよりはよっぽどパフォーマンスがいいので。
0714デフォルトの名無しさん
2006/11/26(日) 22:42:17ToolsAPIと名のつくファイルはD6Personalにはありませんでした。
フリーカーソル無効化アドインを見てみたらパッケージエディタのRequiresに
・・\Delphi6\Lib\designide.dcpが使われていて
中身を見てみるとToolsAPIの文字がありました。
パッケージって何?DCPって何?な状態なのですが
これを使えばいいのかなと思ってる所です。
0715デフォルトの名無しさん
2006/11/26(日) 23:11:57なるほど。勉強になりますた。
0716デフォルトの名無しさん
2006/11/27(月) 03:21:2064ビット版でもIntegerは32ビットなのですか。
0717デフォルトの名無しさん
2006/11/27(月) 04:05:35嘘を嘘と(略
0718デフォルトの名無しさん
2006/11/27(月) 04:52:02Windows では32ビットのまま。ポインタの幅だけ64ビットになるらしい。
0719デフォルトの名無しさん
2006/11/27(月) 06:13:28別に無くならないでしょう。 コピーが発生するから遅くはなるけど。
0720デフォルトの名無しさん
2006/11/27(月) 10:42:17・できるだけ最初に必要な要素数を確保する。
・分からなければ多めに確保しておく。(確定時点で削除する)
・どうしても追加する場合は別の配列にコピーするか、倍数などで一括して増やす。
といった感じでしょうか。
0721デフォルトの名無しさん
2006/11/27(月) 10:45:260722デフォルトの名無しさん
2006/11/27(月) 15:33:05アクティブじゃないときにボタンなどのある場所をクリックしても
クリックされずにアプリケーションがアクティブになるだけですよね。
で、もう一度クリックすると反応します。
あれと同様のことをしたいのですが、どのようにすればできるものでしょうか。
0723567
2006/11/27(月) 18:49:57ImageのCanvasに描画したものを印刷しようとして、
下記のとおり描いてみたのですが、ジョブがプリンタに行きません。
どこが悪いのでしょうか。
procedure TForm1.GPrintClick(Sender: TObject);
var
Bitmap1 : Tbitmap;
Rect1 : TRect;
begin
Rect1 := Rect(0,0,Panel1.Width,Panel1.Height);
Bitmap1 := TBitmap.Create;
Bitmap1.Canvas.CopyRect(Rect1,Image1.Canvas,Rect1);
if dlgPrint.Execute then
Printer.BeginDoc;
Printer.Canvas.Draw(0,0,Bitmap1);
Printer.EndDoc;
end;
ちなみに前述のPaintBoxを使わず、TImageを使うことで、
フォーム全体を印刷したときに描画した内容が印刷されるようになりました。
あと、OnMouseDown等の各プロシージャで
TImageに描くのと同時にPrinterCanvasに描画するにはどうすれば良いのでしょうか?
Image1.Canvas.LineTo(X,Y);
Printer.Canvas.LineTo(X,Y);
なんて1行書くだけではダメなんですよね・・・
0724722
2006/11/27(月) 21:38:030725デフォルトの名無しさん
2006/11/28(火) 00:44:050726デフォルトの名無しさん
2006/11/28(火) 01:40:46Canvas の分解能がちがいすぎるわな
0727デフォルトの名無しさん
2006/11/28(火) 06:00:070728デフォルトの名無しさん
2006/11/28(火) 06:24:02Image1.Canvas.LineTo(X,Y);
Printer.Canvas.LineTo(trunc(X*a),trunc(Y*a));
として、Printerの場合は、a倍の座標に・・とする方がマシかな。
aの値は、PrinterのCanvasのサイズとImageのサイズから、比率を計算してな。
0729デフォルトの名無しさん
2006/11/28(火) 10:10:280730デフォルトの名無しさん
2006/11/28(火) 10:39:30ToolsAPI.pasの何かを使ってできるんじゃないかとは思ってるところですが、
どこかにそんなアドインとかあります?
あるいは、このinterfaceがそれっぽいと言う情報とか・・・
ファイルアクセス監視して自動でコンバートするのはあまりやりたくないところ。
0731デフォルトの名無しさん
2006/11/28(火) 11:51:52この結果はExtendedですか、Doubleですか、Singleですか。
0732デフォルトの名無しさん
2006/11/28(火) 11:54:410733デフォルトの名無しさん
2006/11/28(火) 11:56:03/による除算は割られる数、割る数の型に関わらず常にExtended
0734デフォルトの名無しさん
2006/11/28(火) 13:07:160735デフォルトの名無しさん
2006/11/28(火) 13:20:53で、
この中にいっぱいフィールドがあるのですが、
ローカルで使用する時に全フィールドを初期化をしたい場合、
全フィールドを別々に初期化しないとだめなんですか?
0736デフォルトの名無しさん
2006/11/28(火) 13:25:39ゼロ初期化じゃないならとっとと初期化用手続きを作る
0737デフォルトの名無しさん
2006/11/28(火) 13:26:180738デフォルトの名無しさん
2006/11/28(火) 13:27:32クラスなら数字は0、文字はヌル、論理はFalseで自動的に初期化される
どーしてもレコードがいいんだい!って人は
FillChar(MyRecord, SizeOf(MyRecord), #0);
これでも数字は0、文字はヌル、論理はFalseに設定されるよ
0739デフォルトの名無しさん
2006/11/28(火) 13:36:50文字がフィールドにあるレコード型でFillChar使うと、
参照カウントがおかしくなってメモリリークおこすんじゃね?
0740デフォルトの名無しさん
2006/11/28(火) 13:45:40レコードのメンバーにAnsiString 、WideString、Variant、動的配列を
含む場合はFillCharの後にInitialize手続きを呼んで
それらを初期化してあげる必要がある
FillChar(MyRecord, Sizeof(MyRecord), #0);
Initialize(MyRecord);
再初期化する場合は一度Finalize手続きを呼んで
AnsiString 、WideString、Variant、動的配列が使ってるメモリを解放
その後、FillChar、Initializeと続く
Finalize(MyRecord);
FillChar(MyRecord, Sizeof(MyRecord), #0);
Initialize(MyRecord);
>>739
する
説明不足でした
0741デフォルトの名無しさん
2006/11/28(火) 13:52:58データの保存用に作り始めたら項目がどんどん増えちゃって混乱状態に><
>>740さんの> FillChar(MyRecord, SizeOf(MyRecord), #0);
FinalizeやInitializeが何を意味するのか全然わかりませんが、
便利そうなので、ぜひ使わせてもらいたいと思います!
本当にありがとうございました!
0742デフォルトの名無しさん
2006/11/28(火) 13:59:46余力があればなぜInitializeが必要なのか
再初期化時だけFinalizeが必要なのはどうしてかを是非調べて
自分なりに理解して欲しい
0743デフォルトの名無しさん
2006/11/28(火) 14:04:070744デフォルトの名無しさん
2006/11/28(火) 14:04:380745デフォルトの名無しさん
2006/11/28(火) 21:27:410746デフォルトの名無しさん
2006/11/28(火) 21:46:32winhlp32.exeをどっかからもってきてVistaのと入れ替える。
0747デフォルトの名無しさん
2006/11/28(火) 22:11:17WinSpectorで調べてみましたが、
TdxNavbar
TdxDockControl
TdxBarControl
などが使われており、>>687さんの言うとおり、
http://www.devexpress.com/Products/VCL/Index.xml
にあるコンポーネントのようです。
類似のコンポーネントで、安いもの、もしくは、フリーのものってないでしょうか?
0748デフォルトの名無しさん
2006/11/28(火) 23:56:540749デフォルトの名無しさん
2006/11/29(水) 01:10:02あれ、思い出せねぇな。名前。海外のコンポでフリーウェアだと無償で利用できて、
有償ソフトに利用する場合、有料になるやつ。誰がヨロ。
0750デフォルトの名無しさん
2006/11/29(水) 07:49:28BDS2006です。
0751デフォルトの名無しさん
2006/11/29(水) 07:59:23ルーチンの例どころかVCLリファレンスすらまともに付いてない。
こんなんで新たなユーザーなんて増えるわけないわな。
0752デフォルトの名無しさん
2006/11/29(水) 08:09:100753567
2006/11/29(水) 11:35:47そう書くと、プログラム実行後、
描画した際にエラーがでて止まってしまいます。
何かが足りないのだろうと思いますが・・・
理解できていません・・・
また、
>>723
の前半部分のコードについて、
指摘して頂けると有り難いのですが・・・
0754デフォルトの名無しさん
2006/11/29(水) 11:40:51プロパティの読み込み時に、Minが範囲外扱いされてしまうからだな。
自動のCreateでエラーになると全体が止まってしまう。
で、何でそんな値になってるんだろうか?
1000で割った値にしても問題ないような気がする。
どうしてもと言うなら、プロパティじゃなくてコードで設定するとかかな。
0755デフォルトの名無しさん
2006/11/29(水) 11:56:24前にも書いたけど印刷されないのは
Printer.Canvasに何も描かれて無い為
>Rect1 := Rect(0,0,Panel1.Width,Panel1.Height);
>Bitmap1 := TBitmap.Create;
>Bitmap1.Canvas.CopyRect(Rect1,Image1.Canvas,Rect1);
コピー元とコピー先が同じなのはなぜ?
とりあえずCopyRectの部分をBitmap1.Assign(Image1.Picture.Bitmap);
に変更すれば印刷される
検証するならCopyRectの後に
Bitmap1.SaveToFile('C:\test.bmp');とか追加して
ビットマップファイルがC:\Test.bmpに存在して中身がTImageに描画したのと
同じか確認、違うならCanvasにはコピーされていない
あと、TBitmapのオブジェクト解放処理がないから
このソースはメモリリークが起こる
try〜finally節を利用してBitmap1.Freeの一文を必ず入れること
0756デフォルトの名無しさん
2006/11/29(水) 12:13:30TProgressBarのソースを見ると
Min > 100の時に例外を生成している
>>754の言うようにFormCreateイベント辺りで
Min := 1000;
Max:= 1000000;
とか書くぐらいか、あとはVCLのソース変更するとか
たぶんforループカウンタが1000から1000000までなんだろw
0757デフォルトの名無しさん
2006/11/29(水) 12:27:39とりあえずエラー表示の内容をここに書いてみると良いことが起こるかも
0758デフォルトの名無しさん
2006/11/29(水) 12:46:48Positionがゼロなんじゃねーの?
0759デフォルトの名無しさん
2006/11/29(水) 14:36:12ケチるなってw
ttp://www.tmssoftware.com/
Component Packは有償(175EUR)だが、商用利用でなければソース無しを我慢すれば使える。
ttp://www.jrsoftware.org/
Toolbar97はフリーウェア。ただし、UIが古い。
Toolbar2000はシェアウェアだが、商用利用でなければライセンス規約に引っかからない。UIはアドインをつければ
割といい感じになる。
0760デフォルトの名無しさん
2006/11/29(水) 16:07:52あぁ、それそれ。Toolbar2000俺が言いたかったのは。
というか、DevExpressなどの製品でもいいんだけどさ、Vista発売間近で、
OfficeスタイルのUIとかちょっと時代遅れになっちゃうよなぁー。
これからはRebornUIなのかね。
0761567
2006/11/29(水) 16:23:34丁寧なご指摘ありがとうございます。
早速試してみたところ、Bitmapにコピーが出来ている事は
SaveToFileで確認できました!
ですが、やはり印刷ジョブが行きません・・・
変更後のソースは下記のとおりです。
begin
Rect1 := Rect(0,0,Panel1.Width,Panel1.Height);
Bitmap1 := TBitmap.Create;
Bitmap1.Assign(Image1.Picture.Bitmap);
if dlgPrint.Execute then
try
Printer.BeginDoc;
Printer.Canvas.Draw(0,0,Bitmap1);
Printer.EndDoc;
finally
Bitmap1.Free;
end;
end;
0762デフォルトの名無しさん
2006/11/29(水) 16:35:47DevExpressのExpressBarの次のバージョンはOffice2007のUIを作成可能だぞ。
Vista上での使用も違和感がない。
ttp://www.devexpress.com/Home/Announces/ExpressBars6Beta.xml
もっともTMSのBarではすでにこれができているんだが。
ttp://www.tmssoftware.com/advtoolbar.htm
0763デフォルトの名無しさん
2006/11/29(水) 16:39:31ありがとう。ソースでMaxから設定したら問題無かったよ。
0764デフォルトの名無しさん
2006/11/29(水) 19:35:23おお、TMSSoftwareいい感じですねー。
めちゃめちゃほしくなりました。
AdvToolBarだけでも買おうかな。
Office2007は使ってましたけど、あのUIは、結構好きです。
RebornUIはあこがれますね。
0765デフォルトの名無しさん
2006/11/30(木) 10:18:040766デフォルトの名無しさん
2006/11/30(木) 11:11:10画像ファイルを表示させたいだけです。
OSはWindowsXPです。
昔作ったプログラムから必要な部分だけコピペしてきたら
画像が表示されなくなってしまいました。
どんなミスが考えられるでしょうか?
ご指摘よろしくお願いいたします。
http://up.spawn.jp/file/up54894.txt
0767デフォルトの名無しさん
2006/11/30(木) 11:15:500768デフォルトの名無しさん
2006/11/30(木) 11:25:22>bm1.LoadFromFile('img\bm1.bmp');
ここ
実行ファイルが存在するパスがカレントじゃないかも
絶対パスで書くかChDir手続きで明示的にカレントを変更すべき
0769デフォルトの名無しさん
2006/11/30(木) 11:30:50多次元配列を設定することはできないのでしょうか?
procedure test(var A: array of array of Integer)
begin
処理
end;
とすると
エラーとして型が必要なところにARRAYがありますと出てしまいます
0770デフォルトの名無しさん
2006/11/30(木) 11:38:29↓のように自分で型を定義すればOK
type
TMyArray = array of array of Integer;
end;
procedure Test(Var A: TMyArray)
begin
なんたらかんたら〜
end;
0771766
2006/11/30(木) 13:30:43ありがとうございます。
画像が表示される昔のソースを調べたのですが
どこがリフレッシュ対策なのやら??
でもなんか昔も同じところでつまづいてたような記憶もあります
進歩してない・・・orz
>>768
既に疑って検証済みなのですが
それが原因の可能性が低いんです
0772767
2006/11/30(木) 13:34:45リフレッシュ対策という考え方が違っています。
Windowsのウィンドウは、Windowsから書けというメッセージが来る度毎回書くのがルールです。
それをやりたくない場合は、TImageなんかのコンポーネントに描画させるとか。
0773ななしへたぐらま ◆XcB18Bks.Y
2006/11/30(木) 15:38:36中村拓男氏のこのページをご参照ください.
http://www.asahi-net.or.jp/~HA3T-NKMR/tips004.htm
このページの最後に書いてあるように同氏作のライブラリ DHGL にある TBigBitmap を使うのが手っ取り早いでしょう.
(DrawModeプロパティをdmUseBandingにすると同ページの解説にある3.と4.をやってくれます)
>>730
convert.exe というコマンドラインの変換ソフトが付いています.
パラメーター無しで実行すると簡単なヘルプが出てきますので参考にしてください.
例)convert -t nantoka.dfm
バイナリ形式のフォームファイルからテキスト形式の nantoka.txt を生成します.
※Delphi 5の場合は
convert -i -t nantoka.dfm
でフォームファイルを直接テキスト形式に書き換えてくれるようですが
Delphi 4の方にこのオプションがあるかはわかりません.
また私は使ったことはありませんので詳細はわかりません.
0774ななしへたぐらま ◆XcB18Bks.Y
2006/11/30(木) 16:40:37Windowsのマルチウィンドウシステムは1枚の紙か何かにウィンドウの絵を次々と描くような仕組みなんです.
たとえば画面にAというプログラムの甲というウィンドウがあって
そこにBというアプリの乙というウィンドウが部分的に重なり,
次に甲をクリックして甲をアクティブにする(またそれによって甲が最前面に出る)場面を考えてみます.
甲の表示はWindowsが単純に甲の絵を描くだけです.
次に乙を表示するときもWindowsが乙の絵を描くだけです.
このとき,乙の陰になった甲の一部分の絵は消滅してしまいます.
そして甲をアクティブにするとき,Windowsはウィンドウのキャプション(見出し)や消えてしまったボタンなどの絵を描きなおしますが
消えてしまった部分のうちプログラムAが自分で描画した部分に関しては
Windowsが甲に対して描きなおすように『メッセージ』を送るだけで再描画はAが行います.
つまりAは甲にこの『メッセージ』が来るたびに再描画するようなコードを書かなければなりません.
>>766のコードだとフォームへの描画はボタンをクリックしたときにしか行われないので
次に表に出てきたときにほかのウィンドウの陰になっていた部分がおかしくなってしまうのです.
(つづく)
0775ななしへたぐらま ◆XcB18Bks.Y
2006/11/30(木) 16:51:03対策は>>772にあるとおりで,メッセージの応答コードを書くかイメージコンポを使うかです.
メッセージへの応答コードをそのまま書くこともできますが,
DelphiのフォームコンポでOnDrawイベントのイベントハンドラに描画処理を書くことで応答をやってくれます.
TForm1.FormDraw(Sender: TObject);
begin
Canvas.Draw(0, 0, bm0);
end;
このコードだと初めからビットマップの内容が描画されてしまいますのでButton1をクリックしたら描画するという場合はこんな感じになるでしょう.
(宣言部)
TForm1 = class(TForm)
(略)
private
(略)
FButton1Clicked: boolean; // Button1がクリックされたことを記憶する変数
protected
(略)
end;
(実現部)
TForm1.Button1Click(Sender: TObject);
begin
FButton1Clicked := True; // 「Button1がクリックされたぜ!」
end;
TForm1.FormDraw(Sender: TObject);
begin
if FButton1Clicked tnen
Canvas.Draw(0, 0, bm0);
end;
(つづく)
0776ななしへたぐらま ◆XcB18Bks.Y
2006/11/30(木) 16:55:18イメージコンポはキャンバスにアクセスするとPictureプロパティに割り当てられているビットマップに描画します.
(ここにWindowsビットマップ以外のJPEG画像などが割り当てられている場合はエラーになります)
画像が空の場合は描画などの前にコンポと同じサイズのビットマップを作ります.
このコンポは自分が隠された後に再び表に来たときには自らを描きなおしますので
再描画のコードを書く必要はありません.
ただしイメージコンポのサイズが変わってもビットマップの大きさは変わりません.
(おわり)
0777デフォルトの名無しさん
2006/11/30(木) 18:31:060778デフォルトの名無しさん
2006/11/30(木) 18:37:140779デフォルトの名無しさん
2006/11/30(木) 18:42:59ない
0780777
2006/11/30(木) 19:56:050781デフォルトの名無しさん
2006/11/30(木) 19:56:300782766
2006/11/30(木) 20:28:54ブランクが長かったせいか、delphiそのものを忘れていました。
原因はソースの書き方そのものではなく、コピペしてきたことによる弊害で
オブジェクトインスペクタのイベントのOnCreateとOnDestroyが空欄のままだった
という何ともマヌケで恥ずかしいものでした。
>>775で教えていただいたOnDrawを試そうとして気付きました。
ななしへたぐらま ◆XcB18Bks.Yさんご指摘の件、直接の原因ではありませんでしたが
とても勉強になりました。TBitmapで検索かけてもその情報は見つけられませんでした。
そしてレスくださった皆様、大変助かりました。本当にありがとうございましたm(__)m
0783デフォルトの名無しさん
2006/11/30(木) 20:59:36コンポーネントか、何かのテクニックってありませんか?
TJpegImageだと、壊れたjpegファイルをLoadFromFileでロードしても
例外を生成してくれないみたいです。
ネットのあちこちで探してみたんですが、良さげなものがみつかりません。
有識者の皆様、どうかお助けください。
0784デフォルトの名無しさん
2006/11/30(木) 21:03:53ラベルに表示させる文字を点滅させたいのですが、どのようにすればいいでしょうか?
ご存知の方がいらっしゃったら教えて下さい。よろしくお願いします。
0785デフォルトの名無しさん
2006/11/30(木) 21:06:10大きなお世話だが
処理上同じでも
not 関数だと
関数のオーバーロードや他人がコード見たときに
ぱっと見でBoolean型のFalse値だとわからないから
関数 = falseがお勧め
0786デフォルトの名無しさん
2006/11/30(木) 21:08:10imgctl.dll
0787デフォルトの名無しさん
2006/11/30(木) 22:17:29俺は逆。
Get〜でBooleanだと分かるような名前にして、= True とかは使わない。
これはプロパティだとよくわかる話で、
if field.IsNull = False then
より
if not field.IsNull then
のほうが分かりやすいと思う。
0788783
2006/11/30(木) 22:25:42ありがとうございます。
今、imgctl.dllを入手して評価しているところです。
imgctl.dll内の、JPGtoDIBという関数が、
jpegファイルを読み込んでDIBデータを作成してハンドルを返すようなので、
これを使用しようとしています。
もう少しだけ、ご支援ください。
delphi上で、imgctl.dllを使用したサンプルコードは
どこかにないでしょうか?
検索キーワード「imgctl delphi」で調べてみたのですが、
なかなか応用できそうなサンプルコードが見つかりません。
よろしくおねがいします。
0789デフォルトの名無しさん
2006/12/01(金) 00:32:21付属のpasファイルをusesして、あとは、imgctl.txtをよく読むべし。
エラー関連とか。
0790デフォルトの名無しさん
2006/12/01(金) 01:14:09if not (function) then
でも判りにくいか?
0791デフォルトの名無しさん
2006/12/01(金) 04:41:12Delphi 6 RTL アップデート #3 のアーカイブが破損してた orz
http://www.borland.co.jp/delphi/del6up.html
から、また DL しようと思ったら、なんか落とせないんですが、
もう入手できないのでしょうか?
0792デフォルトの名無しさん
2006/12/01(金) 09:36:07メインスレッド以外のスレッドでブレークポイントを設定してデバッグ
やってるとIDEがうんともすんとも言わなくなる時無いですか。
最悪PCのリセット。
BDS2006はSP2,Hotfix9を当ててる状態です。
0793デフォルトの名無しさん
2006/12/01(金) 09:48:150794デフォルトの名無しさん
2006/12/01(金) 10:04:08MSIMEを使ってるのが原因だったはず。Visual Studioでも起こるらしいし
0795デフォルトの名無しさん
2006/12/01(金) 10:51:55http://www.geocities.jp/norg1964/delphianworld/data/gm/mp3pl126.zip
のMP3Playerコンポーネントをインストールしようとしたら、いろいろ警告とエラーが出ました。
エラーは↓のだけですがどうしたらインストールできるのでしょうか??
[エラー] mp3plyr.pas(3410): 未定義の識別子 : 'SListIndexError'
0796デフォルトの名無しさん
2006/12/01(金) 10:56:12設定してから印刷できるようにしたいんですがどうすればいいでしょうか。
デフォルトだとすぐに印刷が始まってうっかり大量印刷してしまうことがあるので。
0797デフォルトの名無しさん
2006/12/01(金) 11:00:06できました!!!
ありがとうございました!
自分の書いたソースが「基本的」には
間違っていなかったんですね。
他のページを見ても書いてあるのですが、
Bitmapの扱いには注意が必要なようですね。
後学のために質問なのですが、
描画ツールのように、
いくつかのプロシージャ(MouseDown・UP・Move等)
でひとつのImageなりPaintBoxなりのCanvasに描画し、
その描画したものを印刷する場合、
Bitmapに変換してから印刷するのが
常套手段と考えてよろしいのでしょうか?
それぞれの描画の際に同時にPrinter.Canvasに
描画する方法が具体的によく解らないので・・・
0798デフォルトの名無しさん
2006/12/01(金) 14:22:16コンパネの「地域と言語のオプション」−「言語」−「テキストサービスと入力言語」−
「詳細」−「詳細設定」
「詳細なテキストサービスをオフにする」にチェックを入れる
0799デフォルトの名無しさん
2006/12/01(金) 15:32:41サマリは
>>720
ふと思ったのですが StringGrid の RowCount や TStringList なども同様の
配慮をしないといけないものなのでしょうか。
0800デフォルトの名無しさん
2006/12/01(金) 15:53:40もちろん、自分でCapacityをいじって最適化するのはありだろうけどさ。
0801デフォルトの名無しさん
2006/12/01(金) 16:20:12mp3plyr.pas の const のところに、
SListIndexError = 'リストのインデックスが範囲を超えています (%d)';
を付け足すとか。
0802デフォルトの名無しさん
2006/12/01(金) 16:23:30TStringListやTListは1ずつ増やすときも内部では4とか8とか16ずつ増えるんだったと思う
だからそれほど気にすることはないよ
0803デフォルトの名無しさん
2006/12/01(金) 18:56:02ありがとう御座います。
試してみます。
「詳細なテキストサービスをオフにする」でぐぐったら出るわ出るわ。
勉強になりました。
0804デフォルトの名無しさん
2006/12/01(金) 19:52:58ソースのGrowみたら、そうですな。
ただし、そのGrowが呼ばれるのは、AddとかExpandやら一部だけなので注意だな。
Countとか直代入は、考慮されない?ようだ(そりゃそうか)
0805デフォルトの名無しさん
2006/12/01(金) 19:57:29QuickRep1.PrinterSetupメソッドを呼び出してダイアログボックスを表示。
0806デフォルトの名無しさん
2006/12/01(金) 19:59:37それ反映されないよ。
常にA4。というか、グローバルなプリンタの設定に依存する。
0808デフォルトの名無しさん
2006/12/01(金) 20:32:20http://support.borland.com/entry.jspa?externalID=4328&categoryID=94
0809デフォルトの名無しさん
2006/12/01(金) 23:43:50TStringListは他の人も書いているとおり特に意識しなくていいけど、
TStringGridはあらかじめ行列の設定を絶対にすべき。
行列のサイズが大きければ、処理速度が雲泥の差になる。
0810デフォルトの名無しさん
2006/12/01(金) 23:50:06だいたい同じような状況になるわな。
0811デフォルトの名無しさん
2006/12/02(土) 00:11:070812デフォルトの名無しさん
2006/12/02(土) 00:21:140813デフォルトの名無しさん
2006/12/02(土) 00:30:540814デフォルトの名無しさん
2006/12/02(土) 03:04:13メインスレッドが持ってる変数に別スレッドから変更を加える時はsynchronizeした方がいいんですか?
0815デフォルトの名無しさん
2006/12/02(土) 03:19:39あ、ありがとうっ!
滅茶苦茶助かりました。
0816デフォルトの名無しさん
2006/12/02(土) 03:28:53Yes
0817デフォルトの名無しさん
2006/12/02(土) 04:17:48それともこういう設計自体間違ってますか。
0818デフォルトの名無しさん
2006/12/02(土) 08:40:52正直、良くない。
基本的にスレッドで処理したデータはそのスレッドの外に出さない。
他のスレッドから処理したデータにアクセスするには、
スレッドオブジェクトに作ったプロパティやメソッドを使う。
またイベント型プロパティを作れば状態変化をスマートに通知できる。
0819デフォルトの名無しさん
2006/12/02(土) 09:10:03foo: Integer;
bar: String;
...
end;
なんて情報受け渡しレコードでも作ってスレッド動作中は他からぜったにに触らない
という「暗黙の了解」をきっちり守れるなら同期不要とか釣ってみるテスト
0820デフォルトの名無しさん
2006/12/02(土) 09:25:430821815
2006/12/02(土) 10:23:02OS を 2k→XP に変更すると、使用許諾証も新規に取得しないと駄目でしょうか?
また、登録場所は何処でしょうか?
DelWiki さんの所のリンクは切れているみたいで、
英語の公式サイトを探してみたんですが、見当たらないです orz
0822デフォルトの名無しさん
2006/12/02(土) 10:26:410823デフォルトの名無しさん
2006/12/02(土) 10:28:580824デフォルトの名無しさん
2006/12/02(土) 10:33:080825デフォルトの名無しさん
2006/12/02(土) 10:44:32Button1Click(nil);
0826デフォルトの名無しさん
2006/12/02(土) 11:05:380827デフォルトの名無しさん
2006/12/02(土) 11:08:55ボタンがクリックされた時のイベントが
OnClick
マウスでボタンを押しつづけてる時のイベントが
OnMouseDown
0828デフォルトの名無しさん
2006/12/02(土) 11:09:030829デフォルトの名無しさん
2006/12/02(土) 11:09:26先に起動されたアプリに転送するのってどうやりますか?
0830デフォルトの名無しさん
2006/12/02(土) 11:12:190831822
2006/12/02(土) 12:05:32まあそういうことです
ずっと凹んだ押された状態にしたいわけです
TCheckBoxのStateみたいにプロパティで指定できないもんなんですかね
あきらめてTCheckBox使うことにしよ
0832デフォルトの名無しさん
2006/12/02(土) 12:07:170833デフォルトの名無しさん
2006/12/02(土) 12:07:38WM_COPYDATAで送る
WM_SETTEXTで送る
メモリマップドファイルで送る
こんなとこじゃね?
0835デフォルトの名無しさん
2006/12/02(土) 13:07:37DDEってやつは?
0836デフォルトの名無しさん
2006/12/02(土) 13:48:270837デフォルトの名無しさん
2006/12/02(土) 14:24:52ま じ か YO
ソースくれ
0838デフォルトの名無しさん
2006/12/02(土) 14:26:26>>175がそうじゃないかと。
あるいは直接
http://register.borland.com/delphi6
に行くとか。
0839デフォルトの名無しさん
2006/12/02(土) 15:46:52CheckBoxのスタイルににBS_PUSHLIKEを追加する。でも
> ずっと凹んだ押された状態にしたいわけです
ってのは本来はCheckBoxが正しいのでは?
>836
一部は残るらしいが。でもDDEはもはやレガシーだしな。
廃止のソースはどこだったっけな?ここ数日で見かけた話だったんだけど。
0840デフォルトの名無しさん
2006/12/02(土) 16:31:460841799
2006/12/02(土) 19:54:30ただ、StringGrid(に限らず)で大きなデータを扱う場合は注意が必要
というわけですね。性能でトラブったときって結構無茶苦茶あせるので
このようなTipsはありがたいです。
0842836
2006/12/02(土) 21:09:03ソース何処だ。
0843839
2006/12/02(土) 21:51:21http://pc8.2ch.net/test/read.cgi/tech/1163375772/405-414
0844デフォルトの名無しさん
2006/12/03(日) 00:10:56公式発表とかじゃなくて、実際に試したら使えなかったということか
0845デフォルトの名無しさん
2006/12/03(日) 09:56:47名前,住所,電話番号,雑記
名前,住所,電話番号,雑記
名前,住所,電話番号,雑記
名前,住所,電話番号,雑記
というテキストファイルを1行ずつ読み込んで
レコード型に格納しようとしています
レコード.名前 := copy(string,1,AnsiPos(',',string)-1);
Delete(string,1,AnsiPos(',',string));
レコード.住所 :=
という処理を数千回、数万回繰り返す場合は
end := AnsiPos(',',string);
レコード.名前 := copy(string,1,end-1);
Delete(string,1,end);
とした方がメモリや処理速度的には良いのでしょうか?
教えて下さい
0846デフォルトの名無しさん
2006/12/03(日) 12:13:250847デフォルトの名無しさん
2006/12/03(日) 14:00:340848845
2006/12/03(日) 14:35:56どうやれば良いのでしょうか?
もう少し詳しく教えて下さいm(_ _)m
>INIにすれば?
INIとは何ですか
ググッたけどわからんかったorz
使用ヴァージョンは
delphi6 personalです
0849デフォルトの名無しさん
2006/12/03(日) 14:47:45AnsiPos、Copy、DeleteといったString型を扱う関数は遅い
それらの組み合わせを変えたところで大した違いはない
速度やメモリが気になるならポインタを使う
>INIとは何ですか
>ググッたけどわからんかったorz
iniファイル形式として扱うようにして
TRegIniクラスを使うってことかな?
>名前,住所,電話番号,雑記
これってよーするにCSVファイル形式でしょ?
TStringList.CommaTextにブチこんでそれで解決
0850デフォルトの名無しさん
2006/12/03(日) 17:17:52作ることになりそうです。
データーベースエンジンはどれを使うのがよいのでしょうか?
0851デフォルトの名無しさん
2006/12/03(日) 17:21:22個人用?2〜3人?それ以上?
0852デフォルトの名無しさん
2006/12/03(日) 17:29:189x系はMicrosoft Layer for Unicode (MSLU)使わないと
機能しないんじゃないの?
0853850
2006/12/03(日) 17:36:59データもテキストばかりで、むしろデータベースを使うべきでないのかもしれませんが・・・
お手軽に使えるのがよいです。
と、聞いてばかりもあれなんで、自分でも調べてみます。
0854850
2006/12/03(日) 17:52:39http://www.teppi.com/Components/dbgaisetu/
ここいいですね。参考にして、いろいろ探ってみたいと思います。
0855デフォルトの名無しさん
2006/12/03(日) 18:31:08DBにしない方がいいんじゃね?
XMLとかで十分な希ガス
0856デフォルトの名無しさん
2006/12/03(日) 18:43:32タイムリーだな。オレもそう。「本部システム」だって。
キーワードだけ言われてもなあ… これって大変なのかな…
0857デフォルトの名無しさん
2006/12/03(日) 19:55:32予感がします
0858デフォルトの名無しさん
2006/12/03(日) 20:36:110859デフォルトの名無しさん
2006/12/03(日) 20:37:570860デフォルトの名無しさん
2006/12/03(日) 20:45:00keybd_eventというものもあるんですね。こっちを使った方がよいですか。
0861デフォルトの名無しさん
2006/12/03(日) 21:06:380862デフォルトの名無しさん
2006/12/03(日) 23:03:42thxxxxxx
0863デフォルトの名無しさん
2006/12/03(日) 23:25:45TClientDataSetというコンポーネントが有るので、それを調べてみてください。
ファイルベースのDBです。SQLは使えませんので注意。
0864デフォルトの名無しさん
2006/12/04(月) 00:04:210865デフォルトの名無しさん
2006/12/04(月) 00:29:21なおGlyphプロパティはTBitmap型なので、各種メソッド使って画像を変えることも可能です。
0866デフォルトの名無しさん
2006/12/04(月) 01:26:069x系ならAnsiUpperCaseが呼び出されるじゃないか。
0867デフォルトの名無しさん
2006/12/04(月) 04:33:02Delphiが消えていくという流れは止められないみたいですね。
0868デフォルトの名無しさん
2006/12/04(月) 07:05:000869デフォルトの名無しさん
2006/12/04(月) 07:33:430870デフォルトの名無しさん
2006/12/04(月) 08:12:560871デフォルトの名無しさん
2006/12/04(月) 08:47:23亀レスだけど、本当にありがとう。
ちゃんと認証されました。
0872デフォルトの名無しさん
2006/12/04(月) 10:16:08日本でも.NETを扱っているWindows Developer Magazineが休刊になるんだって?????
.NETが消えていくという流れは止められないみたいですね。
0873デフォルトの名無しさん
2006/12/04(月) 10:32:48俺はC#とかけもち。
0874AnsiPos の代替関数
2006/12/04(月) 10:59:35オリジナルのAnsiPosは非常に遅いので以下のコードをお試しあれ!
//AnsiStrPos の代替関数(↓の下部関数)
function AnsiStrPosEx(StrStart, StrEnd, SubStrStart, SubStrEnd: PChar): PChar;
var
p, ps: PChar;
SL: Integer;
begin
p := StrStart;
SL := SubStrEnd-SubStrStart;
Result := Nil;
while p < StrEnd do
begin
ps := SubStrStart;
while ps^ = p^ do // 012345678901234567
begin // _____ABC____ABC__#0
Inc(p); Inc(ps); // |--->p
if ps^ = #0 then
begin
Dec(p,SL);
Result := p;
Exit;
end;
end;
if p^ in [#$81..#$9F, #$E0..#$FC] then Inc(p);
Inc(p);
end;
Result := Nil;
end;
0875AnsiPos の代替関数続き
2006/12/04(月) 11:00:55function AnsiPosEx(const Findstr, S: string): Integer;
var
p, e, ps, pe: PChar;
begin
Result := 0;
p := PChar(S);
e := p + Length(S);
ps := PChar(Findstr);
pe := ps + Length(FindStr);
p := AnsiStrPosEx(p, e, ps, pe);
if p <> nil then
Result := Integer(p) - Integer(PChar(S)) + 1;
end;
0876デフォルトの名無しさん
2006/12/04(月) 11:36:000878デフォルトの名無しさん
2006/12/04(月) 12:09:29Delphiしかできない俺はどうしたらいいんだろう。
0879デフォルトの名無しさん
2006/12/04(月) 12:52:59新しいライブラリにはなかなか対応してくれないけどな。
0880デフォルトの名無しさん
2006/12/04(月) 14:34:39>>874-875 を使ってStringReplace(とても遅い!)のような文字列置換関数を作成して、たとえば
windows.pas の function を何か適当なものに置換して測定してみればかなり差があると思うけど。
0881デフォルトの名無しさん
2006/12/04(月) 16:45:59何を作るかによるんじゃね。
0882デフォルトの名無しさん
2006/12/04(月) 16:58:28http://nagoya.cool.ne.jp/palmtop/Magic.html
このソフトはパソコンの何をいじって音声を変えているのでしょうか。
パソコンの音声出力が数年前からおかしくなっていて諦めていたのですが、
このソフトを起動時に、たまにすごくクリアに聞こえるようになるのです。
10行ほどのプログラムと書かれているのですが・・・。
どなたかご教授いただければ幸いです。m(__)m
0883デフォルトの名無しさん
2006/12/04(月) 17:06:08音量変えてるだけ
あと、スレ違い
0884デフォルトの名無しさん
2006/12/04(月) 18:00:53失礼しました。
音量を変えてるだけ・・・ですか。
最適スレを探して詳しく質問してみます。
ありがとうございました。
0885デフォルトの名無しさん
2006/12/04(月) 20:22:55A=abcdefg,123456
とあったときに、カンマの前とあとを別々に入れるにはどうしたらいいですか?
0886デフォルトの名無しさん
2006/12/04(月) 20:32:510887デフォルトの名無しさん
2006/12/04(月) 20:45:06A[i]:=ini.ReadInteger('設定','A,-1);
と、Aの配列に別々に入れようと思ったのです。
A[0]=abcdefg
A[1]=123456
となるようにです。
0888デフォルトの名無しさん
2006/12/04(月) 20:56:020889デフォルトの名無しさん
2006/12/04(月) 22:41:08そうですか、D7でも大丈夫かな。
>>881
スタンドアロン〜クライアント数台の小規模なDBアプリです。今のところFireBird使ってます。
0890デフォルトの名無しさん
2006/12/04(月) 22:49:43あー、TurboDelのソースはそうなってるね
D6だと問答無用でCharUpperBuffWのみになってる。
API呼び出してるとこ全部確認しなくちゃだわ。。。
>>874-875
BM法やSunday'sQC法使うとかループのあんロールするとか
FastCodeのPosExをMB対応に改造するとかすれば、
asm使わなくてもその4〜6倍以上速くなるよ
0891デフォルトの名無しさん
2006/12/04(月) 22:56:30○ Sunday'sQS ...orz
0892ミ,,゚Д゚彡 ◆A6VzDeLphI
2006/12/04(月) 23:04:21やってるつもりだが。
StringsReplace
http://delfusa.main.jp/delfusalibrary/20060527212010/StringUnit/StringUnitLight.pas
もっと高速化してくれたら助かる。
procedure testStringsReplace;
で関数仕様はわかると思うので、このテストを通過するようにつくれば
同一仕様。
AnsiPosForwardというのも作っているので
汎用的に作っているので、高速化に主眼はないかもしれないな。
まあ、テスト書いているので
仕様を満たせば高速化に対するリファクタリングはいくらでも可能。
0893デフォルトの名無しさん
2006/12/05(火) 00:07:11もってきて入れ替えようとしたらVistaの強固なセキュリティの前に何もできませんでした
権限がtrustedinstallerじゃないとシステムフォルダは弄れないらしい
上書きコピーダメだったよ……
0894デフォルトの名無しさん
2006/12/05(火) 00:35:170895デフォルトの名無しさん
2006/12/05(火) 03:12:220896デフォルトの名無しさん
2006/12/05(火) 03:42:460897デフォルトの名無しさん
2006/12/05(火) 03:50:15>? そもそも , 探すのに高速AnsiPos系関数があっても仕方がないよ。
0898デフォルトの名無しさん
2006/12/05(火) 08:35:20Posはすでにあったような・・・・・
0899デフォルトの名無しさん
2006/12/05(火) 18:55:20遅レスですみません。
みんなそういう風にやってるのでしょうか??
0900デフォルトの名無しさん
2006/12/05(火) 19:58:41普通は1つのキーに1つの値を入れる
TStringListでも作ってCommaTextにでも放り込めば楽かもしれない
0901デフォルトの名無しさん
2006/12/05(火) 20:01:12TStringsのCountなどはIntegerなので・・・
for i := 0 to myStringList.Count - 1 do
こういう書き方は頻繁に使うと思いますが、
もしCountがCardinalで 0 だったら、ここでオーバーフローになってしまうので、敢えてIntegerなのかなぁと。
0902デフォルトの名無しさん
2006/12/05(火) 20:08:03日本語がちゃんと通るやつって今はあるの?
それが見つからなかったから一度自分で作ったことがあるんだけど、4,5年前.
0903デフォルトの名無しさん
2006/12/05(火) 21:05:11HLPをダブルクリックで開くことは出来ますが
F1で起動したり、メニューからヘルプ→Delphiヘルプで起動することが出来ません
F1でヘルプがみたいです……orz
0904デフォルトの名無しさん
2006/12/05(火) 21:06:550905デフォルトの名無しさん
2006/12/05(火) 21:08:41どこぞのDelphi本には、cardinalを使わず、範囲限定のinteger型を作ると便利と書いてあった。
type
IntNatural=0..MaxInt;
で、cardinalより何が有利かというと、integer型の変数と四則演算とかした場合、int64に拡張されないからパフォーマンスで有利と言うこと。
0906デフォルトの名無しさん
2006/12/05(火) 21:17:33どこかにあったのですが、忘れてしまいました。
0907デフォルトの名無しさん
2006/12/05(火) 21:25:030908デフォルトの名無しさん
2006/12/05(火) 21:38:18このあたり?
http://www.efg2.com/Lab/Library/Delphi/Graphics/
http://graphics32.org/wiki/
0909デフォルトの名無しさん
2006/12/05(火) 21:39:12Quadruple Dのs_mathpackとか
>>907
ない。
ちなむと、Turbo C++にはあるけど、色々不安定なのであんまり使わない方がいい。
0910デフォルトの名無しさん
2006/12/05(火) 21:45:390911デフォルトの名無しさん
2006/12/05(火) 22:52:01FastCodeの事なら今でも(多分これからも)マルチバイト非対応
ロシアあたり探せば対応のがあるだろうけどw
0912デフォルトの名無しさん
2006/12/05(火) 23:03:540913906
2006/12/05(火) 23:24:05これです。
これの元になったやつってどこで配布しているんだろ・・・
っていうか、GLScene見てたけど、これスゲーわwww
これでなんか作ってみようw
0914デフォルトの名無しさん
2006/12/06(水) 01:05:35Delphi持ってるならGLSceneを使え
http://pc8.2ch.net/test/read.cgi/tech/1163269079/l50
0915デフォルトの名無しさん
2006/12/06(水) 01:34:03日本語情報が全然無いので茨の道ではあるな
0916デフォルトの名無しさん
2006/12/06(水) 08:13:380917デフォルトの名無しさん
2006/12/06(水) 08:37:380918デフォルトの名無しさん
2006/12/06(水) 10:34:14そんなあなたに、こんな実情をw
http://pc7.2ch.net/test/read.cgi/software/1103786965/267-
0919デフォルトの名無しさん
2006/12/06(水) 10:58:12よくそのレスからそれだけ議論を広げられるなw
0920デフォルトの名無しさん
2006/12/06(水) 11:35:03調べ物をすると露仏中のサイトがかなり多いんだよな。
他の開発言語がどうなんだかよく知らないけど。
0921デフォルトの名無しさん
2006/12/06(水) 12:43:45教育機関でPascal教えてそうじゃない?
0922デフォルトの名無しさん
2006/12/06(水) 12:47:510923デフォルトの名無しさん
2006/12/06(水) 21:08:040924デフォルトの名無しさん
2006/12/06(水) 21:30:32ぜんぜん。
0925デフォルトの名無しさん
2006/12/06(水) 21:50:22素晴らしく的を射得てる
0926デフォルトの名無しさん
2006/12/06(水) 21:53:580927デフォルトの名無しさん
2006/12/06(水) 22:07:43おまいさんは英語圏なのかそれともプログラマじゃないのか?
0928906
2006/12/06(水) 22:10:56俺も最近そう思ったw
露仏中のサイトで、Delphiが結構多い。見れなくてウザイw
0929デフォルトの名無しさん
2006/12/06(水) 22:42:52■★■プログラミング言語 Borland Delphi3.1&Delphi3.0〓正規品〓CD二枚(送料込) 【1999円〜】
http://www.bidders.co.jp/item/79055158
0930デフォルトの名無しさん
2006/12/06(水) 22:54:440931ななしへたぐらま ◆XcB18Bks.Y
2006/12/06(水) 23:37:19遅レスですいません.
画面に表示されているとおりに印刷したいのでしたら(『ハードコピー』と呼ばれているものです)
内部で持つデータはビットマップでよいのではないかと思います.
また一般的なアプリケーションではプリンタの選択はユーザーが印刷を指示する直前にできます.
プリンタやプリンタの設定が変われば解像度も印刷可能範囲も変わってしまいますので
プリンタの設定を決めてからでないと印刷できません.
そのため画面への描画と同時にPrinter.Canvasに描画するということはないと思います.
0932デフォルトの名無しさん
2006/12/07(木) 00:27:080933デフォルトの名無しさん
2006/12/07(木) 01:23:41カレントフォルダがBinになってしまうけど設定で他フォルダに変えられないの?
0934デフォルトの名無しさん
2006/12/07(木) 01:24:190935デフォルトの名無しさん
2006/12/07(木) 01:35:22D6ならショートカットアイコンの作業フォルダを変更するとよろし。
0936デフォルトの名無しさん
2006/12/07(木) 02:11:14すげぇ できたよ
こんなんよく知ってるね。って俺が知らんだけだな
ありがとう
0937デフォルトの名無しさん
2006/12/07(木) 12:42:14過去のアカデミック版はフリーウェアでも公開不可だったと思うんだけど、どうなんだろう。
license.txt読んでみたけどよくわからん。
0938デフォルトの名無しさん
2006/12/07(木) 13:04:46TurboDelphi無料版の場合は、商用すら可能。
で、微妙なのは、商用不許可なD6無料版で作ったソースをTurboDelphiでビルドしただけのものをD6のライセンスに従う必要があるかどうかだな。
0939デフォルトの名無しさん
2006/12/07(木) 13:08:500941デフォルトの名無しさん
2006/12/07(木) 13:16:47金出して買ったアカデミック版ではフリーウェアですら公開不可という理不尽さ。
0942デフォルトの名無しさん
2006/12/07(木) 13:29:390943デフォルトの名無しさん
2006/12/07(木) 13:30:450944デフォルトの名無しさん
2006/12/07(木) 13:34:450945デフォルトの名無しさん
2006/12/07(木) 13:54:23kwsk
0946デフォルトの名無しさん
2006/12/07(木) 14:09:450947デフォルトの名無しさん
2006/12/07(木) 14:22:33自動で色付けしてくれるようなやつがいいんだけど。
ぐぐって見たけどロシア語のしかみつかんなかった。
0948デフォルトの名無しさん
2006/12/07(木) 14:26:560949デフォルトの名無しさん
2006/12/07(木) 14:30:500950デフォルトの名無しさん
2006/12/07(木) 14:39:19GExperts にそんな機能があったような。
CSS が古いけど。
0951デフォルトの名無しさん
2006/12/07(木) 14:41:50アカデミック買っとけ。8千円だぞ。
どうせフリーソフトも商用ソフトも作らないんだろ。
0952デフォルトの名無しさん
2006/12/07(木) 15:28:01> 過去のアカデミック版はフリーウェアでも公開不可
>>941
> 金出して買ったアカデミック版ではフリーウェアですら公開不可という理不尽さ。
アンチ必死すぎ
0953デフォルトの名無しさん
2006/12/07(木) 16:32:42これはマジ話。ウソだと思うならボーランドにメールだしてみろ
0954937
2006/12/07(木) 16:39:370955デフォルトの名無しさん
2006/12/07(木) 16:40:56買ってlicense.txt読むまで、「アカデミック版で作られた一切の物は、教育用途以外では配布不可」って知らなかった。
今更非アカデミック版買うのも微妙なので、新しいバージョンを出るのを待ってる。購入資金も貯めてる。
BDS2006自体は、そこそこ満足しているんだがなぁ・・・
0956デフォルトの名無しさん
2006/12/07(木) 17:28:21ライセンス制限はしょうがないと思うよ
ただpersonal版とか体験版とか
無料版があるのになぜアカデミックがあるのか
無料版で許されてる配布がアカデミックではダメなのかという別の問題もある
単に無料版出す時に
アカデミック版のことを忘れていただけという気もするがなw
0957デフォルトの名無しさん
2006/12/07(木) 17:30:290958デフォルトの名無しさん
2006/12/07(木) 17:55:00今日の夕飯は米と味噌汁だけ。ばあちゃん病院で待ってるから、そろそろ看に行かないと・・・
0959デフォルトの名無しさん
2006/12/07(木) 17:59:25うん delphiはdelphiで作ってるんだ
じゃあ そのdelphiは何から作ってるんですか?
delphiを作るdelphiもdelphiから作ってるんだよ
じゃあ そのdelphを作るdelphiのdelphiは何から作ってるんですか?
delphiを作るdelphiのdelphiもdelphiから作ってるんだよ
じゃあ そのdelphを作るdelphiのdelphiのdelphiは何から作ってるんですか?
delphiを作るdelphiのdelphiのdelphiもdelphiから作ってるんだよ
じゃあ!・・・・・・・
(以下エンドレスラヴ)
0960デフォルトの名無しさん
2006/12/07(木) 18:06:190961デフォルトの名無しさん
2006/12/07(木) 18:15:42学生さんがDelphiをやらなけれいいだけの話だと思うよ。
あと、俺も学生んときはスパゲティばっかり作って食ってたなあ。
0962デフォルトの名無しさん
2006/12/07(木) 18:45:49貧乏人はMS謹製ソフトでも使ってオナニーしてろよwwww
Delphiは選ばれたセレブリティのための開発環境なんだよ。
0963デフォルトの名無しさん
2006/12/07(木) 18:51:090964デフォルトの名無しさん
2006/12/07(木) 19:35:10楽して金取れるソフト作りたいならちゃんと金払え
本当に金をかけずに金が欲しいなら無料版で作れよ
0965デフォルトの名無しさん
2006/12/07(木) 19:49:54うそつけ!
俺が買ったときは、そんな制限なかったぞ。
0966デフォルトの名無しさん
2006/12/07(木) 19:50:47いつのまにそんなクソライセンスになったんだ?
ナンセンスじゃないライセンスじゃなかったのかよfaf!!
0967デフォルトの名無しさん
2006/12/07(木) 20:35:47Del7あたりからクソライセンス化していった。
Delphi本体もライセンスに合わせてクソ化していってる気がする
0968デフォルトの名無しさん
2006/12/07(木) 21:14:35ライセンス条項に書いてないよな。ナンセンスになったからか
0969デフォルトの名無しさん
2006/12/07(木) 22:03:30Delphi6のUpdate2から。
0970デフォルトの名無しさん
2006/12/07(木) 22:23:420971デフォルトの名無しさん
2006/12/07(木) 22:28:260972デフォルトの名無しさん
2006/12/07(木) 22:29:400973デフォルトの名無しさん
2006/12/07(木) 22:32:00カスタマイズしてるんですが、今のPCが壊れたら開発環境構築しなおすのに
無茶苦茶手間かかりそうです。みなさんどんな管理をされていますか?
0974デフォルトの名無しさん
2006/12/07(木) 22:37:40コンポはそれを使うアプリ毎にパッケージも作った方が良いよ。
0975デフォルトの名無しさん
2006/12/07(木) 22:43:530976デフォルトの名無しさん
2006/12/07(木) 22:53:36そこに入れておけば、いつでも復元出来る
0977デフォルトの名無しさん
2006/12/07(木) 23:02:56レジストリとフォルダをユーティリティでバックアップ。
+PC全体をイメージング。
0978970
2006/12/07(木) 23:17:08基本的な機能に大きな違いはないと言うことですか?
新しいTarboのほうがむしろ機能が追加されて、
代わりに不安定で重くヘルプの出来が悪いという理解でいいのでしょうか?
0979デフォルトの名無しさん
2006/12/07(木) 23:37:24まずはIDE と作成するEXE を分けて考えましょう。
あとはお前さんのPCの性能ね。
0980デフォルトの名無しさん
2006/12/07(木) 23:38:550981970
2006/12/08(金) 00:23:40athlonXP2500、RAM650M WindowsXPSP2です。
昔見よう見まねでVBがインストールされたマシンを使って
4側演算が出来る電卓を作った程度です。
0982970
2006/12/08(金) 00:28:25IDEが何か理解してから来いというのであれば、スルーしていただいて結構です。
0983デフォルトの名無しさん
2006/12/08(金) 00:29:490984デフォルトの名無しさん
2006/12/08(金) 00:31:010986デフォルトの名無しさん
2006/12/08(金) 06:01:11開発しようと思って、戻す場合の注意点をお教えください。
Delphi7以降に追加されたプロパティをうっかりいじって、フォームファイルに記録された場合、
Delphi7でコンパイルできなくなる
ぐらいしか思いつきませんが、他にもあるのでしょうか??
プロジェクトファイルの拡張子が変わってXML形式になってると思いますが、これはDelphi7で作られた
dprのファイルを使えば、問題ない??
後、Turboでエディタが色々な形式に対応してる(Unicodeなど)と思いますが、
Delphi7のプロジェクトをTurboで読みこむと勝手に変換されるってことはないですかね??
プロフェッショナルの方お願いします。
0987デフォルトの名無しさん
2006/12/08(金) 11:17:010988デフォルトの名無しさん
2006/12/08(金) 11:18:520989デフォルトの名無しさん
2006/12/08(金) 11:23:33バージョン管理ツールを使え。んで戻せ。
0990デフォルトの名無しさん
2006/12/08(金) 11:33:370991デフォルトの名無しさん
2006/12/08(金) 13:38:11なるべく、TurboDelphi上で更新した部分は消したくないのです。
>>988
了解です。dcuは全部消します。
0992デフォルトの名無しさん
2006/12/08(金) 13:45:57次の生成では、ほかの数字を生成させるようにさせたいんですがどうすればいいですか?
たとえば、12345と表示されるときもあれば、25314という時もあるみたいなふうにしたいです
0993デフォルトの名無しさん
2006/12/08(金) 13:46:56どうすればいいのでしょうか?
0994デフォルトの名無しさん
2006/12/08(金) 14:02:00> 乱数生成関数を初期化するには,Randomize を呼び出すか,RandSeed 変数に値を割り当ててください。
> これらを行わないと,アプリケーションを起動するたびに同一の順番で数値が出現する乱数列となります。
だそうです。
一般的にseedが同じならば生成される乱数列も同じになります。
0995デフォルトの名無しさん
2006/12/08(金) 14:07:22randomizeは知ってるんですが、randomizeをしても5が2回現れたり、1が一回も現れなかったりで
初期化するとはまた違うと思うんですが…
55312とかだとダメなんです
0996デフォルトの名無しさん
2006/12/08(金) 14:35:00逆に考えるんだ
予め配列に入れておいてバラバラにソートすれば
同じことだ
procedure TForm1.Button1Click(Sender: TObject);
var
aryData: array[0..4] of Integer;
i, iShuffleTimes, iTemp1, iTemp2, iSwap : Integer;
begin
for i := 0 to 4 do aryData[i] := i;
for iShuffleTimes := 1 to 5 do
begin
iTemp1 := Random(High(aryData) + 1);
Temp2 := Random(High(aryData) + 1);
Swap := aryData[iTemp2];
aryData[iTemp1] := aryData[iTemp2];
aryData[iTemp2] := iSwap;
end;
end;
0997デフォルトの名無しさん
2006/12/08(金) 14:38:16意味がよく分からない
VBのDLL内に存在するクラスを
Delphiで使用するってことか?
0998デフォルトの名無しさん
2006/12/08(金) 14:42:24やっぱりそういう方法のほうが一般的なんでしょうね
random関数を使ってのやりかたはあきらめます
ありがとうございました
0999デフォルトの名無しさん
2006/12/08(金) 14:51:421000デフォルトの名無しさん
2006/12/08(金) 14:55:38( ‘д‘)
⊂彡☆))Д´) ←>>1001
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。