Delphi相談室

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
ちょっと内容が高度になりすぎてしまうTechスレじゃ質問しずらい
とかはいりにくい人の為に DelphiのTips Q&A はこちら
21 :2000/10/11(水) 19:54
最近便利思った事と、ひっかかった事

○TIPS1 コンポーネントを DBEditからDBComboBoxみたいに
  後から変更したい。
 ALT+F12を押して直接プロパテイを
 object DBEdit1: TDBComboBox
 のように書換えてしまいます。
 再度 ALT+F12を押した後 保存しようとすれば、ソースコードも修正してくれます

○TIPS2 TIPS1のようにしたくて ALT+F12を押したが
  「リンクされたモジュールで使われています」と怒られた場合、
 TTableとかを他のユニットで使われている場合が多いです。
 そんな事が起きないようにTTableとかは データモジュールユニットを作って
 そっちで用意するようにしましょう
3転載 :2000/10/12(木) 14:21
1 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/12(木) 13:49

Delphiの仕様書自動作成ツールを探してます。
VBのは見るんですけど。
誰か知りませんか?
4>3 :2000/10/12(木) 14:22
検索してすぐに出たのは
http://www.nbe.co.jp/seihin/doc/
http://www.vector.co.jp/soft/win95/prog/se098417.html

Delphiのバージョンアップ時の案内に一緒にあったのはどうなんでしょ?
5>4 :2000/10/12(木) 14:32
最初のリンクと同じものみたいね
http://www.inprise.co.jp/3rdparty/DOC.html
6効率コード求む :2000/10/19(木) 15:30
遅いなあと吐かれたコードを見たら、当然文字加算関数が呼ばれていた。
Cスタイルの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;
7名無しさん@お腹いっぱい。 :2000/10/19(木) 16:09
一般論は別にして、このコードが遅いのは、結果の文字列の長さが定まらないことが
本質的原因。PChar にしてポインタ操作にしたとしても、文字列終端のポインタを
管理しないと、文字列末尾に文字を追加するたびに strlen 相当の操作を
行わなければならずコストは高い。文字列終端ポインタを使えば追加に対する
コストは極端に低くなるけど、直感的ではないのでバグを誘発する
場合あり。(提示された程度のコードなら間違いはないと思うけど)
それより、ポインタ操作に切り替えた場合は、結果文字列の長さあふれを
どうやって回避するか。十分大きめに確保するか、あふれたら再確保するか。

