Delphi相談室
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。
NGNGとかはいりにくい人の為に DelphiのTips Q&A はこちら
00021
NGNG○TIPS1 コンポーネントを DBEditからDBComboBoxみたいに
後から変更したい。
ALT+F12を押して直接プロパテイを
object DBEdit1: TDBComboBox
のように書換えてしまいます。
再度 ALT+F12を押した後 保存しようとすれば、ソースコードも修正してくれます
○TIPS2 TIPS1のようにしたくて ALT+F12を押したが
「リンクされたモジュールで使われています」と怒られた場合、
TTableとかを他のユニットで使われている場合が多いです。
そんな事が起きないようにTTableとかは データモジュールユニットを作って
そっちで用意するようにしましょう
0003転載
NGNGDelphiの仕様書自動作成ツールを探してます。
VBのは見るんですけど。
誰か知りませんか?
0004>3
NGNGhttp://www.nbe.co.jp/seihin/doc/
http://www.vector.co.jp/soft/win95/prog/se098417.html
Delphiのバージョンアップ時の案内に一緒にあったのはどうなんでしょ?
0005>4
NGNGhttp://www.inprise.co.jp/3rdparty/DOC.html
0006効率コード求む
NGNGCスタイルのPCHARを使うべきなのか? あるいは?
///////////////////////////////////////////////
// エスケープシーケンスにエンコードをする
function EncodeStr(s:string):string;
var i:integer;
begin
Result:='';
i:=1;
while i<=length(s) do
begin
case s[i]of
#0..#8,#10..#12,#14..#31,'"','''',',':
Result:=Result+'\x'+IntToHex(ord(s[i]),2);
#9: Result:=Result+'\t';
#13: begin
if (i+1 <= length(s)) and (s[i+1]=#10) then
begin
inc(i);
Result:=Result+'\n';
end else
begin
Result:=Result+'\x'+IntToHex(ord(s[i]),2);
end
end;
'\': Result:=Result+'\\';
else begin
Result:=Result+s[i];
end;
end;
inc(i);
end;
end;
// デコードをする
function DecodeStr(s:string):string;
var i:integer;
begin
Result:='';
i:=1;
while i<=length(s) do
begin
if s[i]='\' then
begin
inc(i);
case s[i] of
'x':
try
Result:=Result+ char(StrToInt('$'+s[i+1]+s[i+2])) ;
inc(i,2);
except end;
'b': Result:=Result+#$08;
'a': Result:=Result+#$07;
'f': Result:=Result+#$0C;
'r': Result:=Result+#$0D;
't': Result:=Result+#$09;
'v': Result:=Result+#$0B;
'n': Result:=Result+#13+#10;
else Result:=Result+s[i];
end;
inc(i);
end else begin
Result:=Result+s[i];
inc(i);
end;
end;
end;
0007名無しさん@お腹いっぱい。
NGNG本質的原因。PChar にしてポインタ操作にしたとしても、文字列終端のポインタを
管理しないと、文字列末尾に文字を追加するたびに strlen 相当の操作を
行わなければならずコストは高い。文字列終端ポインタを使えば追加に対する
コストは極端に低くなるけど、直感的ではないのでバグを誘発する
場合あり。(提示された程度のコードなら間違いはないと思うけど)
それより、ポインタ操作に切り替えた場合は、結果文字列の長さあふれを
どうやって回避するか。十分大きめに確保するか、あふれたら再確保するか。
メモリ管理は string に任し、文字型の配列とみなして、文字列終端インデックス
を持たせるというのが、個人的なお勧め。クラスにしてしまえば
取り扱いも簡単。
0008効率コード求む
NGNGエンコードは最悪("の連続)でも元の4倍になるだけなので
渡された文字列からヒープに領域を確保し、PCHARで処理すれば
という感じで考えていました。
ただ格好悪いかなと・・・・
0009名無しさん@お腹いっぱい。
NGNGResult[ind] := xxx;
って書けば、型チェックも効くし、実行時範囲チェックもできる。
0010名無しさん@お腹いっぱい。
NGNGをつくったほうが速い。とにかくstring生成を控えるべき。
0011まとめ
NGNG→結果の保持にstringの加算を使わず、Char型の配列と添え字にする。
ポインタなら(変数が減らせるので)なお良かも。
・IntToHexの代わりに'012..9ABCDEF'のテーブルを利用。
・条件分岐をする時、先に例外をはねる(' 'か'0'以下を別扱い)。
→非常にクリティカルなら、ctypeのように例外を全て配列参照にする手もある。
が、メモリアクセスが発生するので効果の程は不明。
0012効率コード求む
NGNGデータベースファイルをCSVに変換して保存する時とかに使いそ
うなコードなのでみなさん同じようなコードをお持ちかと思ったのですが・・・・
0013名無しさん@お腹いっぱい。
NGNG0014名無しさん@お腹いっぱい。
NGNGご存知なら場所を教えてもらえると有り難いです。
0015名無しさん@お腹いっぱい。
NGNG0016名無しさん@お腹いっぱい。
NGNG説明したら教えてくれますか?
0017名無しさん@お腹いっぱい。
NGNG納得できる説明だったら教えてやるよ。
001814>17
NGNG実は最近Delphiを始めたんですが、田舎住まいなため
解説本などが殆ど手に入らないんですよ。
それでもHelpや付属マニュアルと格闘して頑張っては
いるんですが、実際的な手法などの情報が全くない所為か
はたまた私のおつむの出来が悪すぎるのか、いまいち要領
を得ません。
で、他の人はどういうコーディングをしてるのか具体的に
見てみたかったんです。ダメでしょうか?
0019名無しさん@お腹いっぱい。
NGNGDelphiで書かれたソフトでオープンソースのものもたくさんあるでしょ.
Wyvernとか,Apolloとか.他にもあるかな.
002014
NGNGあ、ありがとう。
「Delphi ソース」などで検索してもめぼしいのが
ヒットしなかったのでたいへん助かります。
さっそく探してみます。感謝です。
0021名無しさん@お腹いっぱい。
NGNG002214
NGNGレスありがとうございます。
初心者にお勧めというとどんなのがありますか?
実は、アスキー出版局の「Delphi5オフィシャルコースウェア」
というのを取り寄せで買ってみたもののマニュアルと殆ど変わらない
内容だったので、それ以来注文で買うのを躊躇していたんです。
0023名無しさん@お腹いっぱい。
NGNG一応、付属のサンプルは一通り目を通したんだよね?
002414
NGNGはい(C:\Program Files\Borland\Delphi5\Demosにあるやつですよね?)
というか今も頑張ってやってるところです。
でも、初心者には敷居の高いものも結構ありますよね。
ActiveXとかThreadsとかデータベース関連のものとかSockとか・・・
一通りコンパイルして動作とソースを見比べる程度のことは
したんですが、でもデモなのでエラー処理も省かれてるようですし。
だから最初は簡単なアウトラインプロセッサのようなもので一通り
どうやって出来ているのか見てみたかったんです。
で、逆コンパイラがあればいいな、と・・・。
楽しようなんて以ての外、と言われれば、それまでですが。
002514
NGNG幾つか(というかいっぱい)見つけたので
これから試してみます。
0026効率コード求む
NGNGtype SQLExecProc =procedure(Fields:TFields ; var count:Integer)of object;
function SQLExec(const sqls:string;Proc:SQLExecProc ):longint;
var Query1 : TQuery;
begin
Result:=0;
Query1 :=TQuery.Create(TMethod(Proc).Data); //何かの為にオーナを作っておく
with Query1 do try
DatabaseName:= MyDatabaseName ;
SQL . Clear;
SQL . text:=sqls;
Open;
first;//頭にカーソルを持っていって
while not eof do begin
Proc(fields,Result);
next;
end;
finally
close;
free;
end;
end;
これを使うために今、formのメソッドでやってもいいのですが、
type ESQLStr=class(TStringList)
public
procedure SQLProc(fields:TFields ; var count:Integer);
end;
とクラスを臨時に作って
procedure ESQLStr.SQLProc(fields:TFields ; var count:Integer);
begin
append(
format('%5.4d=%12s',[ fields.Fields[0].asInteger,
fields.Fields[1].asString])
);
inc(count);
end;
こんなふうにやっています。
その都度作りたいスタイルが違うので、SQLProcをvirtualにして継承しても
そんなにメリットが無いと思ったからです。
しかしドロップダウンリストのItemsのようにすでにあるTStringsに対して
同じようなやり方をしたいとしたらどうやればいいのでしょう?
0027効率コード求む
NGNGFormat('%d,%s',varArray);と書けるなら一番簡単なんですが・・・
作るしかないのかな・・・・
0028効率コード求む
NGNGfunction VarFormat(const formats:string;const dt:array of Variant):string;
var s,w :string;
var i,n :integer;
var arg :array of TVarRec;
var Ext :array of Extended;
var Cur :array of Currency;
var str :array of AnsiString;
begin
s:=formats;
w:='';
while s<>'' do begin
n:=AnsiPos('%',s);//書式文字を探して
if n<1 then break;
for i:=n+1 to length(s) do
begin
if isDelimiter('duefgnmpsxDUEFGNMPSX',s,i) then
begin
w := w + s[i];
delete(s,1,i);//それまでを消して
break;
end;
end;
end;
LowerCase(w);
setLength(arg,length(w));
setLength(Ext,length(w));
setLength(Cur,length(w));
setLength(str,length(w));
for i:=0 to length(w)-1 do
with arg[i] do
case w[i+1] of
'd','u','x','p':begin VType:=vtInteger ;VInteger :=dt[i]; end;
'e','f','g','n':begin VType:=vtExtended;Ext[i]:=dt[i];VExtended:=@Ext[i]; end;
'm': begin VType:=vtCurrency;Cur[i]:=dt[i];VCurrency:=@Cur[i]; end;
's': begin VType:=vtAnsiString;
str[i]:=VarToStr(dt[i]);
VAnsiString:=Pointer(str[i]);
end;
end;
FmtStr( Result , formats , arg);
end;
0029名無しさん@お腹いっぱい。
NGNGborland.jp.public.delphi.preopen でもおもしろいかも。
0030>28
NGNG3つも配列作らなくても同時には一つしか使わないんだから、共用体作って
1つの配列にまとめた方がいいかも
それから金銭型と浮動小数点型は中身同じだから用意する配列は一つでいいと思う
0031効率コード求む
NGNGこんなふうなコードを考えました
with XX.Canvas do
with TBrush.Create do {一時的に作ったオブジェクトに}
try
Assign(Brush); {ここで保存して}
Brush.Handle:=GetStockObject(HOLLOW_BRUSH); {使いたいブラシを設定して}
・・・ブラシを使う処理・・・
Brush.Handle:=Handle; { ここで復元 }
except free; end;
しかし元に戻す時に Handleを使わなきゃいけないのはなんだかなあなのですが
うまい方法はあるでしょうか?
>>29 メーリングリストというのはよく判っていません。
というか自分のメールアドレスは携帯なので・・・
>>30 コメントありがとうございます。共用体というのを勉強してみます
0032名無しさん@お腹いっぱい。
NGNG>というか自分のメールアドレスは携帯なので・・・
関係ない。
といいたいところだが、受け側に回ることを考えると厳しいかもしれない。
0033某ランド>31
NGNGtype TSaveGraphicsObject=Class(TObject)
private
TargetObj:TGraphicsObject;
SaveObj:TGraphicsObject;
public
constructor Create(v:TGraphicsObject);
destructor Destroy; override;
end;
constructor TSaveGraphicsObject.Create(v:TGraphicsObject);
begin
if v is TFont then SaveObj:=TFont. Create
else if v is TPen then SaveObj:=TPen. Create
else if v is TBrush then SaveObj:=TBrush.Create
else SaveObj:=TGraphicsObject.Create;
SaveObj.Assign(v);
TargetObj:=v;
end;
destructor TSaveGraphicsObject.Destroy;
begin
TargetObj.Assign(SaveObj);
SaveObj.Free;
Inherited;
end;
そうすると、
with XX.Canvas do
with TSaveGraphicsObject.Create(Brush) do {一時的に作ったオブジェクトに}
try
Brush.Handle:=GetStockObject(HOLLOW_BRUSH); {使いたいブラシを設定して}
・・・ブラシを使う処理・・・
except free; end;
と保存と復元処理を隠せられる。
さらにやるなら interface すれば自動的にデストラクトされるけど
効率的処理からは離れるかもしれないね。
0034age
NGNG0035効率コード求む
NGNG0036名無しさん@お腹いっぱい。
NGNGLearning版だとこういう面で不便になってくる(Pro版では問題なくできる)ということ
があったら教えてください。
Learning版とPro版の機能一覧が↓に乗っていますが、具体的にどう影響するのかが
わからないので・・
www.inprise.co.jp/delphi/d5sku.html
0037名無しさん@お腹いっぱい。
NGNG良く知っている人ならCustom何とかまで戻って作ればいいけど
それじゃこのコンポーネントちょっといじりたいって時
初心者には手が出ない
0038名無しさん@お腹いっぱい。
NGNG新規作成でフォームを作ると問答無用で
Form1とかいう名前になります。
まあいいか、と、そのフォームのNameプロパティを
FooFormとか自分の望む名前にしました。
「すべて保存」メニューを実行させると、そのフォームクラスの
ソースが"Unit1.pas"などという名前でセーブされそうだったので
セーブダイアログ(と言うのかどうか)に手動でタイプして
"FooForm.pas"という名前でセーブしてもらおうとすると、
「すでにプロジェクトにある」とか言ってセーブさせてくれません。
「じゃあ」と思って、いったんそのフォームをプロジェクトから
削除して、再び新規作成したフォームをプロジェクトマネージャで
「名前を付けて保存」で"FooForm.pas"に保存しました。
このままでは当然クラス名やUnit名は変わらない(Form1のまま)ので
フォームのNameプロパティを変えようとすると「FooFormは既にプロ
ジェクトにある」とか言って変えさせてくれません。
なんとかクラス名とユニット名とファイル名を揃えたいんですが、
どうすれば良いのでしょう。
---- FooForm.pas ---------
unit FooForm;
type
FooForm = class(TForm)
:
:
--------------------------
てな具合に。
0039名無しさん@お腹いっぱい。
NGNGVCLのソースがついてくる体験版の存在。
0040名無しさん@お腹いっぱい。
NGNGユニット名とNameが同じだからだよ(糞
0041名無しさん@お腹いっぱい。
NGNGそんなのあったっけ?
0042>38
NGNG例えばFooUnitとFooFormのようにしてください。
0043>38
NGNGユニット名.XX とした時と オブジェクト名.XXとした時にどう区別する?
というかユニットもひとつのオブジェクトと考えた方がいいかも
0044>43
NGNGオブジェクトというよりも名前空間(namespace)に
近いかもしれませんね
0045名無しさん@お腹いっぱい。
NGNGどうしたらいいでしょうか?
0046名無しさんi486
NGNGねたです。
0047名無しさん@お腹いっぱい。
NGNG済みません、確かに皆様の「アホでぇこいつ」を呼び起こすような
ことだったようで、言われる通りにUnitをFooFrmにクラス名をTFooFormに
してあっさり解決しました。
でも嘘話という意味でのネタではないんです、ほんとに煮詰まってたのです。
ありがとうございました。
ところで、exceptとfinallyって同時に使えないんでしょうか。
Java感覚で
try
except
finally
end
って書いたら、「(finallyのとこに)endが無いぞ」って怒られました。
「文」ということになっているせい?
0048>47
NGNG自力で解決するまで先に進めないことですね。
try except finally endはサポートされていません。
現状では以下のように書くしかないですね。
try
try
...
except
...
end
finally
...
end
0049名無しさん@お腹いっぱい。
NGNGTry
Catch
Finally
End Try
って書き方するらしいぞ。
(ヘジルスバーグがVBにしてやるのはここまでで
後はC#に注力してるよーだが。)
0050名無しさん@お腹いっぱい。
NGNGDPRファイルのところでマウスの右ボタンクリックで
選択できるようにした INFファイルの書き方 をどこか
で見かけたのですが、・・・・・すみません教えて下さい
0051名無しさん@お腹いっぱい。
NGNGおかしくナラねえ?俺だけか。
0052名無しさん@お腹いっぱい。
NGNGDelphi使いってそんなに多いのか?
0053名無しさん@お腹いっぱい。
NGNGで、ついでに質問ですがDelphiではなぜ呼び出してるところより
上にその関数がないといけないのでしょうか?
それとコンテナクラスはありますか?ヘルプみても見つからないです。
TurboC++のTVectorとかTQueueみたいなのが使いたいです。
0054名無しさん@お腹いっぱい。
NGNGそんなに多くないです。
ほとんどのスレは、一部のキティが考えも無く立てているだけでしょう。
仕事でもなかなか使えないし、プラットフォームも限定されるし。
あの環境で、gccみたいに中間コードを共通化して、上位の言語はユーザが
自由に選べる(c/c++/c#/oo-pascal/basic/asm/etc...)とかならもっと
普及していると思うんですが。(エディタは直して欲しいけど)
移植チーム側も、統合環境(GUI)とobjコードのnative実装だけで済んで移植も
簡単なのに。
そうしないのは、やっぱりコンパイルスピード落としたくないから?
0055名無しさん@お腹いっぱい。
NGNG商売にならないかな?例えば、
Delphiセットの組み合わせ(上位oo-pascal 15,000円、下位win32 15,000円 -> 30,000円
C++builderセットの組み合わせ(上位c/c+++ 15,000円、下位win32 15,000円 -> 30,000円
両方購入する場合は 45,000円で済む。
とか。(わ
0056>53
NGNGこれはC++でも同じですね。Cでも上に無いとマズイ事が多いです
単純にコンパイラが上から順にコンパイルしてるからでしょう。
ただ、実体まで書かなくても先に宣言しておけばいいです。
コンテナクラスはTListを応用します。
どうすればいいかはVCLを覗くといいでしょう。
ただ、高速なアルゴリズムが必要な場合は自分でアルゴリズムを実装する必要があります
0057>50
NGNG解決すると思うけど? もし何度もインストールするような状況
だったら、レジストリ書出 で*.REGファイルを作っておけば
これをインストールすればとりあえず可能。
[Software\Borland\Delphi]の情報からメニューが出るような
小さなプログラム作っておいてこれを dprに関連付ける方がスマートかな?
0058アイソシュタイソ
NGNGまずいことが多い、つーか関数のプロトタイプ型宣言だろ。>56
教えるにしてもちゃんと調べとけ。
005956>58
NGNGプロトタイプ宣言しなくてもCなら大丈夫な場合もありますよ
int型サイズ=ポインタ型な環境なら面倒でやらない事も・・・誉められた事じゃないけど
0060D
NGNG前方シャンショーのおかげで
バカっぱやいコンパイラ速度を実現してるんじゃないの?
006153
NGNGなるほど、プロトタイプ宣言(forward宣言?)ですか。
そういやDelphiではしたことなかったです。早速調べてみます。
コンテナクラスもTListってやつで実現できるんですね。
ありがとうございました。
正直マジレスもらえると思ってなかったので目茶苦茶嬉しいです。
0062他にもあるよ
NGNGTClassList は,クラスのリストを管理します。
TComponentList
TComponentList は,コンポーネントを解放する際にそれ自体を更新してコンポーネントのリストを維持します。
TObjectList
TObjectList は,(所有している)オブジェクトのリストを管理します。
TObjectQueue
TObjectQueue は,オブジェクトの先入れ先出しリストを管理します。
TObjectStack
TObjectStack は,オブジェクトの後入れ先出しリストを管理します。
TOrderedList
TOrderedList は,シリアル順にアクセスしなければならないポインタの配列を管理します。
TQueue
TQueue はポインタの先入れ先出し配列を保持します。
TStack
TStack は,ポインタの後入れ先出し配列を保持します。
0063名無しさん@お腹いっぱい。
NGNGtype phoge=^hoge;
procedure func1( ph:phoge);
と定義された関数の別名
procedure func2(var h:hoge);
を作りたいのですが、巧い方法はありますか?
procedure func2(var h:hoge);absolute func1;
はダメみたいです
0064>63
NGNGbegin func1(@h);end;
は当然お気にめさないんだろなあ・・・・inline指令があればいいんだろけど
あとは関数ポインタに代入する方法だけど、これもオーバーヘッドがあるからなあ
006563
NGNGCだとこういうのはリンク前に幾らでも弄れるのでDelphiの
absoluteを使って簡単に出来るのかと・・・・
まあ出来なくても ご指摘通りそんなに困るわけじゃないけど・・
0066名無しさん@お腹いっぱい。
NGNG後期のD++に似てますが気のせいですか?
0067名無しさん@お腹いっぱい。
NGNGhttp://dmj.psnet.ne.jp/books/ISBN4-939049-08-6.html
0068名無しさん@お腹いっぱい。
NGNG0069知りたい人。
NGNG別のソフトで復活させるってのは出来ます?
つまるところアイコン復活専用のソフトを作りたいんですが。
「常駐して状態を保存」とかじゃなくて非常駐で。
0070名無しさん@お腹いっぱい。
NGNG0071名無しさん@お腹いっぱい。
NGNG69は作りたいって言ってるだろ
で、出来るかどうかっていうと非常に難しいんじゃないかな。
と俺は思フ
0072名無しさん@お腹いっぱい。
NGNG0073名無しさん@お腹いっぱい。
NGNGUPキボーン
0074名無しさん@お腹いっぱい。
NGNG情報ほとんどみつかんないんすけど。
0075>74
NGNG0076名無しさん@お腹いっぱい。
NGNGエンタ版買え。
0077名無しさん@お腹いっぱい。
NGNGDOMでよければ
http://www.philo.de/xml/
にコンポーネントがあるらしい
0078名無しさん@お腹いっぱい。
NGNGMS XML Parser がいいと思います。
ただし SAXは使えません。なぜかエラーが出ます。
http://www.microsoft.com/japan/developer/workshop/xml/general/xmlparser.asp
>>75
DTDが使えないのは痛すぎです。
>>76
Enterprise版にXMLパーサーは付属しません。
0079名無しさん@お腹いっぱい。
NGNG'100'という文字列から100だけを抽出する方法を教えていただきたいのです。
Pos('''', '100') > 0 do
'100'[Pos('''', '100')] := '';
では、だめなのですが、よい方法があるでしょうか?
Pos('''', '100') > 0 do
'100'[Pos('''', '100')] := ' ';
これならできるんですが、スペースは入れたくないのです。
0080名無しさん@お腹いっぱい。
NGNG0081名無しさん@お腹いっぱい。
NGNGありがとうございます。
しかし、ヘルプを読んでも使い方がわからないっす。
申し訳ないのですが、例をのせていただけたらと思うのですが。
すみません。
0082名無しさん@お腹いっぱい。
NGNG本当ありがとうございました。>>80
0083名無しさん@お腹いっぱい。
NGNG不思議なそのコードは象徴的な意味か?
とりあえず
delete(s,Pos('''', s) ,1);
008479
NGNG初心者なもので色々な方法を知ったのでうれしいです。
ありがとー>>83
79のコードはヘルプでpos関数というのを見つけて使ったので、僕にとっては不思議でもなんでも・・
ありがとうございました。
0085名無しさん@お腹いっぱい。
NGNG0086名無しさんi486
NGNGSJIS対応になってくれればいいんだけど。
なんかいいDOMない?
0087名無しさソ
NGNG教えてください。僕はデルファイと思ってました。
0088デフォルトの名無しさん
NGNG英語読みならデフファイ。辞書引いてみ。
0089デフォルトの名無しさん
NGNGいやーん訂正。デルファイ。
0090名無しさん@お腹いっぱい。
NGNGOHPのスライドでDelphiの説明をしてくれた。
しかしDelphiではなく、 Delphと全て書かれていた。
俺たちは笑いをこらえて、デルフって新製品ですかね?と
質問してあげたよ。
0091>>87
NGNG0092デフォルトの名無しさん
NGNGだから MS XML Parser 使えってんだ
0093デフォルトの名無しさん
NGNG広告みれ
#ただし遺跡はデルフィ
0094デフォルトの名無しさん
NGNG環境依存いや〜ん
0095デフォルトの名無しさん
NGNG環境依存なんて・・・ちっちぇーこと気にすんなよ!
第一 MSXML + Delphi だと SAXがうまくいかん。
0096デフォルトの名無しさん
NGNGツールバーのListプロパティとShowCaptionプロパティをTrueに
すると、Captionが無いボタンのサイズがスペース一個分だけ大きくなります。
VCLのソースを見たら文字列長が0の時はスペースを入れているのですが、
なぜそうやっているのかがわからないです。
このスペースって取ることは出来ないですか?それともコモンコントロール
のバージョンによって違うのでしょうか?
当方環境
Windows2000pro
Delphi5 Update1
0097デフォルトの名無しさん
NGNG追加する方法教えれ。Delphiのシェル本買ったが、いまいち
分からんかった。サンプルコードとか公開してるとこ知りません
か?
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGケンサクシテクレ。
0102デフォルトの名無しさん
NGNGやっぱGetDeviceCapsなのか
0103デフォルトの名無しさん
NGNGワラタ
0104デフォルトの名無しさん
NGNG0105102
NGNGPrinter.Canvas.Handleが有効になってなかったのか
結局CreateIC使ったけど '. LPT1:' 等が一々邪魔だね
これってWindowsじゃなくてDelphiが付けてんのか
0106デフォルトの名無しさん
NGNGD4でD5のテキスト形式のフォームを開く方法は
適当に新規にフォームを作り そこにソースとフォームをコピペします
フォームはマウス右クリックかALT+F12で開いてコピペね
それを保存してリネームすればOK
0107デフォルトの名無しさん
NGNGその手があったかー。俺はObjectTextToResource関数を使って
ゴリゴリ変換していたよ…
0108デフォルトの名無しさん
NGNGせっかく作った変換関数公開してよ
0109デフォルトの名無しさん
NGNGObjectTextToResourceはVCLの関数。
0110デフォルトの名無しさん
NGNGML検索スレ
0111デフォルトの名無しさん
NGNGインターネットのゴミなので追放していただきたい。
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG戸堕の投稿はフィルタでダウンロード拒否すべし
0114デフォルトの名無しさん
NGNGまた、それぞれどう使い分けるべきなんですか?
おしえてくらはい。
0115デフォルトの名無しさん
NGNG使い分けは適当。
全部virtualでいいんじゃないか?
Delphiオブジェクト指向プログラミング
とかいう本に載ってるよ。
0116ななし
NGNGチュートリアルのチャットに
*画面をクリックするとある変数が増える。
*同時にその変数を発言として相手や自分に送信する
ということ付けたそうとしました。
ところが相手の画面では別の文字(「・」とか)が出てしまいます。
( player1 > ・ )
( player1 > ・ になってしまう )
自分の画面ではクリックするたびに増えた変数が表示されています
( player1 > 1 )
( player1 > 2 のような感じで。)
自分で足した TForm1.ChatMemoMouseDown内の
DDPD1.Send(DPID_ALLPLAYERS, @kazukazu,Sizeof(kazukazu));
があやしい気がするのですが…。
どなたかご教授お願いします。
0117114
NGNG|スピード優先かファイルサイズ優先か。
|使い分けは適当。
これってプログラマが指定できてうれしいものなんですかね。
言語として明確な指針持っていないことの表れなだけであって、
プログラマに面倒な判断を押しつけてるだけに思えます。
この仕様は、C++と同じように実装指向であり、ほとんど必要性の
ないものだと思います。こういう言語仕様に疑問を持つ人というのは
いないのでしょうか?
0118デフォルトの名無しさん
NGNG0119Del坊
NGNG0120デフォルトの名無しさん
NGNGいないよ。
どっちかに限定されているほうが不満が増えるでしょ。
0121デフォルトの名無しさん
NGNGどこへ引っ越したんだろ?
0122デフォルトの名無しさん
NGNG例えばC++やJavaにはdynamicに相当するキーワードはないが、
それに対して文句言う奴なんていない。
あんた、まともに考えたことないだろ。
不満持つ奴なんていないよ。
0123デフォルトの名無しさん
NGNGC++がDelphiより機能がないだけ。
DelphiはC++よりも最強なんだから
よわっちい言語と対比しないでね。
0124デフォルトの名無しさん
NGNG煽るなよ。同じDelphi使いとして恥ずかしいぞ。
>>116
kazukazuはどういう型になっているんだ?
Integer型か?string型か?
0125デフォルトの名無しさん
NGNGDel厨さらしage
0126ななし
NGNG上のkazukazuは、たしかInt型でした。(まずい例をあげてしまいました)
この後String型とかにしてみたりしたんですが、ダメでした。
で、結局124さんの『型』をヒントにして
DDPD1.Send(DPID_ALLPLAYERS, PChar(kazustr),Length(kazustr)+1);
こんな感じにしてみたらうまくいったようです。
ありがとうございました。
お騒がせしました。
0127デフォルトの名無しさん
NGNG(・ε・)プップクプー
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGhttp://www.borland.co.jp/tips/delphi/dh014/index.html
0130デフォルトの名無しさん
NGNGDelphiって言語名だっけ?(プ
>>129
google検索しても、これくらいしか見つからん。
「何ができる?」という情報しかないDelサイトのレベルの低さが伺えるな。
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGdynamicとvirtualでここまで文句つけれる君は
白痴なんじゃないかと思ったわけ。
という事で白痴くんはさよなら。
0133デフォルトの名無しさん
NGNG0135つーかさ、
NGNGこんな言葉を使う時点で、
厨房度というか、普段のコミュニケーション能力というか、
そういうのが疑われるわけよ。
0136名無しサンプリング@48kHz
NGNG0137デフォルトの名無しさん
NGNGъ( ゚ー^) ソノ心意気ヨシ!!
0138デフォルトの名無しさん
NGNG自力実装か既存のライブラリに頼るか2通りある。
さあ、どっちを選ぶ?
0139デフォルトの名無しさん
NGNGParseクラスを自作?
0140デフォルトの名無しさん
NGNGイマドキテイドノヒクイツッコミダナ
0141よし!このセリフがやっといえる
NGNG0142デフォルトの名無しさん
NGNGなぜ異なっているのでしょうか?
0143デフォルトの名無しさん
NGNGスレ違い?Delphiにstaticなんてあったっけ?
0144デフォルトの名無しさん
NGNGclassメソッドだってあるよん。
0145デフォルトの名無しさん
NGNG仮想メソッド=virtual 指令付きメソッド
動的メソッド=dynamic 指令付きメソッド
静的メソッド=何も付いていないメソッド
0146デフォルトの名無しさん
NGNGホントだ、知らんかったサンクス。<classメソッド
0147143=146
NGNGなるほどねー、俺ヘルプ読んでなかったわ。。。
0148デフォルトの名無しさん
NGNGな変数(って言うのか?Implemantation部で宣言した変数)
で代用すべしべし。(そんなに使う機会は無いと思うが。)
0149デフォルトの名無しさん
NGNGその中で一時的な変数(ループ用とか)使いたいときどうしたほうがいいのん?
例えば、
var i: integer;
initialization
for i := 0 to 10 do
hoge[i] := i;
end.
なんか、varが外に出るのがいやなんだよなあ。
やるとしたら、
procedure Initialize;
var i: integer;
begin
for i := 0 to 10 do
hoge[i] := i;
end;
initialization
Initialize;
end.
ぐらいかなあと。もっとスマートな方法ない?
0150デフォルトの名無しさん
NGNGクラスじゃないがユニットごとの変数が一番似てる
0151デフォルトの名無しさん
NGNG後者が一番スマートだと思う。
0152どっちでもい〜けど
NGNG0153149
NGNG駄目ジャーン。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG電波すぎ。
0156136
NGNG諸事情でレスできませんでした。すみません
XMとかあつかうコンポーネントとかあるんですか?
0157デフォルトの名無しさん
NGNG自分で作りましょう。終了。
0158turbo type D@モナヂラドットオルグ(ワラ
NGNGDelphiでこんなの作ってみてくれない?
http://amacre.site.ne.jp/Tuyano/Fun/FUN_8.html
興味あるんだよ。
オレヒマじゃないからパスなんだけど。(藁
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNGCなら練習がてら書いた事あるぞ。
0161デフォルトの名無しさん
NGNGグライダーでデータのやり取りするのか?
なんか考えるだけで怖くなってきた
0162turbo type D@モナヂラドットオルグ(ワラ
NGNGバイナリ付だからサイズででかくてごめんなすって。
いやあ、モナプロラで疲れていたので
ガス抜きに作ったよ。(おいおい仕事しろよ(藁
2チャソ専用のアプ板が欲しいなあ。
0163turbo type D@モナヂラドットオルグ(ワラ
NGNGD4以降対応かな。
ぁゃoぃは2chソス嫌ってるみたいだから
URLは書くのやめとく。
0164デフォルトの名無しさん
NGNGグライダー銃をうまく配置して、いろんなロジックを
行うっていうのを本で読んだこつあたよ
0165turbo type D@モナヂラドットオルグ(ワラ
NGNGパソコン持っていなかった頃
友達の家のTOWNSで
シムアースであそばしてもらっていた
すごく面白かったよ。
0166デフォルトの名無しさん
NGNGApplet ONにして左上のほうのEnjoy Lifeっての
押してみるとすごいよ。
PufferTrainが好き。
早いマシンだとロケットみたいだ。
0167turbo type D@モナヂラドットオルグ(ワラ
NGNG無限増殖パターンみてると
酔いそうだ。(w
0168デフォルトの名無しさん
NGNGこのライフをDelphiで作ろうとしたときに、標準のコンポーネントで作れます?
土木実験とか偏ったものしか組んだことないので、勉強として
面白そーだからチャレンジしてみよーって思ったのですが、出だしからわかりません。。。
すみませんが、教えてください。
0169168
NGNG表示のメッシュ部分です。<出だし
0170デフォルトの名無しさん
NGNGDelphi持ってないのでわかりませんが。
0171turbo type D
NGNG>標準のコンポーネントで作れます?
標準以外のコンポーネントでどこに何を利用ればいいかな?(w
ぁゃoぃソスアプというサイトを見つけて厨房ソースをDLしなさい。
ただし、あちらさんに削除される前に(藁
Booleanの2次元動的配列を用意して
TImageにFillRectで四角を描画してる
TImage.マウスアプで配列のTrue/Falseを変えてるんだよ。
マトモな質問ならsageんでよし
初心者でも厨房やデンパじゃなければ臆することはないですよ。
むしろ厨房やデンパなヤツは臆すること無いから困るのだが
(つか、それは俺のことか、欝だ氏、、、)
0172turbo type D
NGNG>表示のメッシュ部分です。<出だし
Canvasに書いた方が楽と思うけれど
DrawGridを使う手もあり?
Tスクロルボクスの上にTイマジ乗っけてもいいんじゃないかな。
0173turbo type D
NGNGここに置いたよ。
0174168
NGNG他の方のソースは勉強になりますね。
monazilla陰ながら応援してます。
ぜーんぜんスキルないもんで・・・
0175turbo type D
NGNG具体的にどこがわからないって
ガンガン聞いたらいいんじゃない?
ネットで聞ける場所あるし。
2chで聞くと煽られるしまともなレスないから
かなり辛いけど(w
0176名無しサンプリング@11.25kHz
NGNGtestはHGLOBAL型
memcpy((char *)GlobalLock(test), "test", 4);
こんな感じのC++のソースがあります。
ソース自体の意味は大体把握したのですが
いざPascalで記述してみようと考えると、どのようにtest変数に'test'という文字列を渡すかわかりません。
どなたか助言お願いします(汗
0177デフォルトの名無しさん
NGNGCopyMemory(GlobalLock(test), PChar('test'), 4);
0178デフォルトの名無しさん
NGNG戻り値をチェックしないと。
0179デフォルトの名無しさん
NGNGPCharへのキャストはわざわざ明示せんでよい気がする。
0180名無しさん@お腹いっぱい。
NGNGwith TFrmHoge.Create(Self) do
こんな構文あったなんて知らんかったよ。ローカル変数いらんてのが
非常にキレイで◎
初心者ですが勉強になります。
0181デフォルトの名無しさん
NGNGデバックに困る事になる
それとそれ利用するときは try finallyと組み合せて使うべきだ
with xx.Create do try
finally free;end;
0182デフォルトの名無しさん
NGNG>>181
ShowModalしか使えないぞ。
それにOnCloseでcaFreeにすると
必要ないのでは?
0183デフォルトの名無しさん
NGNGあーあ、
情報局にまで飛んでいかなくてもいいのに。
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG君なんとかとか俺なんとかとかわたしなんとかとか
ゼイイン要らない
0186デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
begin
with TForm1.Create(Owner) do
//Create(nil)やCreate(Self)も可
//Create(nil)で閉じる順番によってはメモリリークする
Show;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
0187デフォルトの名無しさん
NGNGprocedure bar(s: String);
ってどう違うんでしょうか?
TObjectならconstを使う理由もわかるのですが
0188180
NGNG時です。
0189デフォルトの名無しさん
NGNG関数名が違う
・・・つのはネタ
動作結果は一緒?
気にせんでよろし
0190デフォルトの名無しさん
NGNGsは変更できない。しようとするとコンパイルエラーになる。
だけだろ(藁
コンパイル後の結果は置いておいて。
0191191
NGNGCells[i, j] := hogehoge っていう感じで、ループを回すと、
一回書くたびにInvalidate発生させてるみたいで描画が遅くなってしまいます。
たしかInvalidateの発生を抑制するようなメソッドがあったと思うんですが、
ご存知ないでしょうか。それとももっとスマートなやり方ってないもんでしょうか。
0192デフォルトの名無しさん
NGNGLeafel's note
ちらつきのない生活?
0193デフォルトの名無しさん
NGNG>TObjectならconstを使う理由もわかるのですが
って何ですか?
0194麻衣
NGNGobj:=hoge.Create; はダメ
obj.Tag:=1234; でもこれはOK
const s:TStrings
s[1]:='麻衣だよ〜'; もちろんこれもOK
でも
const s:string
s:='1234'; はダメなのは当然だけど
s[1]:='x'; もダメ
0195デフォルトの名無しさん
NGNG嫌なコードだな。
0196デフォルトの名無しさん
NGNG多少DelphiでWinのプログラムを組めるようになりました。
それで質問があるのですが、
プログラムでレジストリをあまり使いたくないので、
設定ファイル「*.ini」を利用したいと思います。
その設定ファイルを作成するに当たって
何かいい関数などありますか?
それとも、入出力したい設定を自分でファイルオープン&読み書き
させなければいけないのでしょうか。
Winのプログラミングをすると、何か楽な関数があるのではないか、と
期待してしまうのが怖いですね。
0197デフォルトの名無しさん
NGNGラッパーでTIniFile,TRegIniFile,TMemIniFileやらがあるよ
0198通りすがり
NGNG0199デフォルトの名無しさん
NGNG0200196
NGNGサンクス。
あとで試してみますね。
でも、Windowいらないプログラムを作る方が多くて
実はさらっとRubyで書いちゃう俺はダメダメですか?
0201デフォルトの名無しさん
NGNGGUIあったらあったで便利だよ。
0202デフォルトの名無しさん
NGNGhttp://hp.vector.co.jp/authors/VA015233/pascal/index.htm
パスカルからデルファイへは
言語マニアのうけはいいかも。
0203デフォルトの名無しさん
NGNG学習用のIDEみたいなの置いてるね・・・。
0204デフォルトの名無しさん
NGNGTWebBrowserあたりを駆使するのかと思うのですがいまいちよく
わかりませんでした。
頭分けてくださいよろしくおねがいします。
0206204
NGNG205さん、monazilla.orgさんに心から感謝します。
おもしろい物を作ってお役に立てるようがんばります。
0207デフォルトの名無しさん
NGNGinterface部は、interfaceのくせにclassのprivateの部分まで宣言しなければいけませんよね。
まー、それは良いとして、実装でしか使わないようなクラスの宣言は
implementation部で宣言したいのですが、interface部(のclassのprivate部分)
で使っているのでinterface部で宣言するしか解決方法が思いつかないのですが、
他に何か良い方法があるのでしょうか?
0208デフォルトの名無しさん
NGNG他に何か良い方法があるのでしょうか?
それしかないと思います。
まあC++のクラス宣言と同じようなもんですね。
ちょっと変わった方法としては、protectedなメンバ関数だけ
実装したクラスと、それを継承してpublicなメンバ関数でラップ
したクラスを作ってそちらだけ公開する手があります。
0209207
NGNGレスありがとうございます。
>まあC++のクラス宣言と同じようなもんですね。
ああ、そういえばそうですね。
(C++はあまり経験がないのですが、
ヘッダに記述してやらなければいけないってことですよね?)
あ、でもstructはclassの中に隠せるのかあ。
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG02121
NGNG0213デフォルトの名無しさん
NGNG02141
NGNG0215君だよ。キミ
NGNG見えることと使えることは別。
implement 部以下を公開しなけりゃどちらにしろ再コンパイルできないんだから、
interface 部を編集したものをドキュメントとしてつければいいのだ。
コンポーネント/ライブラリの再利用者が必要としているのは、結局のところ
使用可能な Public なインターフェースだけなのだから。
0216209
NGNGaccess modifierがpublicなメソッドでも
implement部を公開しなければ、良い、というようにとれるのですが、
どういうことでしょうか?
0217209
NGNG>コンポーネント/ライブラリの再利用者が必要としているのは、結局のところ
>使用可能な Public なインターフェースだけなのだから。
それはわかるのですが、それならば使用可能部分以外は
できれば見せたくないというわけです。
interfaceって名前がついているわけだし。
でも、簡便だから仕方が無いのかな。
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGごめん。商業配布の話かと思っています。
うちは Private/Protected を削除するためのフィルターを使っています。
implement から下はばっさり削る。
0220デフォルトの名無しさん
NGNG0221すいません
NGNGhttp://www.geocities.co.jp/SiliconValley-PaloAlto/9095/top.html
が見れなくなってるんですがどうなんでしょうか?
DelphiでVCLを使わないでWindowsAPIのみのアプリの作り方が
非常に詳しいページだっただけにどうなのか気になってます。
0222デフォルトの名無しさん
NGNGハンドル名/通称を Halbow から paramag に変えたから
後始末してるんじゃないの?
0223turbo type D
NGNG>ムカツク仕事だと、家に帰ってきてもやる気ゼロだし。
>今はムカツク仕事だから、やる気ゼロ。
わかるーー。
愚痴りな.愚痴りな.
オレは仕事が忙しいと残業になっちまうから
スピード遅くなるのがくっきりわかるけど。
まーーーったく関係ないけど、
「こげぱん」って絵本、お勧めだよ。
ヤサグレ極限キャラに共感を覚える。
0224デフォルトの名無しさん
NGNGなににコメントつけてる?
0225turbo type D
NGNG投稿先間違えた.(w
0226turbo type D
NGNGhttp://www.din.or.jp/~chiru/qanda/a061.html
ここの情報って本当?
今までFindFirst Nextでやっていたのだけどダメなのか。
0227デフォルトの名無しさん
NGNGっていわれてもねぇ。どうおかしいか教えてくれてもいいと思うし,
ソースも付いているから調べりゃいいのに。
0228turbo type D
NGNG確か特定フォルダアイコンを変更するような事をしていると
そのフォルダは探索しないらしい
試してみたら確かに探索されない。
0229デフォルトの名無しさん
NGNGFindFirst, FindNext 関数はファイルシステム上のファイルを検索する関数だから
「マイコンピュータフォルダ」や「コントロールパネル」などの仮想フォルダは
当然引っかからないよ。って話じゃないの?
>確か特定フォルダアイコンを変更するような事をしていると
>そのフォルダは探索しないらしい
これどうやるの?
0230デフォルトの名無しさん
NGNGディレクトリやファイルをトラバースするなら FindFirst系でOK。
ネームスペースオブジェクトを対象にするなら 226 のリンク先の
ようにする必要がある。
0231turbo type D
NGNGマドのテやKHIconMagicをインストールすると出来るようになる。
IE4以降かな。
0232229
NGNG試してみたが、ちゃんと FindFirst系で引っかかったぞ。
ただ FindFirst でファイル属性に faDirectory のみを指定では駄目で
faAnyFile でうまくいった。これは、アイコン変更したフォルダに
システムファイル属性が付いているからだと思う。
結論から言うと>>226の情報はガセだな。>>226の人は faDirectory のみを
指定して検索したのだと思われるが、これだと隠し属性が付いたフォルダも
検索されないのでまずいよ。
0233turbo type D
NGNGAttrになにを指定したらいいのかな。faSysFileか?
いままで、フォルダなら
faDirectory
通常のファイルだけの探索なら
faAnyFile - faDirectoryで
うまく動いていたのだが。
faDirectory or faSysFile
や
faAnyFile - (faDirectory or faSysFile)
とする必要がある?
詳しく調べてないので
よかったら教えてください。
0234turbo type D
NGNG自分でも気になったので調べたら
そうみたいだ。
通常ファイルは
faAnyFile and (not (faDirectry or faSyaFile))
と指定する必要があるんだね。
0235turbo type D
NGNG前言撤回。faAnyFileで探索したあとDirectoryExistsで
調べた方がいい。少なくともオレはそうした。
0236229
NGNGというか、TSearchRec.Attr を見ればディレクトリか判断できる。
if FindFirst('c:\*.*', faAnyFile, F)<>0 then
begin
if F.Attr and faDirectory<>0 then
//このファイルはディレクトリである
else
//このファイルはディレクトリではない
end;
0237229
NGNGif FindFirst('c:\*.*', faAnyFile, F)<>0 then
begin
if F.Attr and faDirectory<>0 then
//このファイルはディレクトリである
else
//このファイルはディレクトリではない
end;
0238turbo type D
NGNGサンクス。229ので動作も確認.問題なしね。
0239デフォルトの名無しさん
NGNG先に作ったボタンなどを、GUIであとからグループ化はできるのでしょうか?
どうも、groupboxの上に乗ってくれない。
オブジェクトをカット&ペーストできればいいのですが。←これもできたりして・・・
0240デフォルトの名無しさん
NGNGBottunを選択->切り取り->GroupBoxを選択->貼り付け
0241turbo type D
NGNGよくやる。
0242239
NGNGポップアップになかったのでてっきり「無い」のかと思ってました。
まさかメニューに在るとは・・・初心者な質問で申し訳なかったです。
0243デフォルトの名無しさん
NGNG0244素朴な疑問なんですが
NGNGTClassA = class
....
end;
のようにclassの後の継承先を省略すると自動的にTObjectからの継承になる
わけですけど、それじゃTObjectって何を継承しているんでしょうか?
TObjectのソース見たら
TObject = class
....
end;
のようになってたのでTObjectはTObjectを継承してる???あれあれ???
って思ったんですが、ここら辺のことご存知の方いらっしゃいますか?
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGDateTimePickerの日付を、別に作ったボタンで進めたり
戻したりするのは、どうすればいいのでしょうか?
バージョンは、3.1です。
0247デフォルトの名無しさん
NGNGbegin
DateTimePicker1.Date := DateTimePicker1.Date +1;
end;
0248素朴な疑問なんですが
NGNGではTObject = classのclassはobjectとしても同じ意味なんですね?
0249turbo type D@モナぢら
NGNGそれは古い記述方法ではないかしら?
TA = object
は今では使わないですよ
塚越なんとかさんのDelphiオブジェクト指向とかいう
本をよめば書いてるだけど、わすれてしまった。
0250デフォルトの名無しさん
NGNG違ってくるはずです。
THogeMoge = object
って、移植以外に使い道あるんだろうか?
0251turbo type D@モナぢら
NGNG新しいDelphi本ってあまり出てきませんね。
インターネットで情報収集してしまうから
技術系書籍って売れないのかな。
0252デフォルトの名無しさん
NGNGどうもありがとうございました。
これで今日半日悩んじゃいました。
0253デフォルトの名無しさん
NGNG半日も悩まなくてもいいかも。
悩む前に検索という手もありか。
http://www2.big.or.jp/~osamu/Delphi/
http://www.sakaki.keiaikai.or.jp/convroom/webconv.exe/search
0254素朴な疑問なんですが
NGNG読みましたけどclassだけだとTObjectを継承するクラスになるのに対して
objectだと1からクラスが書けるとあったんですけど、そのTObject自身が
ソース見るとclassだけで記述されているんでどういうことなのか疑問に
思ったんですけど単にコンパイラの仕様なんですかね?
0255デフォルトの名無しさん
NGNGSystemユニットに記述されている内容は、コンパイラが特別扱いしていることが
多いんじゃないかな?素直にそういうものだと考えた方がよい。
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGの対数チャートを作りたいのですが、以下の
時系列データを使って、どの様にすれば
実現出来るでしょうか。
http://chart.yahoo.co.jp/w?s=9984.t
Delphiにはlog関数という対数に関係ありそうな
関すがありますが、ヘルプを見ても理解できません。
馬鹿でゴメンナサイ。心優しき方、ぜひご指導下さい。
宜しくお願いします。
0258デフォルトの名無しさん
NGNG対数チャートがどんなもんか知らんけど、y:=ln(x)/ln(a)とすれば
yにxのaを底とした対数が代入される。これじゃ駄目なの?
0259デフォルトの名無しさん
NGNGそれがわからなかったのじゃ...
いぢわるだなあ
026066です
NGNG返事を何度も読み返して理解中なので、少し
考えさせてください。
0261257です
NGNG0262>260
NGNGって言うより数学がわかってないんじゃない?
258さんの式見てすぐに理解できないんじゃ
数学やり直したほうがいいよ。
っていうか対数ぐらい自分で調べろ!
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNG0265厨房
NGNGなぜ、型宣言でstringは小文字から書くのにIntegerは大文字なの?(VCLにおいて)
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNG0268turbo type D
NGNGDelphiオブジェクト指向読んできたよ。
>>254
object指令は静的オブジェクトを生成するんですね。
構造体じゃあるまいし
静的オブジェクトは使いにくいですよ。
0269デフォルトの名無しさん
NGNGそこらへん、嬉しいような嬉しくないような。
どうも気になって大文字小文字を気にしながら打ち込んでいるのですが、
ふと我に返ると「これって意味ないんかな」とか思って少し鬱。
かといって区別されるとそれはそれで困るんでしょうね。
0270デフォルトの名無しさん
NGNGReserved words and directives should be all lowercase. This can be a bit
confusing at times. For instance types such as Integer are just identifiers,
and appear with a first cap. Strings, however, are declared with the reserved
word string, which should be all lowercase.
0271turbo type D
NGNG0272デフォルトの名無しさん
NGNG激しく同意。
静的なんていう名前がついているんでしたっけ。
名前すら完璧に忘れてた。
VCLに見放されているという点を差し引いても
旨み何にもないんだもん。使いたいと全く思わない。
TurboPascal7までのユーザーは
さぞかし苦労してたんだろうな…。
ん?触ったことないんですが、もしや
往年のOWLとかいう奴は
静的云々を使って実装されてたのでしょうか?
あと、TurboVisionも…静的だよね?(w
0273たま
NGNG一番簡単に実装させる方法って何かありますでしょうか?
「ファイルドロップコンポーネント」というのを
使ってみたのですが、いまいちよくわかりませんでした。
delphi4です。
0274turbo type D
NGNG「ファイルドロップコンポーネント」というのを
使うlコトです。(藁
スマソ。
0275デフォルトの名無しさん
NGNGpagecontrol-tabsheet上のstringgridの印刷をしたいのですが、pages[i].painttoメソッドを用いると
ウィンドウに表示されている部分しか印字されず、また非常に小さく印刷されます。(プリンタの解像度で印刷されている?)
form.printscaleを変更しても同じでした。用紙いっぱいにstringgridを印刷したいのですが・・・。
helpを見ながら、他にもいろいろとメッソドを試したのですがダメでした。
初歩的な質問ですみませんが、どなたか教えていただけないでしょうか?
0276デフォルトの名無しさん
NGNGQuickRepじゃだめ?
0277デフォルトの名無しさん
NGNGホレ
//生成時パラメータの設定
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle or WS_EX_ACCEPTFILES;
end;
//ファイルのドロップ処理
procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);
var FileName: array [0..MAX_PATH] of Char;
begin
DragQueryFile(Msg.Drop, 0, FileName, SizeOf(FileName));
try
//以下処理
// FileNameがドロップされたファイル名
:
:
finally
DragFinish(Msg.Drop);
end;
end;
0278277
NGNGprocedure CreateParams(var Params: TCreateParams); override;
procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;
0279デフォルトの名無しさん
NGNGDelphian WorldにStringGridの中身を印刷するコンポ
があるので使ってみては?(Systemのところ)
http://home1.infonia.ne.jp/~delphian/delphi/index.html
もしStringGridでセルの内容をOnDrawCellで書かずに
StringGrid1.Cells[0,0]:='sage';
ってぶち込んでるだけなら一発で印刷できまっせ。
0280デフォルトの名無しさん
NGNGDelphiは初心者でもはじめれますか?
0281275
NGNGレスありがとうございます。
表示にはOnDrawCellを用いています。
先ほど、コピーはあきらめて直接プリンタのキャンバスに描画を試みたのですが、
やはり、ウィンドウに表示されている部分(見えている部分)しか印字されません。
0282turbo type D
NGNG0283たま
NGNGきゃぁ!すげぇありがとうございます!!抱いて!!
早速組み込んでみます。実はMP3プレーヤーを作っておりまして、
なんとかドロップできないかと3日3晩悩んでました。
まじありがとうございます。
>>280
vb、vcと挑戦してhelloworldで挫折した私でも、
始めて2日でとりあえずは動くMP3プレーヤーが作れました。
delphiって凄いなぁ。
0284279
NGNGOnDrawCellでバキバキに書いてるなら、
プリンタのデバイスコンテキストに自前で書くしかないっすね。
>先ほど、コピーはあきらめて直接プリンタのキャンバスに描画を試みたのですが、
>やはり、ウィンドウに表示されている部分(見えている部分)しか印字されません。
普通にやればいいんだけど、参考までにサッキあげたURLから
コンポ落としてソース見てみてください。それが一番参考になるんじゃないかな?
もしくはDelphi4プログラミング技法Vol1に印刷は詳しく載ってま〜す。
0285たま
NGNG実装できました。ホントありがとうございます!!
初歩的(ですよね?)な質問にもかかわらず、親身にご解答下さった
[277-278]様、及び温かく見守ってくれたこのスレの方々に感謝。
0286277
NGNGhttp://www2.big.or.jp/~osamu/Delphi/
とりあえずな、次回からは質問の前にここの検索を使え。
わからないことがあったらまず、DelphiTips、
もしくはDelphi-ML過去ログ、Builder-ML過去ログの検索を使うのだ。
ちなみに、今回の質問はDelphiTipsの検索で「ドラッグ&ドロップ」を入力して一発で答えがでる。
Are you OK?
0288たま
NGNGな、なんて便利な!
うっす!ありがとうございます!精進しますっス!
0289デフォルトの名無しさん
NGNGC++ならどこでも変数宣言出来るからいいんだけど・・・
今こんなふうにやってるんだけど
with TPen.Create do
try
Assign(Canvas.Pen);
Canvas.Pen.Assign(DrawPen); みたいにペンを取り替えて
・・・ この間に描画・・・・
finally
Canvas.Pen.Handle:=Handle; <=これが格好悪い
free;
end;
これで何か問題あるのかな? それからもっといい方法ある?
0290デフォルトの名無しさん
NGNG合ったと思うのですが、忘れてしまいまして。
教えていただけませんか?
0291デフォルトの名無しさん
NGNG専用のAPIは最近使ったファイルに追加するやつじゃなかったけ?
送るに追加なら,
ショートカットを作って,Sendto フォルダに書き込む.
でインじゃない.IShellLink で調べてみれ.
0292デフォルトの名無しさん
NGNGhttp://homepage2.nifty.com/boheme/delphi/tips/tec0810.htm
0293290
NGNGどもども。これでもいいんだが、
SendToのみに作る専用のAPIがあったんだよ。
なんだったけなぁ。Googleで検索しても
出てこないんだよ。APIの名前さえ分かれば...
0294290
NGNGIShellLinkでやりますわ。
お手数掛けました。
0295デフォルトの名無しさん
NGNG0296名無しさん
NGNGどっかにマシなチュートリアルないのかぇ
本買ったが、添付Helpとサンプル印刷しただけじゃん。鬱。
0297デフォルトの名無しさん
NGNGコンパイラはショートサーキット評価のコードを生成しないのでしょうか?
つまり、条件式1がすでにfalseでも、条件式2〜4も実行されるのですか?
function test:boolean;
var a,b,c,d:boolean;
begin
a=条件式1;
b=条件式2;
c=条件式3;
d=条件式4;
test:=a and b and c and d;
end;
0298デフォルトの名無しさん
NGNG生成されたコードをみれ世・・・。
0299turbo type D
NGNGMLではるか昔話題になっていたような。
0300turbo type D
NGNGbegin
ShowMessage('AAA実行された');
Result := False;
end;
function BBB: Boolean;
begin
ShowMessage('BBB実行された');
Result := True;
end;
function CCC: Boolean;
begin
ShowMessage('CCC実行された');
Result := False;
end;
function DDD: Boolean;
begin
ShowMessage('DDD実行された');
Result := False
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Test: Boolean;
begin
Test := AAA and BBB and CCC and DDD;
end;
適当に値変えて動かしてミソ
0301デフォルトの名無しさん
NGNGヘルプの「ショートサーキット論理式評価」でも見てみな。
最後まで評価されるかどうかは、コンパイラ指令によって変わる。
つーか、DelphiML過去ログとか検索しようよ。
0302301
NGNG0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG取得可能でしょうか?
0305turbo type D
NGNGToClipHyperってアプリではかなりがんばってる模様。
アクティブなWindowのハンドルに'Ctrl+C'送って
クリップボード見るのが無難じゃないかな?
詳しくしらないから、がんばって。
0306turbo type D
NGNG0307デフォルトの名無しさん
NGNG出来なかった気がする。
フリーカーソル嫌い?俺はマンセーなんだが。
0308305
NGNGがんばってみます.
0309デフォルトの名無しさん
NGNGNMUDPで送信したいんですが、Stringが使えないんですよね・・・。
0310turbo type D
NGNGすきだよ。フリーカーソル。
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNGVCL=Delphiではない。
簡単に言えば
ObjectPascal+VCL=Delphi
C+++VCL=C++Builder
C+++MFC=Visual C++
識者のツッコミは却下。
0313デフォルトの名無しさん
NGNG検索したらDelphiのページにしかつながらなかったので
Delphiかと思ったのですが...
0314デフォルトの名無しさん
NGNG部品を組み立てるような感覚で、GUIなアプリケーションが作ることができるライブラリ。
こちらも識者のつっこみは却下。
0315デフォルトの名無しさん
NGNGDelphi,BCBの使っているコンポーネントライブラリ。
KylixはCLX(Component Library for Cross Platform)
Delphi6は両方のライブラリをサポート。
0316デフォルトの名無しさん
NGNG0317turbo type D
NGNG何が聞きたいのかがサパーリ(w
0318デフォルトの名無しさん
NGNGDelphi/BCB5フリーカーソル無効化アドイン
http://homepage1.nifty.com/fuu/software/nonfreecursor.htm
0319デフォルトの名無しさん
NGNG食べられないっすよー
0320デフォルトの名無しさん
NGNG横から戴いたYo!超超超イイ感じになったYo!大謝!
0321デフォルトの名無しさん
NGNG(゚Д゚)チョウ(゚Д゚)チョウ(゚Д゚)チョウ
(・∀・)イイ! カンジ!
(゚Д゚)チョウ(゚Д゚)チョウ(゚Д゚)チョウ(゚Д゚)チョウ
(・∀・)イイ! カンジ!
0322デフォルトの名無しさん
NGNGサンクス。
いや、GExpersで出来るかどうかを知りたかったんだ。
一応それはチェキしてる〜♪
0323デフォルトの名無しさん
NGNGフリーカーソルマンセーなんで、
選択範囲のTab, Shift+Tabだけほしー。
Ctrl+Shift+I, Ctrl+Shift+Uでもできるけど、やっぱ直感的なほうが・・・。
0324デフォルトの名無しさん
NGNGおっさん達、気持ちは若いな(´д`;)
0325turbo type D
NGNG気持ちだけだYO...(´д`;) ウチュダ....
0326デフォルトの名無しさん
NGNGtype Inumeric = interface
procedure mAdd( A, B: Inumeric ); // A+B
procedure mSub( A, B: Inumeric ); // A-B
procedure mMul( A, B: Inumeric ); // A*B
procedure mDiv( A, B: Inumeric ); // A/B
end;
とやりかけたけど、どうやって実装すればいいの?
TFloatNum = class(TInterfacedObject , ImNum)
public
num:Extended;
procedure mAdd( A, B: ImNum );
・・・略・・・
procedure TFloatNum.mAdd(A, B: ImNum);
begin
num:=(A as TFloatNum).num + (B as TFloatNum).num;
end;
じゃ駄目だけど、何か方法あるんだろうか?
0327326
NGNGfunction getObj:TObject; を追加して
function TFloatNum.getObj: TObject;
begin
Result:=self;
end;
procedure TFloatNum.mAdd(A, B: ImNum);
begin
num:=(A.GetObj as TFloatNum).num + (B.GetObj as TFloatNum).num;
end;
とやれば出来るけど・・・
0328デフォルトの名無しさん
NGNGKylix/Delphi6 なら、部分的な演算子オーバーロードができるんだが。
0329デフォルトの名無しさん
NGNG詳細キボン
0330デフォルトの名無しさん
NGNGマジ?! 本当なら超うれしいのだが。
0331デフォルトの名無しさん
NGNGマジかよ。Delphiも終わったか。
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG>Arithmetic operator overloading
0334デフォルトの名無しさん
NGNG具体的にどんな感じになるの?
0335デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
x, y : Variant;
begin
x := VarComplexCreate(0, 1);
y := x * x;
Label1.caption := y;
end;
で Label1 に '-1 + 0i' とでる。
0336デフォルトの名無しさん
NGNGhttp://www.borland.com/delphi/del6/featurematrix/hpnative.html
の、
>Complex Number support via custom variants
の事?
0337デフォルトの名無しさん
NGNGasじゃなくてTFloatNum(A)じゃできない?
0338デフォルトの名無しさん
NGNGまさか真似するわけにはいかんだろう。
http://www.freepascal.org/docs-html/ref/node12.html
0339デフォルトの名無しさん
NGNGいや、やっぱ他製品のいいところは取り入れてもらわねばねー。
って、OperatorOverloadingがいいかどうかは別として・・・。
0340326
NGNG複素数くらいは使いたいって気持ちはあるけど、それとは別に
326は数式処理の実装を分けたかったんだ。
どっちかいうとテンプレートもどきが欲しいなあ、でも
uses MyFormura TFormura(Extended) as TFloatFormura ;
みたいな感じにしたいとすると、型を拡張するには演算子も
オーバーロード出来ないと駄目か
0342337
NGNG0343326
NGNGそれはコンパイルは通るけど、意味のない型変換みたいです。
実際にやっても、値は取り出せませんでした。
ImNum は Inumeric と同じです。 スミマセン
0344326
NGNGhttp://www.geocities.co.jp/SiliconValley-Oakland/8522/data/mformula.txt
こんな感じの事がやりたかったのです
0345デフォルトの名無しさん
NGNGだな。Delphi6で唯一言語強化点であるし、
(ユーザ型バリアントetc. VB.NETがバリアント排除しようとしてるの
に逆行的・・・)
前者が実行時に、後者がコンパイル時に負荷かかる点が
違うけど。
0346337
NGNG解決方法が思いつかないので、
インタフェースを継承したいんだったら、interfaceじゃなくて
classをつかったら?
参照カウンタが欲しいんだったら・・・。うーん。
0347326
NGNGうーんクラスだとメモリ管理面倒かと思ったもんで
でも、ちょっとデバックしたり追加してたら >>344 グチャグチャになってしまいました
なんか インターフェースに GetObject とか GetClassとか必要に
なっちゃうのは、これは自分の切り分けが下手なんだろうなあ・・・・
0348326
NGNGhttp://www.geocities.co.jp/SiliconValley-Oakland/8522/data/mformula.txt
複素数型で数式処理が出来るようになりました。
DelphiではC++と違って複素数型の扱いが不便。
そこで、文字列で式を与えたら計算させたらどうだと作り始めたのですが
やっぱりテンプレートが欲しいです
0349326
NGNGfunction の場合どうやればいいんでしょう?
type Tpapa = class(TObject)
function func(hoge:double):double ;virtual;
end;
type Tchild = class(Tpapa)
function func(hoge:double):double ;override;
end;
function Tchild.func(hoge: double):double ;
begin
Result:=Tpapa(self).func(hoge) ;とやっても 自分が呼ばれてしまいますよね
0351デフォルトの名無しさん
NGNGでもいいだよな、確か。
実は、引数がいらない。
0352デフォルトの名無しさん
NGNG危険危険。
0353326
NGNGなるほど。それでOKでした。
自分の親の時は引数あってもiherited だけでいいんだと思い込んで
inherited だけでは帰り値が互換性の無い型と出たんで
関数の時は違うんだと思い込んでました。
0354デフォルトの名無しさん
NGNGdelphiに転向しようかと思っています。
VBと比較して、実行速度とかはどんなもんでしょう。
0355デフォルトの名無しさん
NGNGDelphian Worldにその辺のドキュメントがあるよ。
具体的には以下のアドレス参照。
http://home1.infonia.ne.jp/~delphian/delphi/compo/document.html
0356デフォルトの名無しさん
NGNG出来上がった実行ファイルだけでなくコンパイルスピードも
早い。VBの経験からは信じられないかもしれないがDelphiでは
デバッグ時(IDE内での実行)も毎回コンパイルしている。
実行ファイルの具体的なスピードについてはこちらを参考にしてくれ。
http://home1.infonia.ne.jp/~delphian/delphi/compo/document.html
マンデルブロート図形の描画では実際5.5倍ほどの差が出た。
0357354
NGNGVBとかperlは大体おっけーで
VC++でつまずいた私はちゃんと始められるでしょうか?
試用版とかないのかな?
http://www.borland.co.jp/delphi/d5sku.html
ここ見た感じだと、pro版くらい欲しいなっていう感じなんだけど、
6万はちょっとすぐには出せないし。
あぁ。もうっ。
らーにんぐえでぃしょんにしとこうかな〜。
0358turbo type D
NGNGエンタプライズ版の60日限定モノがあるYO.
VB使えたら余裕っす。
参考にドゾ。
http://www.borland.co.jp/delphi/vbusers.html
http://homepage2.nifty.com/boheme/delphi/vbtodel/index.html
かんけないけど、仕事だるすぎ。
月曜日から、こんな夜まで仕事したないっちゅうねん!!!
0359D使いβ
NGNGDelphi6では最下位エディションでは商用アプリの
ライセンスが付かなくなる恐れがある。
買ったら速攻ユーザー登録すればDelphi6のバージョンアップ
案内が届くかもしれない。
0360354
NGNGとりあえず、今週末あたりラーニング買ってみようかと思ってます
0361デフォルトの名無しさん
NGNGD5Learning→D6Professionalも同じくらいになると思う。
0362デフォルトの名無しさん
NGNGオレもいまはPro版使ってるけど、6万もポーンとだしていきなり買ったわけじゃない。
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNG0365turbo type D
NGNGあーあ、今日も仕事か。欝だぁ
>>362
全く一緒。賢い消費者の買い方ですな。
キャンペーンを賢く利用して
フレッシュボランドキャンペでBCBLrn買ったら
Kylix買うとき-5000円になるので
正規にKylixが3万円以下で買える。
で得したキブーン。
しっかしKylixまだ買ってないんだよ。入れるマシソがないさ。
触る時間もないね。
あーあ、ウツだ。
Delphiマガジンの「アレイ外の何か」記事でも
熟読しておいた方がいいですか?
0366turbo type D
NGNG時間がなくなって脱落シチャータYO、(TДT)ゴ・・・ゴルァァァァァ__
ビンボーヒマナシってやだなあ。
0367デフォルトの名無しさん
NGNG気持ちはわかるが、今はオイムじゃねえぞ(禁止)ゴルァ! (w
ここで最新スレは追えるよ。
ttp://nh.mikage.to/test/read.cgi?bbs=discuss&key=992023119
0368デフォルトの名無しさん
NGNG0369turbo type D
NGNGVBでDLLって作れるのでしたっけ?
煽りとかではなくて。
確か作れなかった気がする。
0370D使いβ
NGNGOLEオートメーションとしてレジストされていれば可能。
もちろん実行するマシンにもVBのランタイムが必要。
'SampleプロジェクトのMyClassクラスモジュール
Option Explicit
Public Sub Hello()
MsgBox "Hello"
End Sub
・コマンドプロンプトで作成したDLLをレジストリに登録
>REGSVR32 SAMPLE.DLL
・Delphi側からの呼出し。
uses ComObj;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
VBCls : Variant;
begin
VBCls := CreateOleObject('Sample.MyClass');
VBCls.Hello;
end;
>>354
丁度Cマガの今月・来月号でVB -> Delphi
の小特集やってる。
http://cmaga.zdnet.co.jp/detail/0107.html
0371D使いβ
NGNGVB5からActiveX DLLっていうのが作れる。
名前の通りCOMサーバ。
0372turbo type D
NGNGActiveXDLLって、どちらかというとDLLというよりActiveXだったので
思い浮かびませんでした。作ったこともなかったりするし。
今月号のCマガ、Dマガみたいになってる。すごいね。
0373デフォルトの名無しさん
NGNG感激!(TT)どうもありがとうございます。
氏ぬほど助かりました。
0374D使いβ
NGNG>Regsvr32 /u Sample.dll
しときましょう。レジストリも限りある資源です。(わ
0375D使いβ
NGNG続くメソッド名やプロパティ名って実行時に名前解決されて
るんだよなー
コンパイル時は単に無視してるだけ?
0376デフォルトの名無しさん
NGNGですが事実でしょうか?
0377デフォルトの名無しさん
NGNGコラコラ、デマ飛ばすんじゃない。
出所ぐらい書いとけ。
0378turbo type D
NGNGひつこいけど、煽りなのか?
事実じゃありません。
現に米ではすでにD6は出ています。
Delphiマガジンという雑誌には
D6の内容が紹介されているよ。
0379デフォルトの名無しさん
NGNGいいかげんしつこすぎ(藁
0380turbo type D
NGNGどっちが正しい日本語かって調べてみたら
"ひつこい"は訛りなのだそうだ。
0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG>ですが事実でしょうか?
というカキコに敏感に反応している人たちは本当にそうなりそうで
恐怖を感じて生活しているってことでいいですね
0383デフォルトの名無しさん
NGNG0384D使いβ
NGNGまあそう勝手に思っていればいいでしょ。
どの製品使ったところで抱く不安はどれも一緒。
そうなった時の為に1つの製品・言語に囚われず手広く
やってれば問題なし。
今後はネタスレじゃないんだから不毛な書込みは控えてね。
0386デフォルトの名無しさん
NGNGDelphiって売れていないのか?
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNGネタ煽りに反応するなや。
0390デフォルトの名無しさん
NGNGBCBと互角くらいか?
0391デフォルトの名無しさん
NGNG方がいいのでしょうか?
delphiではどんな仕事があるのでしょうか?
マジレスお願いします。
0392デフォルトの名無しさん
NGNG俺は客先から言語の指定がないのでDelphiで仕事してるけど。
でも上司が「なぜDelphiなんだ? C++でやれ!」とうるさい。
そんなに文句があるなら自分でやりやがれ、このFortran厨が(w
全然参考にならんな。すまん。
0393デフォルトの名無しさん
NGNGなんでもいいんではないでしょうか。
仕事を始めてから覚えればいいんです。というか、仕事しないと
覚えられません。
0394デフォルトの名無しさん
NGNGそんなこといわれると、「なぜC++なんだ? 」って聞き返したくなるなあ(w
慣れてる言語でやるのがいいのにさ。
0395デフォルトの名無しさん
NGNGVCでなくC++、C等、特定製品に依存しない部分を覚えるのがいいぞ。
DelphiはDelphiでいいと思うけどね。
>>393
同じく仕事で覚えた。
Z80ASM→N88BASIC→TurboC++→MS-C→LSIC-80→BorlandC++→C++Builder→Delphi
0396デフォルトの名無しさん
NGNG100人以上いる社員の中でソフトを書く人は2人しかいません。
だから後継者を考えるとメジャーな言語で統一した方がいいということです。
後継者にDelphiを覚えさせりゃいいだけ。俺が書く規模なんてたかがしれてる。
0397デフォルトの名無しさん
NGNGカッコいいです!
0398デフォルトの名無しさん
NGNGDelphiしか使えないプログラマ、になると痛いけどね。
RADでしか仕事できないようになっちゃうと潰しがきかないから。
>>396さんのこと言ってるんじゃないですよ。一般論として。
0399デフォルトの名無しさん
NGNGどのような方法がありますか?
(アニメーションをさせてみたい)
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG書かれている意味が全くわかりません。こういう事ですか?
procedure TForm1.Button1Click(Sender: TObject);
const
Ary: array[0..9] of Integer = (1,2,3,4,5,6,7,8,9,10);
var
I: Integer;
begin
for I := Low(Ary) to High(Ary) do
begin
Form1.Canvas.TextOut(10, 10, IntToStr(Ary[I]));
Invalidate;
Sleep(500)
end;
end;
0402399
NGNGあ、ちがうです。ピクセルに対応したRGB配列に従って
描画したいのです。
わかりにくくてすみません。
0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNGピクセル単位で?
効率悪すぎるぞ
0405399
NGNGどうだと効率よいのですか?
イメージとしては、今3Dのrendering engineを作ろうとしているのですが、
そのためにRGBの配列に書き込んでそれをダブルバッファリングするなりして
描画したいのれす。
0406デフォルトの名無しさん
NGNGかな?TBitmapのScanLineプロパティの方が早そう。
0407406
NGNGDelphiXの中のTDIBにもScanLineプロパティあります。
0408406
NGNG早い?
0409デフォルトの名無しさん
NGNGGL使うってのはNGなの?
0410turbo type D
NGNGオレ昔はDelしか使えなかったんですが
結局他言語の仕事が入ったら適当に出来るようになったんで、
本人さえ少しやる気だせば潰しなんてどこでも効くと思うよ。
でも
やっぱ慣れている&Delphiがいろんなことがやりやすい
ので
生産性とか考えると、普通の業務アプリ仕事では
Delphiしか使う気にならないんだけどね。
逆にRAD嫌いってのも相当、痛いよ。
Javaサーブレットに適当なテストプログラム動作させるときに
ある関数を作っていて
普通、JBでボタン作って一瞬でテスト可能&
トレース実行でデバッグ完璧なのに
JBの使い方知らない&当然GUIの作り方知らない
からってサーブレットごと稼動させてテストしちゃう人もいるし。
0411399
NGNGありがとうです。pixelは試してみましたが
毎回更新をかけているのか遅いのでダメです。(><
>>409
OpenGLやDirectXの方が実用的だとは思いますが、
勉強のためにpolygonやlineの描画から実装したいと思いまして。
0412399
NGNGたぶん解決しました。私がやりたかったのはこんなことでした。
レスくれたみなさんどうもありがとうございました。
0413396
NGNGどこがカッコいいのかよくわかんないんですけど・・・。
>>398
ちょっと耳が痛いな。ダラダラ書けてしまう環境に慣れちゃってるので。
これでもC++ソース300本の独自ライブラリ構築とかやってたのに、
あの頃の勢いは一体どこへ。トシか?
>>410
一番楽に感じるのは何も考えずにソースデバッグが出来てしまう所。
BCBを選ばないのは、コンパイルが遅いのと、ANSI C++準拠なのに
標準的な書き方にとどまらない所。
0414デフォルトの名無しさん
NGNGで、現行の5を買っても6への無料アップグレードって出来ないんですよね?
待ったほうがいいですか? すぐに必要ではないのですが、
あまり待たされるのも嫌なので。
0415デフォルトの名無しさん
NGNG安定している5を買っちゃっていいと思うよ。
0417デフォルトの名無しさん
NGNG>JBの使い方知らない&当然GUIの作り方知らない
お前も十分イタイ(藁
0418デフォルトの名無しさん
NGNGその次の行を読んでるか?
0419デフォルトの名無しさん
NGNGそれでもやっぱRADツール使ってることになるんかな。
>>399
TBitmapのScanLineは激重ですのでご注意を〜。
たぶん自前DIBでやったほうがいいよ。
0420turbo type D
NGNG新しい物に対応する柔軟な頭を持つのは
どこにいたって大切ですよね。
0422デフォルトの名無しさん
NGNGfunction AddPtr(s:Pointer;d:Integer):Pointer;
var sp:PByte absolute s;
begin
Inc(sp,d);Result:=s;
end;
みたいな関数作ってやってるんだけど、みんなはどうしてるの?
0423デフォルトの名無しさん
NGNG俺はループの中で Inc(PByte(s),d) とやってます。関数を使うと
オーバーヘッド最悪では?
0424422
NGNG特定の位置から切り出してコピーとか
連続コピーじゃない時には、そういう訳にもいかないし
CopyMemory(dp+dindex , sp+sindex , dsiz);
とか書きたい時
savedp::=dp; inc(dp,dindex);
CopyMemory(dp+dindex , sp+sindex , dsiz);
dp:=savedp;
てな感じになるものなんだか
0425デフォルトの名無しさん
NGNG"そういうAPIを使うコンポ"を自作したりはするでしょ?
それとも全部ベタ書き?
例えば畑違いだが、MIDIのAPI(MCIじゃない)を使った処理を毎回アプリにごりごり書くより
MIDIコンポを一発作っておいたほうが、当然ながら楽なわけで。
しかも(どっかの言語処理系と違って)コンポ化しても処理効率なんて全然落ちないし。
(他のコンポへの)ポインタとかもプロパティにしちまえば、アプリ作成はめちゃ楽。
…っていう話かなと思うんですが、どうでしょう?
0426デフォルトの名無しさん
NGNGabsoluteの使い方、はじめて見た。
ヘルプには説明これっぽっちも書いちゃいねえ。
type
ByteArray = array[0..High(Integer)] of Byte; // <--定義済みだけど。
PByteArray = ^ByteArray;
var
dp, sp : PByteArray;
dix: Integer;
begin
CopyMemory(dp[dix], sp[dix], dsiz);
でどう?
0427デフォルトの名無しさん
NGNGこれではダメかい?
>既存の変数と同じアドレスを占有する新しい変数を作成するには,
>アドレスではなく既存の変数の名前を absolute の後に記述します。
言語ガイドより。
0428422
NGNGおお、なるほど、 @dp^[dix] をそう書けるのですね?
次の疑問なんですが、
APIコール時によくある dwInstance : DWORD にSelfを渡したい時
やっぱりabsolute使った無理やりなコードになりがちなんですが、これも
綺麗に書く方法は?
DWORD(self)は駄目ですよね?
0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNGそういうときは
CopyMemory(Pointer(Longint(dp)+dindex), Pointer(Longint(sp)+sindex), dsiz);
と書いている。
または >>426 さんが書かれているように PByteArray を定義して
CopyMemory(@PByteArray(dp)[dindex], @PByteArray(sp)[sindex], dsiz);
でおっけー。
>>428
安易に absolute に頼るのやめましょうよ。ちなみに DWORD(Self) で良いのです。
ポインタのことをもっと勉強した方が良いと思います。
0431419
NGNGレスthanx。
自分の場合、APIを使うコンポはほとんど作ってません。
ノンMCIなMIDI再生ルーチン実装した際も、class(TObject派生)化のみで終わらせました。
いや、コンポーネントにするとインストールが面倒なので。
あと、ソース配布時も相手側が面倒ですし。
というかそもそも、非VCLアプリだと場合、コンポーネント貼り付けられませんです(藁
(フォームなんてないので)
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNGPCharにキャストしてからStringにキャストできないかな?
試してないんだけど。
0434デフォルトの名無しさん
NGNGわはは。まぁそれは有るか。
ただ、うざいならIDEにInstallせずに使うという手もあるわけで、
それはそれかなと。あと単なるCompositeパターンを組むレゴブロック
(?)として使うという手もあり、つまり親子関係をテキトウに作っておけば
最後に消すときに頂点一発殺すだけで全部死ぬので楽、というメリットも。
そんなこんなでComponents[]プロパティを結構くだらない用途に一杯使ってみたり。
まぁ今ならCollectionとか使うほうが良いだろうけど、
時としてD1で動くコードも書かないとならないし(藁
そういやガイシュツだけど「Installが面倒」ってのは
Delphiの鬱ポイントですな。
IDEにInstallするというスタイルにこだわりすぎ。
0435422
NGNG複素数もどきの処理をしたいとき オブジェクト型を使うと
type THoge =Object
public
x,y:Integer;
procedure Add(d:THoge);
procedure Copy(d:THoge);
procedure data(re,im:Integer);
function toStr:string;
end;
function THogeAdd(const a,b:THoge):THoge;
begin
Result.Copy(a);
Result.Add(b);
end;
といちいち Createしなくていいので便利そうなんで使ってみたい
んですが、ヘルプに<オブジェクト型の使用はお勧めできません>と
あります。これは何か問題があるという事なんでしょうか?
クラス型を使うと、こういう時、誰が開放(削除)するかで悩んで
しまうんで、使いたくないんです。
それから、 THoge内のメソッドで
procedure Add(const d:THoge);
とconst を付けると 実装時に定義が以前と違うというエラーが出ます
0436デフォルトの名無しさん
NGNGArray of Charだとできるけど、Array[0..x] of Charだと駄目みたい。
Delphiって静的配列の扱いがいまいちよくわからない。
というか普通にポインターを使うことはできないんでしょうか?
0437デフォルトの名無しさん
NGNGこんなことできるの?知らなんだー。マジで?
0438デフォルトの名無しさん
NGNGPCharじゃだめ?
0439422
NGNGc:Array of [0..n] of Char;
への代入なら
StrLcopy(@c,PChar(fromStr),High(c));
0440422
NGNGで、Object型の事なんだけど、資料が無いからよく判らない。
constructor destructorを定義してもC++みたいに、自動的に呼ばれる訳じゃない? みたい
まあ複素数もどきの場合は無理にデストラクタ定義する必要はないけど
Object型にClass型をメンバーに持たせたいような場合、
例外発生時に Class型メンバを解放する方法がないような・・・・
あ、だから<オブジェクト型の使用はお勧めできません>なのか?
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNGC++のstructみたいな感じなのかな・・・。
0443デフォルトの名無しさん
NGNG互換性のために残してあるとかどうとか
0444turbo type D
NGNG多重継承を許すT偽Objectクラスを作ってくれた方がありがたい。
が、だめ?
全然違うけど、こんなんもあるよ。
文字列による無限桁数数値演算ユニット
http://www.mogya.com/develop/kanjicalc/develop.html
0445デフォルトの名無しさん
NGNG多分、Array[0..x] of Charにこだわるのは、NMUDPが引数に要求するからじゃない?
ずっと前に質問してた人が、確かそんな風なこと書いてたし。
>>436
俺が前にSntpClientを作った時は
TSntpData = packed record
(省略)
TransmitTimestamp : TSntpTime;
end;
SntpData : Array[0..47] of Char;
PSntpData : ^TSntpData;
PSntpData := @SntpData;
T3 := PSntpData.TransmitTimestamp
NMUDP.SendBuffer(SntpData, 48);
こんな感じで逃げたんだけど、今ならIndyを使うよ(w
どうしてもStringを使いたいなら、内容をStringからArray[0..x] of Charにコピーする
しかないと思うよ。キャストは無理臭い。
0446デフォルトの名無しさん
NGNG暗号関連で巨大な素数を得たい時に、無限桁数数値演算ユニットが欲しくなるけど
演算子オーバーロードが使えないから、なんだかブチャイク。
文字列の扱いで例外的に適用してるんだから、ついでにこれも標準で実装して欲しい。
0447デフォルトの名無しさん
NGNGBuilderで実装されてる(C++だから当然か)から、出来ないはずはないんだけどね。
0448422
NGNGローカルに使う場合はclass代わりに使っていました。
Objectは record型でメソッド使えますって感じみたい。
>>443 TurboPascalの日本語解説サイトって無いかなあ
>>444 それ面白いアイデアですね。
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/mformula.txt
これに組み込もうかな
0449turbo type D
NGNG面白いものがあるのですね。全然しらなかった。
伝説のギコBASICの末裔ですね。
無限桁数数値演算ユニット
には割り算の余り計算にバグがあったので修正必です
作者には連絡済みだけど忙しくて更新まだみたい。
必要があれば言ってください。
整数だけだけど、とてつもない数値を扱う場合かなり便利。
0450デフォルトの名無しさん
NGNGサイズを縮めていったら [>>] をだすにはどうしたら良いですかね?
コンポでも良いので教えてください。
0451turbo type D
NGNG難しそう。
やり方知らない。
0452デフォルトの名無しさん
NGNGえっと、Win32タブの右端にあるやつ(名前忘れた)。
おんなじアイコンしてるから分かると思うけど。
D4以上です。
0453デフォルトの名無しさん
NGNGPageScroller
0454422
NGNGバグがあるのなら自分で作ってみます。
といっても文字列型のままだと少しメモリが勿体ないので
100進法にしました
現在 + - * 迄は組み込んでいます。
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/mformula.txt
小数点以下も100進なので2桁単位に計算しています
0455450
NGNGそれによって私は大変な恩恵に預かりますが、あなたには何の
メリットもありません。
でも、いいじゃないですか? どうせ情報なんてタダでしょ?
とても困っているので、情報を知っている人は私を助けなければ
いけません。これは義務です。
初心者にも分かるように説明してください。
私は、ごく普通の人間なので、パソコンのわけの分からない知識は
ありません。勉強するつもりもありません。時間の無駄です。
検索するなんて面倒です。どうしてそんな面倒な事するの?
知ってる人に聞けばいいじゃん。どうせタダだし。
マルチとか質問スレというのはヲタクのルールです。
私は普通の人間なのでヲタクのルールなど知ったこっちゃありません。
早く教えてください!
早く教えろ!
早く!
これだけ言ってもまだ教えねーのか?!
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG0459453
NGNGそれによって私は大変な恩恵に預かりますが、あなたには何の
メリットもありません。
でも、いいじゃないですか? どうせ情報なんてタダでしょ?
とても困っているので、情報を知っている人は私を助けなければ
いけません。これは義務です。
初心者にも分かるように説明してください。
私は、ごく普通の人間なので、パソコンのわけの分からない知識は
ありません。勉強するつもりもありません。時間の無駄です。
検索するなんて面倒です。どうしてそんな面倒な事するの?
知ってる人に聞けばいいじゃん。どうせタダだし。
マルチとか質問スレというのはヲタクのルールです。
私は普通の人間なのでヲタクのルールなど知ったこっちゃありません。
早く教えてください!
早く教えろ!
早く!
これだけ言ってもまだ教えねーのか?!
0460デフォルトの名無しさん
NGNGったら、いやだね〜♪
0461デフォルトの名無しさん
NGNGところで453というのはTypoかね?
いや単なる確認だが。
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNGお前ageるかsageるかどっちなんだよ(w
0465デフォルトの名無しさん
NGNGだからCD-ROM一枚なのに何十万もするの?何て言われたりするんだ…
0466turbo type D
NGNGバグはオレがすでに修正済みで作者にも連絡してます。
>>452-453
PageScrollerではないと思う。
Explorerでポップアップするツールバーの事じゃないかな?
嵐がいるらしいのでsage
0467デフォルトの名無しさん
NGNG0468422
NGNGそうですか、でも100進法も10進と同じくらい書くのは楽ですよ。
メモリーの消費量は半分だし、計算も倍速い筈。
文字列との変換も100進だったら殆ど負荷にならないし
後は 小数点付き割算さえ書けばギコbasicでパイの計算とか
出来るようになる筈。
0469デフォルトの名無しさん
NGNGprocedure FreeAndSetNil(var obj:TObject);
begin
obj.Free;
obj:=nil;
end;
必要ですよね?
0470デフォルトの名無しさん
NGNG引数は(var Obj)にして、関数内でキャストする必要がある。
0471デフォルトの名無しさん
NGNGBorland 身内のやらせっぽいな。
0472デフォルトの名無しさん
NGNG0473469
NGNG>471 うん。 自分で言うのもなんだけどこんな低次元でやらせって?
0474デフォルトの名無しさん
NGNG昔、「そういうのが欲しいなー」
と話題になっていて
新しい版でFreeAndNilが
こっそり実装されていた、というお話があったはず
いと、なつかしや
0475デフォルトの名無しさん
NGNG「おぉ、FreeAndNilだ。Delphi買おう!」って奴はいないだろ。
0476デフォルトの名無しさん
NGNGvar p: TObject;
begin
if TObject(obj) = nil then exit;
p := TObject(obj);
TObject(obj) := nil;
p.Free;
end;
とりあえず,自分の使ってるのを。こんなんでどうよ。
問題は、TObject以外のものでも引数として渡せちゃうことかな。
(関数名は適当に読み変えてね)
0477デフォルトの名無しさん
NGNGなんでvar obj:TObject では駄目なんでしょうか?
駄目といえば。
case文でObject参照変数が使えないのは結構がっくりだった。
たしかにcase文は順序型にしろってことになっているが、
case文の本質(?)から考えるに、真に必要なのは
「識別型(こんな用語はPascalには無いが、判るべ?)」であって、
順序型は識別型の一形態(サブクラス?)に過ぎない。
というわけで、Object参照でcase文をやれるようにしてくれー。
0478デフォルトの名無しさん
NGNGis とかのRTTI演算子では駄目?
確かにif文の羅列になってしまいそうだけど・・・
0479デフォルトの名無しさん
NGNGKylix で case 文、拡張されていなかったけ?
0480デフォルトの名無しさん
NGNGisはクラスがわかるだけ。Instanceを特定するものじゃないわけで。
case hoge of
Label1 .....
Label2 .....
なんてやりたかったわけね。
識別型と順序型の差は「範囲」という概念の有無なわけだけど、
ならば非順序型な識別型を使うときには
範囲指定が出来ないようになってりゃよいわけで…。
脱線だが。C言語のポインタが駄目なのは、ポインタを識別型として認める
だけならまだしも、順序型としてまでも認めてしまってる
(整数との加算なんて阿呆なことが出来るのはそのせい)
という点なんだろうな。
>>479
まぢ?ってことはD6もってこと?わーい。買おうっと。
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGD6で拡張されるなら、そっちが先じゃないか?
0484デフォルトの名無しさん
NGNG俺はあれあんまり好かないなあ。
というか、JavaやRubyみたいにStringがObjectになってる言語だと、
selectの発動に「同一性」じゃなく「同値性」を使うというルールにすることで
(つまり同値性を検出するメソッドを用意する義務があるということ)
統一的に語れるようになるんですっきりするんだが、
そうでない言語だと、どうしてもアドホックな文法拡張に走らざるを得ない
んで、ちょっとうんざり。直交性ってのかな、あれが低くなる。
もとより(delphiというより)pascalは、そういう古典的言語の悪い面も
少しひきずりがちな言語なんで、これ以上増やさないことを希望。
言いかえれば、StringをObjectにするってのを希望。
そうすりゃ多少モダンになるので。
OOP拡張がそうであったように、他の部分も少しづつモダン化してほしいなあ。
0485turbo type D
NGNGStringをObject化はオレ反対。
あれ美しくない気がする。
モダンなの?
そういえばC#って文字列はどうなっているのでしょうか?
caseでオブジェクトを判定するのも違うと思うな。
>OOP拡張がそうであったように、他の部分も少しづつモダン化してほしいなあ。
いつか変化する時がくるんでしょうね。
0486デフォルトの名無しさん
NGNGcase で ケースリストになるのは 定数だけ
一方、Label1 Label2は変数だから、それを許すなら caseで変数を書くのを許さなければならない
DynamicCase 文とか新設するのかな?
0487デフォルトの名無しさん
NGNGすべて同感。
ある二つのオブジェクトが同じインスタンスを指しているか判断する必要が
出るようなコーディングは駄目だと思います。
0488turbo type D
NGNGあ、オブジェクトが同じインスタンスを指しているか判断する
コーディングは時々必要かも。
でも、それを単なる文字列比較ではしたくないっす。
で、もう一つ。Javaの文字列で
StringクラスとStringBufferクラスがある変な構造もとてもイヤ。
StringBufferだけでいいと思う。高速化のためだけに出来たんだっけ?>>Stringクラス
Javaが美しい言語とはとても思えなかった。
>>486
DynamicCaseは検討する価値あるかも。
しかし、そういう基本部分での改変は無い方がいいという意見も多そうだ。
0489デフォルトの名無しさん
NGNG>オブジェクトが同じインスタンスを指しているか判断する
>コーディングは時々必要かも。
ええと。まず前提として、「Object」と「変数」は
厳格に区別してくれ。そうでないとこういう話題は
混乱するばっかりで話できないので。
上記を字面通り解釈したら意味不明だよ?
ObjectとInstanceは同義語だから。
もしかしてやっぱり、Objectじゃなくて「変数」と書きたかったのではなく?
で、そうだと仮定して。
必要です。断固として必要です。二つのObject型変数(=ポインタ)が
実は同じObjectを指しているかどうか?ってのは、OOP的には
ひじょーに大事な問題です。
昔の言語みたいに、情報をなんでもかんでもコピって持ち
必要になったら比較をする、ってのは、ダサイし、
「同一性が」重要な問題である場合には、他に解決手段はない。
>でも、それを単なる文字列比較ではしたくないっす。
ん、なんか話が合ってないな…
case文において「等しい」かどうかを評価するためのメソッドを
クラス(Stringも含めて)ごとに自由に定義すりゃいいんです。
どんぴしゃ同一ObjectじゃないとOKじゃないというクラスがあってもいいし
Stringが典型的だろうけど内容比較(つまり同値性)で評価するクラスもいい。
>StringクラスとStringBufferクラスがある変な構造もとてもイヤ。
>StringBufferだけでいいと思う。高速化のためだけに出来たんだっけ?
面食らうけど、別におかしくないとも思う。
というのは、StringBufferはStringを「所有」してると考えたら、
いいんじゃないの?ということ。
StringBufferの「内容」はStringであり、そいつが
「書き換わる」
ということは、内容であるStringオブジェクトが
「置き換わる」
ことと等価である、
という風に考えたら…どう?
0490turbo type D
NGNG失敬。
オブジェクト変数が同じインスタンスを指しているか判断するコーディングは必要かも。
って意味でした。
>case文において「等しい」かどうかを評価するためのメソッドを
>クラス(Stringも含めて)ごとに自由に定義すりゃいいんです。
やはり、DynamicCaseが必要かも。(ワラ
StringBufferとStringの見方/考え方は
オレには斬新でした。なるほど。
読んでいたJava初心者本がダメだったかな。
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG再変換対応が欲しいと思っているのは俺だけか?
コメント書くときとか、Typoや誤変換で再変換できたら
と思うことがよくあるのだが。
0493デフォルトの名無しさん
NGNGDelphiの本って すごく少ないですよね。
みなさんどうやって勉強なさっておられるのですか?
お勧めの本って ありますか? 切実です。 宜しく御願いします
0494デフォルトの名無しさん
NGNG0495turbo type D
NGNGすごく少ない本を全部かう。(ワラ
0496デフォルトの名無しさん
NGNG・・・初心者向けではないけどな。
0497デフォルトの名無しさん
NGNGそうか?本屋にいけば取り敢えず
両手で抱えきれない(某有名人が言うには、
それが読める限界量らしい)くらいの種類は
出てるように見えるが?
ドキュソな本ばかり数あっても結局無駄だったり有害だったりよ。
自分の本選び目が十分鍛えられてる人なら
そんなゴミの山の中から宝を見つけられるかもだが、
そうでないなら多いほうが却って不幸かも。
0498デフォルトの名無しさん
NGNGVBに比べれば質は結構いいよな。
0499デフォルトの名無しさん
NGNGいきなりオブジェクト指向言語か。
Delphiでよかったな。
即レスが>>494は少々厳しいと思うが(w、
マジな話あれも悪くないと思われ。
VCLについてはDelphiのヘルプが一番、
いいと思う。ワンキーヘルプだしな。
あとDelphiには糞な参考書はVCほど多くないから、
ハズレをつかみにくいと思われる。
書店で読んでみて、サンプルコードが多く、
説明が丁寧か、オブジェクト指向について詳しく
説明しているかがポイントと思われる。
そのポイントで探せばよいのでは。
嘘こいていたら他の人フォロー頼む。
0500デフォルトの名無しさん
NGNG0501493
NGNG確かに厳しいか。すまん(w
言語仕様をある程度把握してからしかその言語を使わないので。
CはK&R2版、C++はARMをまず買っちゃうんだよ。
Z80はニモニックとオペコードを叩き込むことからだったし(w
0502デフォルトの名無しさん
NGNGそーゆー姿勢の人のほうが好感持てるなあ。
いきなり体当たりってのは、
なんでもかんでもに適している方法じゃないはずだから。
半可通のまま突っ走るってのは滑稽だし傍迷惑だから
まず仕様をあたるってのが正解だと思われ。
>>498
すまそ。ドキュという単語で想定した対象(藁)は
とーぜんだがDel方面でわない。
0503turbo type D
NGNGとりあえず全部目を通そう。
なぜかsage進行なので、オレモ
0505493
NGNGでも今の時代はどうだろ、と思うよ。
DOSの時代だと言語仕様とわずかな関数さえ覚えればなんとかなった。
WindowsだとVCLなりMFCなりOWLなり(w)から入って、そこで必要な
言語仕様を覚えるというスタイルの方がいいんじゃないかな。少なくとも
職業プログラマとしてはそっちの方が実戦に投入しやすいかと。
でも、言語仕様をおろそかにすると、ソースにいきなり select〜fromなんか
書いちゃったりするんだよな(w
新人研修はしっかりやらないとダメです。
0506デフォルトの名無しさん
NGNG釣られてDelphi4から5にupgradeしたんですが、ListViewの
OnMouseUpイベントで右クリックだけ捕捉できないときがあるんですが、
これって対策あるんでしょうか?
すばやくクリックしたりすると反応するみたいですが・・・・
0507506
NGNG0508デフォルトの名無しさん
NGNGとりあえず某ML(ってみんな分かると思うが)に
投稿された文からコピペ。
--以下コピペ--
大型の本屋に行けば Delphi 関連書籍が結構あるので、簡単に読んでみてください。
Delphian World(http://home1.infonia.ne.jp/~delphian/delphi/index.html) の
「Best Book」、「Best Book2」というコーナーにDelphi関連書籍ランキングがあり、
たくさんの方のコメントがあるので参考になるとおもいます。
0509デフォルトの名無しさん
NGNG東京近郊の恵まれた人の感想文だな。
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNGとりあえず、本屋まわりまくって、見つけた本を片っ端から買いあさったもんだ。
0512デフォルトの名無しさん
NGNGSpeedButton+TabFocus持てるコンポって
あったっけ?
TButtonで代用しようとしたけどさすがに無理があった(w
0513デフォルトの名無しさん
NGNGBitBtnはどうよ
0514デフォルトの名無しさん
NGNGパレットですぐ隣にあったのに。。。鬱打。
0515turbo type D
NGNG>>514ワラタ
0516デフォルトの名無しさん
NGNGアマゾンでいいだろ?
まさか仮面ライダーと間違える奴はいないだろうし。
0518turbo type D
NGNG0519デル房
NGNG今月出たやつなんか、「何か。」系ソフト?を作る記事だし。その上
サンプルソースのフォントが馬鹿でかい!これでページ数稼いでる。
だんだんD++みたくなってきた。創刊号から買ってきたが、さすがに
もういらねーよ。まるで役に立たない。サイテー
0520デフォルトの名無しさん
NGNG0521デル房
NGNGそうそう。最近は変わったけどね。でも考えてみたら、あの頃
から何かすでにおかしかったよな。結局そーゆーヲタが作ってる
雑誌なんだろうな。あーこわっ!こんなもん買ってた自分に鬱
0522デフォルトの名無しさん
NGNG買ったこと無いよsageヽ(´ー`)ノ
0523506
NGNGしょうがない、自分でVCLを解析すっか・・・
FilerにエクスプローラライクのOLE D&Dとコンテキストメニュー
付けてると、思いっきりひっかかるんだよね、これ。
0524デフォルトの名無しさん
NGNGそーすなんかいらないんだよな。ネットで配布するだけでOK。
今号の表紙をみてDelphi仕事人訪問に期待したんだけど、中村氏が語っている
所がほとんどなくてがっかり。
「何か。」はいいと思ったけどね。初代偽春菜からチェックしてる身としては。
断っとくけど、ヲタではないよ。作者の異常な開発スピードに感銘を受けただけ。
0525デフォルトの名無しさん
NGNG今回初めて仕事でDelphiを使ってます。(アプリ10本くらい)
各プロジェクトにデータモジュール1つで単純につくっていこうと思ってたんですが、
一緒にやってる先輩(Delphi歴俺と同じ)が
「データモジュールはシステム全体で1つがいい」と云って譲りません。
先輩の理由:
・一つにしておけばテーブルに変更等があった場合は変更が楽。(データモジュールだけ直せばいい)
・おなじTQueryの使いまわしがきく。
だそうです。また、その為に以下の制限をかけるらしいです。
・動的にSQLを直すのは不可(全てプロパティ設定)
・WHERE条件が違えば、別TQueryにする。
俺の懸念事項→先輩の回答
TDataModuleバカでかくなりません?→別にいい
それぞれのプロジェクトで不要な分までメモリくいませんかね?→それほどでもない
一人がいじってると他の人は使えないんじゃ・・・→DataModule直しは担当をきめる
取得する項目は?→SELECT * で全部引っ張るようにしておく
更新用SQLは?→INSERT用、MODEFY用、DELETE用ってつくっとけばいい
TUpdateで更新したいときは?→それ用ってつくっとけばいい
なんか昔、Delphi以外の開発でレスポンスのためにプログラムそれぞれのSQLを見直す
のがすごい大変だったらしく、SQLは1元管理するべきだという主張を譲りません。
俺はDelphiでの開発経験がないので、先輩の主張でつくっていく事になったんですけど
俺はすごい不安なのです。(先輩も今回が初めて)
先輩方式で開発するのって正しいんでしょうか?
0526デフォルトの名無しさん
NGNG漏れはそれより、OSのポップアップメニューの扱いに困ったな。
W2kなんだけどさ、MouseDownでポップアップしたほうが素早く
動作しているように見えるじゃん。
それでMouseDownでポップアップさせていたんだけど、メニューに
フォーカスが移らないんだよね。
カーソルとか押してもメニュー選択できないし、ESCで閉じられないし。
で、サブクラス化とかはだめなん?
試してないから何ともなんだけど。
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG質問するならせめてageたら?
データモジュールはあってもなくてもいいくらいだから
好きにしたら。
先輩の拘りは意味不明。
TQueryは必要最低限でよし。
>・WHERE条件が違えば、別TQueryにする。
いくつTQuery作る気?
0529506
NGNGまだ、軽く自作のフリーソフトを再コンパイルしただけなんで、
まともにいじってないんだよね。一応、4万ステップぐらいある
コードだけど、特に問題なくコンパイラが通ったから、やたー、
とか思ったんだけどな(;´Д`) ぬかよろこび。
あと、これを直しても少し待てば到着するDelphi6でどーなるか
わからないので、あんまりいじる気がしないというのもあるが(w
0530デフォルトの名無しさん
NGNG>・一つにしておけばテーブルに変更等があった場合は変更が楽。(データモジュールだけ直せばいい)
この類の屁理屈は、かつて構造化言語が普及し始めたころに、
それに反駁する古典ドキュがグローバル変数を擁護するときに
使った屁理屈と、似ていると思う。
つまり、「どこでどう使いたくなるか判らないから、
全部みえみえにしとくほうがいいべ?」という理屈だ。
情報隠蔽がどれほど便利な概念か、まるでわかってない奴の意見、ですね。
さよなら、きみ。
というわけで俺も、その先輩=ドキュ、というほうに一票。
>一人がいじってると他の人は使えないんじゃ・・・→DataModule直しは担当をきめる
#ここでは「使える」てのは「ソースを修正できる」って意味だよね?
本末転倒もいいところだね。
そうやって恥の上塗りをし続け、
プロジェクトを加速的に破壊してくわけだ。
XPとまで言わなくても、ソースなんてのは
責任者一人に固定したら死ぬものだよ。
蛇足だがVSSかCVSお勧め。美しいコーディング作業スタイルを
導入して、ドキュ先輩を精神崩壊させてあげましょう。
ところで、これだけ綺麗に(=判りやすく)
自分とこの問題点を抽出できるなんて、
あなた、初心者だなんてのは謙遜でしょ?でしょ?
0531デフォルトの名無しさん
NGNGTQueryって同時に使用する分だけでいいんじゃないの?
>・WHERE条件が違えば、別TQueryにする。
なら、SQL文を文字列配列かなんかに入れておいて、都度TQueryにつっこめば
いいような気がするけど。
なんでもかんでもポトリペタリするのは好きじゃないな。
0532デフォルトの名無しさん
NGNG関数内部でTQuery作って更新して破棄するってのなら
まだわかるが、(無駄臭いけど)
ポトペタでTQueryを沢山貼り付けてるってのは
ゴミ以外になんでもないよな。
>>531
好きじゃない以前に531さんの方が正しいです。
0533デフォルトの名無しさん
NGNGなどを書いてハッキリさせておこう。
画面数が増えてくると生成・破棄のタイミングがやっかいなのよ・・・
(プログラム開始時に作りっぱなしでいいのかな?)
0534デフォルトの名無しさん
NGNGかもしれませんね。あと、共通で使う単純なクエリならまとめて
おいてもいいと思います。
>・一つにしておけばテーブルに変更等があった場合は変更が楽。(データモジュールだけ直せばいい)
Stored Procedureが使えるDBならSPにした方がいいんじゃないですか。
>取得する項目は?→SELECT * で全部引っ張るようにしておく
データの転送量は問題にならないんですかね。
0535デフォルトの名無しさん
NGNG病気だよ。
0536525
NGNG>>528
いや、sageが身についているので小心者なので・・・
TQueryいっぱいつくるです。トホホ
>>528
プログラマ2,3人の小人数なので・・・
なかなかに手強いのですよ。
Delphi初心者ですということで・・・
>>531
そうすると、プログム単位での修正になっていくのでイヤらしいです。
>>533
そうですよね。単純な仕様書だけではちと不安な部分もありました。
プログラム作成時に作りっぱなしです。
>>534
本当に汎用性のあるSQLだけまとめるように再度、意見はしてみます。
データ転送のトラフィックよりDB検索時間のほうが気になるらしいです。
先輩方式でつくっていくことになっちゃいました。
非常に作成が複雑になっています。
いまさら後にも引けないし、自分のおよぶ範囲で頑張ってみます。
失敗しないといいなぁ・・・
0537534
NGNGインデックスページだけ読めばすむところをデータページまで
読まなきゃならなくなる場合もあるので、検索時間にも影響が
出ます。
0538デフォルトの名無しさん
NGNGと、聞こうとして
念のため、ヘルプで調べたらそのままズバリのものがあったことを知り
鬱になる一初心者。
「Inputbox」という名称がわからなかったんじゃー。
質問するために調べてはじめて知ったんじゃー
0539デフォルトの名無しさん
NGNG「わかる人だけわかる入門書」ばかりな気がします。
皆さんはDelphiの前にちがう言語などやってられたのでしょうか?
超初心者には手に負えないもの、、でしょうか?
初カキです。
0540デフォルトの名無しさん
NGNG(おれは買ってしまった。DirectXの記事のために・・・)
おれの場合、構造化BasicとC(少し)はやってたなー。
でも、超初心者でもなんとかなるもんだぜ。
とりあえず、ベーマガ買ってゲーム打ち込んで慣れてみるとか(w
0541デフォルトの名無しさん
NGNG俺はVBから入って、単純な整数演算でさえ遅い
VBに限界を感じてDelphiに入ってきた厨房です。
自分の場合、まずは自分がどういう物を作りたいのか、
を整理して、その中でさらに、UIを実装するには、
基本的なロジックはどう実装するか、とか目的を細分化し、
それぞれの目的を達成するにはどうすればよいか、
を調べて勉強してました。
んで文法とか言語仕様を覚えるのに参考書を買ったり、
それで分からなければ試行錯誤やヘルプを全文検索
したりとかしました。
とりあえず他の方のもっといい意見きぼーん。
0542539
NGNGありがとうございます。ベーマガですね。買ってみます。
>>541の方。
ありがとうございます。目的の細分化。頂きます。やってみます。目的はRPGなんです。
すいません、いま調べたら「ご使用の前に」「クイックスタート」て言うのが出てきましたが、読んだほうがいい、、ですよね?
0543デフォルトの名無しさん
NGNGとりあえず 秀和システムの 基礎から分かるDelphi5 を 買いました。
がんばってみます
またなにかあったら 相談に乗ってください
本当にありがとうございました
0544デフォルトの名無しさん
NGNG君はまずそのRPGを作る前に、本屋に逝って
参考書を買って読むことを勧める。
識者の方よいDelphiの参考書情報きぼんぬ。
OSはW2kがいいと思う。フルテキスト検索とかあるし、
安定しているからな。開発中、保存する直前に
OSが例外0Eとかで落ちたら洒落にならない。
付属のマニュアルよりヘルプの方が検索性が高い。
マニュアルよりはヘルプをお薦めする。
状況感知型(名前忘れた、これであってるか?)の
ヘルプなので、使いやすいと思う。
コーディングはワンキーヘルプも使おう。
偉そうでスマソ。
0545名無しさん@LV2001
NGNGhttp://www.cbook24.com/bm_detail.asp?sku=99914694
http://www.cbook24.com/bm_detail.asp?sku=99922886
0546turbo type D
NGNG先が見えないと勉強がなかなか進まないよね。
昔TechWin氏に某ランドのオオノタンが
往年のハイドライドみたいなRPGを作るための
連載をやってたよ。
ありゃ、必読。解説はあまりなくてソースが中心だったけど
どうにかバックナンバーを手に入れれるといいね。
国会図書館あたりでコピーさせてもらえるのかな
0547ソラン
NGNG例えば、売上入力とか入金入力とかって単位でexeを作成した
方が良いのでしょうか?それとも、1本のProjectで全てを記述
した方が良いのでしょうか、又は、もっと良い方法はありますか?
私は、サイズが大きくなって遅くなるのでexe=処理に分割した
方が良いと思うのですが、如何でしょうか?
# 分割して作成するとしたら、exeだけで120本になります。
0548デフォルトの名無しさん
NGNGDOS時代Cをやってて、C++をやろうとしたが挫折。
WindowsでVBに手を出したが30分で使えないと判断。その代わりC++を
覚える大きな手助けにはなった。
C++Builderを買ったが小さいソフトを何本か書いただけで挫折。
Delphiに手を出したら、あまりのわかり易さに感動してメインの言語へ。
おかげでC++Builderも使えるようになった。
そんな感じです。
0549デフォルトの名無しさん
NGNGサイズが大きくなると遅くなるのですか? 分割したらその分のオーバー
ヘッドは確実に増えると思うのですが。
exeが120本って言われてもどんな規模なのかさっぱりわからない。
俺の方針は「そのプロジェクトにおいて」分割する理由があれば分割する。
「大きくなるから」ってのは普通分割する理由にならない。
055062563
NGNG分割したら120って、ちょっと分割しすぎでは…(焦)。
設計段階から見直したほうがいいのでは?
大体、分割するメリットはあるのか。549さんのコメントの通り、
分割した方がオーバーヘッドが増える。それでも分割するのは
それだけメリットがあるって事。
0551デフォルトの名無しさん
NGNG俺と似たような人がヽ( ´ー`)ノ
0552ソラン
NGNG>>550
システムの内容は、販売管理+財務で、支店が30店舗、部課数
が25あります、各部課や支店のデータも連携させるって内容です。
(全ての入力画面や照会帳票の作表の種類が120種類って事です)
頻繁に使うプログラムってのは部課によって共通していたり、異な
ったりするので、120本全てのプログラム全ての部課が利用する
わけではありません、不要な処理まで1本のプログラムにすると
オーバーヘッドが大きくなるかな?って感じで個別に分割した方が
良いのでは?と私は考えていました。
それと、説明が不足していたのですが、部課の中には古いPCや
メモリが32MBってのも多くて小さい実行形式の方が良いかな?
ってのもありました。
取りあえず、設計の方はこれからなんで、やり直すって感じでも
ないのですが、検討してみます。ありがとうございました。
0553デフォルトの名無しさん
NGNGDB−WEBサーバ−GUI(HTML)−クライアントPC
0554デフォルトの名無しさん
NGNG某仕事のミドルウェアをCで作ったとき、モジュール数1000ちょいでしたが
全国で使用する為、LIB管だけで専属2人は必要でした。
開発効率だけ・実行環境だけで考えるとエライ目にあいます。
exeは適時分割すべきですが、むやみに似たロジックを別箇に分けると
環境構築時・アップデート時に玉砕します。
せめて動作の違いは引数で使い分ける等、工夫した方が良いです。
運用設計者と相談しましたか?
0555デフォルトの名無しさん
NGNGいやぁ、ネットに繋げられるとは限らんのじゃない?
0556デフォルトの名無しさん
NGNG>システムの内容は、販売管理+財務で、支店が30店舗、部課数
>が25あります、各部課や支店のデータも連携させるって内容です。
ネット接続を前提にしないと、連携が大変じゃない?
0557デフォルトの名無しさん
NGNG種類が120なのはわかったが120に分割しなければならない理由は?
個人的には設計・分析能力が全くないDQNマネージャーにしか見えないのだが。
0558デフォルトの名無しさん
NGNGまだ設計前の段階なのではないのかなと感じたが君は昔COBOLとかでシステムを
書いていたのか?正直モジュール分けは妥当ではないと思われる。
スペックの低いマシンが混在しているとの心配から分割したいと思って
いるのならば、553の方法を考慮した方が良いだろうと思われ。
理由は、ブラウザが動けばなんとかなるしアップデートにも楽に対応可能だ。
>>557
552みても分割したいって理由がわかんなかった?読みが浅いね。
557修行足りないな、逝ってよし。
そんなことより、みんなsageようね
0559デフォルトの名無しさん
NGNGなぜ選択肢が1本と120本しかないのかわからないが。
0560デフォルトの名無しさん
NGNG552は、「分割しなければならない!」といった書き方ではなく、
「分割した方が良いのか1本で作った方が良いのか」との質問でしょ。
彼にもわからないから聞いているのだろうし、分割したかった理由は、552に
書いてあるだろし、552の文書では1本にするとは書いていないようだが。
>> 552
個人的には、最近PHP+Cで同様のシステムを書いたことがあるが、Delphiで
書くよりもWebに関しては PHPの方が簡単であるとアドバイスを追加する。
0561デフォルトの名無しさん
NGNG>1本のProjectで全てを記述
># 分割して作成するとしたら、exeだけで120本になります。
と書いてあったらから 1本or120本 だと思った。
俺の読解力不足ということにしておいてくれ。
0562デフォルトの名無しさん
NGNG5 からの強化点が知りたいのですが。
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNGVCほど難しくなく直感的、かつDLLも開発できるし、VBみたいにランタイム云々もないし。
で、買うなら今?それともver6がでるまで待ったほうがいいですか?
0565デフォルトの名無しさん
NGNG今。
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNGLearning版が20000円でProfessional版は68000円
>>361を見るとD4Learning→D5Professionalバージョンアップが33600円。
D6でも同じだと仮定するとD5Learning版を買ってD6Professional版を買うと安くあがる。
参考までに。
0568564
NGNGD6はWeb云々で特にエディタが使いやすくなることもなさそうなんで
D5でいいかも。とりあえず英語ヘルプみながら60日過ごします。
どうもありがとう。
0569539
NGNG経過報告をいたしますと、どうも「クイックスタート」に知りたいことの大半が書いてあるようです。
基本中の基本が、売っている本に書かれていないのはそれが標準で付いてくるからですね。灯台下暗しでした。
クイックスタートをもういっかい丁寧に読んでからオンラインのチュートリアルに進もうと思います。ありがとうございました。
0570デフォルトの名無しさん
NGNGTValueListEditor
TLabeledEdit
TColorBox
TActionManager
TActionMainMenuBar
TActionToolBar
TCustomizeDlg
どんなものか、いまいち分からんのもある。
0571デフォルトの名無しさん
NGNGいままで、オプションだったTMenuBar同等のもんってようやく標準になるのかな。
0572デフォルトの名無しさん
NGNG出典は?
0573デフォルトの名無しさん
NGNG別にWM_PAINTに対するイベントハンドラを記述した覚えはないのに
他のwindowが覆ってもどうやっても描画内容が消えません。
なんで?
逆に再描画しないようにするにはどうするの?
0574turbo type D
NGNGTPaintBox
0575573
NGNGありがとう。ちょっとTImageとTPaintBoxを調べてみまっす。
なんかobject pascalってなれないなぁ。。
配列を引数に渡す時の挙動がどうもCとはぜんぜん違うみたい。。
配列名はアドレスってわけでもないみたいだし。。
call by valueとcall by referenceの思想の違いなんかなぁ。。
0576デフォルトの名無しさん
NGNGポインタ使えないわけじゃないから、
Cみたいにポインタ渡しでもできんことないけど、やはりドロくさくなってしまう。
ここははやくObjectPascalに慣れてしまった方がいいかと。
0577名無しさん@LV2001
NGNGすごい安っぽい本やね、これは。内容はよさげなのだが・・・。
0578デフォルトの名無しさん
NGNG書籍は中身で勝負!!
0579デフォルトの名無しさん
NGNG自動拡張される連想配列プリーズ、強く激しくプリーズ
0580デフォルトの名無しさん
NGNGそう、書籍は中身だ。
表紙に労力をかけなくてもいい・・・。
0581デフォルトの名無しさん
NGNG自力で実装プリーズ。
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGint arr[3];
int *ptr;
ptr = &arr[1];
ptr[0] = 1, ptr[1] = 2;
ってなことをobject pascalでやりたいのだけどどうすればいいの?
var
arr: array[0..3] of Integer;
ptr: ^Integer;
ptr := @arr[1];
ptr[0] := 1;
ptr[1] := 2;
だとだめなんだよ。。。たすけて!
0584デフォルトの名無しさん
NGNGptr := @arr[1];
ptr^ := 1;
Inc(Ptr);
ptr^ := 2;
0585デフォルトの名無しさん
NGNGtype
PIntArray = ^TIntArray;
TIntArray = array [0..0] of Integer;
var
arr: array[0..2] of Integer;
p: PIntArray;
begin
p := @arr[0];
p[0] := 0; // p[0] := でも可
end;
0586訂正
NGNG○ p^[0] := 0; // p[0] := でも可
0587デフォルトの名無しさん
NGNG実行してるときは、エラーでないのに、ステップ実行をすると不正な浮動小数点演算
命令と出ます。なぜなんですか?教えてください。
0588デフォルトの名無しさん
NGNG0589583
NGNGありがと〜。584の方法だとちょっと記述が冗長だし
585の方法だとわざわざtypeしないといけないのとarray[0..0]の範囲指定が気になったので
今回はもう、動的配列で逃げることにしましたです。
いやー、、ポインタが使いにくいね。delphiって。でもしょうがないのかな?
ポインタは危険だからあんまり無茶はさせないって設計思想なのかなぁ。。
またよろしくおねがいします!
0590デフォルトの名無しさん
NGNGそうだねぇ。C の場合にはポインタを使うことが前提だからね。
583 の例だと、伝統的 PASCAL 使いならアクセス用の関数/手続きを作っちゃうんじゃ
ないかな?そのほうが後で読んで意味がわかるし。
C くささから逃れたいのであれば、ばしばし必要な型を定義していくのが Pascal 流でしょう。
0591584
NGNGDelphi使い始めてからCのようなポインタを使わなくなった。
どうやって回避してるか・・・俺にもわからんのだよ、それが。
たぶん配列かTList系でやってるんだろうけど、書いてる時は全然意識してない。
元々のPascalにはポインタはなかったらしいから設計思想といやそうだろうね。
>>590の最後、激しく同意。
0592デフォルトの名無しさん
NGNGコピペウザイ
0593583
NGNG動的配列を割り当てるのにSetLengthを使ってるんだけど、
・解放はどうなってるんだ?
・そもそもヒープに取られるのか、スタックに積まれるのか
が気になっちゃいました。
newで割り当ててdeleteするなら分かりやすいんだけど。。
なんか参照回数を数えてて使われなくなったら解放するって
GCみたいなことをやるって本には書いてあるけど。。
それならNewとかAllocMemとか要らないんじゃないか?と思ってみたり。
画を扱うのでメモリーは1MB以上欲しいのでスタックに積むとだめだし。
どうなってるんでしょ?
0594デフォルトの名無しさん
NGNGへんなところをアクセスしてない? 大体はそういう
単なるふつーのバグが原因。
他にFPUの例外が本当に出ていることもあるけど、これはマスク
をすれば直る。Set8087CWとかの項を読んでみそ。
0595583
NGNG>C くささから逃れたいのであれば、ばしばし必要な型を定義していくのが Pascal 流でしょう。
・・・そうなんだ。肝に銘じてりっぱなdelphi使いになるように精進しまっす。
0596584
NGNGだからよう、ヘルプ見ろって。
>動的配列の割り当てを解除するには,配列を参照する変数に nil を代入するか,
>Finalize に変数を渡します。
NewとかAllocMemとかとは次元が違う。
あと、動的配列が実装されたのは結構最近の話。
0597デフォルトの名無しさん
NGNGSetLength, Finalizeは、C++でいうnew delete
ってなことでよろしい?
0598デフォルトの名無しさん
NGNGSetLength ってのは,動的配列と,
文字列のための特殊なアロケータ
で,GetMem New と比べては遺憾
と思われ.
0599デフォルトの名無しさん
NGNGデバッガで動作させるとファイルが書けませんエラーも出てるみたいです。
0600デフォルトの名無しさん
NGNGそれはDelphiのバグ情報ですか?
0601デフォルトの名無しさん
NGNGもしかして,ドライブの空き容量がないとか
0602599
NGNGクイックレポートはパッチあててるし。一緒に入れたBCB5が悪さしてますか?
0603デフォルトの名無しさん
NGNGSET TEMP=C:\TEMP
ttp://www.qusoft.com
0604デフォルトの名無しさん
NGNGKylixも出たしもっとマシなのつくってくれ。
0605599
NGNGそうなんですが、昔作った社内ツールで...>クイックレポートいらない&つかいたくない。
0606603
NGNGMy ComputerのPropertyでした。
0607login:Penguin
NGNG0608デフォルトの名無しさん
NGNGこちらへどうぞ。
delphiで作られた有名ソフトって何がある?
http://piza.2ch.net/test/read.cgi?bbs=tech&key=990056026
0609login:Penguin
NGNGえへへ。
0610login:Penguin
NGNG0611デフォルトの名無しさん
NGNGウゼィ
0612デフォルトの名無しさん
NGNGhttp://www.amazon.de/exec/obidos/ASIN/3826606434/rlf/028-5835299-0903738
Delphi3 Pro CD 付き。ただしドイツ語。
0613デフォルトの名無しさん
NGNG0614turbo type D
NGNGジョ・冗談だろ???
0615599
NGNGクイックレポートはソースコードついてないので困る(怒
0616デフォルトの名無しさん
NGNG99ダラーで買えるけど。ビザかマスターカード持ってれば。
Kylixはまだ印刷に関して統一的手法ってないのかしらん?
>>612
ドイツは子供も世界一ィィィ!!
0617turbo type D
NGNG>ドイツは子供も世界一ィィィ!!
微妙にJoJo入ってる?
だとしたら、こちらのスレにご案内でフ。
プログラマの奇妙な冒険
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=993574449
0618デフォルトの名無しさん
NGNGhttp://www.borland.co.jp/delphi/cases/dh024.html
0619デフォルトの名無しさん
NGNGML検索ページで"tkc.co.jp"で検索すると最初はVBからの移行だった
事がわかる。
ttp://www2.big.or.jp/~osamu/Delphi/
0620デフォルトの名無しさん
NGNGすごいかっこいいネ。気合はいってんな。
0621デフォルトの名無しさん
NGNGDelphi の仕様のいくつかも,ここが要求,変更させている。
「わが国最大級の職業会計人集団」って言葉以上の圧力団体なんだよ。
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNGマジ?お近付きになりたいな〜。
0624デフォルトの名無しさん
NGNG保存ってInterBaseで大丈夫なのか?6.0って製品版
出たばかりなはずだが?
0625デフォルトの名無しさん
NGNG>Delphi の仕様のいくつかも,ここが要求,変更させている。
詳細アボーン
Delのどの辺?勝手な仕様変更はいやだけど。
0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNGlabel
LOOP_START;
asm
MOV EAX, 0
MOV ECX, 9
LOOP_START:
INC EAX
LOOP LOOP_START
// MOV @Result, EAX
end;
この関数の結果として9が返ってくることを期待しているのですが、
帰ってきません。
コメントされているところを有効にすれば当然9が返ってきます。
順序型の結果はAL, AX, EAXで返るんですよねえ・・・?
0628>627 CPUウィンドウで確認してみ?
NGNG0629デフォルトの名無しさん
NGNGlabel キーワードでラベルを定義しているのがいけないんじゃない?
アセンブリ言語らしくラベル名に@LOOP_STARTを使ったらうまくいったよ。
どうやらPascal言語のlabelキーワードを使うと、asm-endブロックが
begin-endブロックで囲まれていると解釈されるみたいだね。
これでは戻り値が不定になるのは当たり前だね。
0631デフォルトの名無しさん
NGNGhttp://natto.2ch.net/test/read.cgi?bbs=recruit&key=991724613
http://natto.2ch.net/test/read.cgi?bbs=recruit&key=994076415
0632デフォルトの名無しさん
NGNGhttp://www.sinter.com.tw/
0633デフォルトの名無しさん
NGNGDelphiでOLEとかインターフェースってさっぱりわからんのです
0634デフォルトの名無しさん
NGNGNowから得た終わりと開始のTDateTimeの差をとれば、
とりあえず経過時間の大小は比較できますか?
0635デフォルトの名無しさん
NGNGmsecならMMSystemをusesして、timeGetTimeでGO
0636634
NGNGどうもです。
このMMSystemってなんですか?ヘルプでほとんど情報が出てこないのですが・・・。
0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNGDelphi でなければ、OLE とか COM とかわかるのかい?
0640634
NGNGどうもです。Win32 Programmer's Referenceで調べてみます。
ところで手続きや関数の値の渡し方はどのようになっているのですか?
引数の数が少ない場合はレジスタ(EAX, ECX)が使われるみたいですけれど、
そんな記述が見つかりません。
asmで手続きを記述していてどのレジスタなら使ってよいのかわからないので
困るのですが・・・。
0641デフォルトの名無しさん
NGNGHelpのObjectPascal言語ガイドで
[プログラムの制御]−[パラメータと関数の結果]−[パラメータの受け渡し]
を辿ってみ。
0642デフォルトの名無しさん
NGNGチェックボックスが表示されないのですが、何か回避する方法は
ないでしょうか?
0643デフォルトの名無しさん
NGNG自分で描け
0644デフォルトの名無しさん
NGNG最終的にはそうするとしても、バグみたいな仕様ですね。
OwnerDrawでこうなるなら理解できるのですが・・・。
0645デフォルトの名無しさん
NGNGま、MS コモンコントロールの問題だからしょーがない。
... なんとなく、ComCtl32 を最新のにすると期待したとおりになるような
きがする。なんとなくね。IE5.5 をインストールしてみたらいいことがおきる
かも。
0646デフォルトの名無しさん
NGNGありがとうございます。試してみましたが駄目でした。
それで自前で描画することはできたのですが、チェックボックスの部分を
クリックした場合にCheckの状態を変更したいのですが、良い方法が思い浮かびません。
何かメッセージを捕まえないといけないのでしょうか・・・。
0647デフォルトの名無しさん
NGNGDownした座標から、手前で決めろや
どこがチェックボックスなのかも手前で決めろや
checkedに手前で入れろや
VCLにして配布しろや(ワラ
0648646
NGNGあくまで雑談の場なのですね。
0649デフォルトの名無しさん
NGNG647のでいいのでは?ここで聞く前にML検索したよね?
0650デフォルトの名無しさん
NGNGケッ、2ch にも検索無脳があらわれよった
0651デフォルトの名無しさん
NGNGまぁまぁ。
でも、なんで>>647で問題があるのかな? その辺をコメントしてほしい>>648
0652デフォルトの名無しさん
NGNGまあ2chですから。
0653デフォルトの名無しさん
NGNG教えてくれませんか??
0654デフォルトの名無しさん
NGNG一年前には40件以上あったような気もするんだけどなんかあったの?
http://dir.yahoo.co.jp/Computers_and_Internet/Software/Programming_Tools/Programming_Languages/Delphi/
0655デフォルトの名無しさん
NGNG嫌がらせ
0656デフォルトの名無しさん
NGNG宿題を他人にやってもらうの?
0657デフォルトの名無しさん
NGNG逝ってよしですか?
0658デフォルトの名無しさん
NGNGへぇ。3年ぶりにメンテナンスしたと思ったら、ばっさり削除ですか。
1. Yahoo とはこんなものだ。
2. MS から嫌がらせの命令がとんだ
3. ほんとにこれしか Delphi の技術ページが存在しない。
正解は?
0659デフォルトの名無しさん
NGNG元々Yahooにあったリンク先でも
生き残っている所は多数あったぞ
0660デフォルトの名無しさん
NGNGおのれYahoo!!...
0661デフォルトの名無しさん
NGNG2件っていうから激選してるかと思ったら…
0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNGyahoo的にはね。
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNGここ宛てに苦情メールを送ろう。[email protected]
0666デフォルトの名無しさん
NGNGhttp://www.borland.co.jp/news/del6personal.html
Borland - News Release :
ボーランドのフラッグシップ・プロダクトのエントリー版
Borland(r) Delphi(tm) 6 Personal無償ダウンロードを決定
0667デフォルトの名無しさん
NGNG何々!?これどういうこと????
0668666
NGNGネットからダウンロードする場合は無料と言うことだよ。
ついにDelphiも無料配布の時代が来たか。
ただし、商用アプリの作成はダメ。
0669デフォルトの名無しさん
NGNG区別つかないんだろ?
Delphi2.0の頃からずっとアップグレードしてきたが、
今後は無料版にするかな。
Delphiの無料版はあまりボーランドにとって良くないような
気がするな。
0670デフォルトの名無しさん
NGNGKylix Open Editionと同じように区別付くようにするはず。
俺も無料板Delphiは本当にボーランドのためになるのか疑問。
0671デフォルトの名無しさん
NGNGエンタープライズな顧客からガッポリ稼いで
利益をオープンソースコミュニティに投資するってとこかな
0672デフォルトの名無しさん
NGNGライセンスだけは守ってね。みんなの Borland 何だから一人でおいしい汁を啜ろうなんて考えないで。
0673デフォルトの名無しさん
NGNGま、内容はあってるみたいだからあとは名無しで書き込むよ(w
んじゃ>>668サソ、>>666の引継宜しく(w
0674デフォルトの名無しさん
NGNG「無料版はあまりボーランドにとって良くないような 」といいながら自分は無料版かい。
せめて 4000 のやつかってあげなよ。
0675デフォルトの名無しさん
NGNG実際の所、ほとんどの人はPro版なのでは?Lrnじゃ満足できないっしょ。
VCLソースもつかないんだろうし。
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG…よぉ知らぬが、多分なるんじゃないの?
ぞくにいう商用とぞくにいうシェアの間に
明確な線なんて引けないじゃん。
0679デフォルトの名無しさん
NGNG(ソース配布のみとか・・・)
フリーソフトならOKでしょうか?
0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGいやすぎ(w
EXE生成できないようにしておくのが
正規ユーザに対しての礼儀だな。
じっさいJBuilderもパッケージ機能カットしてあるし。
0683デフォルトの名無しさん
NGNG何で礼儀なの?EXE生成するとどういう問題が?
0684デフォルトの名無しさん
NGNG実際に商用配布できないようにexeに制限を加えるなんてことは
やらないよ。
0685デフォルトの名無しさん
NGNG結局warez使ってんのとたいしてかわらんわな・・・。
とりあえず、フリーソフト作るのにはつかえるっちゅーことですな。
0686無料にするってのは・・・
NGNGつまりDelphiの布教を一気に行えるってわけ。戦略的には多くの金のない学生に
Delphiを浸透させて将来的にDelphiを主流派にしようって目論見では?
0687デフォルトの名無しさん
NGNGexeにしても無料版で作られたって分かるようにするはずだよ。
現にKylix Open Editionではそうなっているし。
0688デフォルトの名無しさん
NGNGなんだっけか。
exeに特定文字列とか埋めこんであるんだっけ?
チェックサムだかmd5だかで
そのへんのブロックのカイソを看視する…のかなあ…
0689デフォルトの名無しさん
NGNGMaskEditでIPアドレスを入力させるには、
どうマスク設定させればいいの?
ちょっとせっぱ詰まってます。
一応検索しに逝ってきます。
ヘルプ見たけどよく分からなかった…
0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNG答えじゃなくてすまんけど。
MaskEditとかの書式の文法って誰が考案したんだろうな?
というか、あーゆー所こそ、考案(=車輪の発明)せずに
正規表現あたりを採用しといてくれたら、
学習の手間が1つ減ったんだけどな(^^;
ちなみに正規表現だと、
[0-9][0-9]?[0-9]?\.
[0-9][0-9]?[0-9]?\.
[0-9][0-9]?[0-9]?\.
[0-9][0-9]?[0-9]?
(見づらくならんように故意に行を区切りました)
だな。
0692デフォルトの名無しさん
NGNGあれはたしかに正規表現ではないと思われ(^^;
う〜む。
MLログにも、Delphian Worldにも無しか…
Googleでもうまく検索できなかったし…
いや正確にはあったんだが、Comctl32.dll
のバージョンアップを要求する物だったんで。
ユーザのこと考えるとそう言うのは使えなくって(^^;
ヘタレオンラインソフト作者な物で、Win9x〜の
全てのWin32環境で動くことを目標にしていたり。
0693デフォルトの名無しさん
NGNGVBだとoo4oみたいな感じで。
0694デフォルトの名無しさん
NGNGこうかな?リテラル文字ってのは何かわからん。
0695デフォルトの名無しさん
NGNGエンプラ版ならBDE - SQL Link - Net8
プロ版ならBDE - ODBC - Net8
D6やKylixのエンプラ版ならDBExpressというのが
使えるらしい。
0696デフォルトの名無しさん
NGNGなるほど。ありがとうございます。
ADOとかではないんですね。
0697デフォルトの名無しさん
NGNGなるほど。
大変参考になりました。
990\.990\.990\.990;1;
これでどうでしょうか。
これで大体望み通りの動作になりました。
ありがとうございます。
0698デフォルトの名無しさん
NGNGボーランドがDelphi新版投入
ボーランド(http://www.borland.co.jp/)は7月9日,ビジュアル開発ツールの新版
「Borland Delphi6」を発表した。7月25日に出荷開始する。同社の安藤由男社長は
「Delphi6で,ようやくVisual Basic(VB)に対するアドバンテージがそろった。今度こそ,
VBからDelphiへの乗り換え促進に本腰を入れる」と意欲を見せる。
Delphi6が持つVBに対するアドバンテージとは,以下の3点。第1に,Webサービスを
ビジュアルに開発できる。XMLやSOAP,WSDLに対応したWebサービスを作成するコ
ンポーネントを新たに搭載する。「Webサービスのビジュアル開発機能を実現した開
発ツールは,おそらく初めて。少なくとも,ここまで簡単に作成できるツールは存在し
ないはずだ」(大野元久 営業本部マーケティング部Delphiプロダクトマネージャ)。
0699デフォルトの名無しさん
NGNGADO 経由で Oracle ってつながるの? Oracle がそんなドライバ出している?
出しているなら ADO 経由で使えるし、当然 OO4O もつかえる。
0700デフォルトの名無しさん
NGNGOracle純正のADO(OLEDB)ドライバ、あるよ。
OTNにあったはず!
0701デフォルトの名無しさん
NGNGあ、oo4oはADOとは関係ないです、
0702デフォルトの名無しさん
NGNG浮動小数点を整数型にダウンキャストするにはどうすればいいのでしょうか?
ヘルプを見ても浮動小数点から整数型への変換はのってないようだし
標準関数もないようだし。。(文字を経由すればできそうだけど。。)
教えてください!
0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG0705702
NGNG703さん。ありがとう。氏んでください。
704さん。どうもありがとうございます。
0706デフォルトの名無しさん
NGNG∧_∧
( ・∀・ )ジー
( )
| | |
(_)(_)
0707デフォルトの名無しさん
NGNG思わず見つめあっちゃったよ。
0708デフォルトの名無しさん
NGNG>ヘルプを見ても浮動小数点から整数型への変換はのってないようだし
ほう。で?
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNGDelphiのヘルプじゃなくて、Windowsのヘルプでも見たのかな?
それだったら、ないけど・・・
0711デフォルトの名無しさん
NGNGmemo1.Lines[0] := '10,20,30,40,50,60,70,80';
memo1.Lines[1] := '10,20,30,40,50,60,70,80';
memo1.Lines[2] := '30,20,30,40,50,60,70,80';
memo1.Lines[3] := '10,20,30,40,50,60,70,80';
memo1.Lines[4] := '10,20,30,40,50,60,70,80';
memo1.Lines[5] := '10,20,30,40,50,60,70,80';
memo1.Lines[6] := '10,20,30,40,50,60,70,80';
memo1.Lines[7] := '10,20,30,40,50,60,70,80';
ってやっても2行目までしか表示されません。
なにが足りないのでしょうか?
0712デフォルトの名無しさん
NGNGcc : integer;
begin
memo1.lines.clear;
for cc := 0 to 7 do
memo1.lines.append('10,20,30,40,50,60,70,80');
end;
0713デフォルトの名無しさん
NGNGmemo1.Lines[0] := '10,20,30,40,50,60,70,80';
memo1.Lines.Append('10,20,30,40,50,60,70,80');
memo1.Lines.Append('30,20,30,40,50,60,70,80');
memo1.Lines.Append('10,20,30,40,50,60,70,80');
memo1.Lines.Append('10,20,30,40,50,60,70,80');
memo1.Lines.Append('10,20,30,40,50,60,70,80');
memo1.Lines.Append('10,20,30,40,50,60,70,80');
memo1.Lines.Append('10,20,30,40,50,60,70,80');
で解決できました。
TStringsがリスト構造だから追加には気をつけなければならないって
ことでしょうか?
なにはともあれ、ありがとうございました。
0714turbo type D
NGNGPPAを使って
使用者が文字変換コードを書いて
それにあわせてクリップボード文字列を
変換するというソフトを作りたいが時間がないです。
誰かつくって。
じゃなかった。作りかた教えて!
そういえばPPAってStringReplaceないですよね。
0715turbo type D
NGNG話題変え。
サーバーサイドプログラムには
JavaやVBにしてもスクリプト似な実行環境が適しているのかも。
PPAってDelphiPascel似インタプリタだけど
Delphiがもっとサーバーサイドで活躍するには
本格的なスクリプト/インタープリタな実行環境を整えて
いく事が大切なのではなかろうか。などと考えてみたり。。
0716デフォルトの名無しさん
NGNGそれにあの利用規約もなんだかね
Perl/Python/Ruby組み込みコンポーネントってないのかな
0717デフォルトの名無しさん
NGNGちゅーぼー たいぷ でぃー と読んでしまいました('-`;
ごめそなさい
>>716 さん
PHPが抜けてますよ!('-`
0718デフォルトの名無しさん
NGNGhttp://www.users.yun.co.jp/~moriq/apollo/
コンポーネントもあるよ APL
http://www.users.yun.co.jp/~moriq/ruby/apl.html
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNGhttp://www.koji27.com/topic/p3a/
0721いっそ、次はDturboで。
NGNGゼンゾエン知らないのですが
PPA的に使えますか?
オレが今(労力を極力減らして)つくりたいのは
function Userさん作成関数(S: String);
begin
{ここをテキストでユーザー側でコーディングさせたい}
end;
Clipborad.AsText := Userさん作成関数(Clipboard.AsText);
こんな処理をするプログラムなんです。
functionの中身をRubyで
記述するのでもいいんですが....
0722デフォルトの名無しさん
NGNGどんどん増えてくんだけど、Delphiにはメモリリークを免れ得ない構造的
な欠陥でもあるの?
0723デフォルトの名無しさん
NGNGアラシ?
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNG最小化すると解放される仕組みになっているらしい。
0727Dturbo
NGNGオレはそんな程度の認識、PPA.pasは今のところはいらないし。
PPA.DLLは
自作のフリーソフトなどにこん包する場合も規定の
> Project-PPAメンバーに断りなく配布/再配布/転載/雑誌収録する事を認めていません。
に当てはまるのだろうか?
0728デフォルトの名無しさん
NGNGPPA的とはどのような感じ?
> Clipborad.AsText := Userさん作成関数(Clipboard.AsText);
この行はDelphiで書くの? PPAで書けるの?
> functionの中身をRubyで
> 記述するのでもいいんですが....
関数にしなきゃならんわけじゃないよね? それなら APL でいけると思う。
究極的には組み込みRubyだけど,実行時ライブラリを使う必要がある。
0729デフォルトの名無しさん
NGNGでけた。
procedure TForm1.Button1Click(Sender: TObject);
var
Lines: TStringList;
begin
Lines := TStringList.Create;
try
Apollo1.Script.LoadFromFile('clip.rb');
with Apollo1.Params do
begin
Clear;
Add(Clipboard.AsText);
end;
Apollo1.Execute(Lines);
Clipboard.AsText := Lines[0];
finally
Lines.Free;
end;
end;
# clip.rb
$KCODE = 's'
s, = ARGV
print s.downcase
0730デフォルトの名無しさん
NGNG0731turbo type D
NGNG半角スペースx2>>全角スペースとすると
いいのに。
0732デフォルトの名無しさん
NGNGClipBoard.AsText := StringReplace(ClipBoard.AsText, ' ', ' ', [rfReplaceAll]);
別スレより
0733732
NGNGClipBoard.AsText := StringReplace(ClipBoard.AsText, ' ', ' ', [rfReplaceAll]);
0734turbo type D
NGNGそのまま表示されるので美しくないっす
最新版で直っているかどうかはしらないですが。
0735デフォルトの名無しさん
NGNGbegin
for i := 0 to 10 do
Nanashi;
end;
>>735
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNG0738名無しさん
NGNG0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNG>PPAは利用規約がイヤスギ。あんなの使えるかっつーの。
何がどう駄目なのか、ppa_122.lzh の PPA_COMP.HLP を見てみた。
「利用」規定は、まぁあんなもんじゃないか?
それを使ったアプリには、ヘルプとかの同梱を義務付けてる
ってのは、実利的(?)にもそんなに悪くなさそうだ。
だが、PPA.PASの扱いのほうが痛いな。
>[PPA.PASの配布条件]
>1) Project-PPA(PPA-ML)に参加し、積極的にPPA開発に寄与すると約束する。
>2) 1)が不可能な場合、Project-PPAに決められた金額(\10,000)を送金する。
>1)の場合、一定期間、開発に寄与できなかった場合には最新版ソースの配布を中止します。
>2)の場合、「スポンサー扱い」で開発の寄与に関係なく、最新版ソースを提供します。
開発寄与をどんなに頑張っても、たかが(!)10000円の寄付に
劣る(永世権の有無を見ろ)ってのはどうよ?
ってのもさることながら、問題は、次だ。
>[PPA.PASの利用規定]
(略)
>3)「明らかにPPAを模倣したインタプリタコンポーネント/ユニット/OCX/ActiveX/DLL/EXE」、
>またはそれらを搭載したアプリケーションの配布を禁じます。
「利用」とは何か?が問題になる。自作物をオプソにしない限り
「利用」したかどうかなんてのは他人には判らんだろう。
あと「模倣」の定義も問題になる。Pascalインタプリタってのは
すごく「一般的な」作品じゃないか?作ってくれたのは偉いが
オリジナリティという意味では他を排するに値するもんじゃないだろ。
つまり、 PPA.PASをひとたびgetしてしまった人は、
以降永遠に(わら)、Pascalインタプリタユニットを
自作して他人に配布することが、できなくなるわけだ。
たとえそれが「PPAの実装に呆れて、ずっとマシなものを
ゼロから作り直そう」と思い立った結果だとしても、だ。
あるいは、たとえそれが、「全然別のPascal処理系のソースを
どっかから持ってきてコンポ化したもの」だったとしても、だ。
というわけで、まじめにコンポ作りの志のある人は、
PPA.PASはgetしちゃ「いけない」!
0741デフォルトの名無しさん
NGNG正直、webブラウザで見る気がうせる。
0742デフォルトの名無しさん
NGNGいやゆる感染系ライセンスですな。ヒデェや。
0743デフォルトの名無しさん
NGNGDelphiのヘルプはわかりにくいからなぁ.
慣れると勘が働いてなんとか使いこなせるようになるけど.
>>739
2ch方面は初心者ですけど
スレッド見に行くたびに待たされるのがイヤなので
かちゅ〜しゃ入れました.もう戻れません.
0744デフォルトの名無しさん
NGNG>>740の解釈通りだとすると、GPLの比じゃないよな。
0745デフォルトの名無しさん
NGNG俺も規約を最初に読んだときは引いたよ。
「明らかにPPAを模倣した…」が「明らかにPPAに変更を加えた…」だったらば
少しはマシだったのだが。
0746デフォルトの名無しさん
NGNGただちに配布を中止してください。
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNG0752751
NGNG0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNGこういうスレッドやメーリングリストで初心者質問が飛び交う事態になる気がする。
personal版4800円でパッケージのみで十分じゃないか。むちゃくちゃ安いんだし。
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNG0758VB厨房
NGNGこれでDelphianの仲間入りだ!
バシバシ質問するよ。
0759デフォルトの名無しさん
NGNG0760デフォルトの名無しさん
NGNGDelphi厨房が増えても問題は少なくなる。
あと、ユーザーが増えてBorlandがつぶれなくなればヨロシ。
0761デフォルトの名無しさん
NGNGけど、全員無料版しか使わなかったら、いないジャン。
Personal 4800円だって、CD-ROM / マニュアル / 初期サポート代でしょ。
店頭価格ってことは、店のマージンを考えりゃ収入は 2000 円くらいか?
どう考えたって開発費の元が取れるとは思わない。
フリー版使って、よいなと思ったら、いくらか寄付するシステムなんてどうだ?
0762デフォルトの名無しさん
NGNGDelphiにトライする人が増える -> 普及する -> 業務とかでもフツーに使われるようになる
てな具合に。
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNGBCB4PROユーザーだけれども。
0765デフォルトの名無しさん
NGNGフリー版使うのはこれからわかる人だからねぇ。
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNGマニュアルはPDFかヘルプのみと思われ。
0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNGこのスレですね。
以下をDelphiで記述するには?
※インデントは全角空白
while( (c = getc(fr)) != EOF )
{
do
{
r = rand() / ( (RAND_MAX+1U)/256 );
}while(r >= 256);
putc(c^r,fw);
}
0770デフォルトの名無しさん
NGNG2重投稿すんな。どっか逝け
0771デフォルトの名無しさん
NGNGDelphi入門書は確実に1ダースぐらい出るだろ。
0772デフォルトの名無しさん
NGNGDelphiでコンパイル出来るようにしてあげたよ。下のコードを
例えばButton1Clickに挿入して下さい。
(*while( (c = getc(fr)) != EOF )
{
do
{
r = rand() / ( (RAND_MAX+1U)/256 );
}while(r >= 256);
putc(c^r,fw);
}*)
0773デフォルトの名無しさん
NGNGttp://www.borland.co.jp/delphi/del6/features.html
これを見るとクイックスタートとObject Pascal言語ガイドがついてくるらしい。
0774デフォルトの名無しさん
NGNGそそ。GPLなら縛るのは実装までだけだ
(というかオプソ文化なら模倣はむしろ奨励だ)が、
PPAはアイデアすら縛っている。
#ドイツあたりだと、こういう理不尽なライセンスは
#自動的に無効にされたりするかもらしい。浦山鹿。
アイデアを縛るものといえば特許もあるが、
PPAのはライセンスなので、
特許みたいに年限が(長すぎるとは言え)あるという
わけでもない。
まぁ著作権としての年限は有るのかな。だとしても作者死後50年。悠久。
ひどい話だ。何様だ。
Pascal発明者ですらこんなこと言ってないぞ。
>>749
>http://www.torry.net/tools_compilers.htm
ぎゃはは。既に有りましたって奴か。
つーわけでみんな、PascalScriptが欲しければ
そっちへ行ってしまおう!(勿論、自作/模倣もおっけー(わら
0775デフォルトの名無しさん
NGNGいつかソースを読みたくなった時に困らない
(VCLソースが無いと困るという人がこれだけ多いことからも
類推できるように、それは案外早く来るはずだ)ために、
今からPPAから離れておいたほうがいいんじゃねーのか?
もっと安全なライセンスの奴に移行しちゃえ。
しかし本当に色んなPascalコンポがあるんだな。驚き。
まぁ有り触れたアイデアだからねえ…
0776デフォルトの名無しさん
NGNG「ボクはコンポ作る気概なんかありませんよー」という
カワード君しか、ソースを読めない、ということになる点だ。
ソースを読むというコンポ作り野郎の当然の嗜みを、
やりたい奴にはソースが読めず、
やりたいと思わない奴にだけ読めるわけだ、
あのライセンスでは。
要するにFREE(無料じゃなく自由)ソフト作る連中の
「邪魔」をしてるようなもんだ。
うざすぎ。もしやこいつゲイツの親戚か?(わら
0777名無しさん
NGNG0778turbo type D
NGNG確かにそのライセンス・
作った当人らはあまり意識してなかったと思うが
利用者側にしてみれば痛々しいですね。
海外ものは2バイト文字の扱いが不安だけど
PPAだって2バイト文字にあまり対応してないみたいだし
この際他のを考えるかな。
むしろ、詳しい方もいらっしゃるようだし
Rubyいってまおか(w
ただ、ライセンスたたきの為にPPA紹介したわけじゃなかったのに
結果的に作者の人々には申し訳ないことをしてしまった。
シェアウェアソース(シェアードソースではなく)的なものなら
喜んで金払うのに、惜しいコンポだ>>PPA
0779turbo type D
NGNG昨日は暑すぎて安ワインガブのみしてたら気分悪くなって、遅レススマソ。
いろいろ紹介してくれてサンクスYO
0780デフォルトの名無しさん
NGNGPPAの代わりに使えそう?
0781デフォルトの名無しさん
NGNGhttp://www.users.yun.co.jp/~moriq/apollo/
0782デフォルトの名無しさん
NGNGそういう意味の心配のしかたは、しなくていいよ。
「欠点」を引きずったままのソフトを、
それでも「良いよ」と薦めるほうが、かえって悪い。
伝染性ライセンスが問題ならば尚更のこと。
そういう意味ではFREE(等)ソフトもまた弱肉強食だ。
欠点があればDLして貰えなくなるだけ。
DLして欲しければ欠点を無くせばいいんだ。それだけ。
逆に、欠点以外の理由で人気が左右されるのは悲しいんで、
それについてはきちんと心配してあげるべきだとは思うが。
ま、こんな欠点抱えたままじゃどうよ?という話を
作者氏にフィードバックしてあげたりすると
喜ばれるだろうな。
というか、欠点を指摘されて逆切れするような人なら
未来は無いから作品ごと見捨てたほうがいい(たまにいるんだよな
だから、もしある一定以上の肯定的感情をPPAに対して持っているなら、
教えて(=いさめて)上げるのが良策だし、そうでないなら
さくっと去るのもまた道。
0783HIRO
NGNG現在、Active Formを用いて付くっているのですが…
Delphi 5 なので署名するために別にTool(sigincode.exe)をダウンロードしてきた
のですが…
それには Internet Explorer 5.0用として…ま、いっかと思いダウンロードした
のですが実行できないんです。
Internet Explorer は、5.5を使っているのでこのせいかと思い…
バージョンを以前のに戻しましたが…プログラム開始エラーとなる。
そのエラーは
「このWindowsに対するCPU用にコンパイルされていません。
製造元に連絡して、新しいバージョンを入手してください。」
というものです…。
CPUが悪い??
ん〜と、ペンティアムの初期のものだけど…関係ないような気はしますし…
もはやファイルの実行方法が間違っているのでしょうか?
そのまま実行という形ではダメなのでしょうか?
Delphiで参照して実行するものなのでしょうか?
ie5.0 や Win2000 で試しましたが…実行できず…
正しいやり方があるのでしたら教えていただけないでしょうか?
Delphi 4だったらこのようなツールは必要なかったんですよね?
0784デフォルトの名無しさん
NGNG数年前にパラパラと立ち読みしたっきり。
古本屋でも一度もお目にかかれていません。
0785デフォルトの名無しさん
NGNG新日本プログラミングの人のですね。
確かに最近、本屋でもみないけど。
それはそうと、あれって正直役に立つのかなあ。小細工系ばっかだからさ。
有馬さんの「遊びのレシピ」の方がいいようなな気もするけど。
0786turbo type D
NGNG>>782
丁寧な説明ありがと。非常に参考になりました。
作者にメールしてみるよ>>何人かの人もその方がいいでしょ。
いつになるかはわからんけど。
その時はとりあえず、ROMって匿名にしておいてと
言っておくね。荒れるとヤだし。
0787デフォルトの名無しさん
NGNG買ったけど、初心者にはいいかもね。いろいろと分かって。
そして、その本がダメだということも分かる(ワラ
0788デフォルトの名無しさん
NGNGDBGridからデータを入力する際に、すでに同じデータが登録されていた場合、
例外により強制終了してしまいます。主キーの列なので当然なのですが、もう一度適切な
データ入力を行ってもらうためにはどのようにすればよいのでしょうか?
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNG何かお勧め本があったら教えてください。
0791デフォルトの名無しさん
NGNG0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGガイシュツなので>>493辺りへゴー!
0794デフォルトの名無しさん
NGNGと
Object Pascal リファレンスブック (アンク)
どっちがいいかにゃ〜?
0795デフォルトの名無しさん
NGNGだから言語ガイドの方をお勧めする。
0796デフォルトの名無しさん
NGNGアンクの本は普通。
言語本なのであれでDelphiが使えるようになるかといえば疑問だけど。
0797デフォルトの名無しさん
NGNGTQueryの BeforePostで別Queryつかってチェック。
もしすでにあったらサイレンと例外でPostさせない。
0798デフォルトの名無しさん
NGNGどうやればいいの?
function getRDTSC: int64;
var d:Integer absolute Result;
asm
DW $310F //RDTSC
//EDX,EAX を int64で返したい
end;
0799デフォルトの名無しさん
NGNG640x480程度の大きさの画ならうまく行くのですが、
1920x1080の大きな画だとなぜかHBITMAPが取得できません。。
なぜでしょうか?
--classのメンバ変数--
Y: array of Byte;
U: array of Byte;
V: array of Byte;
RGB: array of Byte;
----------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
SetLength(y , 1920 * 1080 );
SetLength(cb, 1920 * 1080 div 2);
SetLength(cr, 1920 * 1080 div 2);
SetLength(rgb, 1920 * 1080 * 3 );
end;
// 画を表示する
procedure TForm1.Display;
var
hbmp: HBITMAP;
P: PBITMAPINFO;
begin
// 画面表示
yuv2rgb; // 色変換
// BITMAPINFO の初期化
{初期化してます。}
P := @m_bmi;
hbmp := CreateDIBitmap(Image1.Canvas.Handle, P^.bmiHeader, CBM_INIT, @m_rgb[0], P^, DIB_RGB_COLORS);
if 0 = hbmp then
begin
ShowMessage('HBITMAPの取得に失敗しました。(in Display function)');
Exit;
end;
//画面に描画
Image1.Picture.Bitmap.Handle := hbmp;
end;
0800798
NGNGfunction getRDTSC: int64;
var ret:array [0..1] of integer absolute Result;
begin
asm
push EDX;
DW $310F //RDTSC
MOV DWORD ptr ret+4,EDX
MOV DWORD ptr ret,EAX
pop EDX;
end;
Result:=Result+0; //なぜかこの無駄なコードを入れないとDel5がコンパイル時暴走する
end;
0801798
NGNG余分なもの全部取ったら
function getRDTSC: int64;
asm
DW $310F //RDTSC
end;
コンパイル時の暴走も無くなったし
余分なスタックフレームも作られなくなったぞ?
0802798
NGNGWindows 95/98:作成できるビットマップのサイズは、最大 16MB です。
0803デフォルトの名無しさん
NGNGasm
DW $310F //RDTSC
end;
が正解。Int64 型のときは、戻り値はeax,edxに格納されます。
ところで absolute 使うのやめようよ。
>>800 の例だと
function getRDTSC2: Int64;
begin
asm
DW $310F //RDTSC
MOV DWORD ptr [Result+4],EDX
MOV DWORD ptr [Result],EAX
end;
Result := Result + 0; //なぜかこの無駄なコードを入れないとDel5がコンパイル時暴走する
end;
でいいはず。
0804799>802
NGNGありがとうございます。(知りませんでした。。)
でも1920x1080のRGBだから6,220,800 Byteってことで大丈夫のはず。。
しかもNT4だし。。
いま、
CreateCompatibleBitmapでメモリーデバイスコンテキストのHBITMAPを取得し、
(これはうまく行った。)
SetDIBitsで画の情報を打ち込もうとしたら、今度はこの関数で失敗。
はぁ。。困った。。
0805798
NGNG何故かエラー(バグか?)になるもんだから、absolute付けてさらに
って調子で 上塗りしていったみたい。
>>804 判らないけど、GetLastErrorしてFormatMessageして
どういう理由でエラーになるか調べてみたら?
0806798
NGNG0807799
NGNGちょっとテストしてみました。
procedure TForm1.FormCreate(Sender: TObject);
begin
SetLength(y, 720 * 480); //1920 * 1080 );
SetLength(u, 720 * 480 div 2); //1920 * 1080 div 2);
SetLength(v, 720 * 480 div 2); //1920 * 1080 div 2);
SetLength(rgb, 720 * 480 * 3); //1920 * 1080 * 3 );
end;
として、bitmapの大きさを720x480にすると
CreateDIBitmapでビットマップハンドルが返ってきて
画もそれらしいのが出力されます。
今度は、
procedure TForm1.FormCreate(Sender: TObject);
begin
SetLength(y, 1920 * 1080 );
SetLength(u, 1920 * 1080 div 2);
SetLength(v, 1920 * 1080 div 2);
SetLength(rgb, 1920 * 1080 * 3 );
end;
に戻して、bitmapの大きさはさっきと変わらず、720x480にすると、
CreateDIBitsでこけます。
この結果から、大きな領域を持つ動的配列が悪さをしているように感じますが、
どうなんでしょうか?
このテストでぴんと来た方、どうぞ教えてください。。
0808799
NGNG誤:CreateDIBits
正:CreateDIBitmap
0809デフォルトの名無しさん
NGNGmov Result,EAXがコンパイルエラーになったのは
EAXが32bitなのに対し、Resultが64bitだからじゃないかな?
>>807
Windows API はたまにRTLライブラリで確保されたメモリポインタを
受け付けないことがあります。動的配列の代わりにGlobalAllocPtrを
使ってはどうでしょうか?
0810798
NGNG>mov Result,EAXがコンパイルエラー
あ、これは確かに DWORD ptr つけないとサイズが
合わないというエラーになる。
でも、DWORD PTR つけても今度は 単にコンパイルエラーと
表示されるんだよ。
最後の Result;=Result +0;のおまじない付けずに試してみて
0811799
NGNGGlobalAllocPtrってのが分からないのですが、(ヘルプにのってなかった)
AllocMem関数でヒープを割り当てればいいってことですよね?
(メモリ割り当ての関数がいっぱいあってよくわからない。。
AllocMem, GetMem, New, SetLength...)
ところで、ポインタを得るのはいいんですが、Cと違ってObjectPascalの
ポインタは配列のように扱えないので非常に不便です。
なんとか、array of Byte型の動的配列にキャストする方法はないのでしょうか?
PByteArray型がそれっぽいんですが、どうもコンパイルが通らないです。。
0812デフォルトの名無しさん
NGNGなら、C を使えば?無理して丸を四角に押し込むこともあるまい。
C でもポインタと配列は異なるものなのだから、よい機会なので二つをはっきり弁別できる
体を作っておくと、死ぬまで有効に使えるよ。
0813デフォルトの名無しさん
NGNG俺も最近ポインタと配列関係で悩んでたんだけど、
http://www.nifty.ne.jp/forum/fdelphi/faq/00160.htm
を参考に
hoge^[i] := hoge^[i+1];
ってな感じでやってます。
ただメモリをぐちゃぐちゃ弄ぶにはCがいいのかなー。
0814デフォルトの名無しさん
NGNGtype
TIntArray = array[0..9999] of Integer;
PIntArray = ^TIntArray;
ってあるけど、15,000*4Byte分のメモリを割り当てて
9999を超える要素にアクセスするのは大丈夫なのかなぁ。。
0815デフォルトの名無しさん
NGNG勉強になる
0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNG確かに内部エラーが出るね。このスレの上の方でも出ていたけど
beginブロックの中にasmブロックがあるコードでは
コンパイラが処理しきれないことが多いのかも。
>>811
GlobalAllocPtr 関数とは Windows API の GlobalAlloc 系命令を
呼び出してメモリブロックを確保する関数です。GetMemやAllocMemは
Delphiの関数ですね。
使い方はこうかな?
var
P: Pointer;
begin
P := GlobalAllocPtr(GMEM_MOVEABLE, 1920*1080*3); // 確保
if P=nil then OutOfMemoryError; // 確保できていない場合エラーにする
try
// P をいじっていじっていじりまくる
finally
GlobalFreePtr(P); // 解放
end;
end;
>>814
大丈夫です。極論すると TIntArray = array[0..0] of Integer; でも
いいんですが、それでは不便なことがありますので 0..9999 とかを
使うのが普通です。
0818俺なら
NGNG0819デフォルトの名無しさん
NGNGうっかり実体を確保すると、崩壊するよ。
元から範囲チェックをしない。と決めているんだからどんな数字を使っても同じ。
ただ、0とか1くらいは含んでいないと、コンパイル時にエラーになる。
9999がいいところかな。
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG結構速度的なチューニングでもいけるよ、Delphiって。
0823デフォルトの名無しさん
NGNGマジですか?
MLは堅苦しい雰囲気が漂ってるので、こっちの方がイイ!
0824813
NGNG範囲チェックしないんですか>ObjectPascal。
どうにも不安だったのですがおかげで夜も安心です。
ただいちいちtype宣言書くのが面倒ですね。
>>821
じゃぁ999で。
0825デフォルトの名無しさん
NGNGプロジェクトオプションのコンパイラ項目でチェックできるように出来るよ。
または{$RANGECHECKS ON}の行をユニットの先頭に挿入する。
0827デフォルトの名無しさん
NGNGCはその辺のことを一切面倒を見ない代わりにスピードを追求している。
0828デフォルトの名無しさん
NGNGでも、唸るほどは速度差でないじゃん
0829デフォルトの名無しさん
NGNGJavaでも配列の範囲チェックを以下に省略するかが最適化のネックの1つ
0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNG今時のPCではね。
0833デフォルトの名無しさん
NGNGPByteArray = ^TByteArray;
TByteArray = array [0..0] of Byte;
でCみたいに配列風にアクセスするときはキャストする・・・と。
つか別に0..0でも不便じゃないけど・・・。
>>811
>GlobalAllocPtr
Win32APIのヘルプにのってるかと。
>>815
なんかMLは最近、DB話と初心(以下自粛
0834799
NGNG>>817さんの方法でうまくいきました。即ち、
win32のGlobalAllocPtr関数を使う方法です。
delphiのAllocMem関数を使ってみましたが、だめでした。。
0835デフォルトの名無しさん
NGNGなにがだめだったんだろう...
0836デフォルトの名無しさん
NGNG0837818
NGNG>うっかり実体を確保すると、崩壊するよ。
2Gの配列確保したら絶対動かない。9999で半端に動くよりはよっぽどまし。
0..9999だと10k以上のバッファを扱えない(Byteの場合)。
それに9999ってソースに書くのなんか恥ずかしい。
>833
>TByteArray = array [0..0] of Byte;
>つか別に0..0でも不便じゃないけど・・・。
0..0だとn[3]のように定数でアクセスするとコンパイル時にはじかれる。
type
IntArray = array[0..High(Integer) div sizeof(Integer)-1] of Integer ;
PIntArray = ^IntArray;
ByteArray = ...
って一通りの型作ってお気に入りunitい放り込んどけば汎用的に使いまわせるよ。
0838799
NGNGSetLength関数を使って動的配列の領域を確保するとHBITMAPを取得できない
という問題に対し、AllocMemで領域を確保しても同様にだめであった。
しかし、GlobalAllocPtr関数を用いて領域を確保するとHBITMAPを取得できた。
という意味です。
0839833
NGNGなるほーど。定数のときに不都合が・・・。参考になるわ。
そういやsysutilsみるとあからさまに上限とって宣言してあるね
PByteArray = ^TByteArray;
TByteArray = array[0..32767] of Byte;
PWordArray = ^TWordArray;
TWordArray = array[0..16383] of Word;
0840833
NGNGHigh(Integer) div sizeof(Byte)-1 <> 32767じゃん
0841デフォルトの名無しさん
NGNG最後の要素だけ可変長な構造体を記述するときには 0..0 も有効。
source の下,検索してごらん。
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNGインストールCDにこっそりそういうDLLが隠されてないですか?
0844デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNGせっかくヒントもらったんだから見ようぜ。
いや、俺も英語だから見なかったくちだけど(w
0848デフォルトの名無しさん
NGNGttp://japan.cnet.com/News/2001/Item/010718-2.html?mn
0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNGというか、PPAの人たち
ライセンスの事について、ここの住人が何を問題にして
いるのかを全く理解していないと思われる。
自分達の視点ではなく
あのライセンスを利用する側の視点で見て欲しいものだ。
a氏はOpenSource主義のようだけど
別にその主義じゃない人としてもあのライセンスは困るだろう。
「XMLパーサーを作りたい」という人に対して
「模倣になるからソースは見ない方がよい」とは、なんて
いい加減な...
0851デフォルトの名無しさん
NGNG>
>http://village.infoweb.ne.jp/~skonishi/index.html
>
>のページの管理者の方がppa.pasを参考にしてXML Parserを
>書いてみたいと言っていて、それに対してDEKOさんが
>268の投稿で「模倣」の条項があるからそれは止めた方が
>良いと言っています。
>ここで、仮に上の管理者の方がppa.pasを見ていた場合、
>管理者の方がXML Parserを公開することが
>PPAのライセンス違反になる可能性があります。
>
>こういう事が可能性として考えられるライセンスは
>私的にはマズイと思うのですが、
>どういう意見をお持ちでしょうか?
0852デフォルトの名無しさん
NGNG---------------------------------------------------------------------------
-----
http://piza.2ch.net/test/read.cgi?bbs=tech&key=971261573
...ここの掲示板で思う存分書けばいいのにねぇ。
じゃあ書こうっと(笑)。お邪魔します。
http://piza.2ch.net/test/read.cgi?bbs=tech&key=971261573&st=740&to=740&nofi
rst=true
まず質問です。
この文の「主張(=getしちゃいけない云々)」はともかくとして、
「事実」は間違っていますかいませんか?
つまり、PPAのライセンスを遵守すると、
>つまり、 PPA.PASをひとたびgetしてしまった人は、
>以降永遠に(わら)、Pascalインタプリタユニットを
>自作して他人に配布することが、できなくなるわけだ。
という事態になる、という解釈(だな)は
正しいですか間違っていますか?
---------------------------------------------------------------------------
-----
1907. Re^2: ほぅ、面白いじゃないの(^ー^) DEKO [URL] 2001/07/19 (木) 03:57
うーむ、匿名なら2ちゃんねるとなんら変わらないではないですか(^^;
#いたずらするようなヒマもなければ#技量もないのでご心配なく。
>(前略)という事態になる、という解釈(だな)は>正しいですか間違っていますか?
半分正解です。
誰も「Pascalインタプリタ作っちゃダメ」なんて書いていません。短絡はやめましょう。第一Pascalインタプリタなんてヴィルト先生の本読めばすぐ作れますってば。
>まじめにコンポ作りの志のある人は、 >PPA.PASはgetしちゃ「いけない」!
これは正解かも。まっとうな「Pascalインタプリタ'コンポーネント'」を作るのであればPPAなんか参考にすべきではありません。Pascalで記述されたyaccやlexは存在しますので、そこから始めるべきでしょう。
#外国製のコンポーネントを薦めるならともかく#「getしちゃいけない」なんてよく言えるものだ。
>つまり、PPAのライセンスを遵守すると、
解釈は合っています...なんでこんなライセンスになったのかはPPA-MLログを参照してみて下さい。
#ソースコードの取得に$99必要な「QuickReport」は?#なんてな質問はヤブヘビですかね(^^; 持ってますけど。
0853デフォルトの名無しさん
NGNGを書いたのですが、フォントがでかく表示されてしまいます。
以下は最低限の再現するソースです。
解決方法はありますでしょうか?
ちなみに、TListViewでも同じです。
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
ARect: TRect;
begin
DefaultDraw := True;
ARect := Node.DisplayRect(True);
TreeView1.Canvas.TextOut(ARect.Left, ARect.Top, Node.Text);
end;
0854デフォルトの名無しさん
NGNGなんつーか、2ch(匿名)だからってへんに反発くらってる感じがして残念。
いや、それ以前に態度を変えるつもりはないようだから、
2chは口実にすぎないのかもしれないけれど。
しかしa氏ら、キレないでよく頑張ってるなー。
0855デフォルトの名無しさん
NGNG0856デフォルトの名無しさん
NGNGDemoのCustomDrawをみると
DefaultDrawをTrueなのにフォントを描画しては
いけないようです。
それにフォントを変更する場合は
TreeView.Fontあたりを変えた方がいいらしい。
(そらそうだ)
あまりOwnerDrawってやったことないけど
OwnerDrawする場合はイメージや
左側の罫線部分すべて描いた方がよさそう。
というか、VCLのデフォルト機能として
貧弱なんだよなあ。
Demoの
procedure TCustomDrawForm.TVCustomDrawItem(
の if cdsSelected in State then
をコメントアウトすると幸せになるかも
0857856
NGNGTreeView1.Font.Size := TreeView1.Canvas.Font.Size;
これをするといいのかも知れない。
0858デフォルトの名無しさん
NGNGまだ理由はわからんけど。
あとVCLにバグがあって、文字を透過描画する際に
SetBkMode(TreeView1.Canvas.Handle,TRANSPARENT)
をやらんを駄目です。
0859853
NGNGありがとうございます。
一旦、DisplayRectで取得した領域を背景色で塗りつぶし、
SetBkMode後に描画したら、ちゃんと表示できました。
しかし、SetBkModeを使えばいいなんて何処で調べるの?スゴ杉。
しかし、1つのNodeに複数の色を使おうとすると、最後に
セットした色で全て描画されてしまう現象が起きてしまいました。
例)
TreeView1.Canvas.Font.Color := clWindowText;
TreeView1.Canvas.TextOut(Rect1.Left, Rect1.Top, 'あいうえお');
TreeView1.Canvas.Font.Color := clBlue;
TreeView1.Canvas.TextOut(Rect2.Left, Rect2.Top, 'かきくけこ');
上のようにすると、「あいうえお」まで青で描画されてしまう。
もう、面倒なのでBitmapなどに描画後、貼付するなどの手段を
試していこうと思います。
0860858
NGNG漏れ書いたんだけど
>CustomDrawでTreeView1.Canvas.Fontは全然効きません。
コレな
ソース追ってるが、原因はわからん。意外にTreeView自体のバグかも。
0861デフォルトの名無しさん
NGNGサンプルをアゲてみてくれい。
TreeNodeの文字にグラデーションでも付けたいの?
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNGTreeNodeの右側に文字列を追加したいのです。
Becky(メーラ)のツリーのような感じです。
フォントサイズは、Node、追加文字列ともに同じ大きさですが、
色は、Nodeは黒。追加文字列は青などにしたいです。
また、Nodeを選択しても、追加文字列は反転しません。
と、いうのをカスタムドローでやったら、大きいフォントで
描画されたり色が反映されなかったりしたわけです。
現在は、一旦TBitmapに描画してからNode.CanvasにDrawしています。
多少ちらつきますが、一応上手く表示されています。
本当は、Node.Canvasに直接描ければいいんだけど。
0864デフォルトの名無しさん
NGNGレジストリの
パス HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\
キー ProxyServer
を変更するだけじゃIEが認識しないんすけど,
何か通知メソッドかなんかありますか?
0865デフォルトの名無しさん
NGNG0866865
NGNG0867デフォルトの名無しさん
NGNG買っても将来性がないんですよね。
他の買った方がいいですよね。
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNGどんな言語なんですか?
0872デフォルトの名無しさん
NGNGやりたいことは理解できたのですが
うーん、わかりません。
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
NodeRect: TRect;
FontBuffer: TFont;
begin
DefaultDraw := True;
FontBuffer := TFont.Create;
try
FontBuffer.Assign(TreeView1.Canvas.Font);
TreeView1.Canvas.Font.Assign(Label1.Font);
TreeView1.Font.Size := Label1.Font.Size;
NodeRect := Node.DisplayRect(True);
TreeView1.Canvas.Font.Color := clGreen;
TreeView1.Canvas.Font.Color := clRed;
TreeView1.Canvas.TextOut( NodeRect.Left, NodeRect.Top, Node.Text);
TreeView1.Canvas.Font.Color := clBlue;
TreeView1.Canvas.TextOut( NodeRect.Right, NodeRect.Top, Node.Text);
TreeView1.Canvas.Font.Assign(FontBuffer);
finally
FontBuffer.Free;
end;
end;
文字が全部、これで赤で描画されるんだよね。
なんだこりゃ?
TreeView1.Canvasに何か値をセットすると
あとあとまで変な動作するのか?
DefaultDraw := Falseでも
文字描画がおかしいな。
いわゆるInplaceEditだっけ?TreeViewが持っているEditの描画が
邪魔しているのか??全然わからないわ。
力になれんでスンマソ・
0873デフォルトの名無しさん
NGNGはいはい。お前の人生と一緒。
0874デフォルトの名無しさん
NGNGワラタ
0875デフォルトの名無しさん
NGNG何が悔しくて詰まらんカキコするんだろう?
0876デフォルトの名無しさん
NGNG飼っても将来性がないんですよね。
他の飼った方がいいですよね。
0877デフォルトの名無しさん
NGNGコボラーが仲間を求めて彷徨ってるに100ルピー
0878デフォルトの名無しさん
NGNG出しておきました。
From: [email protected]
Date: 22 Jul 2001 19:13:52 +0900
To: [email protected]
Subject: プログラミングツール Delphi のリンクについて
用件だけ書かせていただきます。
ここ数ヶ月でプログラミングツール"Delphi"についてのリンク先が
http://www.yahoo.co.jp/Computers_and_Internet/Programming_Languages/Delphi/
こちらから変更になりましたね。
その際に表示されるメッセージ
--------------------------------------------------------------------------------
指定されたURL (http://www.yahoo.co.jp/computers_and_internet/programming_languages/delphi//index.html)は存在しませんでした。
上記 URL にもっとも近い場所は、http://www.yahoo.co.jp/computers_and_internet/programming_languages/delphiになります。
--------------------------------------------------------------------------------
これが間違っており、リンクがたどれないようになっております。
正しくはこちらのようですので修正お願いします。
http://www.yahoo.co.jp/Computers_and_Internet/Software/Programming_Tools/Programming_Languages/Delphi/
更に、昔のリンクでは
30以上のリンク先があったにもかかわらず
新しいグループの
【ホーム > コンピュータとインターネット > ソフトウェア > プログラミングツール > プログラミング言語 > DELPHI 】
にはたった2つのリンク先しかありません。
なぜこのようなことになっているのでしょうか。
旧リンク先の多くがリンクが切れているという事はなかったはずです。
この対応について説明をしてください。
また、御社のメールアドレスが非常に発見しにくい所にあります。
1企業として代表電話番号や代表メールアドレスはわかりやすい所に配置しておくことを望みます。
以上
0879デフォルトの名無しさん
NGNGネタっぽいけど一応。
Delphiでは、ObjectPascalという言語を採用しています。
Delphiの前身がTurboPascal(これもObjectPascal)なので勘違いされたのかと。
>>878
えらいなー。
0880デフォルトの名無しさん
NGNG他のコンポみたいに、alRightとしてみ右枠に引っ張られないんだけど
0881デフォルトの名無しさん
NGNGとおもってるんだが。
初心者にお薦めの一冊があれば
教えてください。
0882デフォルトの名無しさん
NGNG学習方法だけどさ、
この一冊はキミの事知らないと何ともいえないね 自分で探すか、
キミの事ある程度知ってる人に選んでも貰えよ
0883デフォルトの名無しさん
NGNG39はあったみたい。
EUCでみてちょ
0884デフォルトの名無しさん
NGNGhttp://www.valley.ne.jp/~masaiku/index1.htm
http://home1.infonia.ne.jp/~delphian/delphi/history/book.html
http://home1.infonia.ne.jp/~delphian/delphi/history/bookrank2/book.html
0885872
NGNGprocedure TForm1.TreeView1AdvancedCustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
var PaintImages, DefaultDraw: Boolean);
var
NodeRect: TRect;
FontBuffer: TFont;
begin
DefaultDraw := True;
FontBuffer := TFont.Create;
try
FontBuffer.Assign(TreeView1.Canvas.Font);
NodeRect := Node.DisplayRect(True);
TreeView1.Canvas.Font.Color := clRed;
TreeView1.Canvas.TextOut( NodeRect.Left, NodeRect.Top, '');
//Textoutしたという事実だけあればOK
TreeView1.Canvas.Font.Assign(FontBuffer);
finally
FontBuffer.Free;
end;
end;
procedure TForm1.TreeView1AdvancedCustomDraw(Sender: TCustomTreeView;
const ARect: TRect; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
var
NodeRect: TRect;
BrushBuffer: TBrush;
i: Integer;
begin
BrushBuffer := TBrush.Create;
try
BrushBuffer.Assign(TreeView1.Canvas.Brush);
TreeView1.Canvas.Brush.Color := TreeView1.Color;
for i := 0 to TreeView1.Items.Count-1 do
begin
if not TreeView1.Items[i].IsVisible then continue;
NodeRect :=
TreeView1.Items[i].DisplayRect(True);
TreeView1.Canvas.Font.Color := clBlue;
TreeView1.Canvas.TextOut(NodeRect.Right, NodeRect.Top, TreeView1.Items[i].Text);
TreeView1.Canvas.Font.Color := clBlack;
end;
TreeView1.Canvas.Brush.Assign(BrushBuffer);
finally
BrushBuffer.Free;
end;
end;
イベントを変えてみた。
Advancedじゃなくても同じ動作
一応実現したのであとは任せていいかな?
0886デフォルトの名無しさん
NGNG結論はTreeViewのバグなのか?
0887885
NGNGコードぐちゃぐちゃだから削ってね。
要はCustomDrawItemで描画したものは
テキスト領域として扱われるらしいという事と
TreeViewItemの右側に描画したい場合は
CustomDrawイベントを使えって事。
それさえわかれば
若干のバグっぽい所には目をつぶれる。
だけど、それがわかる前がすごいダルイぞ(゚Д゚)ゴルァ
往々にしてOwnerDrawはだるいので嫌いだ。
0888デフォルトの名無しさん
NGNGhttp://home.onestop.net/mineko/index2.html
0889881
NGNGさんくす!
0890デフォルトの名無しさん
NGNG駄目だ.wParamに何くわせりゃいいのか判らん.
鬱出汁脳
0891デフォルトの名無しさん
NGNG脳から汁が出ているみたいだな。
0892デフォルトの名無しさん
NGNG----- Original Message -----
>駄目だ.wParamに何くわせりゃいいのか判らん.
>鬱出汁脳
過去ログを検索してください
[Delphi-ML:50121] WM_WININICHANGE が飛んでこない?
です。
ML 過去ログの検索は
Delphi-ML の HOME
http://www.users.gr.jp/delphi/
または
About-Delphi
http://www2.big.or.jp/~osamu/Delphi/index.html
からどうぞ
外していたらゴメンなさい。m(_~_)m
---- (^_^)(^_^)(^_^) THE REAL PROGRAMMER (^_^)(^_^)(^_^) ----
At the beach, The Real Programmer is the one drawing flowcharts in the sand.
戸田 英夫 mailto:[email protected];[email protected]
.
0893デフォルトの名無しさん
NGNGもういいよ。
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNGまぁどうでも良いけど,戸田市って自前の実行時パッケージによるアプリケーション配布の
経験きっと無いんだろうな
0896デフォルトの名無しさん
NGNG>TFrame の Anchors て何かやらないとダメなの?
ダメみたいね。 設計時はちゃんと動くから気付かないけど
0897turbo type D
NGNG0898turbo type D
NGNG実行時でも動く。
何か設定が違うのかな?
object Form1: TForm1
Left = 272
Top = 161
Width = 452
Height = 221
Caption = 'Form1'
Color = clBtnFace
Font.Charset = SHIFTJIS_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = 'MS Pゴシック'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 12
inline Frame21: TFrame2
Left = 16
Top = 24
Width = 377
Height = 153
Anchors = [akRight, akBottom]
inherited Memo1: TMemo
Width = 377
Height = 112
end
inherited Panel1: TPanel
Top = 112
Width = 377
end
end
end
0899デフォルトの名無しさん
NGNG0901turbo type D
NGNG実はオレも似たような不具合に出会った事があるので
TFramesは使わないことにしてます。
0902デフォルトの名無しさん
NGNG羹に懲りて膾を吹く。
0903turbo type D
NGNG羹の熱いのにこりて、冷たい膾をも吹いて食う。
一度失敗したのにこりて無益な用心をする。
羹に懲りたる者あえを吹く
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNG羹 あつもの 汁物など火を通した熱い料理の古称 雑煮
韲 あえ さしみ あえもの
膾 なます 大根にんじん を細く切って酢あえにした食品
薄く細く切った生の魚肉を酢にひたした食品
0907デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNGそれともあんまり違いがないのでTechに合流しちゃう?
0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG>自分達の視点ではなく
>あのライセンスを利用する側の視点で見て欲しいものだ。
なんかあれは凄いなあ。
ライセンスとは他人に付きつけるものなのに、
何をどう付きつけてるのかアヤフヤな状態のままだし、
そのくせ自分の権利権利って言うし、
>「XMLパーサーを作りたい」という人に対して
>「模倣になるからソースは見ない方がよい」とは、なんて
>いい加減な...
ええ。めちゃめちゃいい加減ですね。
結局、(あの作者の自己責任に基づく)「模倣」の定義が
あやふやのまま。あれで人を縛ろうなんて御都合すぎ。
ケース倍ケースで都合よく解釈して運用しようと
思ってる(というか無意識(または確信犯の演技?))という手合いかも。
いや、あと数日くらいは希望を捨てずに待つべきなのかも。
それにしても、模倣の判定基準としてソースのコピぺを持ち出す
っていう解釈を、生まれて初めて聞きました。
それ、なんか違うぞ。
本気で思ってるのか、苦し紛れなのか…
>>852
あの1907は、なめてるか、
「文句言われるなんて想像もしてなかったので」
はちゃめちゃな受け答えをしてるか、どっちか、かな。
ここの元記事を読んだんだろうに、出来る出来ないという質問事項を
どうやったら技術習熟度の話だと思えるのやら…
皮肉で返してる積もりなのなら、ありゃ空振りして自分の顔に当たってるよ。
うーん。現段階では確定は出来ぬが推測として、
単にソース公開する「根性」が無いだけなんじゃないかな。
根性といっても別に活動しないとならない事柄が有る訳じゃなく、
単に「変な要求を他人にしない(自由を奪わない)」という
自分を律する方向だけなんだがな。何も足さない何も引かない。
漏れなら、ソース(=けつのあな?)まで公開しちまった状態で
なお人様相手に空威張りするなんて、恐くて出来ません。
>>855
いちいち作ったりするまでもなく、既に一杯あるわけですから(わら
>>906
え?すると古代中国にもあの「なます」が有ったの?
あの、紅白な彩りで少しだけ目出度い雰囲気なんで、
おせち料理に入れたりするあれだろ?
0912turbo type D
NGNG最初にDEKO氏にメールしたのはオレです。
こういう事はあまりいいたくはないけど
"PPAは使わない"という判断を下せる十分な理由が出来ました。
オレには得るものはあったので、感謝しています。
PPAの人たちやa氏に得るものはあったのだろうか。
主張は賛成反対それぞれあるが双方に悪い事したよ。
都合よくポヂティブに考えたら、ライセンスの実際の運営の際の
難しさ・問題点を洗い出したともいえるかな。
あの来扇子は結局の所
『ぼくらのお仲間になるのならソースみせたげるよ。』
という事を目的にしたものなのだろうね。
> 結局、(あの作者の自己責任に基づく)「模倣」の定義が
> あやふやのまま。あれで人を縛ろうなんて御都合すぎ。
> ケース倍ケースで都合よく解釈して運用しようと
> 思ってる(というか無意識(または確信犯の演技?))という手合いかも。
激しく同意。
ああいうソースライセンスと、一連の受け答えで出てくる答えが
「結局の所、ライセンスを使いたいのですか?」とか
「使う側の権利ばかり主張して作るものの権利は守らなくていいの?」とか
だとしたら
全くわかっていないとしかいいようが無い。
自分たちを客観視する事も出来ないというのは
大変かわいそうに思えました。
>>つまり、仮にギコPascalなるものが存在していて
そのソースライセンスがPPAと同様のものだとすれば
PPAの方々はその存在はわかっていても見ることが出来ないわけであり
しかも見た途端にPPAには参加できそうにもなくなるので
非常に迷惑こうむるはずだが
それを想像できないというのはかわいそう。
お仲間だけに見せたいソースなのなら
世間一般に対してライセンスと称して公表しないでもらいたい。
マナーの問題だと思うが、ソースライセンスを取得したいと思って
見ている利用者に対して大変失礼だ。
完全ソースクローズドコンポーネントや
ソースが高額なコンポーネントの方が
遥かに安心だと感じています。
非常に残念ですが他のインタプリタコンポの利用を考えてみます。
アポロかな?
0913デフォルトの名無しさん
NGNG新しいスレは絶対に立てないでください。
0914デフォルトの名無しさん
NGNG新スレ
http://piza.2ch.net/test/read.cgi?bbs=tech&key=993005709&ls=50
0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNG結局問題を解決できたか?
Becky風TreeView描画コード書いた。
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
DefaultDraw := True;
TreeView1.Canvas.Font.Color := clBlue;
TreeView1.Font.Color := clRed;
TreeView1.Font.Size := 15;
end;
procedure TForm1.TreeView1CustomDraw(Sender: TCustomTreeView;
const ARect: TRect; var DefaultDraw: Boolean);
var
NodeRect: TRect;
i: Integer;
begin
DefaultDraw := True;
TreeView1.Canvas.Font.Color := clGreen;
for i := 0 to TreeView1.Items.Count-1 do
begin
if (not TreeView1.Items[i].IsVisible) then continue;
NodeRect := TreeView1.Items[i].DisplayRect(True);
TreeView1.Canvas.TextOut(NodeRect.Right, NodeRect.Top, '('+IntToStr(i)+')');
end;
TreeView1CustomDrawItem(nil, nil, [], DefaultDraw); //※
end;
※のコードが無いと
Label1のフォントにItalicなどしている場合
TreeView1.Items[0]番の右項目(上の例では'(0)')の
初期描画位置がどうしてもずれる
なぜだ!教えてくれ。
0917デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=993933402
0918デフォルトの名無しさん
NGNG0919917
NGNGスレが乱立してるから人気のないスレは統合していった方がいいでしょ。
それをいやがらせなんて言うなんて最悪だよ。
もうくんなよな!
0920デフォルトの名無しさん
NGNG>>917の
***すれ立てるまでもない質問はここで 第3刷***
に統合されなきゃいけないんだよ。
おまえがもうくるな。
0921デフォルトの名無しさん
NGNG09221
NGNGDelphi相談室その2
http://piza.2ch.net/test/read.cgi?bbs=tech&key=995950803
0923test
NGNG0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNGpart1000ができる頃にはDelphiで板が全部埋まっちゃうよ。
0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNG★ 削除依頼の質問!コツ!注意! ★
http://teri.2ch.net/saku/kako/986/986017084.html
<引用>
■強制倉庫移動
お引越しが終ったスレッドなどを優先的に倉庫へ移動してもらう事が出来ます。
その場合は「○○板@倉庫関係」という専用のスレッドを建てて、お願いしましょう。
</引用>
この板はスレ消費が遅いのであまり必要性は感じませんけど、立てます?
0929デフォルトの名無しさん
NGNGレス数が900を超えています。1000を超えると表示できなくなるよ。