メモリ管理は string に任し、文字型の配列とみなして、文字列終端インデックス
を持たせるというのが、個人的なお勧め。クラスにしてしまえば
取り扱いも簡単。
8効率コード求む :2000/10/19(木) 16:33
コメントありがとうございます>>7
エンコードは最悪("の連続)でも元の4倍になるだけなので
渡された文字列からヒープに領域を確保し、PCHARで処理すれば
という感じで考えていました。
ただ格好悪いかなと・・・・
9名無しさん@お腹いっぱい。 :2000/10/19(木) 17:53
だから、setlength( Result, length(s) * 4 ) ってやって
Result[ind] := xxx;

って書けば、型チェックも効くし、実行時範囲チェックもできる。
10名無しさん@お腹いっぱい。 :2000/10/19(木) 22:57
毛ほども変わらんかもしれないが、IntToHexを使うよりCharのテーブル
をつくったほうが速い。とにかくstring生成を控えるべき。
11まとめ :2000/10/20(金) 01:27
・stringの生成を抑える・・・最重要
 →結果の保持にstringの加算を使わず、Char型の配列と添え字にする。
 ポインタなら(変数が減らせるので)なお良かも。
・IntToHexの代わりに'012..9ABCDEF'のテーブルを利用。
・条件分岐をする時、先に例外をはねる(' 'か'0'以下を別扱い)。
 →非常にクリティカルなら、ctypeのように例外を全て配列参照にする手もある。
 が、メモリアクセスが発生するので効果の程は不明。
12効率コード求む :2000/10/20(金) 15:59
>>9 ありがとうございます 了解しました。その線で書いてみます

データベースファイルをCSVに変換して保存する時とかに使いそ
うなコードなのでみなさん同じようなコードをお持ちかと思ったのですが・・・・
13名無しさん@お腹いっぱい。 :2000/10/20(金) 17:12
なんだ。コードが欲しかっただけか。
14名無しさん@お腹いっぱい。 :2000/10/21(土) 08:29
Delphi用のDecompilerどこかにないでしょうか?
ご存知なら場所を教えてもらえると有り難いです。
15名無しさん@お腹いっぱい。 :2000/10/22(日) 01:18
>>14 何に使うのか説明しやがれ
16名無しさん@お腹いっぱい。 :2000/10/22(日) 01:56
14>>15
説明したら教えてくれますか?
17名無しさん@お腹いっぱい。 :2000/10/22(日) 02:08
15>16
納得できる説明だったら教えてやるよ。
1814>17 :2000/10/22(日) 02:23
それでは恥を忍んでお話しします。
実は最近Delphiを始めたんですが、田舎住まいなため
解説本などが殆ど手に入らないんですよ。
それでもHelpや付属マニュアルと格闘して頑張っては
いるんですが、実際的な手法などの情報が全くない所為か
はたまた私のおつむの出来が悪すぎるのか、いまいち要領
を得ません。
で、他の人はどういうコーディングをしてるのか具体的に
見てみたかったんです。ダメでしょうか?
19名無しさん@お腹いっぱい。 :2000/10/22(日) 02:30
>>18
Delphiで書かれたソフトでオープンソースのものもたくさんあるでしょ.
Wyvernとか,Apolloとか.他にもあるかな.
2014 :2000/10/22(日) 02:39
>>19
あ、ありがとう。
「Delphi ソース」などで検索してもめぼしいのが
ヒットしなかったのでたいへん助かります。
さっそく探してみます。感謝です。
21名無しさん@お腹いっぱい。 :2000/10/22(日) 02:39
本だって、本気で欲しければ通販等で簡単に手に入れられると思ふ
2214 :2000/10/22(日) 02:49
>>21
レスありがとうございます。
初心者にお勧めというとどんなのがありますか?
実は、アスキー出版局の「Delphi5オフィシャルコースウェア」
というのを取り寄せで買ってみたもののマニュアルと殆ど変わらない
内容だったので、それ以来注文で買うのを躊躇していたんです。
23名無しさん@お腹いっぱい。 :2000/10/22(日) 02:55
>>14
一応、付属のサンプルは一通り目を通したんだよね?
2414 :2000/10/22(日) 03:11
>>23
はい(C:\Program Files\Borland\Delphi5\Demosにあるやつですよね?)
というか今も頑張ってやってるところです。
でも、初心者には敷居の高いものも結構ありますよね。
ActiveXとかThreadsとかデータベース関連のものとかSockとか・・・
一通りコンパイルして動作とソースを見比べる程度のことは
したんですが、でもデモなのでエラー処理も省かれてるようですし。
だから最初は簡単なアウトラインプロセッサのようなもので一通り
どうやって出来ているのか見てみたかったんです。
で、逆コンパイラがあればいいな、と・・・。
楽しようなんて以ての外、と言われれば、それまでですが。
2514 :2000/10/22(日) 05:27
ありがとうございました。
幾つか(というかいっぱい)見つけたので
これから試してみます。
26効率コード求む :2000/10/24(火) 14:58
こうやっておくと結構便利ですが
type 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に対して
同じようなやり方をしたいとしたらどうやればいいのでしょう?
27効率コード求む:2000/10/24(火) 16:33
型可変オープン配列パラメータにVariant配列を渡して
Format('%d,%s',varArray);と書けるなら一番簡単なんですが・・・
作るしかないのかな・・・・
28効率コード求む:2000/10/24(火) 22:36
という事で作りました。なんとか動きます。でも効率悪そう。うーん

function 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;
29名無しさん@お腹いっぱい。:2000/10/24(火) 23:23
Delphi-ML に流せよ。
borland.jp.public.delphi.preopen でもおもしろいかも。
30>28:2000/10/25(水) 08:50
別にどうせDBの為なんだからそれくらいのオーバヘッドいいんじゃないの?

3つも配列作らなくても同時には一つしか使わないんだから、共用体作って
1つの配列にまとめた方がいいかも

それから金銭型と浮動小数点型は中身同じだから用意する配列は一つでいいと思う
31効率コード求む:2000/10/26(木) 17:53
フォントとかブラシを一時的に変更して描画する時、保存する必要があるので
こんなふうなコードを考えました
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 コメントありがとうございます。共用体というのを勉強してみます
32名無しさん@お腹いっぱい。:2000/10/26(木) 19:10
>>31
>というか自分のメールアドレスは携帯なので・・・
関係ない。
といいたいところだが、受け側に回ることを考えると厳しいかもしれない。
33某ランド>31:2000/10/26(木) 21:58
多少の改善でよければ、こんな感じの保存するだけのクラスを作る

type 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 すれば自動的にデストラクトされるけど
 効率的処理からは離れるかもしれないね。
34age:2000/11/05(日) 00:01
age
35効率コード求む:2000/11/05(日) 08:53
>>33 ありがとうございます。interfaceの勉強をしています
36名無しさん@お腹いっぱい。:2000/11/07(火) 19:08
ゲームを作るためにDelphi購入を考えています。
Learning版だとこういう面で不便になってくる(Pro版では問題なくできる)ということ
があったら教えてください。

Learning版とPro版の機能一覧が↓に乗っていますが、具体的にどう影響するのかが
わからないので・・
www.inprise.co.jp/delphi/d5sku.html
37名無しさん@お腹いっぱい。:2000/11/07(火) 22:59
Stdで何が一番不便って言うとVCLのソースが無いことか
良く知っている人ならCustom何とかまで戻って作ればいいけど
それじゃこのコンポーネントちょっといじりたいって時
初心者には手が出ない
38名無しさん@お腹いっぱい。:2000/11/08(水) 00:15
故あってデルファイ使うことになりました。

新規作成でフォームを作ると問答無用で
Form1とかいう名前になります。
まあいいか、と、そのフォームのNameプロパティを
FooFormとか自分の望む名前にしました。

「すべて保存」メニューを実行させると、そのフォームクラスの
ソースが"Unit1.pas"などという名前でセーブされそうだったので
セーブダイアログ(と言うのかどうか)に手動でタイプして
"FooForm.pas"という名前でセーブしてもらおうとすると、
「すでにプロジェクトにある」とか言ってセーブさせてくれません。

「じゃあ」と思って、いったんそのフォームをプロジェクトから
削除して、再び新規作成したフォームをプロジェクトマネージャで
「名前を付けて保存」で"FooForm.pas"に保存しました。
このままでは当然クラス名やUnit名は変わらない(Form1のまま)ので
フォームのNameプロパティを変えようとすると「FooFormは既にプロ
ジェクトにある」とか言って変えさせてくれません。

なんとかクラス名とユニット名とファイル名を揃えたいんですが、
どうすれば良いのでしょう。

---- FooForm.pas ---------
unit FooForm;

type
FooForm = class(TForm)
 :
 :
--------------------------

てな具合に。
39名無しさん@お腹いっぱい。:2000/11/08(水) 00:34
俺が疑問に思うのはインストールすると
VCLのソースがついてくる体験版の存在。
40名無しさん@お腹いっぱい。:2000/11/08(水) 02:43
>>38
ユニット名とNameが同じだからだよ(糞
41名無しさん@お腹いっぱい。:2000/11/08(水) 03:11
>>39
そんなのあったっけ?
42>38:2000/11/08(水) 05:10
フォーム名(クラス名)とユニット名は同じ名前にはできません。
例えばFooUnitとFooFormのようにしてください。
43>38:2000/11/08(水) 10:27
同じ名前だと
ユニット名.XX とした時と オブジェクト名.XXとした時にどう区別する?

というかユニットもひとつのオブジェクトと考えた方がいいかも
44>43:2000/11/08(水) 12:36
>ユニットもひとつのオブジェクトと考えた方がいいかも
オブジェクトというよりも名前空間(namespace)に
近いかもしれませんね
45名無しさん@お腹いっぱい。:2000/11/08(水) 16:28
Windows2000上でntbackupみたく使用中のファイルをコピーするには
どうしたらいいでしょうか?
46名無しさんi486:2000/11/08(水) 17:56
38はDelphiをなめてるので
ねたです。
47名無しさん@お腹いっぱい。:2000/11/10(金) 01:29
38です。
済みません、確かに皆様の「アホでぇこいつ」を呼び起こすような
ことだったようで、言われる通りにUnitをFooFrmにクラス名をTFooFormに
してあっさり解決しました。
でも嘘話という意味でのネタではないんです、ほんとに煮詰まってたのです。
ありがとうございました。

ところで、exceptとfinallyって同時に使えないんでしょうか。
Java感覚で
try
except
finally
end
って書いたら、「(finallyのとこに)endが無いぞ」って怒られました。
「文」ということになっているせい?
48>47:2000/11/10(金) 01:37
独学(ですよね?)の最大の弱点は、人に聞けば5分で解決することを
自力で解決するまで先に進めないことですね。

try except finally endはサポートされていません。
現状では以下のように書くしかないですね。

try
 try
  ...
 except
  ...
 end
finally
 ...
end
49名無しさん@お腹いっぱい。:2000/11/10(金) 09:55
VB.NETでは
Try
Catch
Finally
End Try
って書き方するらしいぞ。
(ヘジルスバーグがVBにしてやるのはここまでで
後はC#に注力してるよーだが。)
50名無しさん@お腹いっぱい。:2000/12/08(金) 19:30
複数のバージョンのDelphiをインストールした時
DPRファイルのところでマウスの右ボタンクリックで
選択できるようにした INFファイルの書き方 をどこか
で見かけたのですが、・・・・・すみません教えて下さい
51名無しさん@お腹いっぱい。:2000/12/09(土) 01:19
そもそもDPRファイルから起動すると
おかしくナラねえ?俺だけか。
52名無しさん@お腹いっぱい。:2000/12/09(土) 01:31
ところで、山ほどDelphi関係スレがたちあがってるんだが
Delphi使いってそんなに多いのか?
53名無しさん@お腹いっぱい。:2000/12/09(土) 05:16
一応Delphi使い、というより厨房ですが・・。
で、ついでに質問ですがDelphiではなぜ呼び出してるところより
上にその関数がないといけないのでしょうか?
それとコンテナクラスはありますか?ヘルプみても見つからないです。
TurboC++のTVectorとかTQueueみたいなのが使いたいです。
54名無しさん@お腹いっぱい。:2000/12/09(土) 05:54
>52
そんなに多くないです。
ほとんどのスレは、一部のキティが考えも無く立てているだけでしょう。
仕事でもなかなか使えないし、プラットフォームも限定されるし。

あの環境で、gccみたいに中間コードを共通化して、上位の言語はユーザが
自由に選べる(c/c++/c#/oo-pascal/basic/asm/etc...)とかならもっと
普及していると思うんですが。(エディタは直して欲しいけど)
移植チーム側も、統合環境(GUI)とobjコードのnative実装だけで済んで移植も
簡単なのに。
そうしないのは、やっぱりコンパイルスピード落としたくないから?
55名無しさん@お腹いっぱい。:2000/12/09(土) 06:04
上位の言語部分と、下位のnative部分を別売りにするとかして
商売にならないかな?例えば、
Delphiセットの組み合わせ(上位oo-pascal 15,000円、下位win32 15,000円 -> 30,000円
C++builderセットの組み合わせ(上位c/c+++ 15,000円、下位win32 15,000円 -> 30,000円
両方購入する場合は 45,000円で済む。
とか。(わ
56>53:2000/12/09(土) 10:31
>ではなぜ呼び出してるところより 上にその関数がないといけないのでしょうか?
これはC++でも同じですね。Cでも上に無いとマズイ事が多いです
単純にコンパイラが上から順にコンパイルしてるからでしょう。
ただ、実体まで書かなくても先に宣言しておけばいいです。

コンテナクラスはTListを応用します。
どうすればいいかはVCLを覗くといいでしょう。
ただ、高速なアルゴリズムが必要な場合は自分でアルゴリズムを実装する必要があります
57>50:2000/12/09(土) 10:40
とりあえずregeditでDelphiProjectを検索してShellに追加したら
解決すると思うけど? もし何度もインストールするような状況
だったら、レジストリ書出 で*.REGファイルを作っておけば
これをインストールすればとりあえず可能。

[Software\Borland\Delphi]の情報からメニューが出るような
小さなプログラム作っておいてこれを dprに関連付ける方がスマートかな?
58アイソシュタイソ:2000/12/09(土) 11:07
アヒャヒャ(゚∀゚)y─┛~~
まずいことが多い、つーか関数のプロトタイプ型宣言だろ。>56
教えるにしてもちゃんと調べとけ。
5956>58:2000/12/09(土) 15:10
おや 良く単語をご存知で。
 プロトタイプ宣言しなくてもCなら大丈夫な場合もありますよ
 int型サイズ=ポインタ型な環境なら面倒でやらない事も・・・誉められた事じゃないけど
60D:2000/12/09(土) 15:36
forward宣言すればすむこと。

前方シャンショーのおかげで
バカっぱやいコンパイラ速度を実現してるんじゃないの?
6153:2000/12/10(日) 00:02
>56,58,59,60
なるほど、プロトタイプ宣言(forward宣言?)ですか。
そういやDelphiではしたことなかったです。早速調べてみます。
コンテナクラスもTListってやつで実現できるんですね。
ありがとうございました。
正直マジレスもらえると思ってなかったので目茶苦茶嬉しいです。
62他にもあるよ:2000/12/10(日) 00:09
TClassList

TClassList は,クラスのリストを管理します。

TComponentList

TComponentList は,コンポーネントを解放する際にそれ自体を更新してコンポーネントのリストを維持します。

TObjectList

TObjectList は,(所有している)オブジェクトのリストを管理します。

TObjectQueue

TObjectQueue は,オブジェクトの先入れ先出しリストを管理します。

TObjectStack

TObjectStack は,オブジェクトの後入れ先出しリストを管理します。

TOrderedList

TOrderedList は,シリアル順にアクセスしなければならないポインタの配列を管理します。

TQueue

TQueue はポインタの先入れ先出し配列を保持します。

TStack

TStack は,ポインタの後入れ先出し配列を保持します。
63名無しさん@お腹いっぱい。:2000/12/12(火) 10:57
type hoge = record なんとか end;
type phoge=^hoge;
procedure func1( ph:phoge);
と定義された関数の別名
procedure func2(var h:hoge);
を作りたいのですが、巧い方法はありますか?

procedure func2(var h:hoge);absolute func1;
はダメみたいです
64>63:2000/12/12(火) 11:30
procedure func2(var h:hoge);
begin func1(@h);end;

は当然お気にめさないんだろなあ・・・・inline指令があればいいんだろけど
あとは関数ポインタに代入する方法だけど、これもオーバーヘッドがあるからなあ
6563:2000/12/12(火) 18:26
>>64
Cだとこういうのはリンク前に幾らでも弄れるのでDelphiの
absoluteを使って簡単に出来るのかと・・・・
まあ出来なくても ご指摘通りそんなに困るわけじゃないけど・・
66名無しさん@お腹いっぱい。:2000/12/12(火) 22:09
最近の Delphiマガジンの連載記事は面白くない気がします。
後期のD++に似てますが気のせいですか?
67名無しさん@お腹いっぱい。:2000/12/12(火) 22:10
68名無しさん@お腹いっぱい。:2000/12/13(水) 17:38
なんでvol8なん?
69知りたい人。:2000/12/17(日) 04:09
エクスプローラが死んだときに消えちゃうアイコン達を、
別のソフトで復活させるってのは出来ます?

つまるところアイコン復活専用のソフトを作りたいんですが。
「常駐して状態を保存」とかじゃなくて非常駐で。
70名無しさん@お腹いっぱい。:2000/12/17(日) 04:32
板違い。>69
71名無しさん@お腹いっぱい。:2000/12/17(日) 04:41
>70バカ?
69は作りたいって言ってるだろ

で、出来るかどうかっていうと非常に難しいんじゃないかな。
と俺は思フ
72名無しさん@お腹いっぱい。:2000/12/17(日) 04:50
69には作れそうにないと思うが。(藁
73名無しさん@お腹いっぱい。:2000/12/17(日) 06:34
72には作れるんですか?
UPキボーン
74名無しさん@お腹いっぱい。:2000/12/18(月) 10:27
Delphiで使えるXMLのPaserってあります?
情報ほとんどみつかんないんすけど。
75>74:2000/12/18(月) 10:38
76名無しさん@お腹いっぱい。:2000/12/18(月) 12:25
>74
エンタ版買え。
77名無しさん@お腹いっぱい。:2000/12/18(月) 21:11
今月のDelphiマガジンの特集がXMLだったよ。
DOMでよければ
http://www.philo.de/xml/
にコンポーネントがあるらしい
78名無しさん@お腹いっぱい。:2000/12/18(月) 21:34
>>74
MS XML Parser がいいと思います。
ただし SAXは使えません。なぜかエラーが出ます。
http://www.microsoft.com/japan/developer/workshop/xml/general/xmlparser.asp

>>75
DTDが使えないのは痛すぎです。

>>76
Enterprise版にXMLパーサーは付属しません。
79名無しさん@お腹いっぱい。:2000/12/26(火) 12:18
初級な質問なんですが、
'100'という文字列から100だけを抽出する方法を教えていただきたいのです。

Pos('''', '100') > 0 do
'100'[Pos('''', '100')] := '';

では、だめなのですが、よい方法があるでしょうか?

Pos('''', '100') > 0 do
'100'[Pos('''', '100')] := ' ';

これならできるんですが、スペースは入れたくないのです。
80名無しさん@お腹いっぱい。:2000/12/26(火) 12:37
AnsiExtractQuotedStr 関数
81名無しさん@お腹いっぱい。:2000/12/26(火) 13:09
>>80
ありがとうございます。
しかし、ヘルプを読んでも使い方がわからないっす。
申し訳ないのですが、例をのせていただけたらと思うのですが。
すみません。

82名無しさん@お腹いっぱい。:2000/12/26(火) 13:40
すみません。自力でできました。
本当ありがとうございました。>>80
83名無しさん@お腹いっぱい。:2000/12/26(火) 19:31
>>79
不思議なそのコードは象徴的な意味か?
とりあえず
delete(s,Pos('''', s) ,1);
8479:2000/12/26(火) 21:01
その方法もあるんですね。
初心者なもので色々な方法を知ったのでうれしいです。
ありがとー>>83

79のコードはヘルプでpos関数というのを見つけて使ったので、僕にとっては不思議でもなんでも・・

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

85名無しさん@お腹いっぱい。:2000/12/29(金) 08:33
まとめてage
86名無しさんi486:2000/12/30(土) 00:35
77がいっている http://www.philo.de/xml/
SJIS対応になってくれればいいんだけど。
なんかいいDOMない?
87名無しさソ:2000/12/30(土) 04:48
会社で、Delphiのことを”デルファイ”という人と、”デルフィ”という人がいますが、どっちが本当ですか?
教えてください。僕はデルファイと思ってました。
88デフォルトの名無しさん:2000/12/30(土) 05:15
>>87
英語読みならデフファイ。辞書引いてみ。
89デフォルトの名無しさん:2000/12/30(土) 05:38
>>88
いやーん訂正。デルファイ。
90名無しさん@お腹いっぱい。:2000/12/30(土) 07:59
前にボーランドのビルで行われたDelphiの説明会にいったら、
OHPのスライドでDelphiの説明をしてくれた。
しかしDelphiではなく、 Delphと全て書かれていた。
俺たちは笑いをこらえて、デルフって新製品ですかね?と
質問してあげたよ。

91>>87:2000/12/30(土) 14:14
日本語読みならデルポイ。web検索してみ。
92デフォルトの名無しさん:2001/01/01(月) 22:44
>>86
だから MS XML Parser 使えってんだ
93デフォルトの名無しさん:2001/01/01(月) 22:45
>>87
広告みれ
#ただし遺跡はデルフィ
94デフォルトの名無しさん:2001/01/06(土) 15:47
>>92
環境依存いや〜ん
95デフォルトの名無しさん:2001/01/06(土) 23:08
>>94
環境依存なんて・・・ちっちぇーこと気にすんなよ!
第一 MSXML + Delphi だと SAXがうまくいかん。
96デフォルトの名無しさん:2001/01/08(月) 01:20
デルファイ5でアプリを作っているのですが、
ツールバーのListプロパティとShowCaptionプロパティをTrueに
すると、Captionが無いボタンのサイズがスペース一個分だけ大きくなります。
VCLのソースを見たら文字列長が0の時はスペースを入れているのですが、
なぜそうやっているのかがわからないです。
このスペースって取ることは出来ないですか?それともコモンコントロール
のバージョンによって違うのでしょうか?
当方環境
Windows2000pro
Delphi5 Update1
97デフォルトの名無しさん:2001/01/08(月) 09:59
Delphiでコンテキストメニュー(シェルメニュー)に独自メニュー
追加する方法教えれ。Delphiのシェル本買ったが、いまいち
分からんかった。サンプルコードとか公開してるとこ知りません
か?
98デフォルトの名無しさん:2001/01/08(月) 11:28
Delphi付属のDEMOをミロミロミロー
99デフォルトの名無しさん :2001/01/08(月) 13:30
コンテキストメニューってポップアップメニューのこと?
100デフォルトの名無しさん:2001/01/08(月) 15:12
エクスプローラノナー。
101デフォルトの名無しさん:2001/01/08(月) 18:41
102デフォルトの名無しさん:2001/02/03(土) 01:04
TPrinter(.Canvas.Font)の解像度ってScreenの解像度と同じなのかな
やっぱGetDeviceCapsなのか
103デフォルトの名無しさん:2001/02/03(土) 01:18
>>91
ワラタ
104デフォルトの名無しさん:2001/02/03(土) 23:46
DeviceCapabilitiesを使おう
105102:2001/02/06(火) 01:04
なんだ
Printer.Canvas.Handleが有効になってなかったのか
結局CreateIC使ったけど '. LPT1:' 等が一々邪魔だね
これってWindowsじゃなくてDelphiが付けてんのか
106デフォルトの名無しさん:2001/02/17(土) 07:56
monazillaスレから

D4でD5のテキスト形式のフォームを開く方法は
 適当に新規にフォームを作り そこにソースとフォームをコピペします
 フォームはマウス右クリックかALT+F12で開いてコピペね
 それを保存してリネームすればOK
107デフォルトの名無しさん:2001/02/17(土) 09:09
>>106
その手があったかー。俺はObjectTextToResource関数を使って
ゴリゴリ変換していたよ…
108デフォルトの名無しさん:2001/02/17(土) 09:44
>>107
せっかく作った変換関数公開してよ
109デフォルトの名無しさん:2001/02/17(土) 11:15
>>108
ObjectTextToResourceはVCLの関数。
110デフォルトの名無しさん:2001/02/18(日) 11:07
>>106
ML検索スレ
111デフォルトの名無しさん:2001/02/19(月) 06:56
戸堕くんの回答は毎度まとはずれで
インターネットのゴミなので追放していただきたい。
112デフォルトの名無しさん:2001/02/19(月) 08:08
外しているのでゴメンなさい。m(_~_)m
113デフォルトの名無しさん:2001/02/21(水) 10:14
[Delphi:55078]
戸堕の投稿はフィルタでダウンロード拒否すべし
114デフォルトの名無しさん:2001/02/21(水) 10:44
virtualとdynamicはどーちがうんですか?
また、それぞれどう使い分けるべきなんですか?
おしえてくらはい。
115デフォルトの名無しさん:2001/02/21(水) 12:16
スピード優先かファイルサイズ優先か。
使い分けは適当。

全部virtualでいいんじゃないか?

Delphiオブジェクト指向プログラミング
とかいう本に載ってるよ。
116ななし:2001/02/24(土) 16:59
Quadruple の DirectPlay での質問です。

チュートリアルのチャットに
*画面をクリックするとある変数が増える。
*同時にその変数を発言として相手や自分に送信する
ということ付けたそうとしました。

ところが相手の画面では別の文字(「・」とか)が出てしまいます。
( player1 > ・          )
( player1 > ・  になってしまう )
自分の画面ではクリックするたびに増えた変数が表示されています
( player1 > 1          )
( player1 > 2  のような感じで。)

自分で足した TForm1.ChatMemoMouseDown内の
DDPD1.Send(DPID_ALLPLAYERS, @kazukazu,Sizeof(kazukazu));
があやしい気がするのですが…。
どなたかご教授お願いします。
117114:2001/02/24(土) 22:37
>>115
|スピード優先かファイルサイズ優先か。
|使い分けは適当。
これってプログラマが指定できてうれしいものなんですかね。
言語として明確な指針持っていないことの表れなだけであって、
プログラマに面倒な判断を押しつけてるだけに思えます。

この仕様は、C++と同じように実装指向であり、ほとんど必要性の
ないものだと思います。こういう言語仕様に疑問を持つ人というのは
いないのでしょうか?
118デフォルトの名無しさん:2001/02/24(土) 22:50
俺はvirtual、1択だな。
119Del坊:2001/02/25(日) 01:07
ところでいつの間にかInpriseからBorlandに戻ってるな
120デフォルトの名無しさん:2001/02/25(日) 15:41
>>117
いないよ。
どっちかに限定されているほうが不満が増えるでしょ。
121デフォルトの名無しさん:2001/02/25(日) 16:54
'Mastering Delphi' の著者のサイトが無くなってる。
どこへ引っ越したんだろ?
122デフォルトの名無しさん:2001/02/25(日) 17:55
>>120
例えばC++やJavaにはdynamicに相当するキーワードはないが、
それに対して文句言う奴なんていない。
あんた、まともに考えたことないだろ。
不満持つ奴なんていないよ。
123デフォルトの名無しさん:2001/02/25(日) 18:46
ここで例にJAVAを出すなよ。(藁

C++がDelphiより機能がないだけ。
DelphiはC++よりも最強なんだから
よわっちい言語と対比しないでね。
124デフォルトの名無しさん:2001/02/25(日) 22:01
>>123
煽るなよ。同じDelphi使いとして恥ずかしいぞ。

>>116
kazukazuはどういう型になっているんだ?
Integer型か?string型か?
125デフォルトの名無しさん:2001/02/25(日) 23:03
>>123
Del厨さらしage
126ななし:2001/02/25(日) 23:37
>>124
上のkazukazuは、たしかInt型でした。(まずい例をあげてしまいました)
この後String型とかにしてみたりしたんですが、ダメでした。

で、結局124さんの『型』をヒントにして
DDPD1.Send(DPID_ALLPLAYERS, PChar(kazustr),Length(kazustr)+1);
こんな感じにしてみたらうまくいったようです。
ありがとうございました。

お騒がせしました。
127デフォルトの名無しさん:2001/02/26(月) 08:30
>>123
(・ε・)プップクプー

128デフォルトの名無しさん:2001/02/26(月) 09:50
煽りにのるなよ。同じDelphi使いとして恥ずかしいぞ。 (wara
129デフォルトの名無しさん:2001/02/26(月) 10:41
130デフォルトの名無しさん:2001/02/26(月) 10:57
>>123
Delphiって言語名だっけ?(プ

>>129
google検索しても、これくらいしか見つからん。
「何ができる?」という情報しかないDelサイトのレベルの低さが伺えるな。
131デフォルトの名無しさん:2001/02/26(月) 11:14
頭の弱い人はDelphi使わなくて結構です。さようなら。
132デフォルトの名無しさん:2001/02/26(月) 11:23
あ、説明不足だったね。
dynamicとvirtualでここまで文句つけれる君は
白痴なんじゃないかと思ったわけ。
という事で白痴くんはさよなら。
133デフォルトの名無しさん:2001/02/26(月) 14:19
自作自演の煽り屋さんは相手にするなよ。
134はくち:2001/02/26(月) 15:40
>>132
別スレでバカみたいに Delphi擁護してんのおまえだろ。
自分が唯一できることが一番じゃないと不安でしょうがないんだろうな。(藁
135つーかさ、:2001/02/26(月) 20:44
>つけれる
こんな言葉を使う時点で、
厨房度というか、普段のコミュニケーション能力というか、
そういうのが疑われるわけよ。
136名無しサンプリング@48kHz:2001/02/27(火) 18:37
DelphiでXMとかITとかをならすにはどうしたら良いですか?
137デフォルトの名無しさん:2001/02/27(火) 19:15
>>136
ъ( ゚ー^) ソノ心意気ヨシ!!
138デフォルトの名無しさん:2001/02/27(火) 19:25
>>136
自力実装か既存のライブラリに頼るか2通りある。
さあ、どっちを選ぶ?
139デフォルトの名無しさん:2001/02/27(火) 23:21
DelphiではHtmlをどうやってParseしますか?
Parseクラスを自作?
140デフォルトの名無しさん:2001/02/27(火) 23:30
>>135
イマドキテイドノヒクイツッコミダナ
オーマーエーモーナーーーーーーーー
142デフォルトの名無しさん:2001/02/28(水) 14:25
静的メソッドと動的メソッドって
なぜ異なっているのでしょうか?
143デフォルトの名無しさん:2001/02/28(水) 15:28
>142
スレ違い?Delphiにstaticなんてあったっけ?
144デフォルトの名無しさん:2001/02/28(水) 16:03
virtual, dynamic, override付かないメソッドはスタティック。
classメソッドだってあるよん。
145デフォルトの名無しさん:2001/02/28(水) 16:07
>>143
仮想メソッド=virtual 指令付きメソッド
動的メソッド=dynamic 指令付きメソッド
静的メソッド=何も付いていないメソッド
146デフォルトの名無しさん:2001/02/28(水) 16:11
>144
ホントだ、知らんかったサンクス。<classメソッド
147143=146:2001/02/28(水) 16:17
>145
なるほどねー、俺ヘルプ読んでなかったわ。。。
148デフォルトの名無しさん:2001/02/28(水) 20:05
ちなみにJavaでいうクラス変数はないので、ユニットローカル
な変数(って言うのか?Implemantation部で宣言した変数)
で代用すべしべし。(そんなに使う機会は無いと思うが。)
149デフォルトの名無しさん:2001/02/28(水) 23:12
Unitごとの初期化、終了処理はinitialization, finalizationでやるんだけれど、
その中で一時的な変数(ループ用とか)使いたいときどうしたほうがいいのん?
例えば、

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.

ぐらいかなあと。もっとスマートな方法ない?
150デフォルトの名無しさん:2001/02/28(水) 23:47
>>148
クラスじゃないがユニットごとの変数が一番似てる
151デフォルトの名無しさん:2001/03/01(木) 00:35
>>149
後者が一番スマートだと思う。
152どっちでもい〜けど:2001/03/01(木) 09:33
前者のがデータ・コードサイズが小さくなりそう。
153149:2001/03/01(木) 11:07
前者だとコード補完したときに var の下に関数が生成されるようです(´д`;)
駄目ジャーン。
154デフォルトの名無しさん:2001/03/01(木) 12:07
>>136 は、ひやかしだったか…。
155デフォルトの名無しさん:2001/03/02(金) 00:11
[Delphi:55364] 素朴な疑問 - 他言語との比較
電波すぎ。
156136:2001/03/04(日) 11:00
136です
諸事情でレスできませんでした。すみません
XMとかあつかうコンポーネントとかあるんですか?
157デフォルトの名無しさん:2001/03/04(日) 13:22
>>156
自分で作りましょう。終了。
158turbo type D@モナヂラドットオルグ(ワラ:2001/03/05(月) 12:52
ひまな人
Delphiでこんなの作ってみてくれない?
http://amacre.site.ne.jp/Tuyano/Fun/FUN_8.html
興味あるんだよ。

オレヒマじゃないからパスなんだけど。(藁
159デフォルトの名無しさん:2001/03/05(月) 13:15
ライフゲームですなぁ。なつかすぃ〜
160デフォルトの名無しさん:2001/03/05(月) 13:55
ライフゲームか、昔、ライフゲームでコンピュータ的動作させられるとかの記事読んだ事あるな
Cなら練習がてら書いた事あるぞ。
161デフォルトの名無しさん:2001/03/05(月) 14:50
コンピュータ的動作って‥‥フリップフロップから作るのか?
グライダーでデータのやり取りするのか?
なんか考えるだけで怖くなってきた
162turbo type D@モナヂラドットオルグ(ワラ:2001/03/05(月) 15:38
ぁゃoぃソスアプにアプしたよ。
バイナリ付だからサイズででかくてごめんなすって。

いやあ、モナプロラで疲れていたので
ガス抜きに作ったよ。(おいおい仕事しろよ(藁

2チャソ専用のアプ板が欲しいなあ。
163turbo type D@モナヂラドットオルグ(ワラ:2001/03/05(月) 15:52
あ、動的配列が動作するDelphiだから
D4以降対応かな。

ぁゃoぃは2chソス嫌ってるみたいだから
URLは書くのやめとく。
164デフォルトの名無しさん:2001/03/05(月) 15:52
>グライダーでデータのやり取りするのか?

グライダー銃をうまく配置して、いろんなロジックを
行うっていうのを本で読んだこつあたよ
165turbo type D@モナヂラドットオルグ(ワラ:2001/03/05(月) 16:10
ライフゲームみていて思い出した

パソコン持っていなかった頃
友達の家のTOWNSで
シムアースであそばしてもらっていた
すごく面白かったよ。
166デフォルトの名無しさん:2001/03/05(月) 19:29
http://www.mindspring.com/~alanh/life/
Applet ONにして左上のほうのEnjoy Lifeっての
押してみるとすごいよ。
PufferTrainが好き。
早いマシンだとロケットみたいだ。
すごいね〜
無限増殖パターンみてると
酔いそうだ。(w
168デフォルトの名無しさん:2001/03/05(月) 22:52
教えて君なのでsageにて。初心者な質問でごめんなさい。
このライフをDelphiで作ろうとしたときに、標準のコンポーネントで作れます?
土木実験とか偏ったものしか組んだことないので、勉強として
面白そーだからチャレンジしてみよーって思ったのですが、出だしからわかりません。。。
すみませんが、教えてください。
169168:2001/03/05(月) 22:54
書き忘れました。
表示のメッシュ部分です。<出だし
170デフォルトの名無しさん:2001/03/05(月) 23:37
CanvasとLineなんとかかPointなんとかで出来ると思います。
Delphi持ってないのでわかりませんが。
171turbo type D:2001/03/06(火) 09:47
>このライフをDelphiで作ろうとしたときに
>標準のコンポーネントで作れます?
標準以外のコンポーネントでどこに何を利用ればいいかな?(w
ぁゃoぃソスアプというサイトを見つけて厨房ソースをDLしなさい。
ただし、あちらさんに削除される前に(藁

Booleanの2次元動的配列を用意して
TImageにFillRectで四角を描画してる
TImage.マウスアプで配列のTrue/Falseを変えてるんだよ。

マトモな質問ならsageんでよし
初心者でも厨房やデンパじゃなければ臆することはないですよ。
むしろ厨房やデンパなヤツは臆すること無いから困るのだが
(つか、それは俺のことか、欝だ氏、、、)
172turbo type D:2001/03/06(火) 09:50
読みきれてなかったスマソ

>表示のメッシュ部分です。<出だし

Canvasに書いた方が楽と思うけれど
DrawGridを使う手もあり?
Tスクロルボクスの上にTイマジ乗っけてもいいんじゃないかな。
173turbo type D:2001/03/06(火) 14:13
http://green.nttec.com/tech/index.html
ここに置いたよ。
174168:2001/03/06(火) 20:28
turbo type Dさんありがとうございます。
他の方のソースは勉強になりますね。
monazilla陰ながら応援してます。
ぜーんぜんスキルないもんで・・・
175turbo type D:2001/03/07(水) 11:13
スキルないなら
具体的にどこがわからないって
ガンガン聞いたらいいんじゃない?
ネットで聞ける場所あるし。

2chで聞くと煽られるしまともなレスないから
かなり辛いけど(w
176名無しサンプリング@11.25kHz:2001/03/08(木) 00:51
非常に下らない質問で申し訳ない。一応2,3日調べた挙げ句書かせて頂きます。

testはHGLOBAL型
memcpy((char *)GlobalLock(test), "test", 4);

こんな感じのC++のソースがあります。
ソース自体の意味は大体把握したのですが
いざPascalで記述してみようと考えると、どのようにtest変数に'test'という文字列を渡すかわかりません。
どなたか助言お願いします(汗
177デフォルトの名無しさん:2001/03/08(木) 03:16
Delphi で書くとこう。PChar型使ってポインタ得るのが味噌。
CopyMemory(GlobalLock(test), PChar('test'), 4);
178デフォルトの名無しさん:2001/03/08(木) 05:49
>>176,177
戻り値をチェックしないと。
179デフォルトの名無しさん:2001/03/08(木) 06:54
>>177
PCharへのキャストはわざわざ明示せんでよい気がする。
180名無しさん@お腹いっぱい。:2001/03/10(土) 15:04
あげついでに。

with TFrmHoge.Create(Self) do

こんな構文あったなんて知らんかったよ。ローカル変数いらんてのが
非常にキレイで◎
初心者ですが勉強になります。
181デフォルトの名無しさん:2001/03/10(土) 18:11
いいけど、定型的なデバックしない部分に利用しないと

デバックに困る事になる

それとそれ利用するときは try finallyと組み合せて使うべきだ

with xx.Create do try

finally free;end;
182デフォルトの名無しさん:2001/03/10(土) 18:41
別にローカル変数ぐらいあってもいいけど...
>>181
ShowModalしか使えないぞ。
それにOnCloseでcaFreeにすると
必要ないのでは?
183デフォルトの名無しさん:2001/03/10(土) 19:43
ボソ(-。-)
あーあ、
情報局にまで飛んでいかなくてもいいのに。
184デフォルトの名無しさん:2001/03/10(土) 20:33
情報局って、、、いつの時代の話ですか。
185デフォルトの名無しさん:2001/03/10(土) 20:36
いや、ばれないようにね。

君なんとかとか俺なんとかとかわたしなんとかとか
ゼイイン要らない
186デフォルトの名無しさん:2001/03/10(土) 20:39
>>180-182
procedure 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;
187デフォルトの名無しさん:2001/03/10(土) 22:19
procedure foo(const s: String);
procedure bar(s: String);
ってどう違うんでしょうか?
TObjectならconstを使う理由もわかるのですが
188180:2001/03/10(土) 22:31
情報量不足でした。これをやろうと思ったのはShowModalの
時です。
189デフォルトの名無しさん:2001/03/11(日) 00:16
>>187
関数名が違う

・・・つのはネタ

動作結果は一緒?
気にせんでよろし
190デフォルトの名無しさん:2001/03/11(日) 18:37
procedure foo(const s: String);
sは変更できない。しようとするとコンパイルエラーになる。
だけだろ(藁

コンパイル後の結果は置いておいて。
191191:2001/03/11(日) 19:07
StringGridを使用しているんですが、
Cells[i, j] := hogehoge っていう感じで、ループを回すと、
一回書くたびにInvalidate発生させてるみたいで描画が遅くなってしまいます。
たしかInvalidateの発生を抑制するようなメソッドがあったと思うんですが、
ご存知ないでしょうか。それとももっとスマートなやり方ってないもんでしょうか。
192デフォルトの名無しさん:2001/03/11(日) 19:51
>>191
Leafel's note
ちらつきのない生活?
193デフォルトの名無しさん:2001/03/12(月) 04:11
>187
>TObjectならconstを使う理由もわかるのですが
って何ですか?
194麻衣:2001/03/12(月) 09:38
const obj:TComponent
obj:=hoge.Create; はダメ
obj.Tag:=1234;   でもこれはOK

const s:TStrings
s[1]:='麻衣だよ〜'; もちろんこれもOK

でも
const s:string
s:='1234'; はダメなのは当然だけど
s[1]:='x'; もダメ 
195デフォルトの名無しさん:2001/03/12(月) 09:59
>>194
嫌なコードだな。
196デフォルトの名無しさん:2001/03/16(金) 01:08
 Winのプログラミングはあまり得意ではないのですが、
多少DelphiでWinのプログラムを組めるようになりました。

 それで質問があるのですが、
プログラムでレジストリをあまり使いたくないので、
設定ファイル「*.ini」を利用したいと思います。
その設定ファイルを作成するに当たって
何かいい関数などありますか?
それとも、入出力したい設定を自分でファイルオープン&読み書き
させなければいけないのでしょうか。

 Winのプログラミングをすると、何か楽な関数があるのではないか、と
期待してしまうのが怖いですね。
197デフォルトの名無しさん:2001/03/16(金) 01:15
>>196
ラッパーでTIniFile,TRegIniFile,TMemIniFileやらがあるよ
198通りすがり:2001/03/16(金) 02:39
TMemIniFileにしとけ
199デフォルトの名無しさん:2001/03/16(金) 09:58
上にマンセー
200196:2001/03/17(土) 00:00
>>197-199
サンクス。
あとで試してみますね。

でも、Windowいらないプログラムを作る方が多くて
実はさらっとRubyで書いちゃう俺はダメダメですか?
201デフォルトの名無しさん:2001/03/17(土) 00:49
必要なければいいけど。
GUIあったらあったで便利だよ。
202デフォルトの名無しさん:2001/03/17(土) 01:29
ぶらっとさまよっていたらこんなページをみつけた。
http://hp.vector.co.jp/authors/VA015233/pascal/index.htm

パスカルからデルファイへは
言語マニアのうけはいいかも。
203デフォルトの名無しさん:2001/03/17(土) 08:24
>>202
学習用のIDEみたいなの置いてるね・・・。
204デフォルトの名無しさん:2001/03/19(月) 07:26
WebからHTMLソースを取得するにはどうしたらいいっぽいですか?
TWebBrowserあたりを駆使するのかと思うのですがいまいちよく
わかりませんでした。
頭分けてくださいよろしくおねがいします。
205>204:2001/03/19(月) 10:42
206204:2001/03/19(月) 18:17
・・・あんなに迷っていたのにやりたいことがすぐできました。
205さん、monazilla.orgさんに心から感謝します。
おもしろい物を作ってお役に立てるようがんばります。
207デフォルトの名無しさん:2001/03/19(月) 21:22
unitを作成しているのですが、
interface部は、interfaceのくせにclassのprivateの部分まで宣言しなければいけませんよね。
まー、それは良いとして、実装でしか使わないようなクラスの宣言は
implementation部で宣言したいのですが、interface部(のclassのprivate部分)
で使っているのでinterface部で宣言するしか解決方法が思いつかないのですが、
他に何か良い方法があるのでしょうか?
208デフォルトの名無しさん:2001/03/19(月) 21:50
>で使っているのでinterface部で宣言するしか解決方法が思いつかないのですが、
他に何か良い方法があるのでしょうか?

それしかないと思います。
まあC++のクラス宣言と同じようなもんですね。

ちょっと変わった方法としては、protectedなメンバ関数だけ
実装したクラスと、それを継承してpublicなメンバ関数でラップ
したクラスを作ってそちらだけ公開する手があります。
209207:2001/03/19(月) 22:36
>208
レスありがとうございます。

>まあC++のクラス宣言と同じようなもんですね。
ああ、そういえばそうですね。
(C++はあまり経験がないのですが、
ヘッダに記述してやらなければいけないってことですよね?)
あ、でもstructはclassの中に隠せるのかあ。
210デフォルトの名無しさん:2001/03/19(月) 23:01
しかしDelphi Techとの違いがわからん
211デフォルトの名無しさん:2001/03/20(火) 20:58
ルール決めてください。>>210
212:2001/03/20(火) 21:42
Techスレは夢や理想を語る場になってたので Q&A系はこちらと作ったのですが
213デフォルトの名無しさん:2001/03/20(火) 21:54
あそこは夢や理想をを語る場だったのですか!
214:2001/03/20(火) 22:54
いや Techの55付近から暫くの流れはね
215君だよ。キミ:2001/03/20(火) 23:05
>>209
見えることと使えることは別。
implement 部以下を公開しなけりゃどちらにしろ再コンパイルできないんだから、
interface 部を編集したものをドキュメントとしてつければいいのだ。

コンポーネント/ライブラリの再利用者が必要としているのは、結局のところ
使用可能な Public なインターフェースだけなのだから。
216209:2001/03/20(火) 23:50
>215
access modifierがpublicなメソッドでも
implement部を公開しなければ、良い、というようにとれるのですが、
どういうことでしょうか?
217209:2001/03/20(火) 23:57
ああ、いいたいことがわかったかも。

>コンポーネント/ライブラリの再利用者が必要としているのは、結局のところ
>使用可能な Public なインターフェースだけなのだから。

それはわかるのですが、それならば使用可能部分以外は
できれば見せたくないというわけです。
interfaceって名前がついているわけだし。
でも、簡便だから仕方が無いのかな。
218デフォルトの名無しさん:2001/03/21(水) 01:16
.dcu配布すれば万事解決。
219デフォルトの名無しさん:2001/03/21(水) 01:51
>217
ごめん。商業配布の話かと思っています。

うちは Private/Protected を削除するためのフィルターを使っています。
implement から下はばっさり削る。
220デフォルトの名無しさん:2001/04/23(月) 09:01
DelphiでHTTPSを扱えるコンポーネントってないですか?
221すいません:2001/04/23(月) 09:09
Win API32 by Object Pascal of Delphi
http://www.geocities.co.jp/SiliconValley-PaloAlto/9095/top.html
が見れなくなってるんですがどうなんでしょうか?

DelphiでVCLを使わないでWindowsAPIのみのアプリの作り方が
非常に詳しいページだっただけにどうなのか気になってます。
222デフォルトの名無しさん:2001/04/23(月) 09:50
>>221
ハンドル名/通称を Halbow から paramag に変えたから
後始末してるんじゃないの?
223turbo type D:2001/04/23(月) 10:26
>>671
>ムカツク仕事だと、家に帰ってきてもやる気ゼロだし。
>今はムカツク仕事だから、やる気ゼロ。

わかるーー。
愚痴りな.愚痴りな.

オレは仕事が忙しいと残業になっちまうから
スピード遅くなるのがくっきりわかるけど。

まーーーったく関係ないけど、
「こげぱん」って絵本、お勧めだよ。
ヤサグレ極限キャラに共感を覚える。
224デフォルトの名無しさん:2001/04/23(月) 10:32
>>223
なににコメントつけてる?
225turbo type D:2001/04/23(月) 10:32
あり?
投稿先間違えた.(w
226turbo type D:2001/04/23(月) 11:00
ではついでに聞いておきます。

http://www.din.or.jp/~chiru/qanda/a061.html
ここの情報って本当?
今までFindFirst Nextでやっていたのだけどダメなのか。
227デフォルトの名無しさん:2001/04/23(月) 11:07
>どうもこの関数は挙動がおかしくないですか
っていわれてもねぇ。どうおかしいか教えてくれてもいいと思うし,
ソースも付いているから調べりゃいいのに。
228turbo type D:2001/04/23(月) 11:32
APIがおかしいんじゃない?

確か特定フォルダアイコンを変更するような事をしていると
そのフォルダは探索しないらしい

試してみたら確かに探索されない。
229デフォルトの名無しさん:2001/04/23(月) 15:26
>>228
FindFirst, FindNext 関数はファイルシステム上のファイルを検索する関数だから
「マイコンピュータフォルダ」や「コントロールパネル」などの仮想フォルダは
当然引っかからないよ。って話じゃないの?

>確か特定フォルダアイコンを変更するような事をしていると
>そのフォルダは探索しないらしい

これどうやるの?
230デフォルトの名無しさん:2001/04/23(月) 15:48
>>226

ディレクトリやファイルをトラバースするなら FindFirst系でOK。
ネームスペースオブジェクトを対象にするなら 226 のリンク先の
ようにする必要がある。
231turbo type D:2001/04/23(月) 15:53
>>229
マドのテやKHIconMagicをインストールすると出来るようになる。
IE4以降かな。
232229:2001/04/24(火) 16:41
>>231
試してみたが、ちゃんと FindFirst系で引っかかったぞ。

ただ FindFirst でファイル属性に faDirectory のみを指定では駄目で
faAnyFile でうまくいった。これは、アイコン変更したフォルダに
システムファイル属性が付いているからだと思う。

結論から言うと>>226の情報はガセだな。>>226の人は faDirectory のみを
指定して検索したのだと思われるが、これだと隠し属性が付いたフォルダも
検索されないのでまずいよ。
233turbo type D:2001/04/24(火) 18:22
では、フォルダだけを探索したい場合は
Attrになにを指定したらいいのかな。faSysFileか?

いままで、フォルダなら
faDirectory
通常のファイルだけの探索なら
faAnyFile - faDirectoryで
うまく動いていたのだが。

faDirectory or faSysFile



faAnyFile - (faDirectory or faSysFile)
とする必要がある?

詳しく調べてないので
よかったら教えてください。
234turbo type D:2001/04/24(火) 18:57
といいつつ、
自分でも気になったので調べたら
そうみたいだ。

通常ファイルは
faAnyFile and (not (faDirectry or faSyaFile))
と指定する必要があるんだね。
235turbo type D:2001/04/24(火) 19:22
>>233-234
前言撤回。faAnyFileで探索したあとDirectoryExistsで
調べた方がいい。少なくともオレはそうした。
236229:2001/04/24(火) 20:57
>>235
というか、TSearchRec.Attr を見ればディレクトリか判断できる。

if FindFirst('c:\*.*', faAnyFile, F)<>0 then
begin
 if F.Attr and faDirectory<>0 then
  //このファイルはディレクトリである
else
  //このファイルはディレクトリではない
end;
237229:2001/04/24(火) 20:59
インデントミスった…

if FindFirst('c:\*.*', faAnyFile, F)<>0 then
begin
 if F.Attr and faDirectory<>0 then
  //このファイルはディレクトリである
 else
  //このファイルはディレクトリではない
end;
238turbo type D:2001/04/24(火) 22:14
>>229
サンクス。229ので動作も確認.問題なしね。
239デフォルトの名無しさん:2001/04/26(木) 06:17
質問です。
先に作ったボタンなどを、GUIであとからグループ化はできるのでしょうか?
どうも、groupboxの上に乗ってくれない。
オブジェクトをカット&ペーストできればいいのですが。←これもできたりして・・・
240デフォルトの名無しさん:2001/04/26(木) 06:52
>>239
Bottunを選択->切り取り->GroupBoxを選択->貼り付け
241turbo type D:2001/04/26(木) 10:02
カットしてテキストエディタに貼り付けという事も
よくやる。
242239:2001/04/27(金) 23:13
ありがとうございました。
ポップアップになかったのでてっきり「無い」のかと思ってました。
まさかメニューに在るとは・・・初心者な質問で申し訳なかったです。
243デフォルトの名無しさん:2001/05/02(水) 03:59
age
244素朴な疑問なんですが:2001/05/04(金) 14:58
例えば

TClassA = class
....
end;

のようにclassの後の継承先を省略すると自動的にTObjectからの継承になる
わけですけど、それじゃTObjectって何を継承しているんでしょうか?

TObjectのソース見たら

TObject = class
....
end;

のようになってたのでTObjectはTObjectを継承してる???あれあれ???
って思ったんですが、ここら辺のことご存知の方いらっしゃいますか?
245デフォルトの名無しさん:2001/05/04(金) 15:34
TObjectはなんも継承していないです。以上。
246デフォルトの名無しさん:2001/05/04(金) 16:40
すいません教えてください。
DateTimePickerの日付を、別に作ったボタンで進めたり
戻したりするのは、どうすればいいのでしょうか?
バージョンは、3.1です。
247デフォルトの名無しさん:2001/05/04(金) 17:15
procedure TForm1.Button1Click(Sender: TObject);
begin
 DateTimePicker1.Date := DateTimePicker1.Date +1;
end;
248素朴な疑問なんですが:2001/05/04(金) 17:36
>>244
ではTObject = classのclassはobjectとしても同じ意味なんですね?
249turbo type D@モナぢら:2001/05/04(金) 17:56
>>248
それは古い記述方法ではないかしら?

TA = object
は今では使わないですよ


塚越なんとかさんのDelphiオブジェクト指向とかいう
本をよめば書いてるだけど、わすれてしまった。
250デフォルトの名無しさん:2001/05/04(金) 18:00
>>248
違ってくるはずです。

THogeMoge = object
って、移植以外に使い道あるんだろうか?
251turbo type D@モナぢら:2001/05/04(金) 18:03
http://home1.infonia.ne.jp/~delphian/delphi/history/bookrank2/book.html
新しいDelphi本ってあまり出てきませんね。

インターネットで情報収集してしまうから
技術系書籍って売れないのかな。
252デフォルトの名無しさん:2001/05/04(金) 19:14
>>247
どうもありがとうございました。
これで今日半日悩んじゃいました。
253デフォルトの名無しさん:2001/05/04(金) 20:09
ちゃんとした質問なら、答えてくれる人は多いと思うので
半日も悩まなくてもいいかも。

悩む前に検索という手もありか。
http://www2.big.or.jp/~osamu/Delphi/
http://www.sakaki.keiaikai.or.jp/convroom/webconv.exe/search
254素朴な疑問なんですが:2001/05/04(金) 20:17
>>249
読みましたけどclassだけだとTObjectを継承するクラスになるのに対して
objectだと1からクラスが書けるとあったんですけど、そのTObject自身が
ソース見るとclassだけで記述されているんでどういうことなのか疑問に
思ったんですけど単にコンパイラの仕様なんですかね?
255デフォルトの名無しさん:2001/05/05(土) 09:35
>>254
Systemユニットに記述されている内容は、コンパイラが特別扱いしていることが
多いんじゃないかな?素直にそういうものだと考えた方がよい。
256デフォルトの名無しさん:2001/05/05(土) 16:18
age
257デフォルトの名無しさん:2001/05/06(日) 01:05
http://quote.yahoo.co.jp/q?s=9984.t&d=b

の対数チャートを作りたいのですが、以下の
時系列データを使って、どの様にすれば
実現出来るでしょうか。

http://chart.yahoo.co.jp/w?s=9984.t

Delphiにはlog関数という対数に関係ありそうな
関すがありますが、ヘルプを見ても理解できません。

馬鹿でゴメンナサイ。心優しき方、ぜひご指導下さい。

宜しくお願いします。
258デフォルトの名無しさん:2001/05/06(日) 01:25
何がわからんの?ln()が自然対数で、あとlog2とlog10が用意されてる。
対数チャートがどんなもんか知らんけど、y:=ln(x)/ln(a)とすれば
yにxのaを底とした対数が代入される。これじゃ駄目なの?
259デフォルトの名無しさん:2001/05/06(日) 01:26
>>258
それがわからなかったのじゃ...

いぢわるだなあ
26066です:2001/05/06(日) 01:42
258さん、259さん、ご指導有難う御座います。

返事を何度も読み返して理解中なので、少し
考えさせてください。
261257です:2001/05/06(日) 01:43
66じゃなかった、257です
262>260:2001/05/06(日) 06:00
>>260
って言うより数学がわかってないんじゃない?
258さんの式見てすぐに理解できないんじゃ
数学やり直したほうがいいよ。

っていうか対数ぐらい自分で調べろ!
263デフォルトの名無しさん:2001/05/06(日) 21:10
Becky!2のプラグインの作り方を教えてください。
264デフォルトの名無しさん:2001/05/06(日) 21:14
ageわすれ
265厨房:2001/05/09(水) 23:28
素朴な疑問です

なぜ、型宣言でstringは小文字から書くのにIntegerは大文字なの?(VCLにおいて)
266デフォルトの名無しさん:2001/05/09(水) 23:55
stringとIntegerは作った所が違う>265
267デフォルトの名無しさん:2001/05/10(木) 00:03
ほんとかよ。(w
268turbo type D:2001/05/10(木) 00:06
ようやく
Delphiオブジェクト指向読んできたよ。

>>254
object指令は静的オブジェクトを生成するんですね。

構造体じゃあるまいし
静的オブジェクトは使いにくいですよ。
269デフォルトの名無しさん:2001/05/10(木) 01:02
というか、大文字小文字の区別がないんですね、Delphi。
そこらへん、嬉しいような嬉しくないような。
どうも気になって大文字小文字を気にしながら打ち込んでいるのですが、
ふと我に返ると「これって意味ないんかな」とか思って少し鬱。
かといって区別されるとそれはそれで困るんでしょうね。
270デフォルトの名無しさん:2001/05/10(木) 07:31
>>265
Reserved 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.
271turbo type D:2001/05/10(木) 09:58
んー、じゃあどうしてIntegerのIは先頭大文字なのでしょ?
272デフォルトの名無しさん:2001/05/10(木) 13:59
>>268
激しく同意。
静的なんていう名前がついているんでしたっけ。
名前すら完璧に忘れてた。

VCLに見放されているという点を差し引いても
旨み何にもないんだもん。使いたいと全く思わない。

TurboPascal7までのユーザーは
さぞかし苦労してたんだろうな…。

ん?触ったことないんですが、もしや
往年のOWLとかいう奴は
静的云々を使って実装されてたのでしょうか?
あと、TurboVisionも…静的だよね?(w
273たま:2001/05/10(木) 18:19
フォームへのファイルのドラッグ&ドロップを
一番簡単に実装させる方法って何かありますでしょうか?
「ファイルドロップコンポーネント」というのを
使ってみたのですが、いまいちよくわかりませんでした。
delphi4です。
274turbo type D:2001/05/10(木) 19:56
>一番簡単に実装させる方法って何かありますでしょうか?
「ファイルドロップコンポーネント」というのを
使うlコトです。(藁

スマソ。
275デフォルトの名無しさん:2001/05/10(木) 20:17
印刷がうまくいかなくて困っています。
pagecontrol-tabsheet上のstringgridの印刷をしたいのですが、pages[i].painttoメソッドを用いると
ウィンドウに表示されている部分しか印字されず、また非常に小さく印刷されます。(プリンタの解像度で印刷されている?)
form.printscaleを変更しても同じでした。用紙いっぱいにstringgridを印刷したいのですが・・・。
helpを見ながら、他にもいろいろとメッソドを試したのですがダメでした。
初歩的な質問ですみませんが、どなたか教えていただけないでしょうか?
276デフォルトの名無しさん:2001/05/10(木) 20:22
>>272
QuickRepじゃだめ?
277デフォルトの名無しさん:2001/05/10(木) 20:50
>>273
ホレ

//生成時パラメータの設定
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;
278277:2001/05/10(木) 20:51
これをForm1の宣言部に忘れずにな
procedure CreateParams(var Params: TCreateParams); override;
procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;
279デフォルトの名無しさん:2001/05/10(木) 22:40
>>275

Delphian WorldにStringGridの中身を印刷するコンポ
があるので使ってみては?(Systemのところ)
http://home1.infonia.ne.jp/~delphian/delphi/index.html

もしStringGridでセルの内容をOnDrawCellで書かずに
StringGrid1.Cells[0,0]:='sage';
ってぶち込んでるだけなら一発で印刷できまっせ。
280デフォルトの名無しさん:2001/05/10(木) 23:02
質問
Delphiは初心者でもはじめれますか?
281275:2001/05/10(木) 23:33
>>279
レスありがとうございます。
表示にはOnDrawCellを用いています。
先ほど、コピーはあきらめて直接プリンタのキャンバスに描画を試みたのですが、
やはり、ウィンドウに表示されている部分(見えている部分)しか印字されません。
282turbo type D:2001/05/11(金) 00:08
はじめ"ら"れます。ウフ>>280
283たま:2001/05/11(金) 01:23
>>277-278
きゃぁ!すげぇありがとうございます!!抱いて!!
早速組み込んでみます。実はMP3プレーヤーを作っておりまして、
なんとかドロップできないかと3日3晩悩んでました。
まじありがとうございます。

>>280
vb、vcと挑戦してhelloworldで挫折した私でも、
始めて2日でとりあえずは動くMP3プレーヤーが作れました。
delphiって凄いなぁ。
284279:2001/05/11(金) 01:37
>>281

OnDrawCellでバキバキに書いてるなら、
プリンタのデバイスコンテキストに自前で書くしかないっすね。

>先ほど、コピーはあきらめて直接プリンタのキャンバスに描画を試みたのですが、
>やはり、ウィンドウに表示されている部分(見えている部分)しか印字されません。

普通にやればいいんだけど、参考までにサッキあげたURLから
コンポ落としてソース見てみてください。それが一番参考になるんじゃないかな?

もしくはDelphi4プログラミング技法Vol1に印刷は詳しく載ってま〜す。
285たま:2001/05/11(金) 01:55
>>277-278
実装できました。ホントありがとうございます!!
初歩的(ですよね?)な質問にもかかわらず、親身にご解答下さった
[277-278]様、及び温かく見守ってくれたこのスレの方々に感謝。
286277:2001/05/11(金) 05:06
>>285
http://www2.big.or.jp/~osamu/Delphi/
とりあえずな、次回からは質問の前にここの検索を使え。
わからないことがあったらまず、DelphiTips、
もしくはDelphi-ML過去ログ、Builder-ML過去ログの検索を使うのだ。

ちなみに、今回の質問はDelphiTipsの検索で「ドラッグ&ドロップ」を入力して一発で答えがでる。
Are you OK?
287275:2001/05/11(金) 08:43
>>284
いろいろとアドバイスありがとうございました。
そのようにやってみます。
288たま:2001/05/11(金) 09:36
>>286
な、なんて便利な!
うっす!ありがとうございます!精進しますっス!
289デフォルトの名無しさん:2001/05/29(火) 11:00
ペンとかフォントを一時的に保存して使いたいとき
  C++ならどこでも変数宣言出来るからいいんだけど・・・

今こんなふうにやってるんだけど
with TPen.Create do
 try
  Assign(Canvas.Pen);
  Canvas.Pen.Assign(DrawPen); みたいにペンを取り替えて
  ・・・ この間に描画・・・・
 finally
  Canvas.Pen.Handle:=Handle; <=これが格好悪い
  free;
 end;

これで何か問題あるのかな? それからもっといい方法ある?
290デフォルトの名無しさん:2001/05/29(火) 14:54
送るメニューに登録できる専用のAPIが
合ったと思うのですが、忘れてしまいまして。
教えていただけませんか?
291デフォルトの名無しさん:2001/05/29(火) 17:28
>>290
専用のAPIは最近使ったファイルに追加するやつじゃなかったけ?
送るに追加なら,

ショートカットを作って,Sendto フォルダに書き込む.

でインじゃない.IShellLink で調べてみれ.
292デフォルトの名無しさん:2001/05/29(火) 17:45
293290:2001/05/30(水) 01:54
>>291-292
どもども。これでもいいんだが、
SendToのみに作る専用のAPIがあったんだよ。
なんだったけなぁ。Googleで検索しても
出てこないんだよ。APIの名前さえ分かれば...
294290:2001/05/30(水) 02:01
やっぱ勘違いかもしれないなぁ。
IShellLinkでやりますわ。
お手数掛けました。
295デフォルトの名無しさん:2001/05/30(水) 09:45
特殊フォルダのパス取得の事ではあるまいか?
296名無しさん:2001/06/06(水) 21:30
DelphiXって、なんでリファレンス以外に実ソース解析しか理解する方法ないの?
どっかにマシなチュートリアルないのかぇ
本買ったが、添付Helpとサンプル印刷しただけじゃん。鬱。
297デフォルトの名無しさん:2001/06/07(木) 09:49
条件式が非常に多い場合、以下のような書き方をしているのですが、この場合、
コンパイラはショートサーキット評価のコードを生成しないのでしょうか?
つまり、条件式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;
298デフォルトの名無しさん:2001/06/07(木) 09:50
>>297
生成されたコードをみれ世・・・。
299turbo type D:2001/06/07(木) 09:54
されなかったと思う。
MLではるか昔話題になっていたような。
300turbo type D:2001/06/07(木) 09:59
function AAA: Boolean;
begin
 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;
適当に値変えて動かしてミソ
301デフォルトの名無しさん:2001/06/07(木) 16:04
>>297
ヘルプの「ショートサーキット論理式評価」でも見てみな。
最後まで評価されるかどうかは、コンパイラ指令によって変わる。

つーか、DelphiML過去ログとか検索しようよ。
302301:2001/06/07(木) 16:05
スマン。ここはMLじゃないから、過去ログみろってのは安易に言うべきでなかったか。
303デフォルトの名無しさん:2001/06/10(日) 18:28
あげ
304デフォルトの名無しさん:2001/06/12(火) 13:16
他アプリで反転表示(選択中)の文字列とかって
取得可能でしょうか?
305turbo type D:2001/06/12(火) 13:54
がんばったら出来る。(藁

ToClipHyperってアプリではかなりがんばってる模様。
アクティブなWindowのハンドルに'Ctrl+C'送って
クリップボード見るのが無難じゃないかな?
詳しくしらないから、がんばって。
306turbo type D:2001/06/12(火) 13:58
GExpertsでフリーカーソル無効に出来る?
307デフォルトの名無しさん:2001/06/13(水) 06:42
>>306
出来なかった気がする。
フリーカーソル嫌い?俺はマンセーなんだが。
308305:2001/06/13(水) 12:35
>>305

がんばってみます.
309デフォルトの名無しさん:2001/06/13(水) 13:22
Array of char → Stringの変換って、できますか?
NMUDPで送信したいんですが、Stringが使えないんですよね・・・。
310turbo type D:2001/06/13(水) 14:00
>>307サンきゅ.
すきだよ。フリーカーソル。
311デフォルトの名無しさん:2001/06/13(水) 16:22
VCLってDelphi?
312デフォルトの名無しさん:2001/06/13(水) 16:42
>>311
VCL=Delphiではない。

簡単に言えば
ObjectPascal+VCL=Delphi
C+++VCL=C++Builder
C+++MFC=Visual C++

識者のツッコミは却下。
313デフォルトの名無しさん:2001/06/13(水) 18:11
VCLってのはそれじゃあなんなんですか?
検索したらDelphiのページにしかつながらなかったので
Delphiかと思ったのですが...
314デフォルトの名無しさん:2001/06/13(水) 18:25
VCL=Visual Component Library
部品を組み立てるような感覚で、GUIなアプリケーションが作ることができるライブラリ。

こちらも識者のつっこみは却下。
315デフォルトの名無しさん:2001/06/13(水) 18:28
Visual Component Library
Delphi,BCBの使っているコンポーネントライブラリ。

KylixはCLX(Component Library for Cross Platform)
Delphi6は両方のライブラリをサポート。
316デフォルトの名無しさん:2001/06/13(水) 18:47
Visual C++の例も書いたのに・・・。
317turbo type D:2001/06/13(水) 21:07
>>311
何が聞きたいのかがサパーリ(w
318デフォルトの名無しさん:2001/06/13(水) 22:20
これはためした?

Delphi/BCB5フリーカーソル無効化アドイン
http://homepage1.nifty.com/fuu/software/nonfreecursor.htm
319デフォルトの名無しさん:2001/06/13(水) 22:42
もうおなかいっぱいだよー
食べられないっすよー
320デフォルトの名無しさん:2001/06/13(水) 23:18
>>318
横から戴いたYo!超超超イイ感じになったYo!大謝!
321デフォルトの名無しさん:2001/06/14(木) 00:26

(゚Д゚)チョウ(゚Д゚)チョウ(゚Д゚)チョウ
(・∀・)イイ! カンジ!
(゚Д゚)チョウ(゚Д゚)チョウ(゚Д゚)チョウ(゚Д゚)チョウ
(・∀・)イイ! カンジ!
322デフォルトの名無しさん:2001/06/14(木) 01:01
>>318
サンクス。
いや、GExpersで出来るかどうかを知りたかったんだ。
一応それはチェキしてる〜♪
323デフォルトの名無しさん:2001/06/14(木) 05:46
>>318
フリーカーソルマンセーなんで、
選択範囲のTab, Shift+Tabだけほしー。
Ctrl+Shift+I, Ctrl+Shift+Uでもできるけど、やっぱ直感的なほうが・・・。
324デフォルトの名無しさん:2001/06/14(木) 10:28
>>320&322
おっさん達、気持ちは若いな(´д`;)
325turbo type D:2001/06/14(木) 11:06
>>324
気持ちだけだYO...(´д`;) ウチュダ....
326デフォルトの名無しさん:2001/06/14(木) 11:30
汎用の数クラスを作って 後で複素数とかに拡張したくて
type 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;

じゃ駄目だけど、何か方法あるんだろうか?
327326:2001/06/14(木) 11:37
インターフェースに
function 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;

とやれば出来るけど・・・
328デフォルトの名無しさん:2001/06/14(木) 16:22
>>326
Kylix/Delphi6 なら、部分的な演算子オーバーロードができるんだが。
329デフォルトの名無しさん:2001/06/14(木) 16:33
>>328
詳細キボン
330デフォルトの名無しさん:2001/06/14(木) 16:35
>>328
マジ?! 本当なら超うれしいのだが。
331デフォルトの名無しさん:2001/06/14(木) 18:19
>>328
マジかよ。Delphiも終わったか。
332デフォルトの名無しさん:2001/06/14(木) 18:39
がせ
333デフォルトの名無しさん:2001/06/14(木) 18:41
http://www.oreilly.com/news/kylix_0800.html
>Arithmetic operator overloading
334デフォルトの名無しさん:2001/06/14(木) 19:15
>>333
具体的にどんな感じになるの?
335デフォルトの名無しさん:2001/06/14(木) 20:00
>>334

procedure TForm1.Button1Click(Sender: TObject);
var
x, y : Variant;
begin
x := VarComplexCreate(0, 1);
y := x * x;
Label1.caption := y;
end;

で Label1 に '-1 + 0i' とでる。
336デフォルトの名無しさん:2001/06/14(木) 20:43
それひょっとして、
http://www.borland.com/delphi/del6/featurematrix/hpnative.html
の、
>Complex Number support via custom variants
の事?
337デフォルトの名無しさん:2001/06/14(木) 21:45
>>326
asじゃなくてTFloatNum(A)じゃできない?
338デフォルトの名無しさん:2001/06/14(木) 22:33
Free Pascalは Operator Overloading出来るらしいが
まさか真似するわけにはいかんだろう。

http://www.freepascal.org/docs-html/ref/node12.html
339デフォルトの名無しさん:2001/06/15(金) 05:47
>まさか真似するわけにはいかんだろう。
いや、やっぱ他製品のいいところは取り入れてもらわねばねー。
って、OperatorOverloadingがいいかどうかは別として・・・。
340326:2001/06/15(金) 07:32
>>337 それは駄目でした。 結局>>327しか無いのかなあ・・・

複素数くらいは使いたいって気持ちはあるけど、それとは別に
326は数式処理の実装を分けたかったんだ。

どっちかいうとテンプレートもどきが欲しいなあ、でも

uses MyFormura TFormura(Extended) as TFloatFormura ;

みたいな感じにしたいとすると、型を拡張するには演算子も
オーバーロード出来ないと駄目か
341337:2001/06/15(金) 08:41
>>340
コンパイルとおったよ?
>procedure TFloatNum.mAdd(A, B: ImNum);
このImNumってINumericとは違うの?
342337:2001/06/15(金) 08:49
age
343326:2001/06/15(金) 10:21
レスありがとう >337

それはコンパイルは通るけど、意味のない型変換みたいです。
実際にやっても、値は取り出せませんでした。

ImNum は Inumeric と同じです。 スミマセン
344326:2001/06/15(金) 11:36
具体的な方がいいかもしれないから up しました
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/mformula.txt

こんな感じの事がやりたかったのです
345デフォルトの名無しさん:2001/06/15(金) 12:45
Varientはある種テンプレートクラスの様な”何でも屋さん”
だな。Delphi6で唯一言語強化点であるし、
(ユーザ型バリアントetc. VB.NETがバリアント排除しようとしてるの
に逆行的・・・)

前者が実行時に、後者がコンパイル時に負荷かかる点が
違うけど。
346337:2001/06/15(金) 19:12
>>343
解決方法が思いつかないので、
インタフェースを継承したいんだったら、interfaceじゃなくて
classをつかったら?
参照カウンタが欲しいんだったら・・・。うーん。
347326:2001/06/15(金) 23:13
>>346
うーんクラスだとメモリ管理面倒かと思ったもんで
でも、ちょっとデバックしたり追加してたら >>344 グチャグチャになってしまいました

なんか インターフェースに GetObject とか GetClassとか必要に
なっちゃうのは、これは自分の切り分けが下手なんだろうなあ・・・・
348326:2001/06/16(土) 17:12
とりあえず、
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/mformula.txt

複素数型で数式処理が出来るようになりました。
DelphiではC++と違って複素数型の扱いが不便。
そこで、文字列で式を与えたら計算させたらどうだと作り始めたのですが
やっぱりテンプレートが欲しいです
349326:2001/06/16(土) 23:12
procedure の場合継承後に親を呼ぶのは inherited でいいけど、
function の場合どうやればいいんでしょう?

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) ;とやっても 自分が呼ばれてしまいますよね
350 :2001/06/16(土) 23:20
Result := inherited func(hoge);
だったような
351デフォルトの名無しさん:2001/06/17(日) 06:55
Result := inherited func;
でもいいだよな、確か。
実は、引数がいらない。
352デフォルトの名無しさん:2001/06/17(日) 06:56
あ、もともと引数がないoverload関数があるとダメだねこりゃ
危険危険。
353326:2001/06/17(日) 07:08
>>350
なるほど。それでOKでした。
自分の親の時は引数あってもiherited だけでいいんだと思い込んで
inherited だけでは帰り値が互換性の無い型と出たんで
関数の時は違うんだと思い込んでました。
354デフォルトの名無しさん:2001/06/18(月) 17:07
現在VBでプログラミングしているんですが、
delphiに転向しようかと思っています。

VBと比較して、実行速度とかはどんなもんでしょう。
355デフォルトの名無しさん:2001/06/18(月) 19:35
>>354
Delphian Worldにその辺のドキュメントがあるよ。
具体的には以下のアドレス参照。

http://home1.infonia.ne.jp/~delphian/delphi/compo/document.html
356デフォルトの名無しさん:2001/06/18(月) 20:08
>>354
出来上がった実行ファイルだけでなくコンパイルスピードも
早い。VBの経験からは信じられないかもしれないがDelphiでは
デバッグ時(IDE内での実行)も毎回コンパイルしている。

実行ファイルの具体的なスピードについてはこちらを参考にしてくれ。
http://home1.infonia.ne.jp/~delphian/delphi/compo/document.html

マンデルブロート図形の描画では実際5.5倍ほどの差が出た。
357354:2001/06/18(月) 21:32
なんか良さそうだなぁ。<delphi

VBとかperlは大体おっけーで
VC++でつまずいた私はちゃんと始められるでしょうか?

試用版とかないのかな?
http://www.borland.co.jp/delphi/d5sku.html
ここ見た感じだと、pro版くらい欲しいなっていう感じなんだけど、
6万はちょっとすぐには出せないし。

あぁ。もうっ。

らーにんぐえでぃしょんにしとこうかな〜。
358turbo type D:2001/06/18(月) 21:38
>>357
エンタプライズ版の60日限定モノがあるYO.
VB使えたら余裕っす。

参考にドゾ。
http://www.borland.co.jp/delphi/vbusers.html
http://homepage2.nifty.com/boheme/delphi/vbtodel/index.html


かんけないけど、仕事だるすぎ。

月曜日から、こんな夜まで仕事したないっちゅうねん!!!
359D使いβ:2001/06/18(月) 21:40
ラーニングだったら今のうちに買った方がいい。
Delphi6では最下位エディションでは商用アプリの
ライセンスが付かなくなる恐れがある。

買ったら速攻ユーザー登録すればDelphi6のバージョンアップ
案内が届くかもしれない。
360354:2001/06/18(月) 23:28
情報サンクスです。
とりあえず、今週末あたりラーニング買ってみようかと思ってます
361デフォルトの名無しさん:2001/06/19(火) 08:30
D4Standard→D5Professionalバージョンアップの直販価格は33,600円。
D5Learning→D6Professionalも同じくらいになると思う。
362デフォルトの名無しさん:2001/06/19(火) 08:48
下位エディション買って、なれたころ(不満がでたころ)に上位のに買い換えるのが吉かと。
オレもいまはPro版使ってるけど、6万もポーンとだしていきなり買ったわけじゃない。
363デフォルトの名無しさん:2001/06/19(火) 09:53
なんかD使いの方ってsageで書く控えめな人多いですね。
364デフォルトの名無しさん:2001/06/19(火) 10:32
某Delphi製ソフトのスレに入り浸っている人が多かったりして(w
365turbo type D:2001/06/19(火) 10:38
じゃ、アゲます。
あーあ、今日も仕事か。欝だぁ

>>362
全く一緒。賢い消費者の買い方ですな。

キャンペーンを賢く利用して
フレッシュボランドキャンペでBCBLrn買ったら
Kylix買うとき-5000円になるので
正規にKylixが3万円以下で買える。
で得したキブーン。
しっかしKylixまだ買ってないんだよ。入れるマシソがないさ。
触る時間もないね。

あーあ、ウツだ。
Delphiマガジンの「アレイ外の何か」記事でも
熟読しておいた方がいいですか?
366turbo type D:2001/06/19(火) 10:41
>>364
時間がなくなって脱落シチャータYO、(TДT)ゴ・・・ゴルァァァァァ__

ビンボーヒマナシってやだなあ。
367デフォルトの名無しさん:2001/06/19(火) 11:30
>>366
気持ちはわかるが、今はオイムじゃねえぞ(禁止)ゴルァ! (w

ここで最新スレは追えるよ。
ttp://nh.mikage.to/test/read.cgi?bbs=discuss&key=992023119
368デフォルトの名無しさん:2001/06/19(火) 12:20
DelphiからVBで作ったDLLって呼べるのでしょうか?
369turbo type D:2001/06/19(火) 12:56
>>368
VBでDLLって作れるのでしたっけ?
煽りとかではなくて。
確か作れなかった気がする。
370D使いβ:2001/06/19(火) 13:16
>>368
OLEオートメーションとしてレジストされていれば可能。
もちろん実行するマシンにも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
371D使いβ:2001/06/19(火) 13:21
>>369
VB5からActiveX DLLっていうのが作れる。
名前の通りCOMサーバ。
372turbo type D:2001/06/19(火) 14:48
>>371サンクス。
ActiveXDLLって、どちらかというとDLLというよりActiveXだったので
思い浮かびませんでした。作ったこともなかったりするし。

今月号のCマガ、Dマガみたいになってる。すごいね。
373デフォルトの名無しさん:2001/06/19(火) 16:39
>>370
感激!(TT)どうもありがとうございます。
氏ぬほど助かりました。
374D使いβ:2001/06/19(火) 18:29
氏ななくてもいいけど、不用になったら、

>Regsvr32 /u Sample.dll

しときましょう。レジストリも限りある資源です。(わ
375D使いβ:2001/06/20(水) 11:01
そーいや前から気になってたんだが、Variant型の変数に
続くメソッド名やプロパティ名って実行時に名前解決されて
るんだよなー

コンパイル時は単に無視してるだけ?
376デフォルトの名無しさん:2001/06/20(水) 11:41
delphiが今後バージョンアップしないと別のスレの載っていたの
ですが事実でしょうか?
377デフォルトの名無しさん:2001/06/20(水) 12:03
>>376
コラコラ、デマ飛ばすんじゃない。
出所ぐらい書いとけ。
378turbo type D:2001/06/20(水) 12:23
>>376
ひつこいけど、煽りなのか?

事実じゃありません。
現に米ではすでにD6は出ています。

Delphiマガジンという雑誌には
D6の内容が紹介されているよ。
379デフォルトの名無しさん:2001/06/20(水) 12:27
>>376
いいかげんしつこすぎ(藁
380turbo type D:2001/06/20(水) 13:14
"ひつこい"と"しつこい"って
どっちが正しい日本語かって調べてみたら
"ひつこい"は訛りなのだそうだ。
381デフォルトの名無しさん:2001/06/20(水) 13:27
江戸っ子だね
382デフォルトの名無しさん:2001/06/20(水) 14:40
>delphiが今後バージョンアップしないと別のスレの載っていたの
>ですが事実でしょうか?

というカキコに敏感に反応している人たちは本当にそうなりそうで
恐怖を感じて生活しているってことでいいですね
383デフォルトの名無しさん:2001/06/20(水) 15:05
日本語版ではでないと聞いたのですがそれは本当なのでしょうか?
384D使いβ:2001/06/20(水) 15:16
>>382
まあそう勝手に思っていればいいでしょ。
どの製品使ったところで抱く不安はどれも一緒。
そうなった時の為に1つの製品・言語に囚われず手広く
やってれば問題なし。

今後はネタスレじゃないんだから不毛な書込みは控えてね。
385D使いβ:2001/06/20(水) 15:17
>>383
だから誰から聞いたの?
386デフォルトの名無しさん:2001/06/20(水) 15:27
バージョンアップしないという話はネタなんだろうけれど、
Delphiって売れていないのか?
387デフォルトの名無しさん:2001/06/20(水) 15:36
MSの製品と比較して売れてないとは思うが。
388デフォルトの名無しさん:2001/06/20(水) 16:00
>>385
ネタ煽りに反応するなや。
389D使いβ:2001/06/20(水) 16:07
>>388
スマン
390デフォルトの名無しさん:2001/06/20(水) 16:50
VBと比較しても売れてないかと思うが
BCBと互角くらいか?
391デフォルトの名無しさん:2001/06/20(水) 16:55
将来プログラマーとして働くにはdelphiよりVCをマスターした
方がいいのでしょうか?
delphiではどんな仕事があるのでしょうか?
マジレスお願いします。
392デフォルトの名無しさん:2001/06/20(水) 16:59
>>391
俺は客先から言語の指定がないのでDelphiで仕事してるけど。

でも上司が「なぜDelphiなんだ? C++でやれ!」とうるさい。
そんなに文句があるなら自分でやりやがれ、このFortran厨が(w

全然参考にならんな。すまん。
393デフォルトの名無しさん:2001/06/20(水) 17:18
>>391
なんでもいいんではないでしょうか。
仕事を始めてから覚えればいいんです。というか、仕事しないと
覚えられません。
394デフォルトの名無しさん:2001/06/20(水) 17:39
>「なぜDelphiなんだ? C++でやれ!」
そんなこといわれると、「なぜC++なんだ? 」って聞き返したくなるなあ(w
慣れてる言語でやるのがいいのにさ。
395デフォルトの名無しさん:2001/06/20(水) 17:40
>>391
VCでなくC++、C等、特定製品に依存しない部分を覚えるのがいいぞ。
DelphiはDelphiでいいと思うけどね。

>>393
同じく仕事で覚えた。
Z80ASM→N88BASIC→TurboC++→MS-C→LSIC-80→BorlandC++→C++Builder→Delphi
396デフォルトの名無しさん:2001/06/20(水) 17:52
>>394
100人以上いる社員の中でソフトを書く人は2人しかいません。
だから後継者を考えるとメジャーな言語で統一した方がいいということです。

後継者にDelphiを覚えさせりゃいいだけ。俺が書く規模なんてたかがしれてる。
397デフォルトの名無しさん:2001/06/20(水) 20:14
>>396
カッコいいです!
398デフォルトの名無しさん:2001/06/20(水) 20:20
Delphiも使えるプログラマ、ならいいけど、
Delphiしか使えないプログラマ、になると痛いけどね。
RADでしか仕事できないようになっちゃうと潰しがきかないから。

>>396さんのこと言ってるんじゃないですよ。一般論として。
399デフォルトの名無しさん:2001/06/20(水) 21:08
delphiで配列データを描画したいのですが、
どのような方法がありますか?
(アニメーションをさせてみたい)
400デフォルトの名無しさん:2001/06/20(水) 21:08
(・∀・) 400!
401デフォルトの名無しさん:2001/06/20(水) 21:19
>>399
書かれている意味が全くわかりません。こういう事ですか?

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;
402399:2001/06/20(水) 21:22
>>401
あ、ちがうです。ピクセルに対応したRGB配列に従って
描画したいのです。
わかりにくくてすみません。
403デフォルトの名無しさん:2001/06/20(水) 21:31
(゚Д゚)y─┛~~ 403!
404デフォルトの名無しさん:2001/06/20(水) 21:37
>>402
ピクセル単位で?
効率悪すぎるぞ
405399:2001/06/20(水) 21:49
>>404
どうだと効率よいのですか?
イメージとしては、今3Dのrendering engineを作ろうとしているのですが、
そのためにRGBの配列に書き込んでそれをダブルバッファリングするなりして
描画したいのれす。
406デフォルトの名無しさん:2001/06/20(水) 21:51
Cancas.Pixels[x,y] := TColor(Ary[I]);
かな?TBitmapのScanLineプロパティの方が早そう。
407406:2001/06/20(水) 21:53
X Cancas -> O Canvas

DelphiXの中のTDIBにもScanLineプロパティあります。
408406:2001/06/20(水) 22:01
それともTImageListに格納しておいて一気に描画したほうが
早い?
409デフォルトの名無しさん:2001/06/20(水) 22:05
余程フローに自身があるのならアレだが、
GL使うってのはNGなの?
410turbo type D:2001/06/20(水) 22:32
>>398
オレ昔はDelしか使えなかったんですが
結局他言語の仕事が入ったら適当に出来るようになったんで、
本人さえ少しやる気だせば潰しなんてどこでも効くと思うよ。

でも
やっぱ慣れている&Delphiがいろんなことがやりやすい
ので
生産性とか考えると、普通の業務アプリ仕事では
Delphiしか使う気にならないんだけどね。

逆にRAD嫌いってのも相当、痛いよ。

Javaサーブレットに適当なテストプログラム動作させるときに
ある関数を作っていて
普通、JBでボタン作って一瞬でテスト可能&
トレース実行でデバッグ完璧なのに

JBの使い方知らない&当然GUIの作り方知らない
からってサーブレットごと稼動させてテストしちゃう人もいるし。
411399:2001/06/20(水) 22:40
>>406
ありがとうです。pixelは試してみましたが
毎回更新をかけているのか遅いのでダメです。(><

>>409
OpenGLやDirectXの方が実用的だとは思いますが、
勉強のためにpolygonやlineの描画から実装したいと思いまして。
412399:2001/06/20(水) 22:58
http://www.asahi-net.or.jp/~HA3T-NKMR/vcl2-7.htm

たぶん解決しました。私がやりたかったのはこんなことでした。
レスくれたみなさんどうもありがとうございました。
413396:2001/06/21(木) 00:32
>>397
どこがカッコいいのかよくわかんないんですけど・・・。

>>398
ちょっと耳が痛いな。ダラダラ書けてしまう環境に慣れちゃってるので。
これでもC++ソース300本の独自ライブラリ構築とかやってたのに、
あの頃の勢いは一体どこへ。トシか?

>>410
一番楽に感じるのは何も考えずにソースデバッグが出来てしまう所。
BCBを選ばないのは、コンパイルが遅いのと、ANSI C++準拠なのに
標準的な書き方にとどまらない所。
414デフォルトの名無しさん:2001/06/21(木) 01:07
時間が出来たので久々にプログラムでもやろうと思ってます。
で、現行の5を買っても6への無料アップグレードって出来ないんですよね?
待ったほうがいいですか? すぐに必要ではないのですが、
あまり待たされるのも嫌なので。
415デフォルトの名無しさん:2001/06/21(木) 01:11
趣味でやるなら5と6はほとんど変わらないよ。
安定している5を買っちゃっていいと思うよ。
416 :2001/06/21(木) 01:42
>415
なんかそんな感じだね。
TListはどう変わるの?
417デフォルトの名無しさん:2001/06/21(木) 03:10
>>410
>JBの使い方知らない&当然GUIの作り方知らない

お前も十分イタイ(藁
418デフォルトの名無しさん:2001/06/21(木) 05:29
>>417
その次の行を読んでるか?
419デフォルトの名無しさん:2001/06/21(木) 05:55
DelphiでWin32APIでゴリゴリゲーム作ってるおいらはどうなるんですか。
それでもやっぱRADツール使ってることになるんかな。

>>399
TBitmapのScanLineは激重ですのでご注意を〜。
たぶん自前DIBでやったほうがいいよ。
420turbo type D:2001/06/21(木) 09:35
自分で読み直すとちょっと痛かったですな。スマソ

新しい物に対応する柔軟な頭を持つのは
どこにいたって大切ですよね。
421399:2001/06/21(木) 10:06
>>419
どもっす。DIBを使ってがんばりまっす。
422デフォルトの名無しさん:2001/06/21(木) 15:03
今、ポインタを使ってる部分を
function AddPtr(s:Pointer;d:Integer):Pointer;
var sp:PByte absolute s;
begin
 Inc(sp,d);Result:=s;
end;

みたいな関数作ってやってるんだけど、みんなはどうしてるの?
423デフォルトの名無しさん:2001/06/21(木) 15:13
>>422
俺はループの中で Inc(PByte(s),d) とやってます。関数を使うと
オーバーヘッド最悪では?
424422:2001/06/21(木) 16:05
>423 そうなんだけど
特定の位置から切り出してコピーとか
連続コピーじゃない時には、そういう訳にもいかないし
 CopyMemory(dp+dindex , sp+sindex , dsiz);
とか書きたい時
savedp::=dp; inc(dp,dindex);
 CopyMemory(dp+dindex , sp+sindex , dsiz);
dp:=savedp;

てな感じになるものなんだか
425デフォルトの名無しさん:2001/06/21(木) 16:25
>>419
"そういうAPIを使うコンポ"を自作したりはするでしょ?
それとも全部ベタ書き?

例えば畑違いだが、MIDIのAPI(MCIじゃない)を使った処理を毎回アプリにごりごり書くより
MIDIコンポを一発作っておいたほうが、当然ながら楽なわけで。
しかも(どっかの言語処理系と違って)コンポ化しても処理効率なんて全然落ちないし。
(他のコンポへの)ポインタとかもプロパティにしちまえば、アプリ作成はめちゃ楽。

…っていう話かなと思うんですが、どうでしょう?
426デフォルトの名無しさん:2001/06/21(木) 16:41
>>422
absoluteの使い方、はじめて見た。
ヘルプには説明これっぽっちも書いちゃいねえ。
type
ByteArray = array[0..High(Integer)] of Byte; // <--定義済みだけど。
PByteArray = ^ByteArray;
var
dp, sp : PByteArray;
dix: Integer;
begin
CopyMemory(dp[dix], sp[dix], dsiz);

でどう?
427デフォルトの名無しさん:2001/06/21(木) 16:45
>>426
これではダメかい?
>既存の変数と同じアドレスを占有する新しい変数を作成するには,
>アドレスではなく既存の変数の名前を absolute の後に記述します。
言語ガイドより。
428422:2001/06/21(木) 16:48
>>426
 おお、なるほど、 @dp^[dix] をそう書けるのですね?


次の疑問なんですが、
APIコール時によくある  dwInstance : DWORD にSelfを渡したい時
やっぱりabsolute使った無理やりなコードになりがちなんですが、これも
綺麗に書く方法は?

DWORD(self)は駄目ですよね?
429デフォルトの名無しさん:2001/06/21(木) 17:19
繰り返しでてる質問なんですが、Array[0..x] of CharとStringはキャスト不可能なんでしょうか?
430デフォルトの名無しさん:2001/06/21(木) 17:20
>>424
そういうときは
CopyMemory(Pointer(Longint(dp)+dindex), Pointer(Longint(sp)+sindex), dsiz);
と書いている。

または >>426 さんが書かれているように PByteArray を定義して
CopyMemory(@PByteArray(dp)[dindex], @PByteArray(sp)[sindex], dsiz);
でおっけー。

>>428
安易に absolute に頼るのやめましょうよ。ちなみに DWORD(Self) で良いのです。
ポインタのことをもっと勉強した方が良いと思います。
431419:2001/06/21(木) 19:43
>>425
レスthanx。
自分の場合、APIを使うコンポはほとんど作ってません。

ノンMCIなMIDI再生ルーチン実装した際も、class(TObject派生)化のみで終わらせました。
いや、コンポーネントにするとインストールが面倒なので。
あと、ソース配布時も相手側が面倒ですし。
というかそもそも、非VCLアプリだと場合、コンポーネント貼り付けられませんです(藁
(フォームなんてないので)
432デフォルトの名無しさん:2001/06/21(木) 21:57
陽子chanをいじめるな!
433デフォルトの名無しさん:2001/06/21(木) 22:39
>>429
PCharにキャストしてからStringにキャストできないかな?
試してないんだけど。
434デフォルトの名無しさん:2001/06/22(金) 02:01
>非VCLアプリだと場合、コンポーネント貼り付けられませんです(藁

わはは。まぁそれは有るか。
ただ、うざいならIDEにInstallせずに使うという手もあるわけで、
それはそれかなと。あと単なるCompositeパターンを組むレゴブロック
(?)として使うという手もあり、つまり親子関係をテキトウに作っておけば
最後に消すときに頂点一発殺すだけで全部死ぬので楽、というメリットも。
そんなこんなでComponents[]プロパティを結構くだらない用途に一杯使ってみたり。
まぁ今ならCollectionとか使うほうが良いだろうけど、
時としてD1で動くコードも書かないとならないし(藁

そういやガイシュツだけど「Installが面倒」ってのは
Delphiの鬱ポイントですな。
IDEにInstallするというスタイルにこだわりすぎ。
435422:2001/06/22(金) 09:51
>>430 ありがとうございます。了解しました。

複素数もどきの処理をしたいとき オブジェクト型を使うと
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 を付けると 実装時に定義が以前と違うというエラーが出ます
436デフォルトの名無しさん:2001/06/22(金) 11:15
>>433
Array of Charだとできるけど、Array[0..x] of Charだと駄目みたい。
Delphiって静的配列の扱いがいまいちよくわからない。
というか普通にポインターを使うことはできないんでしょうか?
437デフォルトの名無しさん:2001/06/22(金) 11:39
>>435
こんなことできるの?知らなんだー。マジで?
438デフォルトの名無しさん:2001/06/22(金) 11:40
>>436
PCharじゃだめ?
439422:2001/06/22(金) 12:07
>436
c:Array of [0..n] of Char;
への代入なら
StrLcopy(@c,PChar(fromStr),High(c));
440422:2001/06/22(金) 12:13
忘れてた。 逆の文字列型への代入はそのまま Caption:=c; みたいに代入出来ますよ

で、Object型の事なんだけど、資料が無いからよく判らない。
constructor destructorを定義してもC++みたいに、自動的に呼ばれる訳じゃない? みたい

まあ複素数もどきの場合は無理にデストラクタ定義する必要はないけど
Object型にClass型をメンバーに持たせたいような場合、
例外発生時に Class型メンバを解放する方法がないような・・・・

あ、だから<オブジェクト型の使用はお勧めできません>なのか?
441デフォルトの名無しさん:2001/06/22(金) 12:14
パスカルってどんな言語だったんですか?
442デフォルトの名無しさん:2001/06/22(金) 12:23
>>440
C++のstructみたいな感じなのかな・・・。
443デフォルトの名無しさん:2001/06/22(金) 12:23
そういや、Object型ってTurboPascal時代のものじゃなかったっけ?
互換性のために残してあるとかどうとか
444turbo type D:2001/06/22(金) 12:25
インターフェースややこしいな。でもって読みにくいような気も....
多重継承を許すT偽Objectクラスを作ってくれた方がありがたい。
が、だめ?

全然違うけど、こんなんもあるよ。

文字列による無限桁数数値演算ユニット
http://www.mogya.com/develop/kanjicalc/develop.html
445デフォルトの名無しさん:2001/06/22(金) 12:27
>>438
多分、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にコピーする
しかないと思うよ。キャストは無理臭い。
446デフォルトの名無しさん:2001/06/22(金) 12:34
>>444
暗号関連で巨大な素数を得たい時に、無限桁数数値演算ユニットが欲しくなるけど
演算子オーバーロードが使えないから、なんだかブチャイク。
文字列の扱いで例外的に適用してるんだから、ついでにこれも標準で実装して欲しい。
447デフォルトの名無しさん:2001/06/22(金) 12:45
>>446
Builderで実装されてる(C++だから当然か)から、出来ないはずはないんだけどね。
448422:2001/06/22(金) 12:47
>>442 C++のstructはclassとほぼ同じです public書かなくていいから
  ローカルに使う場合はclass代わりに使っていました。
 Objectは record型でメソッド使えますって感じみたい。

>>443 TurboPascalの日本語解説サイトって無いかなあ

>>444 それ面白いアイデアですね。
  http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/mformula.txt
 これに組み込もうかな
449turbo type D:2001/06/22(金) 13:07
>>448
面白いものがあるのですね。全然しらなかった。
伝説のギコBASICの末裔ですね。

無限桁数数値演算ユニット
には割り算の余り計算にバグがあったので修正必です
作者には連絡済みだけど忙しくて更新まだみたい。
必要があれば言ってください。

整数だけだけど、とてつもない数値を扱う場合かなり便利。
450デフォルトの名無しさん:2001/06/22(金) 13:42
Delphi の ツールバーやメニュー で Explorer とかと同じように画面
サイズを縮めていったら [>>] をだすにはどうしたら良いですかね?
コンポでも良いので教えてください。
451turbo type D:2001/06/22(金) 17:18
>>450
難しそう。
やり方知らない。
452デフォルトの名無しさん:2001/06/22(金) 18:38
>>450
えっと、Win32タブの右端にあるやつ(名前忘れた)。
おんなじアイコンしてるから分かると思うけど。
D4以上です。
453デフォルトの名無しさん:2001/06/22(金) 20:50
>>450
PageScroller
454422:2001/06/22(金) 21:08
>449
 バグがあるのなら自分で作ってみます。
 といっても文字列型のままだと少しメモリが勿体ないので
 100進法にしました
現在 + - * 迄は組み込んでいます。
  http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/mformula.txt

小数点以下も100進なので2桁単位に計算しています
455450:2001/06/24(日) 01:56
私が得をする情報をタダでください。
それによって私は大変な恩恵に預かりますが、あなたには何の
メリットもありません。
でも、いいじゃないですか? どうせ情報なんてタダでしょ?

とても困っているので、情報を知っている人は私を助けなければ
いけません。これは義務です。
初心者にも分かるように説明してください。
私は、ごく普通の人間なので、パソコンのわけの分からない知識は
ありません。勉強するつもりもありません。時間の無駄です。
検索するなんて面倒です。どうしてそんな面倒な事するの?
知ってる人に聞けばいいじゃん。どうせタダだし。

マルチとか質問スレというのはヲタクのルールです。
私は普通の人間なのでヲタクのルールなど知ったこっちゃありません。
早く教えてください!
早く教えろ!
早く!
これだけ言ってもまだ教えねーのか?!
456デフォルトの名無しさん:2001/06/24(日) 02:46
いやだね〜♪
457デフォルトの名無しさん:2001/06/24(日) 05:38
>>456に同じく〜♪
458デフォルトの名無しさん:2001/06/24(日) 05:44
おれも教えたくないね〜♪
459453:2001/06/24(日) 07:28
私が得をする情報をタダでください。
それによって私は大変な恩恵に預かりますが、あなたには何の
メリットもありません。
でも、いいじゃないですか? どうせ情報なんてタダでしょ?

とても困っているので、情報を知っている人は私を助けなければ
いけません。これは義務です。
初心者にも分かるように説明してください。
私は、ごく普通の人間なので、パソコンのわけの分からない知識は
ありません。勉強するつもりもありません。時間の無駄です。
検索するなんて面倒です。どうしてそんな面倒な事するの?
知ってる人に聞けばいいじゃん。どうせタダだし。

マルチとか質問スレというのはヲタクのルールです。
私は普通の人間なのでヲタクのルールなど知ったこっちゃありません。
早く教えてください!
早く教えろ!
早く!
これだけ言ってもまだ教えねーのか?!
460デフォルトの名無しさん:2001/06/24(日) 07:30
>>456
ったら、いやだね〜♪
461デフォルトの名無しさん:2001/06/24(日) 07:43
>>459
ところで453というのはTypoかね?
いや単なる確認だが。
462デフォルトの名無しさん:2001/06/24(日) 07:46
嵐に反応はしないこと。
463デフォルトの名無しさん:2001/06/24(日) 08:08
>>462すまそ。
464デフォルトの名無しさん:2001/06/24(日) 12:28
>>461,463
お前ageるかsageるかどっちなんだよ(w
465デフォルトの名無しさん:2001/06/24(日) 14:58
今時情報がタダだと思っている人間は日本から出て行け。
だからCD-ROM一枚なのに何十万もするの?何て言われたりするんだ…
466turbo type D:2001/06/24(日) 16:12
>>454
バグはオレがすでに修正済みで作者にも連絡してます。

>>452-453
PageScrollerではないと思う。
Explorerでポップアップするツールバーの事じゃないかな?

嵐がいるらしいのでsage
467デフォルトの名無しさん:2001/06/24(日) 19:50
455,459は他のスレにもコピペされてる。反応するな。
468422:2001/06/25(月) 07:07
>>466
 そうですか、でも100進法も10進と同じくらい書くのは楽ですよ。
 メモリーの消費量は半分だし、計算も倍速い筈。
 文字列との変換も100進だったら殆ど負荷にならないし

後は 小数点付き割算さえ書けばギコbasicでパイの計算とか
出来るようになる筈。
469デフォルトの名無しさん:2001/06/25(月) 17:24
こんな 手続きって定義されてないんですか?

procedure FreeAndSetNil(var obj:TObject);
begin
 obj.Free;
 obj:=nil;
end;

必要ですよね?
470デフォルトの名無しさん:2001/06/25(月) 17:43
FreeAndNilという名でD5にはある。ちなみに自作するときは
引数は(var Obj)にして、関数内でキャストする必要がある。
471デフォルトの名無しさん:2001/06/25(月) 19:14
>>469, 470
Borland 身内のやらせっぽいな。
472デフォルトの名無しさん:2001/06/25(月) 19:49
そんなしょうも無いやらせしないだろ。
473469:2001/06/25(月) 19:54
>470 ありがとう。 いちいち外で as TObject つけてた・・・・ソースみて納得

>471 うん。 自分で言うのもなんだけどこんな低次元でやらせって?
474デフォルトの名無しさん:2001/06/25(月) 19:59
MLで検索すると
昔、「そういうのが欲しいなー」
と話題になっていて
新しい版でFreeAndNilが
こっそり実装されていた、というお話があったはず

いと、なつかしや
475デフォルトの名無しさん:2001/06/25(月) 20:27
>>471
「おぉ、FreeAndNilだ。Delphi買おう!」って奴はいないだろ。
476デフォルトの名無しさん:2001/06/25(月) 21:16
procedure MyFreeAndNil(var obj);
var p: TObject;
begin
  if TObject(obj) = nil then exit;
  p := TObject(obj);
  TObject(obj) := nil;
  p.Free;
end;

とりあえず,自分の使ってるのを。こんなんでどうよ。
問題は、TObject以外のものでも引数として渡せちゃうことかな。
(関数名は適当に読み変えてね)
477デフォルトの名無しさん:2001/06/25(月) 23:32
>>470 >>476
なんでvar obj:TObject では駄目なんでしょうか?

駄目といえば。
case文でObject参照変数が使えないのは結構がっくりだった。
たしかにcase文は順序型にしろってことになっているが、
case文の本質(?)から考えるに、真に必要なのは
「識別型(こんな用語はPascalには無いが、判るべ?)」であって、
順序型は識別型の一形態(サブクラス?)に過ぎない。
というわけで、Object参照でcase文をやれるようにしてくれー。
478デフォルトの名無しさん:2001/06/26(火) 00:39
>>477
is とかのRTTI演算子では駄目?
確かにif文の羅列になってしまいそうだけど・・・
479デフォルトの名無しさん:2001/06/26(火) 03:25
>>477
Kylix で case 文、拡張されていなかったけ?
480デフォルトの名無しさん:2001/06/26(火) 09:41
>>478
isはクラスがわかるだけ。Instanceを特定するものじゃないわけで。
case hoge of
Label1 .....
Label2 .....
なんてやりたかったわけね。

識別型と順序型の差は「範囲」という概念の有無なわけだけど、
ならば非順序型な識別型を使うときには
範囲指定が出来ないようになってりゃよいわけで…。

脱線だが。C言語のポインタが駄目なのは、ポインタを識別型として認める
だけならまだしも、順序型としてまでも認めてしまってる
(整数との加算なんて阿呆なことが出来るのはそのせい)
という点なんだろうな。

>>479
まぢ?ってことはD6もってこと?わーい。買おうっと。
481デフォルトの名無しさん:2001/06/26(火) 10:14
479はどんな風に拡張されてかまでは言ってないし、D6で実装されているという保証もないぞー。
482デフォルトの名無しさん:2001/06/26(火) 10:15
とはいえ、期待しちまうが。
483デフォルトの名無しさん:2001/06/26(火) 12:47
VBで文字列がselect caseで使えるのはイイ感じ。
D6で拡張されるなら、そっちが先じゃないか?
484デフォルトの名無しさん:2001/06/26(火) 14:11
> VBで文字列がselect caseで使えるのはイイ感じ。

俺はあれあんまり好かないなあ。

というか、JavaやRubyみたいにStringがObjectになってる言語だと、
selectの発動に「同一性」じゃなく「同値性」を使うというルールにすることで
(つまり同値性を検出するメソッドを用意する義務があるということ)
統一的に語れるようになるんですっきりするんだが、
そうでない言語だと、どうしてもアドホックな文法拡張に走らざるを得ない
んで、ちょっとうんざり。直交性ってのかな、あれが低くなる。

もとより(delphiというより)pascalは、そういう古典的言語の悪い面も
少しひきずりがちな言語なんで、これ以上増やさないことを希望。
言いかえれば、StringをObjectにするってのを希望。
そうすりゃ多少モダンになるので。
OOP拡張がそうであったように、他の部分も少しづつモダン化してほしいなあ。
485turbo type D:2001/06/26(火) 14:24
equalsだっけ?
StringをObject化はオレ反対。
あれ美しくない気がする。
モダンなの?

そういえばC#って文字列はどうなっているのでしょうか?

caseでオブジェクトを判定するのも違うと思うな。


>OOP拡張がそうであったように、他の部分も少しづつモダン化してほしいなあ。
いつか変化する時がくるんでしょうね。
486デフォルトの名無しさん:2001/06/26(火) 14:57
>480
case で ケースリストになるのは 定数だけ

一方、Label1 Label2は変数だから、それを許すなら caseで変数を書くのを許さなければならない

DynamicCase 文とか新設するのかな?
487デフォルトの名無しさん:2001/06/26(火) 15:14
>>485
すべて同感。

ある二つのオブジェクトが同じインスタンスを指しているか判断する必要が
出るようなコーディングは駄目だと思います。
488turbo type D:2001/06/26(火) 15:39
>>487
あ、オブジェクトが同じインスタンスを指しているか判断する
コーディングは時々必要かも。


でも、それを単なる文字列比較ではしたくないっす。

で、もう一つ。Javaの文字列で
StringクラスとStringBufferクラスがある変な構造もとてもイヤ。
StringBufferだけでいいと思う。高速化のためだけに出来たんだっけ?>>Stringクラス
Javaが美しい言語とはとても思えなかった。


>>486
DynamicCaseは検討する価値あるかも。
しかし、そういう基本部分での改変は無い方がいいという意見も多そうだ。
489デフォルトの名無しさん:2001/06/26(火) 15:58
>>488
>オブジェクトが同じインスタンスを指しているか判断する
>コーディングは時々必要かも。

ええと。まず前提として、「Object」と「変数」は
厳格に区別してくれ。そうでないとこういう話題は
混乱するばっかりで話できないので。

上記を字面通り解釈したら意味不明だよ?
ObjectとInstanceは同義語だから。
もしかしてやっぱり、Objectじゃなくて「変数」と書きたかったのではなく?

で、そうだと仮定して。
必要です。断固として必要です。二つのObject型変数(=ポインタ)が
実は同じObjectを指しているかどうか?ってのは、OOP的には
ひじょーに大事な問題です。
昔の言語みたいに、情報をなんでもかんでもコピって持ち
必要になったら比較をする、ってのは、ダサイし、
「同一性が」重要な問題である場合には、他に解決手段はない。

>でも、それを単なる文字列比較ではしたくないっす。

ん、なんか話が合ってないな…
case文において「等しい」かどうかを評価するためのメソッドを
クラス(Stringも含めて)ごとに自由に定義すりゃいいんです。
どんぴしゃ同一ObjectじゃないとOKじゃないというクラスがあってもいいし
Stringが典型的だろうけど内容比較(つまり同値性)で評価するクラスもいい。

>StringクラスとStringBufferクラスがある変な構造もとてもイヤ。
>StringBufferだけでいいと思う。高速化のためだけに出来たんだっけ?

面食らうけど、別におかしくないとも思う。

というのは、StringBufferはStringを「所有」してると考えたら、
いいんじゃないの?ということ。

StringBufferの「内容」はStringであり、そいつが
「書き換わる」
ということは、内容であるStringオブジェクトが
「置き換わる」
ことと等価である、
という風に考えたら…どう?
490turbo type D:2001/06/26(火) 16:24
>>489
失敬。
オブジェクト変数が同じインスタンスを指しているか判断するコーディングは必要かも。
って意味でした。

>case文において「等しい」かどうかを評価するためのメソッドを
>クラス(Stringも含めて)ごとに自由に定義すりゃいいんです。
やはり、DynamicCaseが必要かも。(ワラ


StringBufferとStringの見方/考え方は
オレには斬新でした。なるほど。
読んでいたJava初心者本がダメだったかな。
491デフォルトの名無しさん:2001/06/26(火) 22:10
さっきの某DelのMLの投稿で「人工無能検索エンジン」に納得sage。
492デフォルトの名無しさん:2001/06/26(火) 23:18
ところで真面目な話、Delphiのコードエディタに、
再変換対応が欲しいと思っているのは俺だけか?
コメント書くときとか、Typoや誤変換で再変換できたら
と思うことがよくあるのだが。
493デフォルトの名無しさん:2001/06/26(火) 23:52
プログラム超初心者です

Delphiの本って すごく少ないですよね。
みなさんどうやって勉強なさっておられるのですか?
お勧めの本って ありますか?  切実です。 宜しく御願いします
494デフォルトの名無しさん:2001/06/26(火) 23:56
Object Pascal言語ガイド
495turbo type D:2001/06/26(火) 23:58
>>493
すごく少ない本を全部かう。(ワラ
496デフォルトの名無しさん:2001/06/26(火) 23:59
Delphi2.0J 32bitパワープログラミング(インプレス)

・・・初心者向けではないけどな。
497デフォルトの名無しさん:2001/06/27(水) 00:00
>すごく少ないですよね

そうか?本屋にいけば取り敢えず
両手で抱えきれない(某有名人が言うには、
それが読める限界量らしい)くらいの種類は
出てるように見えるが?

ドキュソな本ばかり数あっても結局無駄だったり有害だったりよ。
自分の本選び目が十分鍛えられてる人なら
そんなゴミの山の中から宝を見つけられるかもだが、
そうでないなら多いほうが却って不幸かも。
498デフォルトの名無しさん:2001/06/27(水) 00:01
>>497
VBに比べれば質は結構いいよな。
499デフォルトの名無しさん:2001/06/27(水) 00:01
>>493
いきなりオブジェクト指向言語か。
Delphiでよかったな。

即レスが>>494は少々厳しいと思うが(w、
マジな話あれも悪くないと思われ。
VCLについてはDelphiのヘルプが一番、
いいと思う。ワンキーヘルプだしな。

あとDelphiには糞な参考書はVCほど多くないから、
ハズレをつかみにくいと思われる。
書店で読んでみて、サンプルコードが多く、
説明が丁寧か、オブジェクト指向について詳しく
説明しているかがポイントと思われる。
そのポイントで探せばよいのでは。

嘘こいていたら他の人フォロー頼む。
500デフォルトの名無しさん:2001/06/27(水) 00:02
大分かぶった。少々ウトゥ。
501493:2001/06/27(水) 00:15
>>499
確かに厳しいか。すまん(w

言語仕様をある程度把握してからしかその言語を使わないので。
CはK&R2版、C++はARMをまず買っちゃうんだよ。
Z80はニモニックとオペコードを叩き込むことからだったし(w
502デフォルトの名無しさん:2001/06/27(水) 00:25
>>501
そーゆー姿勢の人のほうが好感持てるなあ。
いきなり体当たりってのは、
なんでもかんでもに適している方法じゃないはずだから。

半可通のまま突っ走るってのは滑稽だし傍迷惑だから
まず仕様をあたるってのが正解だと思われ。

>>498
すまそ。ドキュという単語で想定した対象(藁)は
とーぜんだがDel方面でわない。
503turbo type D:2001/06/27(水) 00:29
YahooのDelphiに紹介されているユーザーの作ったページは
とりあえず全部目を通そう。

なぜかsage進行なので、オレモ
504498:2001/06/27(水) 00:33
>>502
ちゃんとわかってるよ。それを踏まえたうえでの>>498だ。
505493:2001/06/27(水) 00:44
>>502
でも今の時代はどうだろ、と思うよ。
DOSの時代だと言語仕様とわずかな関数さえ覚えればなんとかなった。
WindowsだとVCLなりMFCなりOWLなり(w)から入って、そこで必要な
言語仕様を覚えるというスタイルの方がいいんじゃないかな。少なくとも
職業プログラマとしてはそっちの方が実戦に投入しやすいかと。

でも、言語仕様をおろそかにすると、ソースにいきなり select〜fromなんか
書いちゃったりするんだよな(w
新人研修はしっかりやらないとダメです。
506デフォルトの名無しさん:2001/06/27(水) 01:43
最近、Delphi6無料アップグレードキャンペーンに
釣られてDelphi4から5にupgradeしたんですが、ListViewの
OnMouseUpイベントで右クリックだけ捕捉できないときがあるんですが、
これって対策あるんでしょうか?
すばやくクリックしたりすると反応するみたいですが・・・・
507506:2001/06/27(水) 01:44
なんか、ですがー、が多い文になってしまった・・鬱・・
508デフォルトの名無しさん:2001/06/27(水) 01:59
>>493
とりあえず某ML(ってみんな分かると思うが)に
投稿された文からコピペ。

--以下コピペ--
大型の本屋に行けば Delphi 関連書籍が結構あるので、簡単に読んでみてください。

Delphian World(http://home1.infonia.ne.jp/~delphian/delphi/index.html) の
「Best Book」、「Best Book2」というコーナーにDelphi関連書籍ランキングがあり、
たくさんの方のコメントがあるので参考になるとおもいます。
509デフォルトの名無しさん:2001/06/27(水) 03:12
>大型の本屋に行けば Delphi 関連書籍が結構あるので、簡単に読んでみてください。
東京近郊の恵まれた人の感想文だな。
510デフォルトの名無しさん:2001/06/27(水) 03:15
大阪や神戸でもバッチリさ!
511デフォルトの名無しさん:2001/06/27(水) 05:09
うちは田舎だから、ほんとDelphi本はほんと手に入りにくかったよ。
とりあえず、本屋まわりまくって、見つけた本を片っ端から買いあさったもんだ。
512デフォルトの名無しさん:2001/06/27(水) 05:49
ちょっと質問。
SpeedButton+TabFocus持てるコンポって
あったっけ?
TButtonで代用しようとしたけどさすがに無理があった(w
513デフォルトの名無しさん:2001/06/27(水) 06:35
>>512
BitBtnはどうよ
514デフォルトの名無しさん:2001/06/27(水) 07:29
>>513 ありがと。気が付かなかったよ。
パレットですぐ隣にあったのに。。。鬱打。
515turbo type D:2001/06/27(水) 08:08
アマゾンテンコテンジェピー(.co.jp)があるよ。

>>514ワラタ
516デフォルトの名無しさん:2001/06/27(水) 08:30
>>515
アマゾンでいいだろ?
まさか仮面ライダーと間違える奴はいないだろうし。
517493:2001/06/27(水) 09:12
自己レス

>>505
>新人研修はしっかりやらないとダメです。
Delphiを教えてもらったんじゃないのか・・・。
518turbo type D:2001/06/27(水) 09:57
SQL、小文字で書いてあるとよくわからん
519デル房:2001/06/27(水) 19:28
しかしさぁ、Delphiマガジンって、どんどん糞になってくよなぁ。
今月出たやつなんか、「何か。」系ソフト?を作る記事だし。その上
サンプルソースのフォントが馬鹿でかい!これでページ数稼いでる。
だんだんD++みたくなってきた。創刊号から買ってきたが、さすがに
もういらねーよ。まるで役に立たない。サイテー
520デフォルトの名無しさん:2001/06/27(水) 20:09
Delphiマガジンって表紙に少女が載ってるやつ?
521デル房:2001/06/27(水) 20:13
>>520
そうそう。最近は変わったけどね。でも考えてみたら、あの頃
から何かすでにおかしかったよな。結局そーゆーヲタが作ってる
雑誌なんだろうな。あーこわっ!こんなもん買ってた自分に鬱
522デフォルトの名無しさん:2001/06/27(水) 20:20
>>521
買ったこと無いよsageヽ(´ー`)ノ
523506:2001/06/27(水) 23:15
うーん、みんな困ってないのかー>右クリックイベント互換性
しょうがない、自分でVCLを解析すっか・・・
FilerにエクスプローラライクのOLE D&Dとコンテキストメニュー
付けてると、思いっきりひっかかるんだよね、これ。
524デフォルトの名無しさん:2001/06/27(水) 23:34
>>519
そーすなんかいらないんだよな。ネットで配布するだけでOK。

今号の表紙をみてDelphi仕事人訪問に期待したんだけど、中村氏が語っている
所がほとんどなくてがっかり。

「何か。」はいいと思ったけどね。初代偽春菜からチェックしてる身としては。
断っとくけど、ヲタではないよ。作者の異常な開発スピードに感銘を受けただけ。
525デフォルトの名無しさん:2001/06/28(木) 00:30
初心者です。質問させてクダサイ。

今回初めて仕事でDelphiを使ってます。(アプリ10本くらい)
各プロジェクトにデータモジュール1つで単純につくっていこうと思ってたんですが、
一緒にやってる先輩(Delphi歴俺と同じ)が
「データモジュールはシステム全体で1つがいい」と云って譲りません。

先輩の理由:
・一つにしておけばテーブルに変更等があった場合は変更が楽。(データモジュールだけ直せばいい)
・おなじTQueryの使いまわしがきく。

だそうです。また、その為に以下の制限をかけるらしいです。
・動的にSQLを直すのは不可(全てプロパティ設定)
・WHERE条件が違えば、別TQueryにする。

俺の懸念事項→先輩の回答
TDataModuleバカでかくなりません?→別にいい
それぞれのプロジェクトで不要な分までメモリくいませんかね?→それほどでもない
一人がいじってると他の人は使えないんじゃ・・・→DataModule直しは担当をきめる
取得する項目は?→SELECT * で全部引っ張るようにしておく
更新用SQLは?→INSERT用、MODEFY用、DELETE用ってつくっとけばいい
TUpdateで更新したいときは?→それ用ってつくっとけばいい

なんか昔、Delphi以外の開発でレスポンスのためにプログラムそれぞれのSQLを見直す
のがすごい大変だったらしく、SQLは1元管理するべきだという主張を譲りません。

俺はDelphiでの開発経験がないので、先輩の主張でつくっていく事になったんですけど
俺はすごい不安なのです。(先輩も今回が初めて)

先輩方式で開発するのって正しいんでしょうか?
526デフォルトの名無しさん:2001/06/28(木) 12:40
>>523
漏れはそれより、OSのポップアップメニューの扱いに困ったな。
W2kなんだけどさ、MouseDownでポップアップしたほうが素早く
動作しているように見えるじゃん。
それでMouseDownでポップアップさせていたんだけど、メニューに
フォーカスが移らないんだよね。
カーソルとか押してもメニュー選択できないし、ESCで閉じられないし。

で、サブクラス化とかはだめなん?
試してないから何ともなんだけど。
527デフォルトの名無しさん:2001/06/28(木) 14:24
中村@NECさ〜ん、署名のメールアドレス違ってるよ〜。
528デフォルトの名無しさん:2001/06/29(金) 00:01
>>525
質問するならせめてageたら?

データモジュールはあってもなくてもいいくらいだから
好きにしたら。
先輩の拘りは意味不明。

TQueryは必要最低限でよし。
>・WHERE条件が違えば、別TQueryにする。
いくつTQuery作る気?
529506:2001/06/29(金) 00:10
>>526
まだ、軽く自作のフリーソフトを再コンパイルしただけなんで、
まともにいじってないんだよね。一応、4万ステップぐらいある
コードだけど、特に問題なくコンパイラが通ったから、やたー、
とか思ったんだけどな(;´Д`) ぬかよろこび。

あと、これを直しても少し待てば到着するDelphi6でどーなるか
わからないので、あんまりいじる気がしないというのもあるが(w
530デフォルトの名無しさん:2001/06/29(金) 00:12
>>525
>・一つにしておけばテーブルに変更等があった場合は変更が楽。(データモジュールだけ直せばいい)

この類の屁理屈は、かつて構造化言語が普及し始めたころに、
それに反駁する古典ドキュがグローバル変数を擁護するときに
使った屁理屈と、似ていると思う。

つまり、「どこでどう使いたくなるか判らないから、
全部みえみえにしとくほうがいいべ?」という理屈だ。

情報隠蔽がどれほど便利な概念か、まるでわかってない奴の意見、ですね。
さよなら、きみ。

というわけで俺も、その先輩=ドキュ、というほうに一票。

>一人がいじってると他の人は使えないんじゃ・・・→DataModule直しは担当をきめる

#ここでは「使える」てのは「ソースを修正できる」って意味だよね?

本末転倒もいいところだね。
そうやって恥の上塗りをし続け、
プロジェクトを加速的に破壊してくわけだ。

XPとまで言わなくても、ソースなんてのは
責任者一人に固定したら死ぬものだよ。

蛇足だがVSSかCVSお勧め。美しいコーディング作業スタイルを
導入して、ドキュ先輩を精神崩壊させてあげましょう。


ところで、これだけ綺麗に(=判りやすく)
自分とこの問題点を抽出できるなんて、
あなた、初心者だなんてのは謙遜でしょ?でしょ?
531デフォルトの名無しさん:2001/06/29(金) 00:13
データベースって全然知らないんだけど。
TQueryって同時に使用する分だけでいいんじゃないの?

>・WHERE条件が違えば、別TQueryにする。
なら、SQL文を文字列配列かなんかに入れておいて、都度TQueryにつっこめば
いいような気がするけど。

なんでもかんでもポトリペタリするのは好きじゃないな。
532デフォルトの名無しさん:2001/06/29(金) 10:02
関数つくってSQL投げたら
関数内部でTQuery作って更新して破棄するってのなら
まだわかるが、(無駄臭いけど)

ポトペタでTQueryを沢山貼り付けてるってのは
ゴミ以外になんでもないよな。

>>531
好きじゃない以前に531さんの方が正しいです。
533デフォルトの名無しさん:2001/06/29(金) 12:30
フォームとデータモジュールのライフタイムはシーケンス図
などを書いてハッキリさせておこう。

画面数が増えてくると生成・破棄のタイミングがやっかいなのよ・・・
(プログラム開始時に作りっぱなしでいいのかな?)
534デフォルトの名無しさん:2001/06/29(金) 14:38
TDatabaseやTSessionは一つのデータモジュールで管理すると便利
かもしれませんね。あと、共通で使う単純なクエリならまとめて
おいてもいいと思います。

>・一つにしておけばテーブルに変更等があった場合は変更が楽。(データモジュールだけ直せばいい)

Stored Procedureが使えるDBならSPにした方がいいんじゃないですか。

>取得する項目は?→SELECT * で全部引っ張るようにしておく

データの転送量は問題にならないんですかね。
535デフォルトの名無しさん:2001/06/29(金) 15:19
>取得する項目は?→SELECT * で全部引っ張るようにしておく
病気だよ。
536525:2001/06/29(金) 15:26
ああ、いっぱいレスついてる。皆さんありがとうございます。
>>528
いや、sageが身についているので小心者なので・・・
TQueryいっぱいつくるです。トホホ
>>528
プログラマ2,3人の小人数なので・・・
なかなかに手強いのですよ。
Delphi初心者ですということで・・・
>>531
そうすると、プログム単位での修正になっていくのでイヤらしいです。

>>533
そうですよね。単純な仕様書だけではちと不安な部分もありました。
プログラム作成時に作りっぱなしです。
>>534
本当に汎用性のあるSQLだけまとめるように再度、意見はしてみます。
データ転送のトラフィックよりDB検索時間のほうが気になるらしいです。

先輩方式でつくっていくことになっちゃいました。
非常に作成が複雑になっています。
いまさら後にも引けないし、自分のおよぶ範囲で頑張ってみます。
失敗しないといいなぁ・・・
537534:2001/06/29(金) 16:03
>データ転送のトラフィックよりDB検索時間のほうが気になるらしいです。

インデックスページだけ読めばすむところをデータページまで
読まなきゃならなくなる場合もあるので、検索時間にも影響が
出ます。
538デフォルトの名無しさん:2001/06/29(金) 23:55
「DelphiにはVBのInputboxのようなものはないんですか?」

と、聞こうとして
念のため、ヘルプで調べたらそのままズバリのものがあったことを知り
鬱になる一初心者。

「Inputbox」という名称がわからなかったんじゃー。
質問するために調べてはじめて知ったんじゃー
539デフォルトの名無しさん:2001/06/30(土) 06:54
いま手に入る本を片っ端から買ったんですが、、、よぐわかりません〔泣〕。
「わかる人だけわかる入門書」ばかりな気がします。

皆さんはDelphiの前にちがう言語などやってられたのでしょうか?
超初心者には手に負えないもの、、でしょうか?
初カキです。
540デフォルトの名無しさん:2001/06/30(土) 07:05
いきなり「Delphi32Bitパワープログラミング」とか買ったりせんかぎり大丈夫だと思うけど。
(おれは買ってしまった。DirectXの記事のために・・・)

おれの場合、構造化BasicとC(少し)はやってたなー。
でも、超初心者でもなんとかなるもんだぜ。
とりあえず、ベーマガ買ってゲーム打ち込んで慣れてみるとか(w
541デフォルトの名無しさん:2001/06/30(土) 08:11
>>539 マジレスしちゃいます。
俺はVBから入って、単純な整数演算でさえ遅い
VBに限界を感じてDelphiに入ってきた厨房です。

自分の場合、まずは自分がどういう物を作りたいのか、
を整理して、その中でさらに、UIを実装するには、
基本的なロジックはどう実装するか、とか目的を細分化し、
それぞれの目的を達成するにはどうすればよいか、
を調べて勉強してました。

んで文法とか言語仕様を覚えるのに参考書を買ったり、
それで分からなければ試行錯誤やヘルプを全文検索
したりとかしました。

とりあえず他の方のもっといい意見きぼーん。
542539:2001/06/30(土) 10:57
>>540の方。
ありがとうございます。ベーマガですね。買ってみます。
>>541の方。
ありがとうございます。目的の細分化。頂きます。やってみます。目的はRPGなんです。

すいません、いま調べたら「ご使用の前に」「クイックスタート」て言うのが出てきましたが、読んだほうがいい、、ですよね?
543デフォルトの名無しさん:2001/06/30(土) 11:38
493です みなさん参考書の件 ありがとうございました

とりあえず 秀和システムの 基礎から分かるDelphi5 を 買いました。
がんばってみます
またなにかあったら 相談に乗ってください
本当にありがとうございました
544デフォルトの名無しさん:2001/06/30(土) 11:58
>>542
君はまずそのRPGを作る前に、本屋に逝って
参考書を買って読むことを勧める。
識者の方よいDelphiの参考書情報きぼんぬ。

OSはW2kがいいと思う。フルテキスト検索とかあるし、
安定しているからな。開発中、保存する直前に
OSが例外0Eとかで落ちたら洒落にならない。

付属のマニュアルよりヘルプの方が検索性が高い。
マニュアルよりはヘルプをお薦めする。
状況感知型(名前忘れた、これであってるか?)の
ヘルプなので、使いやすいと思う。
コーディングはワンキーヘルプも使おう。

偉そうでスマソ。
545名無しさん@LV2001:2001/06/30(土) 13:43
Delphiでゲーム製作ならこの2冊が参考になるかと。
http://www.cbook24.com/bm_detail.asp?sku=99914694
http://www.cbook24.com/bm_detail.asp?sku=99922886
546turbo type D:2001/06/30(土) 14:25
作りたいものを作るのにはエネルギーが沸くけど
先が見えないと勉強がなかなか進まないよね。

昔TechWin氏に某ランドのオオノタンが
往年のハイドライドみたいなRPGを作るための
連載をやってたよ。

ありゃ、必読。解説はあまりなくてソースが中心だったけど

どうにかバックナンバーを手に入れれるといいね。

国会図書館あたりでコピーさせてもらえるのかな
547ソラン:2001/06/30(土) 18:51
業務システムを構築する事になったのですが、
例えば、売上入力とか入金入力とかって単位でexeを作成した
方が良いのでしょうか?それとも、1本のProjectで全てを記述
した方が良いのでしょうか、又は、もっと良い方法はありますか?

私は、サイズが大きくなって遅くなるのでexe=処理に分割した
方が良いと思うのですが、如何でしょうか?

# 分割して作成するとしたら、exeだけで120本になります。
548デフォルトの名無しさん:2001/06/30(土) 18:54
>>539
DOS時代Cをやってて、C++をやろうとしたが挫折。
WindowsでVBに手を出したが30分で使えないと判断。その代わりC++を
覚える大きな手助けにはなった。
C++Builderを買ったが小さいソフトを何本か書いただけで挫折。
Delphiに手を出したら、あまりのわかり易さに感動してメインの言語へ。
おかげでC++Builderも使えるようになった。

そんな感じです。
549デフォルトの名無しさん:2001/06/30(土) 18:59
>>547
サイズが大きくなると遅くなるのですか? 分割したらその分のオーバー
ヘッドは確実に増えると思うのですが。
exeが120本って言われてもどんな規模なのかさっぱりわからない。

俺の方針は「そのプロジェクトにおいて」分割する理由があれば分割する。
「大きくなるから」ってのは普通分割する理由にならない。
55062563:2001/06/30(土) 19:37
>>547
分割したら120って、ちょっと分割しすぎでは…(焦)。
設計段階から見直したほうがいいのでは?
大体、分割するメリットはあるのか。549さんのコメントの通り、
分割した方がオーバーヘッドが増える。それでも分割するのは
それだけメリットがあるって事。
551デフォルトの名無しさん:2001/06/30(土) 20:18
>>548
俺と似たような人がヽ( ´ー`)ノ
552ソラン:2001/06/30(土) 20:45
>>549
>>550
システムの内容は、販売管理+財務で、支店が30店舗、部課数
が25あります、各部課や支店のデータも連携させるって内容です。
(全ての入力画面や照会帳票の作表の種類が120種類って事です)

頻繁に使うプログラムってのは部課によって共通していたり、異な
ったりするので、120本全てのプログラム全ての部課が利用する
わけではありません、不要な処理まで1本のプログラムにすると
オーバーヘッドが大きくなるかな?って感じで個別に分割した方が
良いのでは?と私は考えていました。

それと、説明が不足していたのですが、部課の中には古いPCや
メモリが32MBってのも多くて小さい実行形式の方が良いかな?
ってのもありました。

取りあえず、設計の方はこれからなんで、やり直すって感じでも
ないのですが、検討してみます。ありがとうございました。
553デフォルトの名無しさん:2001/06/30(土) 21:16
>>552
DB−WEBサーバ−GUI(HTML)−クライアントPC
554デフォルトの名無しさん:2001/06/30(土) 22:16
>>552
某仕事のミドルウェアをCで作ったとき、モジュール数1000ちょいでしたが
全国で使用する為、LIB管だけで専属2人は必要でした。

開発効率だけ・実行環境だけで考えるとエライ目にあいます。
exeは適時分割すべきですが、むやみに似たロジックを別箇に分けると
環境構築時・アップデート時に玉砕します。

せめて動作の違いは引数で使い分ける等、工夫した方が良いです。
運用設計者と相談しましたか?
555デフォルトの名無しさん:2001/06/30(土) 22:17
>>553
いやぁ、ネットに繋げられるとは限らんのじゃない?
556デフォルトの名無しさん:2001/06/30(土) 23:40
>>555
>システムの内容は、販売管理+財務で、支店が30店舗、部課数
>が25あります、各部課や支店のデータも連携させるって内容です。
ネット接続を前提にしないと、連携が大変じゃない?
557デフォルトの名無しさん:2001/07/01(日) 01:25
>>552
種類が120なのはわかったが120に分割しなければならない理由は?

個人的には設計・分析能力が全くないDQNマネージャーにしか見えないのだが。
558デフォルトの名無しさん:2001/07/01(日) 03:42
>>552
まだ設計前の段階なのではないのかなと感じたが君は昔COBOLとかでシステムを
書いていたのか?正直モジュール分けは妥当ではないと思われる。
スペックの低いマシンが混在しているとの心配から分割したいと思って
いるのならば、553の方法を考慮した方が良いだろうと思われ。
理由は、ブラウザが動けばなんとかなるしアップデートにも楽に対応可能だ。

>>557
552みても分割したいって理由がわかんなかった?読みが浅いね。
557修行足りないな、逝ってよし。

そんなことより、みんなsageようね
559デフォルトの名無しさん:2001/07/01(日) 12:11
>>558
なぜ選択肢が1本と120本しかないのかわからないが。
560デフォルトの名無しさん:2001/07/01(日) 14:02
>>559
552は、「分割しなければならない!」といった書き方ではなく、
「分割した方が良いのか1本で作った方が良いのか」との質問でしょ。
彼にもわからないから聞いているのだろうし、分割したかった理由は、552に
書いてあるだろし、552の文書では1本にするとは書いていないようだが。

>> 552
個人的には、最近PHP+Cで同様のシステムを書いたことがあるが、Delphiで
書くよりもWebに関しては PHPの方が簡単であるとアドバイスを追加する。
561デフォルトの名無しさん:2001/07/01(日) 15:48
>>547
>1本のProjectで全てを記述
># 分割して作成するとしたら、exeだけで120本になります。
と書いてあったらから 1本or120本 だと思った。

俺の読解力不足ということにしておいてくれ。
562デフォルトの名無しさん:2001/07/01(日) 17:47
Delphi6 日本語版が待ち遠しいのですが、日本語版の情報はどこかで公開されていますか?
5 からの強化点が知りたいのですが。
563デフォルトの名無しさん:2001/07/01(日) 21:13
www.borland.co.jp
564デフォルトの名無しさん:2001/07/01(日) 21:59
Dlphiトライアル版で遊んでますが、いいですね。
VCほど難しくなく直感的、かつDLLも開発できるし、VBみたいにランタイム云々もないし。
で、買うなら今?それともver6がでるまで待ったほうがいいですか?
565デフォルトの名無しさん:2001/07/01(日) 22:36
>>564
今。
566デフォルトの名無しさん:2001/07/01(日) 22:43
好きにしろ。
567デフォルトの名無しさん:2001/07/01(日) 23:49
>>564
Learning版が20000円でProfessional版は68000円
>>361を見るとD4Learning→D5Professionalバージョンアップが33600円。
D6でも同じだと仮定するとD5Learning版を買ってD6Professional版を買うと安くあがる。
参考までに。
568564:2001/07/02(月) 03:13
D6Proは$999.00つーことで高くなるっぽいですね。
D6はWeb云々で特にエディタが使いやすくなることもなさそうなんで
D5でいいかも。とりあえず英語ヘルプみながら60日過ごします。
どうもありがとう。
569539:2001/07/02(月) 03:55
>>544の方、>>545の方、>>546の方、>>548の方ありがとうございます。
経過報告をいたしますと、どうも「クイックスタート」に知りたいことの大半が書いてあるようです。
基本中の基本が、売っている本に書かれていないのはそれが標準で付いてくるからですね。灯台下暗しでした。
クイックスタートをもういっかい丁寧に読んでからオンラインのチュートリアルに進もうと思います。ありがとうございました。
570デフォルトの名無しさん:2001/07/02(月) 17:55
Delphi 6 の主な新コンポ

TValueListEditor
TLabeledEdit
TColorBox
TActionManager
TActionMainMenuBar
TActionToolBar
TCustomizeDlg

どんなものか、いまいち分からんのもある。
571デフォルトの名無しさん:2001/07/02(月) 18:07
> TActionMainMenuBar
いままで、オプションだったTMenuBar同等のもんってようやく標準になるのかな。
572デフォルトの名無しさん:2001/07/02(月) 18:10
>>570
出典は?
573デフォルトの名無しさん:2001/07/02(月) 18:16
formにimageをくっつけてcanvasで描画した場合、
別にWM_PAINTに対するイベントハンドラを記述した覚えはないのに
他のwindowが覆ってもどうやっても描画内容が消えません。
 なんで?

逆に再描画しないようにするにはどうするの?
574turbo type D:2001/07/02(月) 18:41
>>573
TPaintBox
575573:2001/07/02(月) 18:55
>>turbo type D
ありがとう。ちょっとTImageとTPaintBoxを調べてみまっす。

なんかobject pascalってなれないなぁ。。
配列を引数に渡す時の挙動がどうもCとはぜんぜん違うみたい。。
配列名はアドレスってわけでもないみたいだし。。
call by valueとcall by referenceの思想の違いなんかなぁ。。
576デフォルトの名無しさん:2001/07/02(月) 19:07
>>575
ポインタ使えないわけじゃないから、
Cみたいにポインタ渡しでもできんことないけど、やはりドロくさくなってしまう。
ここははやくObjectPascalに慣れてしまった方がいいかと。
577名無しさん@LV2001:2001/07/02(月) 19:28
どひー。Delphiマガジンをcbook24.comで注文して、今さっき届いたんだけど、
すごい安っぽい本やね、これは。内容はよさげなのだが・・・。
578デフォルトの名無しさん:2001/07/02(月) 19:58
>>577
書籍は中身で勝負!!
579デフォルトの名無しさん:2001/07/02(月) 20:04
TListのようなサイズ不定の連想配列は今回もなし?>デル6
自動拡張される連想配列プリーズ、強く激しくプリーズ
580デフォルトの名無しさん:2001/07/02(月) 20:09
>>578
そう、書籍は中身だ。


表紙に労力をかけなくてもいい・・・。
581デフォルトの名無しさん:2001/07/02(月) 20:17
>>579
自力で実装プリーズ。
582デフォルトの名無しさん:2001/07/02(月) 20:18
ついでに出来たら公開プリーズ
583デフォルトの名無しさん:2001/07/02(月) 20:36
C言語における、

int 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;
だとだめなんだよ。。。たすけて!
584デフォルトの名無しさん:2001/07/02(月) 20:53
ヘルプを見る気はないのか・・・。
ptr := @arr[1];
ptr^ := 1;
Inc(Ptr);
ptr^ := 2;
585デフォルトの名無しさん:2001/07/02(月) 20:56
こんなんでも可。

type
  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;
586訂正:2001/07/02(月) 20:57
×  p[0] := 0; // p[0] := でも可
○  p^[0] := 0; // p[0] := でも可
587デフォルトの名無しさん:2001/07/02(月) 22:19
不正な浮動小数点演算命令というエラーは、どうやったら解決できるんですか?
実行してるときは、エラーでないのに、ステップ実行をすると不正な浮動小数点演算
命令と出ます。なぜなんですか?教えてください。
588デフォルトの名無しさん:2001/07/02(月) 22:37
Pascalってポインタ駆使し始めるととたんに醜悪なコードになるんだよな。
589583:2001/07/02(月) 22:41
>>584-586
ありがと〜。584の方法だとちょっと記述が冗長だし
585の方法だとわざわざtypeしないといけないのとarray[0..0]の範囲指定が気になったので
今回はもう、動的配列で逃げることにしましたです。
 いやー、、ポインタが使いにくいね。delphiって。でもしょうがないのかな?
ポインタは危険だからあんまり無茶はさせないって設計思想なのかなぁ。。
 またよろしくおねがいします!
590デフォルトの名無しさん:2001/07/02(月) 23:15
>>589
そうだねぇ。C の場合にはポインタを使うことが前提だからね。
583 の例だと、伝統的 PASCAL 使いならアクセス用の関数/手続きを作っちゃうんじゃ
ないかな?そのほうが後で読んで意味がわかるし。

C くささから逃れたいのであれば、ばしばし必要な型を定義していくのが Pascal 流でしょう。
591584:2001/07/02(月) 23:25
>>589
Delphi使い始めてからCのようなポインタを使わなくなった。
どうやって回避してるか・・・俺にもわからんのだよ、それが。
たぶん配列かTList系でやってるんだろうけど、書いてる時は全然意識してない。

元々のPascalにはポインタはなかったらしいから設計思想といやそうだろうね。

>>590の最後、激しく同意。
592デフォルトの名無しさん:2001/07/02(月) 23:25
>>587
コピペウザイ
593583:2001/07/02(月) 23:29
ついでにもうひとつ。
動的配列を割り当てるのにSetLengthを使ってるんだけど、
・解放はどうなってるんだ?
・そもそもヒープに取られるのか、スタックに積まれるのか
が気になっちゃいました。

newで割り当ててdeleteするなら分かりやすいんだけど。。
なんか参照回数を数えてて使われなくなったら解放するって
GCみたいなことをやるって本には書いてあるけど。。
それならNewとかAllocMemとか要らないんじゃないか?と思ってみたり。
画を扱うのでメモリーは1MB以上欲しいのでスタックに積むとだめだし。

 どうなってるんでしょ?
594デフォルトの名無しさん:2001/07/02(月) 23:31
>>587
へんなところをアクセスしてない? 大体はそういう
単なるふつーのバグが原因。

他にFPUの例外が本当に出ていることもあるけど、これはマスク
をすれば直る。Set8087CWとかの項を読んでみそ。
595583:2001/07/02(月) 23:31
>>590
>C くささから逃れたいのであれば、ばしばし必要な型を定義していくのが Pascal 流でしょう。
・・・そうなんだ。肝に銘じてりっぱなdelphi使いになるように精進しまっす。
596584:2001/07/02(月) 23:36
>>593
だからよう、ヘルプ見ろって。
>動的配列の割り当てを解除するには,配列を参照する変数に nil を代入するか,
>Finalize に変数を渡します。

NewとかAllocMemとかとは次元が違う。
あと、動的配列が実装されたのは結構最近の話。
597デフォルトの名無しさん:2001/07/03(火) 01:48
New, AllocMemとかは、Cでいうmalloc, free、
SetLength, Finalizeは、C++でいうnew delete
ってなことでよろしい?
598デフォルトの名無しさん:2001/07/03(火) 06:32
>>597
SetLength ってのは,動的配列と,
文字列のための特殊なアロケータ
で,GetMem New と比べては遺憾
と思われ.
599デフォルトの名無しさん:2001/07/03(火) 16:51
Win2000でDelphi4のクイックレポートがアドレス違反します。
デバッガで動作させるとファイルが書けませんエラーも出てるみたいです。
600デフォルトの名無しさん:2001/07/03(火) 17:18
>>599
それはDelphiのバグ情報ですか?
601デフォルトの名無しさん:2001/07/03(火) 17:30
>>599
もしかして,ドライブの空き容量がないとか
602599:2001/07/03(火) 17:54
そんなことないです。容量あります。
クイックレポートはパッチあててるし。一緒に入れたBCB5が悪さしてますか?
603デフォルトの名無しさん:2001/07/03(火) 18:05
>>599
SET TEMP=C:\TEMP
ttp://www.qusoft.com
604デフォルトの名無しさん:2001/07/03(火) 19:55
クイックレポートいらない&つかいたくない。
Kylixも出たしもっとマシなのつくってくれ。
605599:2001/07/03(火) 21:08
有難うございます。>603 でも実はまだうまくいってません。明日もう一度やってみます。
そうなんですが、昔作った社内ツールで...>クイックレポートいらない&つかいたくない。
606603:2001/07/03(火) 22:03
NT/2000ではAutoexec.batじゃなくて,
My ComputerのPropertyでした。
607login:Penguin:2001/07/03(火) 23:41
Delphiで作られた有名なソフトウェアって何?
608デフォルトの名無しさん:2001/07/03(火) 23:52
>>607
こちらへどうぞ。

delphiで作られた有名ソフトって何がある?
http://piza.2ch.net/test/read.cgi?bbs=tech&key=990056026
609login:Penguin:2001/07/04(水) 00:04
delphiってオブジェクト指向なの?
えへへ。
610login:Penguin:2001/07/04(水) 00:25
age
611デフォルトの名無しさん:2001/07/04(水) 01:27
>>609
ウゼィ
612デフォルトの名無しさん:2001/07/04(水) 03:01
4 から 6 歳児むけ、Delphi 入門書。

http://www.amazon.de/exec/obidos/ASIN/3826606434/rlf/028-5835299-0903738

Delphi3 Pro CD 付き。ただしドイツ語。
613デフォルトの名無しさん:2001/07/04(水) 06:28
login:Penguinねぇ・・・・・・
614turbo type D:2001/07/04(水) 08:20
>4 から 6 歳児むけ、Delphi 入門書。

ジョ・冗談だろ???
615599:2001/07/04(水) 09:20
動作しましたage。「TEMP=C:\TEMP」じゃなくて、「TMP=C:\TEMP」でした。
クイックレポートはソースコードついてないので困る(怒
616デフォルトの名無しさん:2001/07/04(水) 09:51
>>615
99ダラーで買えるけど。ビザかマスターカード持ってれば。
Kylixはまだ印刷に関して統一的手法ってないのかしらん?
>>612
ドイツは子供も世界一ィィィ!!
617turbo type D:2001/07/04(水) 09:56
>>616
>ドイツは子供も世界一ィィィ!!
微妙にJoJo入ってる?
だとしたら、こちらのスレにご案内でフ。

プログラマの奇妙な冒険
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=993574449
618デフォルトの名無しさん:2001/07/04(水) 12:52
これまでの事例紹介に比べると随分力はいってるね〜
http://www.borland.co.jp/delphi/cases/dh024.html
619デフォルトの名無しさん:2001/07/04(水) 13:13
>>618
ML検索ページで"tkc.co.jp"で検索すると最初はVBからの移行だった
事がわかる。
ttp://www2.big.or.jp/~osamu/Delphi/
620デフォルトの名無しさん:2001/07/04(水) 13:14
>>618
すごいかっこいいネ。気合はいってんな。
621デフォルトの名無しさん:2001/07/04(水) 14:18
あんたら,TKC って Windows の仕様を左右するほどの組織だよ。
Delphi の仕様のいくつかも,ここが要求,変更させている。
「わが国最大級の職業会計人集団」って言葉以上の圧力団体なんだよ。
622デフォルトの名無しさん:2001/07/04(水) 14:38
大井のことかと思ったよ。
623デフォルトの名無しさん:2001/07/04(水) 15:30
>>621
マジ?お近付きになりたいな〜。
624デフォルトの名無しさん:2001/07/04(水) 15:40
しかし、全国8200の税理、会計事務所のデータを10年間
保存ってInterBaseで大丈夫なのか?6.0って製品版
出たばかりなはずだが?
625デフォルトの名無しさん:2001/07/04(水) 19:40
>あんたら,TKC って Windows の仕様を左右するほどの組織だよ。
>Delphi の仕様のいくつかも,ここが要求,変更させている。

詳細アボーン
Delのどの辺?勝手な仕様変更はいやだけど。
626デフォルトの名無しさん:2001/07/04(水) 19:40
ageとくか。
627デフォルトの名無しさん:2001/07/04(水) 21:21
function DoLoop: Integer;

label
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で返るんですよねえ・・・?
629デフォルトの名無しさん:2001/07/04(水) 23:09
>>627
label キーワードでラベルを定義しているのがいけないんじゃない?
アセンブリ言語らしくラベル名に@LOOP_STARTを使ったらうまくいったよ。

どうやらPascal言語のlabelキーワードを使うと、asm-endブロックが
begin-endブロックで囲まれていると解釈されるみたいだね。
これでは戻り値が不定になるのは当たり前だね。
630627:2001/07/05(木) 00:09
>>628
CPUウィンドウは見ました。返り値はフレームから
読んでいたので不定のResultが返っているみたいです。

>>629
ありがとうございます。解決しましたぁ!
631デフォルトの名無しさん:2001/07/05(木) 21:34
632デフォルトの名無しさん:2001/07/05(木) 21:57
台湾は燃えているか?
http://www.sinter.com.tw/
633デフォルトの名無しさん:2001/07/06(金) 17:23
Delphi で hlink.h に定義されているインターフェースとか使う方法教えてください
DelphiでOLEとかインターフェースってさっぱりわからんのです
634デフォルトの名無しさん:2001/07/06(金) 20:29
時間の計測をしたいのですが、
Nowから得た終わりと開始のTDateTimeの差をとれば、
とりあえず経過時間の大小は比較できますか?
635デフォルトの名無しさん:2001/07/06(金) 20:44
どのくらいの時間?
msecならMMSystemをusesして、timeGetTimeでGO
636634:2001/07/06(金) 21:03
>>635
どうもです。
このMMSystemってなんですか?ヘルプでほとんど情報が出てこないのですが・・・。
637デフォルトの名無しさん:2001/07/06(金) 21:31
MMSystem.pas のことね。
638デフォルトの名無しさん:2001/07/06(金) 21:32
timeGetTimeはWin32APIっす。Delphiのヘルプでなく、Windows APIのヘルプ参照。
639デフォルトの名無しさん:2001/07/07(土) 00:11
>>633
Delphi でなければ、OLE とか COM とかわかるのかい?
640634:2001/07/07(土) 01:03
>>637, 638
どうもです。Win32 Programmer's Referenceで調べてみます。

ところで手続きや関数の値の渡し方はどのようになっているのですか?
引数の数が少ない場合はレジスタ(EAX, ECX)が使われるみたいですけれど、
そんな記述が見つかりません。
asmで手続きを記述していてどのレジスタなら使ってよいのかわからないので
困るのですが・・・。
641デフォルトの名無しさん:2001/07/07(土) 01:15
>>640
HelpのObjectPascal言語ガイドで
[プログラムの制御]−[パラメータと関数の結果]−[パラメータの受け渡し]
を辿ってみ。
642デフォルトの名無しさん:2001/07/07(土) 03:21
TListViewで、OwnerDataとCheckboxesをtrueにした場合、
チェックボックスが表示されないのですが、何か回避する方法は
ないでしょうか?
643デフォルトの名無しさん:2001/07/07(土) 03:42
>>642
自分で描け
644デフォルトの名無しさん:2001/07/07(土) 12:14
>>643
最終的にはそうするとしても、バグみたいな仕様ですね。
OwnerDrawでこうなるなら理解できるのですが・・・。
645デフォルトの名無しさん:2001/07/07(土) 12:50
>>644
ま、MS コモンコントロールの問題だからしょーがない。

... なんとなく、ComCtl32 を最新のにすると期待したとおりになるような
きがする。なんとなくね。IE5.5 をインストールしてみたらいいことがおきる
かも。
646デフォルトの名無しさん:2001/07/07(土) 14:34
>>645
ありがとうございます。試してみましたが駄目でした。

それで自前で描画することはできたのですが、チェックボックスの部分を
クリックした場合にCheckの状態を変更したいのですが、良い方法が思い浮かびません。
何かメッセージを捕まえないといけないのでしょうか・・・。
647デフォルトの名無しさん:2001/07/07(土) 19:50
>>646
Downした座標から、手前で決めろや
どこがチェックボックスなのかも手前で決めろや
checkedに手前で入れろや
VCLにして配布しろや(ワラ
648646:2001/07/08(日) 04:40
すみません。2chで質問した私が馬鹿でした。
あくまで雑談の場なのですね。
649デフォルトの名無しさん:2001/07/08(日) 06:09
>>648
647のでいいのでは?ここで聞く前にML検索したよね?
650デフォルトの名無しさん:2001/07/08(日) 21:09
>>649
ケッ、2ch にも検索無脳があらわれよった
651デフォルトの名無しさん:2001/07/08(日) 21:33
>>650
まぁまぁ。

でも、なんで>>647で問題があるのかな? その辺をコメントしてほしい>>648
652デフォルトの名無しさん:2001/07/09(月) 06:09
>>650
まあ2chですから。
653デフォルトの名無しさん:2001/07/09(月) 12:01
調和級数を求めるプログラムがわかんないんですけど。
教えてくれませんか??
654デフォルトの名無しさん:2001/07/09(月) 12:53
久しぶりにYahoo!のDelphiカテゴリに行ってみたら登録件数が2件になってた...
一年前には40件以上あったような気もするんだけどなんかあったの?
http://dir.yahoo.co.jp/Computers_and_Internet/Software/Programming_Tools/Programming_Languages/Delphi/
655デフォルトの名無しさん:2001/07/09(月) 13:14
>なんかあったの?
嫌がらせ
656デフォルトの名無しさん:2001/07/09(月) 13:22
>>653
宿題を他人にやってもらうの?
657デフォルトの名無しさん:2001/07/09(月) 14:17
調和級数っていうのがなんなのかがわかんないんですけど
逝ってよしですか?
658デフォルトの名無しさん:2001/07/09(月) 14:20
>>654
へぇ。3年ぶりにメンテナンスしたと思ったら、ばっさり削除ですか。

1. Yahoo とはこんなものだ。
2. MS から嫌がらせの命令がとんだ
3. ほんとにこれしか Delphi の技術ページが存在しない。

正解は?
659デフォルトの名無しさん:2001/07/09(月) 14:28
とりあえず苦情いれておくか。

元々Yahooにあったリンク先でも
生き残っている所は多数あったぞ
660デフォルトの名無しさん:2001/07/09(月) 14:48
嫌がらせかヨ(´д`;)
おのれYahoo!!...
661デフォルトの名無しさん:2001/07/09(月) 14:50
ちょっとまて!!どうみても重要なところを抑えてないじゃんかよ > Yahoo!!
2件っていうから激選してるかと思ったら…
662デフォルトの名無しさん:2001/07/09(月) 14:50
つまり登録件数が55件あるVBはDelphiの27.5倍エライというわけですか?
663デフォルトの名無しさん:2001/07/09(月) 14:54
>>662
yahoo的にはね。
664デフォルトの名無しさん:2001/07/09(月) 15:01
ワイロをサーファーに払うかどうかで決まります
665デフォルトの名無しさん:2001/07/09(月) 15:10
このSubjectで[Yahoo! JAPAN company-info helpnavi]
ここ宛てに苦情メールを送ろう。[email protected]
666デフォルトの名無しさん:2001/07/09(月) 19:56
Del6 Personal 無料Dlあげ

http://www.borland.co.jp/news/del6personal.html

Borland - News Release :
ボーランドのフラッグシップ・プロダクトのエントリー版
Borland(r) Delphi(tm) 6 Personal無償ダウンロードを決定
667デフォルトの名無しさん:2001/07/09(月) 21:51
>>666
何々!?これどういうこと????
668666:2001/07/09(月) 22:25
パッケージ版は4800円。
ネットからダウンロードする場合は無料と言うことだよ。
ついにDelphiも無料配布の時代が来たか。
ただし、商用アプリの作成はダメ。
669デフォルトの名無しさん:2001/07/09(月) 22:29
商用アプリの作成はダメなんて言っても、exeにしちまえば
区別つかないんだろ?
Delphi2.0の頃からずっとアップグレードしてきたが、
今後は無料版にするかな。
Delphiの無料版はあまりボーランドにとって良くないような
気がするな。
670デフォルトの名無しさん:2001/07/09(月) 22:34
>>669
Kylix Open Editionと同じように区別付くようにするはず。
俺も無料板Delphiは本当にボーランドのためになるのか疑問。
671デフォルトの名無しさん:2001/07/09(月) 22:42
今時コンパイラごときで金は取れないってことでしょ
エンタープライズな顧客からガッポリ稼いで
利益をオープンソースコミュニティに投資するってとこかな
672デフォルトの名無しさん:2001/07/09(月) 23:05
>>669
ライセンスだけは守ってね。みんなの Borland 何だから一人でおいしい汁を啜ろうなんて考えないで。
673デフォルトの名無しさん:2001/07/09(月) 23:25
666なんですが、作業している間に騙られてる(笑)
ま、内容はあってるみたいだからあとは名無しで書き込むよ(w
んじゃ>>668サソ、>>666の引継宜しく(w
674デフォルトの名無しさん:2001/07/09(月) 23:49
>>669
「無料版はあまりボーランドにとって良くないような 」といいながら自分は無料版かい。
せめて 4000 のやつかってあげなよ。
675デフォルトの名無しさん:2001/07/10(火) 00:13
パワフルユーザは無料版なんか使わないから安心すれ。
実際の所、ほとんどの人はPro版なのでは?Lrnじゃ満足できないっしょ。
VCLソースもつかないんだろうし。
676デフォルトの名無しさん:2001/07/10(火) 00:28
シェアウェアで小遣い稼ぎってのも商用使用になりますかね?
677デフォルトの名無しさん:2001/07/10(火) 00:39
>>676
…よぉ知らぬが、多分なるんじゃないの?
ぞくにいう商用とぞくにいうシェアの間に
明確な線なんて引けないじゃん。
678676:2001/07/10(火) 00:43
>>677さん
そりゃそうですね。
レスどうもです。
679デフォルトの名無しさん:2001/07/10(火) 00:51
商用は不可って、.exeが作れないとかではないですよね?
(ソース配布のみとか・・・)
フリーソフトならOKでしょうか?
680デフォルトの名無しさん:2001/07/10(火) 01:04
起動すると10回に1回、ボーランドのロゴが表示されるとか。
681デフォルトの名無しさん:2001/07/10(火) 01:39
個人情報を抜かれるとか。
682デフォルトの名無しさん:2001/07/10(火) 02:09
>>681
いやすぎ(w
EXE生成できないようにしておくのが
正規ユーザに対しての礼儀だな。
じっさいJBuilderもパッケージ機能カットしてあるし。
683デフォルトの名無しさん:2001/07/10(火) 02:13
>>682
何で礼儀なの?EXE生成するとどういう問題が?
684デフォルトの名無しさん:2001/07/10(火) 02:17
商用利用できないってのはあくまでライセンスの問題であって
実際に商用配布できないようにexeに制限を加えるなんてことは
やらないよ。
685デフォルトの名無しさん:2001/07/10(火) 05:33
ただ、exeにしたらわからんから商用利用しちゃえってのはライセンス違反だから、
結局warez使ってんのとたいしてかわらんわな・・・。

とりあえず、フリーソフト作るのにはつかえるっちゅーことですな。
686無料にするってのは・・・:2001/07/10(火) 05:37
どういうことかって言うと、Linuxのように雑誌等にバシバシ載せられるってこと。
つまりDelphiの布教を一気に行えるってわけ。戦略的には多くの金のない学生に
Delphiを浸透させて将来的にDelphiを主流派にしようって目論見では?
687デフォルトの名無しさん:2001/07/10(火) 06:03
>>685
exeにしても無料版で作られたって分かるようにするはずだよ。
現にKylix Open Editionではそうなっているし。
688デフォルトの名無しさん:2001/07/10(火) 08:02
>>687
なんだっけか。
exeに特定文字列とか埋めこんであるんだっけ?

チェックサムだかmd5だかで
そのへんのブロックのカイソを看視する…のかなあ…
689デフォルトの名無しさん:2001/07/10(火) 08:17
即レスきぼんぬ。
MaskEditでIPアドレスを入力させるには、
どうマスク設定させればいいの?
ちょっとせっぱ詰まってます。
一応検索しに逝ってきます。
ヘルプ見たけどよく分からなかった…
690デフォルトの名無しさん:2001/07/10(火) 08:22
あげ忘れ。
691デフォルトの名無しさん:2001/07/10(火) 08:28
>>689
答えじゃなくてすまんけど。

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]?
(見づらくならんように故意に行を区切りました)
だな。
692デフォルトの名無しさん:2001/07/10(火) 08:33
>>689です。
あれはたしかに正規表現ではないと思われ(^^;

う〜む。

MLログにも、Delphian Worldにも無しか…
Googleでもうまく検索できなかったし…
いや正確にはあったんだが、Comctl32.dll
のバージョンアップを要求する物だったんで。

ユーザのこと考えるとそう言うのは使えなくって(^^;
ヘタレオンラインソフト作者な物で、Win9x〜の
全てのWin32環境で動くことを目標にしていたり。
693デフォルトの名無しさん:2001/07/10(火) 09:10
DelphiからOracleへ接続する標準的な方法って何でしょうか?
VBだとoo4oみたいな感じで。
694デフォルトの名無しさん:2001/07/10(火) 09:55
099-099-099-099;1;

こうかな?リテラル文字ってのは何かわからん。
695デフォルトの名無しさん:2001/07/10(火) 09:55
>>693
エンプラ版ならBDE - SQL Link - Net8
プロ版ならBDE - ODBC - Net8

D6やKylixのエンプラ版ならDBExpressというのが
使えるらしい。
696デフォルトの名無しさん:2001/07/10(火) 10:11
>>695
なるほど。ありがとうございます。
ADOとかではないんですね。
697デフォルトの名無しさん:2001/07/10(火) 10:34
>>694殿
なるほど。
大変参考になりました。
990\.990\.990\.990;1;
これでどうでしょうか。
これで大体望み通りの動作になりました。
ありがとうございます。
698デフォルトの名無しさん:2001/07/10(火) 15:56
http://itpro.nikkeibp.co.jp/free/NC/NEWS/20010709/6/

ボーランドが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プロダクトマネージャ)。
699デフォルトの名無しさん:2001/07/10(火) 17:17
>>695

ADO 経由で Oracle ってつながるの? Oracle がそんなドライバ出している?
出しているなら ADO 経由で使えるし、当然 OO4O もつかえる。
700デフォルトの名無しさん:2001/07/10(火) 21:29
>>699
Oracle純正のADO(OLEDB)ドライバ、あるよ。
OTNにあったはず!
701デフォルトの名無しさん:2001/07/10(火) 21:30
>>699
あ、oo4oはADOとは関係ないです、
702デフォルトの名無しさん:2001/07/11(水) 11:20
初心者ですいません。
浮動小数点を整数型にダウンキャストするにはどうすればいいのでしょうか?
ヘルプを見ても浮動小数点から整数型への変換はのってないようだし
標準関数もないようだし。。(文字を経由すればできそうだけど。。)
教えてください!
703デフォルトの名無しさん:2001/07/11(水) 11:25
まずダウンキャストの意味を調べてから回線切って首吊って氏ね
704デフォルトの名無しさん:2001/07/11(水) 11:26
RoundとかTruncとか。
705702:2001/07/11(水) 11:37
てへ。聞きかじった言葉は安易に使うもんじゃないね。
703さん。ありがとう。氏んでください。

704さん。どうもありがとうございます。
706デフォルトの名無しさん:2001/07/11(水) 11:57







                      ∧_∧
                      ( ・∀・ )ジー
                      (    )
                      | | |
                      (_)(_)
707デフォルトの名無しさん:2001/07/11(水) 12:25
>>706
思わず見つめあっちゃったよ。
708デフォルトの名無しさん:2001/07/11(水) 13:32
>>705
>ヘルプを見ても浮動小数点から整数型への変換はのってないようだし
ほう。で?
709デフォルトの名無しさん:2001/07/11(水) 14:31
int i = 3.0;
710デフォルトの名無しさん:2001/07/11(水) 17:09
なんのヘルプみたのか謎。
Delphiのヘルプじゃなくて、Windowsのヘルプでも見たのかな?
それだったら、ないけど・・・
711デフォルトの名無しさん:2001/07/11(水) 19:51
TMemo使って、
memo1.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行目までしか表示されません。
なにが足りないのでしょうか?
712デフォルトの名無しさん:2001/07/11(水) 19:59
var
 cc : integer;
begin
 memo1.lines.clear;
 for cc := 0 to 7 do
  memo1.lines.append('10,20,30,40,50,60,70,80');
end;
713デフォルトの名無しさん:2001/07/11(水) 20:09
>>712 ありがとうございます。
memo1.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がリスト構造だから追加には気をつけなければならないって
ことでしょうか?
なにはともあれ、ありがとうございました。
714turbo type D:2001/07/12(木) 16:47
ふー。疲れた。

PPAを使って
使用者が文字変換コードを書いて
それにあわせてクリップボード文字列を
変換するというソフトを作りたいが時間がないです。

誰かつくって。
じゃなかった。作りかた教えて!


そういえばPPAってStringReplaceないですよね。
715turbo type D:2001/07/13(金) 10:06
うぅ、レスが無い....PPAって誰も使ってないです?

話題変え。

サーバーサイドプログラムには
JavaやVBにしてもスクリプト似な実行環境が適しているのかも。
PPAってDelphiPascel似インタプリタだけど
Delphiがもっとサーバーサイドで活躍するには
本格的なスクリプト/インタープリタな実行環境を整えて
いく事が大切なのではなかろうか。などと考えてみたり。。
716デフォルトの名無しさん:2001/07/13(金) 10:33
DelphiでPascalコンポーネントってなんか屋上屋な気が...
それにあの利用規約もなんだかね

Perl/Python/Ruby組み込みコンポーネントってないのかな
717デフォルトの名無しさん:2001/07/13(金) 10:40
>>turbo type Dさん
ちゅーぼー たいぷ でぃー と読んでしまいました('-`;
ごめそなさい

>>716 さん
PHPが抜けてますよ!('-`
718デフォルトの名無しさん:2001/07/13(金) 10:59
Ruby なら Project Apollo
http://www.users.yun.co.jp/~moriq/apollo/

コンポーネントもあるよ APL
http://www.users.yun.co.jp/~moriq/ruby/apl.html
719デフォルトの名無しさん:2001/07/13(金) 11:00
delphi6お知らせがいま届きました。いいにおいだにゃ〜。
720デフォルトの名無しさん:2001/07/13(金) 11:15
PPAって何の事かと思った。これの事な。
http://www.koji27.com/topic/p3a/
721いっそ、次はDturboで。:2001/07/13(金) 11:16
>>718
ゼンゾエン知らないのですが
PPA的に使えますか?

オレが今(労力を極力減らして)つくりたいのは

function Userさん作成関数(S: String);
begin
{ここをテキストでユーザー側でコーディングさせたい}
end;


Clipborad.AsText := Userさん作成関数(Clipboard.AsText);

こんな処理をするプログラムなんです。

functionの中身をRubyで
記述するのでもいいんですが....
722デフォルトの名無しさん:2001/07/13(金) 11:22
「何か。」もホットゾヌもかちゅ〜しゃも使ってるうちにメモリ使用量が
どんどん増えてくんだけど、Delphiにはメモリリークを免れ得ない構造的
な欠陥でもあるの?
723デフォルトの名無しさん:2001/07/13(金) 11:45
>>722
アラシ?
724デフォルトの名無しさん:2001/07/13(金) 11:47
PPAは利用規約がイヤスギ。あんなの使えるかっつーの。
725デフォルトの名無しさん:2001/07/13(金) 11:48
じゃないと思うけど
726デフォルトの名無しさん:2001/07/13(金) 11:48
>>722
最小化すると解放される仕組みになっているらしい。
727Dturbo:2001/07/13(金) 12:35
PPA.pasの規定は厳しいみたいだけどDLL自体は普通かも。>>724
オレはそんな程度の認識、PPA.pasは今のところはいらないし。

PPA.DLLは
自作のフリーソフトなどにこん包する場合も規定の
> Project-PPAメンバーに断りなく配布/再配布/転載/雑誌収録する事を認めていません。
に当てはまるのだろうか?
728デフォルトの名無しさん:2001/07/13(金) 13:29
>>721
PPA的とはどのような感じ?

> Clipborad.AsText := Userさん作成関数(Clipboard.AsText);

この行はDelphiで書くの? PPAで書けるの?

> functionの中身をRubyで
> 記述するのでもいいんですが....

関数にしなきゃならんわけじゃないよね? それなら APL でいけると思う。
究極的には組み込みRubyだけど,実行時ライブラリを使う必要がある。
729デフォルトの名無しさん:2001/07/13(金) 13:41
>>728
でけた。

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
730デフォルトの名無しさん:2001/07/13(金) 14:41
脳内インデントは勘弁
731turbo type D:2001/07/13(金) 14:44
そういうときにスクリプトで
半角スペースx2>>全角スペースとすると
いいのに。
732デフォルトの名無しさん:2001/07/13(金) 15:52
コピペには半角スペース2個→&nbsp;&nbsp;のほうがよさげ
ClipBoard.AsText := StringReplace(ClipBoard.AsText, ' ', '  ', [rfReplaceAll]);
別スレより
733732:2001/07/13(金) 15:55
ミスった、鬱だ・・・
ClipBoard.AsText := StringReplace(ClipBoard.AsText, '  ', '&nbsp;&nbsp;', [rfReplaceAll]);
734turbo type D:2001/07/13(金) 16:00
&nbsp;だとかちゅーしゃのHint表示で&nbsp;が
そのまま表示されるので美しくないっす
最新版で直っているかどうかはしらないですが。
735デフォルトの名無しさん:2001/07/13(金) 17:35
テスト

begin
  for i := 0 to 10 do
     Nanashi;
end;

>>735
736デフォルトの名無しさん:2001/07/13(金) 17:36
結論。最新版(2.101)で治ってない(´д`;)
737デフォルトの名無しさん:2001/07/13(金) 17:36
つーわけで、かちゅーしゃ板に要望だしとこ。
738名無しさん:2001/07/13(金) 18:04
2chだけのためにアプリ1つ入れる(インストールする)という感覚がわからん。。。
739デフォルトの名無しさん:2001/07/13(金) 18:23
使ってみりゃ分かる・・・。
740デフォルトの名無しさん:2001/07/13(金) 18:37
>>724
>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しちゃ「いけない」!
741デフォルトの名無しさん:2001/07/13(金) 18:40
>>738
正直、webブラウザで見る気がうせる。
742デフォルトの名無しさん:2001/07/13(金) 18:41
>>740
いやゆる感染系ライセンスですな。ヒデェや。
743デフォルトの名無しさん:2001/07/13(金) 18:51
>>702
 Delphiのヘルプはわかりにくいからなぁ.
 慣れると勘が働いてなんとか使いこなせるようになるけど.

>>739
 2ch方面は初心者ですけど
 スレッド見に行くたびに待たされるのがイヤなので
 かちゅ〜しゃ入れました.もう戻れません.
744デフォルトの名無しさん:2001/07/13(金) 19:00
>>742
>>740の解釈通りだとすると、GPLの比じゃないよな。
745デフォルトの名無しさん:2001/07/13(金) 19:30
>>740
俺も規約を最初に読んだときは引いたよ。

「明らかにPPAを模倣した…」が「明らかにPPAに変更を加えた…」だったらば
少しはマシだったのだが。
746デフォルトの名無しさん:2001/07/13(金) 20:12
PPAはあきらかに僕が昔作ったインタプリタの模倣です。
ただちに配布を中止してください。
747デフォルトの名無しさん:2001/07/13(金) 20:22
オプソでScriptPascal作る?
748デフォルトの名無しさん:2001/07/13(金) 20:30
ぜひギコPascalにしてやってくれ。
749たまには外も眺めてみよう。:2001/07/13(金) 20:57
750ここにもあったYO!:2001/07/13(金) 21:03
751デフォルトの名無しさん:2001/07/13(金) 21:32
ギコPascalをみんで作ろう
752751:2001/07/13(金) 21:33
入力ミスった。すまそ。「みん」>「みんな」
753デフォルトの名無しさん:2001/07/13(金) 21:42
PPAなんか見んで作ろう!
754デフォルトの名無しさん:2001/07/13(金) 22:34
誰かベース作ってうぷして
755デフォルトの名無しさん:2001/07/13(金) 22:48
delphiフリーで出して欲しくなかった。。
こういうスレッドやメーリングリストで初心者質問が飛び交う事態になる気がする。
personal版4800円でパッケージのみで十分じゃないか。むちゃくちゃ安いんだし。
756デフォルトの名無しさん:2001/07/13(金) 23:09
たしかに
757デフォルトの名無しさん:2001/07/13(金) 23:38
Delphi厨房を大量生産する危機かもね。
758VB厨房:2001/07/13(金) 23:42
やったぜ。
これでDelphianの仲間入りだ!
バシバシ質問するよ。
759デフォルトの名無しさん:2001/07/13(金) 23:59
>758 ML逝け
760デフォルトの名無しさん:2001/07/14(土) 00:07
マジメにやってればVB厨よりかは遥かにレベルウプできるのえ
Delphi厨房が増えても問題は少なくなる。

あと、ユーザーが増えてBorlandがつぶれなくなればヨロシ。
761デフォルトの名無しさん:2001/07/14(土) 00:20
>あと、ユーザーが増えてBorlandがつぶれなくなればヨロシ。

けど、全員無料版しか使わなかったら、いないジャン。

Personal 4800円だって、CD-ROM / マニュアル / 初期サポート代でしょ。
店頭価格ってことは、店のマージンを考えりゃ収入は 2000 円くらいか?

どう考えたって開発費の元が取れるとは思わない。

フリー版使って、よいなと思ったら、いくらか寄付するシステムなんてどうだ?
762デフォルトの名無しさん:2001/07/14(土) 00:23
多分760はもっと長いスパンで見ていると思うよ。
Delphiにトライする人が増える -> 普及する -> 業務とかでもフツーに使われるようになる
てな具合に。
763デフォルトの名無しさん:2001/07/14(土) 00:33
フリー版使って、よいなと思ったら、グレードアップするんじゃないの?
764デフォルトの名無しさん:2001/07/14(土) 00:55
少なくとも俺はアップグレードするね!・・・・と思うね!
BCB4PROユーザーだけれども。
765デフォルトの名無しさん:2001/07/14(土) 01:24
わかってる人は、VCLソースのないフリー版は価値なしと思うだろうけど、
フリー版使うのはこれからわかる人だからねぇ。
766デフォルトの名無しさん:2001/07/14(土) 02:01
えんたーを買います('-`
767デフォルトの名無しさん:2001/07/14(土) 02:26
>>761
マニュアルはPDFかヘルプのみと思われ。
768デフォルトの名無しさん:2001/07/14(土) 02:40
まあ、マニュアルはいらんけどな
769デフォルトの名無しさん:2001/07/14(土) 07:43
二重投稿スマソ
このスレですね。
 以下をDelphiで記述するには?
※インデントは全角空白
while( (c = getc(fr)) != EOF )
{
  do
  {
    r = rand() / ( (RAND_MAX+1U)/256 );
  }while(r >= 256);
  putc(c^r,fw);
}
770デフォルトの名無しさん:2001/07/14(土) 08:01
>769
2重投稿すんな。どっか逝け
771デフォルトの名無しさん:2001/07/14(土) 08:24
まあpersonal版CD-ROM付きの
Delphi入門書は確実に1ダースぐらい出るだろ。
772デフォルトの名無しさん:2001/07/14(土) 08:24
>>769
Delphiでコンパイル出来るようにしてあげたよ。下のコードを
例えばButton1Clickに挿入して下さい。

(*while( (c = getc(fr)) != EOF )
{
  do
  {
    r = rand() / ( (RAND_MAX+1U)/256 );
  }while(r >= 256);
  putc(c^r,fw);
}*)
773デフォルトの名無しさん:2001/07/14(土) 09:14
>>767
ttp://www.borland.co.jp/delphi/del6/features.html
これを見るとクイックスタートとObject Pascal言語ガイドがついてくるらしい。
774デフォルトの名無しさん:2001/07/14(土) 11:29
>>744 >>745

そそ。GPLなら縛るのは実装までだけだ
(というかオプソ文化なら模倣はむしろ奨励だ)が、
PPAはアイデアすら縛っている。
#ドイツあたりだと、こういう理不尽なライセンスは
#自動的に無効にされたりするかもらしい。浦山鹿。

アイデアを縛るものといえば特許もあるが、
PPAのはライセンスなので、
特許みたいに年限が(長すぎるとは言え)あるという
わけでもない。
まぁ著作権としての年限は有るのかな。だとしても作者死後50年。悠久。

ひどい話だ。何様だ。
Pascal発明者ですらこんなこと言ってないぞ。

>>749
>http://www.torry.net/tools_compilers.htm

ぎゃはは。既に有りましたって奴か。
つーわけでみんな、PascalScriptが欲しければ
そっちへ行ってしまおう!(勿論、自作/模倣もおっけー(わら
775デフォルトの名無しさん:2001/07/14(土) 12:17
というわけでだ、turbo氏よぉ、
いつかソースを読みたくなった時に困らない
(VCLソースが無いと困るという人がこれだけ多いことからも
類推できるように、それは案外早く来るはずだ)ために、
今からPPAから離れておいたほうがいいんじゃねーのか?
もっと安全なライセンスの奴に移行しちゃえ。

しかし本当に色んなPascalコンポがあるんだな。驚き。
まぁ有り触れたアイデアだからねえ…
776デフォルトの名無しさん:2001/07/14(土) 12:27
なにより痛いのは、あのライセンスだと、
「ボクはコンポ作る気概なんかありませんよー」という
カワード君しか、ソースを読めない、ということになる点だ。

ソースを読むというコンポ作り野郎の当然の嗜みを、
やりたい奴にはソースが読めず、
やりたいと思わない奴にだけ読めるわけだ、
あのライセンスでは。

要するにFREE(無料じゃなく自由)ソフト作る連中の
「邪魔」をしてるようなもんだ。

うざすぎ。もしやこいつゲイツの親戚か?(わら
777名無しさん:2001/07/14(土) 13:26
777
778turbo type D:2001/07/14(土) 15:39
なるほどなあ。
確かにそのライセンス・
作った当人らはあまり意識してなかったと思うが
利用者側にしてみれば痛々しいですね。

海外ものは2バイト文字の扱いが不安だけど
PPAだって2バイト文字にあまり対応してないみたいだし
この際他のを考えるかな。

むしろ、詳しい方もいらっしゃるようだし
Rubyいってまおか(w

ただ、ライセンスたたきの為にPPA紹介したわけじゃなかったのに
結果的に作者の人々には申し訳ないことをしてしまった。

シェアウェアソース(シェアードソースではなく)的なものなら
喜んで金払うのに、惜しいコンポだ>>PPA
779turbo type D:2001/07/14(土) 15:40
それにしても暑いっすねー。
昨日は暑すぎて安ワインガブのみしてたら気分悪くなって、遅レススマソ。

いろいろ紹介してくれてサンクスYO
780デフォルトの名無しさん:2001/07/14(土) 16:02
そういやrubyのライセンスはどうなん?
PPAの代わりに使えそう?
781デフォルトの名無しさん:2001/07/14(土) 20:12
782デフォルトの名無しさん:2001/07/15(日) 04:10
>結果的に作者の人々には申し訳ないことをしてしまった。

そういう意味の心配のしかたは、しなくていいよ。
「欠点」を引きずったままのソフトを、
それでも「良いよ」と薦めるほうが、かえって悪い。
伝染性ライセンスが問題ならば尚更のこと。

そういう意味ではFREE(等)ソフトもまた弱肉強食だ。
欠点があればDLして貰えなくなるだけ。
DLして欲しければ欠点を無くせばいいんだ。それだけ。

逆に、欠点以外の理由で人気が左右されるのは悲しいんで、
それについてはきちんと心配してあげるべきだとは思うが。

ま、こんな欠点抱えたままじゃどうよ?という話を
作者氏にフィードバックしてあげたりすると
喜ばれるだろうな。
というか、欠点を指摘されて逆切れするような人なら
未来は無いから作品ごと見捨てたほうがいい(たまにいるんだよな

だから、もしある一定以上の肯定的感情をPPAに対して持っているなら、
教えて(=いさめて)上げるのが良策だし、そうでないなら
さくっと去るのもまた道。
783HIRO:2001/07/16(月) 02:59
こんにちわ〜HIROです

現在、Active Formを用いて付くっているのですが…
Delphi 5 なので署名するために別にTool(sigincode.exe)をダウンロードしてきた
のですが…
それには Internet Explorer 5.0用として…ま、いっかと思いダウンロードした
のですが実行できないんです。
Internet Explorer は、5.5を使っているのでこのせいかと思い…
バージョンを以前のに戻しましたが…プログラム開始エラーとなる。
そのエラーは
 「このWindowsに対するCPU用にコンパイルされていません。
製造元に連絡して、新しいバージョンを入手してください。」
というものです…。
CPUが悪い??
ん〜と、ペンティアムの初期のものだけど…関係ないような気はしますし…

もはやファイルの実行方法が間違っているのでしょうか?
そのまま実行という形ではダメなのでしょうか?
Delphiで参照して実行するものなのでしょうか?
ie5.0 や Win2000 で試しましたが…実行できず…
正しいやり方があるのでしたら教えていただけないでしょうか?
Delphi 4だったらこのようなツールは必要なかったんですよね?
784デフォルトの名無しさん:2001/07/16(月) 03:16
日高徹のゲームプログラミング本って数出てないんですか?
数年前にパラパラと立ち読みしたっきり。
古本屋でも一度もお目にかかれていません。
785デフォルトの名無しさん:2001/07/16(月) 07:00
>>784
新日本プログラミングの人のですね。
確かに最近、本屋でもみないけど。
それはそうと、あれって正直役に立つのかなあ。小細工系ばっかだからさ。
有馬さんの「遊びのレシピ」の方がいいようなな気もするけど。
786turbo type D:2001/07/16(月) 09:54
あっついねー。

>>782
丁寧な説明ありがと。非常に参考になりました。
作者にメールしてみるよ>>何人かの人もその方がいいでしょ。
いつになるかはわからんけど。

その時はとりあえず、ROMって匿名にしておいてと
言っておくね。荒れるとヤだし。
787デフォルトの名無しさん:2001/07/16(月) 10:29
>>785
買ったけど、初心者にはいいかもね。いろいろと分かって。
そして、その本がダメだということも分かる(ワラ
788デフォルトの名無しさん:2001/07/16(月) 20:44
TQueryを使ってローカルデータベースを更新するプログラムを作りたいのですが、
DBGridからデータを入力する際に、すでに同じデータが登録されていた場合、
例外により強制終了してしまいます。主キーの列なので当然なのですが、もう一度適切な
データ入力を行ってもらうためにはどのようにすればよいのでしょうか?
789デフォルトの名無しさん:2001/07/16(月) 22:05
try〜except調べてみ。
790デフォルトの名無しさん:2001/07/16(月) 22:54
Delphi6も出ることですし、今のうちに勉強して置きたいのですが
何かお勧め本があったら教えてください。
791デフォルトの名無しさん:2001/07/16(月) 22:59
「はじめてのC」って女性店員にレジ撃たれたくないのは漏れだけ?
792デフォルトの名無しさん:2001/07/16(月) 23:07
エロ雑誌と一緒に購入せよ>791
793デフォルトの名無しさん:2001/07/16(月) 23:31
>>790
ガイシュツなので>>493辺りへゴー!
794デフォルトの名無しさん:2001/07/16(月) 23:55
Object Pascal言語ガイド
     と
Object Pascal リファレンスブック (アンク)

どっちがいいかにゃ〜?
795デフォルトの名無しさん:2001/07/17(火) 00:08
それは読んだことないけど、別のアンクの本を買ってえらい目にあった。
だから言語ガイドの方をお勧めする。
796デフォルトの名無しさん:2001/07/17(火) 12:20
>>794-795
アンクの本は普通。
言語本なのであれでDelphiが使えるようになるかといえば疑問だけど。
797デフォルトの名無しさん:2001/07/17(火) 13:02
>>788
TQueryの BeforePostで別Queryつかってチェック。
もしすでにあったらサイレンと例外でPostさせない。
798デフォルトの名無しさん:2001/07/17(火) 16:58
int64の帰り値をインラインアセンブラで返したいんだけど、
どうやればいいの?

function getRDTSC: int64;
var d:Integer absolute Result;
asm
 DW $310F //RDTSC
 //EDX,EAX を int64で返したい
end;
799デフォルトの名無しさん:2001/07/17(火) 17:21
色変換をして画面に表示するプログラムをつくってます。
640x480程度の大きさの画ならうまく行くのですが、
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;
800798:2001/07/17(火) 17:59
今、なんとか動くコードは

function 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;
801798:2001/07/17(火) 18:05
ありゃ?
 余分なもの全部取ったら
function getRDTSC: int64;
asm
  DW $310F //RDTSC
end;
コンパイル時の暴走も無くなったし
余分なスタックフレームも作られなくなったぞ?
802798:2001/07/17(火) 18:09
>>799

Windows 95/98:作成できるビットマップのサイズは、最大 16MB です。
803デフォルトの名無しさん:2001/07/17(火) 18:09
function getRDTSC: Int64;
asm
 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;

でいいはず。
804799>802:2001/07/17(火) 18:22
>Windows 95/98:作成できるビットマップのサイズは、最大 16MB です。
ありがとうございます。(知りませんでした。。)
でも1920x1080のRGBだから6,220,800 Byteってことで大丈夫のはず。。
しかもNT4だし。。

いま、
CreateCompatibleBitmapでメモリーデバイスコンテキストのHBITMAPを取得し、
(これはうまく行った。)
SetDIBitsで画の情報を打ち込もうとしたら、今度はこの関数で失敗。

はぁ。。困った。。
805798:2001/07/17(火) 18:32
>>803 ありがとう。 たぶんmov Result,EAX は最初に試した筈だけど
 何故かエラー(バグか?)になるもんだから、absolute付けてさらに
 って調子で 上塗りしていったみたい。


>>804 判らないけど、GetLastErrorしてFormatMessageして
 どういう理由でエラーになるか調べてみたら?
806798:2001/07/17(火) 18:35
つまりは SysErrorMessage を呼び出すといいよ
807799:2001/07/17(火) 20:27
>>799
ちょっとテストしてみました。

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でこけます。

この結果から、大きな領域を持つ動的配列が悪さをしているように感じますが、
どうなんでしょうか?
 このテストでぴんと来た方、どうぞ教えてください。。
808799:2001/07/17(火) 20:29
>>807の 「CreateDIBitsでこけます。」
誤:CreateDIBits
正:CreateDIBitmap
809デフォルトの名無しさん:2001/07/17(火) 21:00
>>805
mov Result,EAXがコンパイルエラーになったのは
EAXが32bitなのに対し、Resultが64bitだからじゃないかな?

>>807
Windows API はたまにRTLライブラリで確保されたメモリポインタを
受け付けないことがあります。動的配列の代わりにGlobalAllocPtrを
使ってはどうでしょうか?
810798:2001/07/17(火) 21:13
>>809
>mov Result,EAXがコンパイルエラー
あ、これは確かに DWORD ptr つけないとサイズが
合わないというエラーになる。

でも、DWORD PTR つけても今度は 単にコンパイルエラーと
表示されるんだよ。

最後の Result;=Result +0;のおまじない付けずに試してみて
811799:2001/07/17(火) 21:23
>>809さん、どうもありがとうございます。
GlobalAllocPtrってのが分からないのですが、(ヘルプにのってなかった)
AllocMem関数でヒープを割り当てればいいってことですよね?
(メモリ割り当ての関数がいっぱいあってよくわからない。。
AllocMem, GetMem, New, SetLength...)

ところで、ポインタを得るのはいいんですが、Cと違ってObjectPascalの
ポインタは配列のように扱えないので非常に不便です。

なんとか、array of Byte型の動的配列にキャストする方法はないのでしょうか?
PByteArray型がそれっぽいんですが、どうもコンパイルが通らないです。。
812デフォルトの名無しさん:2001/07/17(火) 22:03
>Cと違ってObjectPascalのポインタは配列のように扱えないので非常に不便です。
なら、C を使えば?無理して丸を四角に押し込むこともあるまい。

C でもポインタと配列は異なるものなのだから、よい機会なので二つをはっきり弁別できる
体を作っておくと、死ぬまで有効に使えるよ。
813デフォルトの名無しさん:2001/07/17(火) 22:20
>>811 (799)
俺も最近ポインタと配列関係で悩んでたんだけど、
http://www.nifty.ne.jp/forum/fdelphi/faq/00160.htm
を参考に
hoge^[i] := hoge^[i+1];
ってな感じでやってます。
ただメモリをぐちゃぐちゃ弄ぶにはCがいいのかなー。
814デフォルトの名無しさん:2001/07/17(火) 22:33
813のリンクに
type
TIntArray = array[0..9999] of Integer;
PIntArray = ^TIntArray;
ってあるけど、15,000*4Byte分のメモリを割り当てて
9999を超える要素にアクセスするのは大丈夫なのかなぁ。。
815デフォルトの名無しさん:2001/07/17(火) 22:39
最近、ここはMLより高度だ
勉強になる
816デフォルトの名無しさん:2001/07/17(火) 23:05
だって ML の主メンバーがこっちに.... 以下自粛。
817デフォルトの名無しさん:2001/07/17(火) 23:15
>>810
確かに内部エラーが出るね。このスレの上の方でも出ていたけど
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 とかを
使うのが普通です。
818俺なら:2001/07/17(火) 23:16
array[0..High(Integer) div sizeof(Integer)-1] of Integer
819デフォルトの名無しさん:2001/07/17(火) 23:24
>>818
うっかり実体を確保すると、崩壊するよ。
元から範囲チェックをしない。と決めているんだからどんな数字を使っても同じ。
ただ、0とか1くらいは含んでいないと、コンパイル時にエラーになる。
9999がいいところかな。
820デフォルトの名無しさん:2001/07/17(火) 23:26
ふつーにGlobalAlloc/Free呼べないの?>>817
821デフォルトの名無しさん:2001/07/17(火) 23:27
9999ならうっかり実態確保してもいいのか?
822デフォルトの名無しさん:2001/07/17(火) 23:35
Inc()とかDec()とか使えば無理矢理ポインタ演算も出きるし、
結構速度的なチューニングでもいけるよ、Delphiって。
823デフォルトの名無しさん:2001/07/17(火) 23:40
>>816
マジですか?

MLは堅苦しい雰囲気が漂ってるので、こっちの方がイイ!
824813:2001/07/17(火) 23:44
>>819
範囲チェックしないんですか>ObjectPascal。
どうにも不安だったのですがおかげで夜も安心です。
ただいちいちtype宣言書くのが面倒ですね。


>>821
じゃぁ999で。
825デフォルトの名無しさん:2001/07/17(火) 23:48
>>824
プロジェクトオプションのコンパイラ項目でチェックできるように出来るよ。
または{$RANGECHECKS ON}の行をユニットの先頭に挿入する。
826824:2001/07/17(火) 23:54
>>825
ほうほう、逆に危険地域へのアクセスを防ぐこともできるってことですね。
まじDelphiいいなぁ。
827デフォルトの名無しさん:2001/07/18(水) 00:00
>>826
Cはその辺のことを一切面倒を見ない代わりにスピードを追求している。
828デフォルトの名無しさん:2001/07/18(水) 00:09
>>827
でも、唸るほどは速度差でないじゃん
829デフォルトの名無しさん:2001/07/18(水) 02:18
配列アクセスが多くなると効いてくる
Javaでも配列の範囲チェックを以下に省略するかが最適化のネックの1つ
830デフォルトの名無しさん:2001/07/18(水) 02:36
話がかみ合っていないな...
831デフォルトの名無しさん:2001/07/18(水) 04:01
つーか何の話してるのかわからん
832デフォルトの名無しさん:2001/07/18(水) 05:06
>>828
今時のPCではね。
833デフォルトの名無しさん:2001/07/18(水) 06:36
俺は0..0派だな。

PByteArray = ^TByteArray;
TByteArray = array [0..0] of Byte;

でCみたいに配列風にアクセスするときはキャストする・・・と。
つか別に0..0でも不便じゃないけど・・・。

>>811
>GlobalAllocPtr
Win32APIのヘルプにのってるかと。

>>815
なんかMLは最近、DB話と初心(以下自粛
834799:2001/07/18(水) 08:33
みなさん、ありがとうございます。
>>817さんの方法でうまくいきました。即ち、
win32のGlobalAllocPtr関数を使う方法です。
delphiのAllocMem関数を使ってみましたが、だめでした。。
835デフォルトの名無しさん:2001/07/18(水) 10:14
>>834
なにがだめだったんだろう...
836デフォルトの名無しさん:2001/07/18(水) 10:18
謎ですな |:3=(
837818:2001/07/18(水) 10:49
>819
>うっかり実体を確保すると、崩壊するよ。
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い放り込んどけば汎用的に使いまわせるよ。
838799:2001/07/18(水) 11:13
>>835-836
SetLength関数を使って動的配列の領域を確保するとHBITMAPを取得できない
という問題に対し、AllocMemで領域を確保しても同様にだめであった。
しかし、GlobalAllocPtr関数を用いて領域を確保するとHBITMAPを取得できた。
という意味です。
839833:2001/07/18(水) 12:07
>>837
なるほーど。定数のときに不都合が・・・。参考になるわ。


そういやsysutilsみるとあからさまに上限とって宣言してあるね

 PByteArray = ^TByteArray;
 TByteArray = array[0..32767] of Byte;

 PWordArray = ^TWordArray;
 TWordArray = array[0..16383] of Word;
840833:2001/07/18(水) 12:08
あ、sysutilsの上限じゃねー。ソマソ
High(Integer) div sizeof(Byte)-1 <> 32767じゃん
841デフォルトの名無しさん:2001/07/18(水) 12:41
>TByteArray = array [0..0] of Byte;
最後の要素だけ可変長な構造体を記述するときには 0..0 も有効。

source の下,検索してごらん。
842デフォルトの名無しさん:2001/07/18(水) 12:41
sage たつもりだったのに...
843デフォルトの名無しさん:2001/07/18(水) 15:10
Delphiから文字列を暗号化する場合何が良いですか?
インストールCDにこっそりそういうDLLが隠されてないですか?
844デフォルトの名無しさん:2001/07/18(水) 15:13
Companion CD みた?
845833:2001/07/18(水) 15:24
>>841
いやまあそれは知ってるよ。
TLogPalette弄ったときにWinodws.pas見たら、構造体の最後[0..0]になってた覚えあるしな。
846デフォルトの名無しさん:2001/07/18(水) 16:34
BCB5のCDは見たけど英語だったので読まなかった>844
847デフォルトの名無しさん:2001/07/18(水) 23:09
>>846
せっかくヒントもらったんだから見ようぜ。

いや、俺も英語だから見なかったくちだけど(w
848デフォルトの名無しさん:2001/07/19(木) 10:28
ボーランドが開発ツールをウェブレンタル
ttp://japan.cnet.com/News/2001/Item/010718-2.html?mn
849デフォルトの名無しさん:2001/07/21(土) 02:12
850デフォルトの名無しさん:2001/07/21(土) 02:36
a氏がんばれ。

というか、PPAの人たち
ライセンスの事について、ここの住人が何を問題にして
いるのかを全く理解していないと思われる。

自分達の視点ではなく
あのライセンスを利用する側の視点で見て欲しいものだ。

a氏はOpenSource主義のようだけど
別にその主義じゃない人としてもあのライセンスは困るだろう。

「XMLパーサーを作りたい」という人に対して
「模倣になるからソースは見ない方がよい」とは、なんて
いい加減な...
851デフォルトの名無しさん:2001/07/21(土) 03:14
>例えば、PPAのMLの264で

http://village.infoweb.ne.jp/~skonishi/index.html

>のページの管理者の方がppa.pasを参考にしてXML Parserを
>書いてみたいと言っていて、それに対してDEKOさんが
>268の投稿で「模倣」の条項があるからそれは止めた方が
>良いと言っています。
>ここで、仮に上の管理者の方がppa.pasを見ていた場合、
>管理者の方がXML Parserを公開することが
>PPAのライセンス違反になる可能性があります。

>こういう事が可能性として考えられるライセンスは
>私的にはマズイと思うのですが、
>どういう意見をお持ちでしょうか?
852デフォルトの名無しさん:2001/07/21(土) 03:17
>>740に対して
---------------------------------------------------------------------------
-----
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」は?#なんてな質問はヤブヘビですかね(^^; 持ってますけど。
853デフォルトの名無しさん:2001/07/21(土) 04:20
TreeViewの表示をカスタマイズしようと思い、CustomDrawItemイベント
を書いたのですが、フォントがでかく表示されてしまいます。
以下は最低限の再現するソースです。
解決方法はありますでしょうか?
ちなみに、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;
854デフォルトの名無しさん:2001/07/21(土) 06:43
>>PPA
なんつーか、2ch(匿名)だからってへんに反発くらってる感じがして残念。
いや、それ以前に態度を変えるつもりはないようだから、
2chは口実にすぎないのかもしれないけれど。

しかしa氏ら、キレないでよく頑張ってるなー。
855デフォルトの名無しさん:2001/07/21(土) 08:19
PPA潰しのコンポーネントに期待
856デフォルトの名無しさん:2001/07/21(土) 09:09
>>853
DemoのCustomDrawをみると
DefaultDrawをTrueなのにフォントを描画しては
いけないようです。

それにフォントを変更する場合は
TreeView.Fontあたりを変えた方がいいらしい。
(そらそうだ)

あまりOwnerDrawってやったことないけど
OwnerDrawする場合はイメージや
左側の罫線部分すべて描いた方がよさそう。

というか、VCLのデフォルト機能として
貧弱なんだよなあ。

Demoの
procedure TCustomDrawForm.TVCustomDrawItem(

の if cdsSelected in State then

をコメントアウトすると幸せになるかも
857856:2001/07/21(土) 09:28
TextOutの直前に
TreeView1.Font.Size := TreeView1.Canvas.Font.Size;
これをするといいのかも知れない。
858デフォルトの名無しさん:2001/07/21(土) 13:20
CustomDrawでTreeView1.Canvas.Fontは全然効きません。
まだ理由はわからんけど。

あとVCLにバグがあって、文字を透過描画する際に
SetBkMode(TreeView1.Canvas.Handle,TRANSPARENT)
をやらんを駄目です。
859853:2001/07/21(土) 15:18
>>856 >>857 >>858
ありがとうございます。
一旦、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などに描画後、貼付するなどの手段を
試していこうと思います。
860858:2001/07/21(土) 15:24
>>859
漏れ書いたんだけど
>CustomDrawでTreeView1.Canvas.Fontは全然効きません。
コレな

ソース追ってるが、原因はわからん。意外にTreeView自体のバグかも。
861デフォルトの名無しさん:2001/07/22(日) 13:13
もうちょっと具体的にやりたいことを書いて
サンプルをアゲてみてくれい。

TreeNodeの文字にグラデーションでも付けたいの?
862デフォルトの名無しさん:2001/07/22(日) 13:54
カンファはどーだったんかね?
863デフォルトの名無しさん:2001/07/22(日) 15:32
>>861
TreeNodeの右側に文字列を追加したいのです。
Becky(メーラ)のツリーのような感じです。
フォントサイズは、Node、追加文字列ともに同じ大きさですが、
色は、Nodeは黒。追加文字列は青などにしたいです。
また、Nodeを選択しても、追加文字列は反転しません。
と、いうのをカスタムドローでやったら、大きいフォントで
描画されたり色が反映されなかったりしたわけです。
現在は、一旦TBitmapに描画してからNode.CanvasにDrawしています。
多少ちらつきますが、一応上手く表示されています。
本当は、Node.Canvasに直接描ければいいんだけど。
864デフォルトの名無しさん:2001/07/22(日) 15:43
IEのプロクシを外部から変更させたいんだけど.
レジストリの
パス HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\
キー ProxyServer
を変更するだけじゃIEが認識しないんすけど,
何か通知メソッドかなんかありますか?
865デフォルトの名無しさん:2001/07/22(日) 16:13
WM_SETTINGCHANGE
866865:2001/07/22(日) 16:16
めんどくさいのでHWND_BROADCASTで送ってしまいましょう。(おせっかい?)
867デフォルトの名無しさん:2001/07/22(日) 16:43
delphiってもうバージョンアップしないって本当ですか?
買っても将来性がないんですよね。
他の買った方がいいですよね。
868デフォルトの名無しさん:2001/07/22(日) 16:46
放置。
869デフォルトの名無しさん:2001/07/22(日) 16:46
つーか、定期的に同じ内容で書き込んでるやつがいるな。
870デフォルトの名無しさん:2001/07/22(日) 16:47
VBの次はDelか?おいおい。
871デフォルトの名無しさん:2001/07/22(日) 18:23
デルファイってターボパスカル?ってのを使ってるんですよね。
どんな言語なんですか?
872デフォルトの名無しさん:2001/07/22(日) 18:31
>>863
やりたいことは理解できたのですが
うーん、わかりません。

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の描画が
邪魔しているのか??全然わからないわ。
力になれんでスンマソ・
873デフォルトの名無しさん:2001/07/22(日) 18:41
>>867
はいはい。お前の人生と一緒。
874デフォルトの名無しさん:2001/07/22(日) 18:48
>>873
ワラタ
875デフォルトの名無しさん:2001/07/22(日) 18:50
867の煽りって今まで何度でたっけ
何が悔しくて詰まらんカキコするんだろう?
876デフォルトの名無しさん:2001/07/22(日) 18:57
867ってもうバージョンアップしないって本当ですか?
飼っても将来性がないんですよね。
他の飼った方がいいですよね。
877デフォルトの名無しさん:2001/07/22(日) 18:58
>>875
コボラーが仲間を求めて彷徨ってるに100ルピー
878デフォルトの名無しさん:2001/07/22(日) 19:18
>>654
出しておきました。

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企業として代表電話番号や代表メールアドレスはわかりやすい所に配置しておくことを望みます。

以上
879デフォルトの名無しさん:2001/07/22(日) 19:40
>>871
ネタっぽいけど一応。
Delphiでは、ObjectPascalという言語を採用しています。
Delphiの前身がTurboPascal(これもObjectPascal)なので勘違いされたのかと。

>>878
えらいなー。
880デフォルトの名無しさん:2001/07/22(日) 19:51
TFrame の Anchors て何かやらないとダメなの?

他のコンポみたいに、alRightとしてみ右枠に引っ張られないんだけど
881デフォルトの名無しさん:2001/07/22(日) 19:52
これからDelphi6について勉強しよう
とおもってるんだが。
初心者にお薦めの一冊があれば
教えてください。
882デフォルトの名無しさん:2001/07/22(日) 20:28
>>881 習うより慣れろで いきなり触り倒してみるのが誰にでもお勧め出来る
  学習方法だけどさ、

この一冊はキミの事知らないと何ともいえないね 自分で探すか、
キミの事ある程度知ってる人に選んでも貰えよ
883デフォルトの名無しさん:2001/07/22(日) 20:36
884デフォルトの名無しさん:2001/07/22(日) 20:42
885872:2001/07/22(日) 20:48
>>863

procedure 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じゃなくても同じ動作
一応実現したのであとは任せていいかな?
886デフォルトの名無しさん:2001/07/22(日) 22:53
なんだこりゃ
結論はTreeViewのバグなのか?
887885:2001/07/22(日) 23:01
テストコードががちがちに入ってるので
コードぐちゃぐちゃだから削ってね。


要はCustomDrawItemで描画したものは
テキスト領域として扱われるらしいという事と

TreeViewItemの右側に描画したい場合は
CustomDrawイベントを使えって事。

それさえわかれば
若干のバグっぽい所には目をつぶれる。

だけど、それがわかる前がすごいダルイぞ(゚Д゚)ゴルァ


往々にしてOwnerDrawはだるいので嫌いだ。
888デフォルトの名無しさん:2001/07/22(日) 23:06
889881:2001/07/22(日) 23:24
>>884,882
さんくす!
890デフォルトの名無しさん:2001/07/23(月) 01:23
>>866
駄目だ.wParamに何くわせりゃいいのか判らん.
鬱出汁脳
891デフォルトの名無しさん:2001/07/23(月) 01:48
ずいぶんと
脳から汁が出ているみたいだな。
892デフォルトの名無しさん:2001/07/23(月) 02:12
戸田です、こんばんは

----- 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]
.
893デフォルトの名無しさん:2001/07/23(月) 02:25
>>892
もういいよ。
894デフォルトの名無しさん:2001/07/23(月) 02:45
深雪じゃないか。さすが戸田さん
895デフォルトの名無しさん:2001/07/23(月) 03:38
さぁ。恒例の戸田の門前払いに新参者の岡田がかみついた。

まぁどうでも良いけど,戸田市って自前の実行時パッケージによるアプリケーション配布の
経験きっと無いんだろうな
896デフォルトの名無しさん:2001/07/23(月) 09:45
>>880
>TFrame の Anchors て何かやらないとダメなの?
 ダメみたいね。 設計時はちゃんと動くから気付かないけど
897turbo type D:2001/07/23(月) 10:24
PPA使いたくなくなった・・・・・・・・・・・・・・・・・・・・・・・・・
898turbo type D:2001/07/23(月) 10:26
>>896
実行時でも動く。
何か設定が違うのかな?

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
899デフォルトの名無しさん:2001/07/23(月) 11:05
戸田ってやつのレスは過去ログを検索してるときうざい
900896:2001/07/23(月) 11:31
>>898 もちろんいつも必ずそうなるんじゃないけど
 ちょっと複雑な事やった時なる時があるよ。
901turbo type D:2001/07/23(月) 11:59
そうですか。
実はオレも似たような不具合に出会った事があるので
TFramesは使わないことにしてます。
902デフォルトの名無しさん:2001/07/23(月) 15:08
>>900,901
羹に懲りて膾を吹く。
903turbo type D:2001/07/23(月) 16:03
あつものにこりてなますをふく。

 羹の熱いのにこりて、冷たい膾をも吹いて食う。
一度失敗したのにこりて無益な用心をする。
羹に懲りたる者あえを吹く
904デフォルトの名無しさん:2001/07/23(月) 17:10
羹がなんだかわからない子供も多いんだろうね。
905デフォルトの名無しさん:2001/07/23(月) 18:28
サパーリワカラン(;´д`)
906デフォルトの名無しさん:2001/07/23(月) 20:15
漢字のお勉強

羹 あつもの  汁物など火を通した熱い料理の古称 雑煮
韲 あえ    さしみ あえもの
膾 なます  大根にんじん を細く切って酢あえにした食品
        薄く細く切った生の魚肉を酢にひたした食品
907デフォルトの名無しさん:2001/07/23(月) 20:19
5秒で忘れる鶏頭(・∀・)
908905:2001/07/23(月) 20:27
>>906
勉強になります。よもやdelスレで国語の知識をつけられるとは。
909デフォルトの名無しさん:2001/07/23(月) 20:27
900越えたけど、新スレ建てる?
それともあんまり違いがないのでTechに合流しちゃう?
910デフォルトの名無しさん:2001/07/23(月) 20:56
チンカスだと思ってた
911デフォルトの名無しさん:2001/07/24(火) 00:29
>>850
>自分達の視点ではなく
>あのライセンスを利用する側の視点で見て欲しいものだ。

なんかあれは凄いなあ。
ライセンスとは他人に付きつけるものなのに、
何をどう付きつけてるのかアヤフヤな状態のままだし、
そのくせ自分の権利権利って言うし、

>「XMLパーサーを作りたい」という人に対して
>「模倣になるからソースは見ない方がよい」とは、なんて
>いい加減な...

ええ。めちゃめちゃいい加減ですね。
結局、(あの作者の自己責任に基づく)「模倣」の定義が
あやふやのまま。あれで人を縛ろうなんて御都合すぎ。
ケース倍ケースで都合よく解釈して運用しようと
思ってる(というか無意識(または確信犯の演技?))という手合いかも。

いや、あと数日くらいは希望を捨てずに待つべきなのかも。

それにしても、模倣の判定基準としてソースのコピぺを持ち出す
っていう解釈を、生まれて初めて聞きました。
それ、なんか違うぞ。
本気で思ってるのか、苦し紛れなのか…

>>852
あの1907は、なめてるか、
「文句言われるなんて想像もしてなかったので」
はちゃめちゃな受け答えをしてるか、どっちか、かな。
ここの元記事を読んだんだろうに、出来る出来ないという質問事項を
どうやったら技術習熟度の話だと思えるのやら…
皮肉で返してる積もりなのなら、ありゃ空振りして自分の顔に当たってるよ。

うーん。現段階では確定は出来ぬが推測として、
単にソース公開する「根性」が無いだけなんじゃないかな。
根性といっても別に活動しないとならない事柄が有る訳じゃなく、
単に「変な要求を他人にしない(自由を奪わない)」という
自分を律する方向だけなんだがな。何も足さない何も引かない。

漏れなら、ソース(=けつのあな?)まで公開しちまった状態で
なお人様相手に空威張りするなんて、恐くて出来ません。

>>855
いちいち作ったりするまでもなく、既に一杯あるわけですから(わら

>>906
え?すると古代中国にもあの「なます」が有ったの?
あの、紅白な彩りで少しだけ目出度い雰囲気なんで、
おせち料理に入れたりするあれだろ?
912turbo type D:2001/07/24(火) 10:12
a氏ですか?、お世話様です。
最初にDEKO氏にメールしたのはオレです。
こういう事はあまりいいたくはないけど
"PPAは使わない"という判断を下せる十分な理由が出来ました。
オレには得るものはあったので、感謝しています。

PPAの人たちやa氏に得るものはあったのだろうか。
主張は賛成反対それぞれあるが双方に悪い事したよ。
都合よくポヂティブに考えたら、ライセンスの実際の運営の際の
難しさ・問題点を洗い出したともいえるかな。

あの来扇子は結局の所
『ぼくらのお仲間になるのならソースみせたげるよ。』
という事を目的にしたものなのだろうね。

> 結局、(あの作者の自己責任に基づく)「模倣」の定義が
> あやふやのまま。あれで人を縛ろうなんて御都合すぎ。
> ケース倍ケースで都合よく解釈して運用しようと
> 思ってる(というか無意識(または確信犯の演技?))という手合いかも。
激しく同意。

ああいうソースライセンスと、一連の受け答えで出てくる答えが
「結局の所、ライセンスを使いたいのですか?」とか
「使う側の権利ばかり主張して作るものの権利は守らなくていいの?」とか
だとしたら
全くわかっていないとしかいいようが無い。

自分たちを客観視する事も出来ないというのは
大変かわいそうに思えました。
>>つまり、仮にギコPascalなるものが存在していて
 そのソースライセンスがPPAと同様のものだとすれば
 PPAの方々はその存在はわかっていても見ることが出来ないわけであり
 しかも見た途端にPPAには参加できそうにもなくなるので
 非常に迷惑こうむるはずだが
 それを想像できないというのはかわいそう。

お仲間だけに見せたいソースなのなら
世間一般に対してライセンスと称して公表しないでもらいたい。
マナーの問題だと思うが、ソースライセンスを取得したいと思って
見ている利用者に対して大変失礼だ。

完全ソースクローズドコンポーネントや
ソースが高額なコンポーネントの方が
遥かに安心だと感じています。


非常に残念ですが他のインタプリタコンポの利用を考えてみます。
アポロかな?
913デフォルトの名無しさん:2001/07/24(火) 12:02
このスレは今期限りで終了させていただきます。
新しいスレは絶対に立てないでください。
914デフォルトの名無しさん:2001/07/24(火) 12:14
915デフォルトの名無しさん:2001/07/24(火) 12:16
どの言語使いか知らんがいやがらせか?
916デフォルトの名無しさん:2001/07/24(火) 12:50
>>863
結局問題を解決できたか?

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)')の
初期描画位置がどうしてもずれる

なぜだ!教えてくれ。
917デフォルトの名無しさん:2001/07/24(火) 12:57
このスレは閉鎖しますので、以後の質問は下記でお願いします。

http://piza.2ch.net/test/read.cgi?bbs=tech&key=993933402
918デフォルトの名無しさん:2001/07/24(火) 12:58
変な嫌がらせ厨がいるみたいだ。
919917:2001/07/24(火) 13:08
>>918
スレが乱立してるから人気のないスレは統合していった方がいいでしょ。
それをいやがらせなんて言うなんて最悪だよ。
もうくんなよな!
920デフォルトの名無しさん:2001/07/24(火) 13:18
なんで、単独で900超えるレスがあるのに

>>917
***すれ立てるまでもない質問はここで 第3刷***

に統合されなきゃいけないんだよ。
おまえがもうくるな。
921デフォルトの名無しさん:2001/07/24(火) 13:32
よしよし、荒れてきました(w
922:2001/07/24(火) 14:03
以後はこちらにどうぞ

Delphi相談室その2
http://piza.2ch.net/test/read.cgi?bbs=tech&key=995950803
923test:2001/08/06(月) 14:49
test
924デフォルトの名無しさん:2001/08/11(土) 12:01
倉庫入り防止age
925デフォルトの名無しさん:2001/08/11(土) 13:15
Delギコは?
926デフォルトの名無しさん:2001/08/11(土) 13:29
無事終了したスレは倉庫に入れるのが筋では。
part1000ができる頃にはDelphiで板が全部埋まっちゃうよ。
927デフォルトの名無しさん:2001/08/11(土) 13:34
別に上げんでも
928デフォルトの名無しさん:2001/08/11(土) 19:24
>>926
★ 削除依頼の質問!コツ!注意! ★
http://teri.2ch.net/saku/kako/986/986017084.html

<引用>
■強制倉庫移動
 お引越しが終ったスレッドなどを優先的に倉庫へ移動してもらう事が出来ます。
 その場合は「○○板@倉庫関係」という専用のスレッドを建てて、お願いしましょう。
</引用>

この板はスレ消費が遅いのであまり必要性は感じませんけど、立てます?
929デフォルトの名無しさん
そのうちながれていくから別に立てんでもいいかと