トップページ⇒tech
929コメント344KB

Delphi相談室

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。 NGNG
ちょっと内容が高度になりすぎてしまうTechスレじゃ質問しずらい
とかはいりにくい人の為に DelphiのTips Q&A はこちら
00021 NGNG
最近便利思った事と、ひっかかった事

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

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

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

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

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

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

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

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;
0029名無しさん@お腹いっぱい。NGNG
Delphi-ML に流せよ。
borland.jp.public.delphi.preopen でもおもしろいかも。
0030>28NGNG
別にどうせDBの為なんだからそれくらいのオーバヘッドいいんじゃないの?

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

それから金銭型と浮動小数点型は中身同じだから用意する配列は一つでいいと思う
0031効率コード求むNGNG
フォントとかブラシを一時的に変更して描画する時、保存する必要があるので
こんなふうなコードを考えました
with XX.Canvas do
 with TBrush.Create do {一時的に作ったオブジェクトに}
 try
  Assign(Brush);    {ここで保存して}
  Brush.Handle:=GetStockObject(HOLLOW_BRUSH); {使いたいブラシを設定して}
  ・・・ブラシを使う処理・・・
  Brush.Handle:=Handle; { ここで復元 }
 except free; end;

しかし元に戻す時に Handleを使わなきゃいけないのはなんだかなあなのですが
うまい方法はあるでしょうか?

>>29 メーリングリストというのはよく判っていません。
   というか自分のメールアドレスは携帯なので・・・

>>30 コメントありがとうございます。共用体というのを勉強してみます
0032名無しさん@お腹いっぱい。NGNG
>>31
>というか自分のメールアドレスは携帯なので・・・
関係ない。
といいたいところだが、受け側に回ることを考えると厳しいかもしれない。
0033某ランド>31NGNG
多少の改善でよければ、こんな感じの保存するだけのクラスを作る

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

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

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

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

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

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

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

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

てな具合に。
0039名無しさん@お腹いっぱい。NGNG
俺が疑問に思うのはインストールすると
VCLのソースがついてくる体験版の存在。
0040名無しさん@お腹いっぱい。NGNG
>>38
ユニット名とNameが同じだからだよ(糞
0041名無しさん@お腹いっぱい。NGNG
>>39
そんなのあったっけ?
0042>38NGNG
フォーム名(クラス名)とユニット名は同じ名前にはできません。
例えばFooUnitとFooFormのようにしてください。
0043>38NGNG
同じ名前だと
ユニット名.XX とした時と オブジェクト名.XXとした時にどう区別する?

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

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

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

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

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

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

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

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

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

TComponentList

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

TObjectList

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

TObjectQueue

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

TObjectStack

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

TOrderedList

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

TQueue

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

TStack

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

procedure func2(var h:hoge);absolute func1;
はダメみたいです
0064>63NGNG
procedure func2(var h:hoge);
begin func1(@h);end;

は当然お気にめさないんだろなあ・・・・inline指令があればいいんだろけど
あとは関数ポインタに代入する方法だけど、これもオーバーヘッドがあるからなあ
006563NGNG
>>64
Cだとこういうのはリンク前に幾らでも弄れるのでDelphiの
absoluteを使って簡単に出来るのかと・・・・
まあ出来なくても ご指摘通りそんなに困るわけじゃないけど・・
0066名無しさん@お腹いっぱい。NGNG
最近の Delphiマガジンの連載記事は面白くない気がします。
後期のD++に似てますが気のせいですか?
0067名無しさん@お腹いっぱい。NGNG
Delphiマガジン Vol.8
http://dmj.psnet.ne.jp/books/ISBN4-939049-08-6.html
0068名無しさん@お腹いっぱい。NGNG
なんでvol8なん?
0069知りたい人。NGNG
エクスプローラが死んだときに消えちゃうアイコン達を、
別のソフトで復活させるってのは出来ます?

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

で、出来るかどうかっていうと非常に難しいんじゃないかな。
と俺は思フ
0072名無しさん@お腹いっぱい。NGNG
69には作れそうにないと思うが。(藁
0073名無しさん@お腹いっぱい。NGNG
72には作れるんですか?
UPキボーン
0074名無しさん@お腹いっぱい。NGNG
Delphiで使えるXMLのPaserってあります?
情報ほとんどみつかんないんすけど。
0075>74NGNG
http://village.infoweb.ne.jp/~skonishi/xml/delphi.html
0076名無しさん@お腹いっぱい。NGNG
>74
エンタ版買え。
0077名無しさん@お腹いっぱい。NGNG
今月のDelphiマガジンの特集がXMLだったよ。
DOMでよければ
http://www.philo.de/xml/
にコンポーネントがあるらしい
0078名無しさん@お腹いっぱい。NGNG
>>74
MS XML Parser がいいと思います。
ただし SAXは使えません。なぜかエラーが出ます。
http://www.microsoft.com/japan/developer/workshop/xml/general/xmlparser.asp

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

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

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

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

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

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

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

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

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

0085名無しさん@お腹いっぱい。NGNG
まとめてage
0086名無しさんi486NGNG
77がいっている http://www.philo.de/xml/ が
SJIS対応になってくれればいいんだけど。
なんかいいDOMない?
0087名無しさソNGNG
会社で、Delphiのことを”デルファイ”という人と、”デルフィ”という人がいますが、どっちが本当ですか?
教えてください。僕はデルファイと思ってました。
0088デフォルトの名無しさんNGNG
>>87
英語読みならデフファイ。辞書引いてみ。
0089デフォルトの名無しさんNGNG
>>88
いやーん訂正。デルファイ。
0090名無しさん@お腹いっぱい。NGNG
前にボーランドのビルで行われたDelphiの説明会にいったら、
OHPのスライドでDelphiの説明をしてくれた。
しかしDelphiではなく、 Delphと全て書かれていた。
俺たちは笑いをこらえて、デルフって新製品ですかね?と
質問してあげたよ。

0091>>87NGNG
日本語読みならデルポイ。web検索してみ。
0092デフォルトの名無しさんNGNG
>>86
だから MS XML Parser 使えってんだ
0093デフォルトの名無しさんNGNG
>>87
広告みれ
#ただし遺跡はデルフィ
0094デフォルトの名無しさんNGNG
>>92
環境依存いや〜ん
0095デフォルトの名無しさんNGNG
>>94
環境依存なんて・・・ちっちぇーこと気にすんなよ!
第一 MSXML + Delphi だと SAXがうまくいかん。
0096デフォルトの名無しさんNGNG
デルファイ5でアプリを作っているのですが、
ツールバーのListプロパティとShowCaptionプロパティをTrueに
すると、Captionが無いボタンのサイズがスペース一個分だけ大きくなります。
VCLのソースを見たら文字列長が0の時はスペースを入れているのですが、
なぜそうやっているのかがわからないです。
このスペースって取ることは出来ないですか?それともコモンコントロール
のバージョンによって違うのでしょうか?
当方環境
Windows2000pro
Delphi5 Update1
0097デフォルトの名無しさんNGNG
Delphiでコンテキストメニュー(シェルメニュー)に独自メニュー
追加する方法教えれ。Delphiのシェル本買ったが、いまいち
分からんかった。サンプルコードとか公開してるとこ知りません
か?
0098デフォルトの名無しさんNGNG
Delphi付属のDEMOをミロミロミロー
0099デフォルトの名無しさん NGNG
コンテキストメニューってポップアップメニューのこと?
0100デフォルトの名無しさんNGNG
エクスプローラノナー。
0101デフォルトの名無しさんNGNG
http://leed.t.u-tokyo.ac.jp/~takeuchi/delphi/search.cgi
ケンサクシテクレ。
0102デフォルトの名無しさんNGNG
TPrinter(.Canvas.Font)の解像度ってScreenの解像度と同じなのかな
やっぱGetDeviceCapsなのか
0103デフォルトの名無しさんNGNG
>>91
ワラタ
0104デフォルトの名無しさんNGNG
DeviceCapabilitiesを使おう
0105102NGNG
なんだ
Printer.Canvas.Handleが有効になってなかったのか
結局CreateIC使ったけど '. LPT1:' 等が一々邪魔だね
これってWindowsじゃなくてDelphiが付けてんのか
0106デフォルトの名無しさんNGNG
monazillaスレから

D4でD5のテキスト形式のフォームを開く方法は
 適当に新規にフォームを作り そこにソースとフォームをコピペします
 フォームはマウス右クリックかALT+F12で開いてコピペね
 それを保存してリネームすればOK
0107デフォルトの名無しさんNGNG
>>106
その手があったかー。俺はObjectTextToResource関数を使って
ゴリゴリ変換していたよ…
0108デフォルトの名無しさんNGNG
>>107
せっかく作った変換関数公開してよ
0109デフォルトの名無しさんNGNG
>>108
ObjectTextToResourceはVCLの関数。
0110デフォルトの名無しさんNGNG
>>106
ML検索スレ
0111デフォルトの名無しさんNGNG
戸堕くんの回答は毎度まとはずれで
インターネットのゴミなので追放していただきたい。
0112デフォルトの名無しさんNGNG
外しているのでゴメンなさい。m(_~_)m
0113デフォルトの名無しさんNGNG
[Delphi:55078]
戸堕の投稿はフィルタでダウンロード拒否すべし
0114デフォルトの名無しさんNGNG
virtualとdynamicはどーちがうんですか?
また、それぞれどう使い分けるべきなんですか?
おしえてくらはい。
0115デフォルトの名無しさんNGNG
スピード優先かファイルサイズ優先か。
使い分けは適当。

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

Delphiオブジェクト指向プログラミング
とかいう本に載ってるよ。
0116ななしNGNG
Quadruple の DirectPlay での質問です。

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

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

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

この仕様は、C++と同じように実装指向であり、ほとんど必要性の
ないものだと思います。こういう言語仕様に疑問を持つ人というのは
いないのでしょうか?
0118デフォルトの名無しさんNGNG
俺はvirtual、1択だな。
0119Del坊NGNG
ところでいつの間にかInpriseからBorlandに戻ってるな
0120デフォルトの名無しさんNGNG
>>117
いないよ。
どっちかに限定されているほうが不満が増えるでしょ。
0121デフォルトの名無しさんNGNG
'Mastering Delphi' の著者のサイトが無くなってる。
どこへ引っ越したんだろ?
0122デフォルトの名無しさんNGNG
>>120
例えばC++やJavaにはdynamicに相当するキーワードはないが、
それに対して文句言う奴なんていない。
あんた、まともに考えたことないだろ。
不満持つ奴なんていないよ。
0123デフォルトの名無しさんNGNG
ここで例にJAVAを出すなよ。(藁

C++がDelphiより機能がないだけ。
DelphiはC++よりも最強なんだから
よわっちい言語と対比しないでね。
0124デフォルトの名無しさんNGNG
>>123
煽るなよ。同じDelphi使いとして恥ずかしいぞ。

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

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

お騒がせしました。
0127デフォルトの名無しさんNGNG
>>123
(・ε・)プップクプー

0128デフォルトの名無しさんNGNG
煽りにのるなよ。同じDelphi使いとして恥ずかしいぞ。 (wara
0129デフォルトの名無しさんNGNG
>>117
http://www.borland.co.jp/tips/delphi/dh014/index.html
0130デフォルトの名無しさんNGNG
>>123
Delphiって言語名だっけ?(プ

>>129
google検索しても、これくらいしか見つからん。
「何ができる?」という情報しかないDelサイトのレベルの低さが伺えるな。
0131デフォルトの名無しさんNGNG
頭の弱い人はDelphi使わなくて結構です。さようなら。
0132デフォルトの名無しさんNGNG
あ、説明不足だったね。
dynamicとvirtualでここまで文句つけれる君は
白痴なんじゃないかと思ったわけ。
という事で白痴くんはさよなら。
0133デフォルトの名無しさんNGNG
自作自演の煽り屋さんは相手にするなよ。
0134はくちNGNG
>>132
別スレでバカみたいに Delphi擁護してんのおまえだろ。
自分が唯一できることが一番じゃないと不安でしょうがないんだろうな。(藁
0135つーかさ、NGNG
>つけれる
こんな言葉を使う時点で、
厨房度というか、普段のコミュニケーション能力というか、
そういうのが疑われるわけよ。
0136名無しサンプリング@48kHzNGNG
DelphiでXMとかITとかをならすにはどうしたら良いですか?
0137デフォルトの名無しさんNGNG
>>136
ъ( ゚ー^) ソノ心意気ヨシ!!
0138デフォルトの名無しさんNGNG
>>136
自力実装か既存のライブラリに頼るか2通りある。
さあ、どっちを選ぶ?
0139デフォルトの名無しさんNGNG
DelphiではHtmlをどうやってParseしますか?
Parseクラスを自作?
0140デフォルトの名無しさんNGNG
>>135
イマドキテイドノヒクイツッコミダナ
0141よし!このセリフがやっといえるNGNG
オーマーエーモーナーーーーーーーー
0142デフォルトの名無しさんNGNG
静的メソッドと動的メソッドって
なぜ異なっているのでしょうか?
0143デフォルトの名無しさんNGNG
>142
スレ違い?Delphiにstaticなんてあったっけ?
0144デフォルトの名無しさんNGNG
virtual, dynamic, override付かないメソッドはスタティック。
classメソッドだってあるよん。
0145デフォルトの名無しさんNGNG
>>143
仮想メソッド=virtual 指令付きメソッド
動的メソッド=dynamic 指令付きメソッド
静的メソッド=何も付いていないメソッド
0146デフォルトの名無しさんNGNG
>144
ホントだ、知らんかったサンクス。<classメソッド
0147143=146NGNG
>145
なるほどねー、俺ヘルプ読んでなかったわ。。。
0148デフォルトの名無しさんNGNG
ちなみにJavaでいうクラス変数はないので、ユニットローカル
な変数(って言うのか?Implemantation部で宣言した変数)
で代用すべしべし。(そんなに使う機会は無いと思うが。)
0149デフォルトの名無しさんNGNG
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.

ぐらいかなあと。もっとスマートな方法ない?
0150デフォルトの名無しさんNGNG
>>148
クラスじゃないがユニットごとの変数が一番似てる
0151デフォルトの名無しさんNGNG
>>149
後者が一番スマートだと思う。
0152どっちでもい〜けどNGNG
前者のがデータ・コードサイズが小さくなりそう。
0153149NGNG
前者だとコード補完したときに var の下に関数が生成されるようです(´д`;)
駄目ジャーン。
0154デフォルトの名無しさんNGNG
>>136 は、ひやかしだったか…。
0155デフォルトの名無しさんNGNG
[Delphi:55364] 素朴な疑問 - 他言語との比較
電波すぎ。
0156136NGNG
136です
諸事情でレスできませんでした。すみません
XMとかあつかうコンポーネントとかあるんですか?
0157デフォルトの名無しさんNGNG
>>156
自分で作りましょう。終了。
0158turbo type D@モナヂラドットオルグ(ワラNGNG
ひまな人
Delphiでこんなの作ってみてくれない?
http://amacre.site.ne.jp/Tuyano/Fun/FUN_8.html
興味あるんだよ。

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

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

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

ぁゃoぃは2chソス嫌ってるみたいだから
URLは書くのやめとく。
0164デフォルトの名無しさんNGNG
>グライダーでデータのやり取りするのか?

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

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

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

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

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

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

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

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

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

with TFrmHoge.Create(Self) do

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

デバックに困る事になる

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

with xx.Create do try

finally free;end;
0182デフォルトの名無しさんNGNG
別にローカル変数ぐらいあってもいいけど...
>>181
ShowModalしか使えないぞ。
それにOnCloseでcaFreeにすると
必要ないのでは?
0183デフォルトの名無しさんNGNG
ボソ(-。-)
あーあ、
情報局にまで飛んでいかなくてもいいのに。
0184デフォルトの名無しさんNGNG
情報局って、、、いつの時代の話ですか。
0185デフォルトの名無しさんNGNG
いや、ばれないようにね。

君なんとかとか俺なんとかとかわたしなんとかとか
ゼイイン要らない
0186デフォルトの名無しさんNGNG
>>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;
0187デフォルトの名無しさんNGNG
procedure foo(const s: String);
procedure bar(s: String);
ってどう違うんでしょうか?
TObjectならconstを使う理由もわかるのですが
0188180NGNG
情報量不足でした。これをやろうと思ったのはShowModalの
時です。
0189デフォルトの名無しさんNGNG
>>187
関数名が違う

・・・つのはネタ

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

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

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

でも
const s:string
s:='1234'; はダメなのは当然だけど
s[1]:='x'; もダメ 
0195デフォルトの名無しさんNGNG
>>194
嫌なコードだな。
0196デフォルトの名無しさんNGNG
 Winのプログラミングはあまり得意ではないのですが、
多少DelphiでWinのプログラムを組めるようになりました。

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

 Winのプログラミングをすると、何か楽な関数があるのではないか、と
期待してしまうのが怖いですね。
0197デフォルトの名無しさんNGNG
>>196
ラッパーでTIniFile,TRegIniFile,TMemIniFileやらがあるよ
0198通りすがりNGNG
TMemIniFileにしとけ
0199デフォルトの名無しさんNGNG
上にマンセー
0200196NGNG
>>197-199
サンクス。
あとで試してみますね。

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

パスカルからデルファイへは
言語マニアのうけはいいかも。
0203デフォルトの名無しさんNGNG
>>202
学習用のIDEみたいなの置いてるね・・・。
0204デフォルトの名無しさんNGNG
WebからHTMLソースを取得するにはどうしたらいいっぽいですか?
TWebBrowserあたりを駆使するのかと思うのですがいまいちよく
わかりませんでした。
頭分けてくださいよろしくおねがいします。
0205>204NGNG
WinInet
http://www.geocities.co.jp/SiliconValley-Oakland/9028/document/index.html
0206204NGNG
・・・あんなに迷っていたのにやりたいことがすぐできました。
205さん、monazilla.orgさんに心から感謝します。
おもしろい物を作ってお役に立てるようがんばります。
0207デフォルトの名無しさんNGNG
unitを作成しているのですが、
interface部は、interfaceのくせにclassのprivateの部分まで宣言しなければいけませんよね。
まー、それは良いとして、実装でしか使わないようなクラスの宣言は
implementation部で宣言したいのですが、interface部(のclassのprivate部分)
で使っているのでinterface部で宣言するしか解決方法が思いつかないのですが、
他に何か良い方法があるのでしょうか?
0208デフォルトの名無しさんNGNG
>で使っているのでinterface部で宣言するしか解決方法が思いつかないのですが、
他に何か良い方法があるのでしょうか?

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

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

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

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

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

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

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

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

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

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

まーーーったく関係ないけど、
「こげぱん」って絵本、お勧めだよ。
ヤサグレ極限キャラに共感を覚える。
0224デフォルトの名無しさんNGNG
>>223
なににコメントつけてる?
0225turbo type DNGNG
あり?
投稿先間違えた.(w
0226turbo type DNGNG
ではついでに聞いておきます。

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

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

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

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

これどうやるの?
0230デフォルトの名無しさんNGNG
>>226

ディレクトリやファイルをトラバースするなら FindFirst系でOK。
ネームスペースオブジェクトを対象にするなら 226 のリンク先の
ようにする必要がある。
0231turbo type DNGNG
>>229
マドのテやKHIconMagicをインストールすると出来るようになる。
IE4以降かな。
0232229NGNG
>>231
試してみたが、ちゃんと FindFirst系で引っかかったぞ。

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

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

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

faDirectory or faSysFile

や

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

詳しく調べてないので
よかったら教えてください。
0234turbo type DNGNG
といいつつ、
自分でも気になったので調べたら
そうみたいだ。

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

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

if FindFirst('c:\*.*', faAnyFile, F)<>0 then
begin
 if F.Attr and faDirectory<>0 then
  //このファイルはディレクトリである
 else
  //このファイルはディレクトリではない
end;
0238turbo type DNGNG
>>229
サンクス。229ので動作も確認.問題なしね。
0239デフォルトの名無しさんNGNG
質問です。
先に作ったボタンなどを、GUIであとからグループ化はできるのでしょうか?
どうも、groupboxの上に乗ってくれない。
オブジェクトをカット&ペーストできればいいのですが。←これもできたりして・・・
0240デフォルトの名無しさんNGNG
>>239
Bottunを選択->切り取り->GroupBoxを選択->貼り付け
0241turbo type DNGNG
カットしてテキストエディタに貼り付けという事も
よくやる。
0242239NGNG
ありがとうございました。
ポップアップになかったのでてっきり「無い」のかと思ってました。
まさかメニューに在るとは・・・初心者な質問で申し訳なかったです。
0243デフォルトの名無しさんNGNG
age
0244素朴な疑問なんですがNGNG
例えば

TClassA = class
....
end;

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

TObjectのソース見たら

TObject = class
....
end;

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

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


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

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

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

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

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

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

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

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

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

いぢわるだなあ
026066ですNGNG
258さん、259さん、ご指導有難う御座います。

返事を何度も読み返して理解中なので、少し
考えさせてください。
0261257ですNGNG
66じゃなかった、257です
0262>260NGNG
>>260
って言うより数学がわかってないんじゃない?
258さんの式見てすぐに理解できないんじゃ
数学やり直したほうがいいよ。

っていうか対数ぐらい自分で調べろ!
0263デフォルトの名無しさんNGNG
Becky!2のプラグインの作り方を教えてください。
0264デフォルトの名無しさんNGNG
ageわすれ
0265厨房NGNG
素朴な疑問です

なぜ、型宣言でstringは小文字から書くのにIntegerは大文字なの?(VCLにおいて)
0266デフォルトの名無しさんNGNG
stringとIntegerは作った所が違う>265
0267デフォルトの名無しさんNGNG
ほんとかよ。(w
0268turbo type DNGNG
ようやく
Delphiオブジェクト指向読んできたよ。

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

構造体じゃあるまいし
静的オブジェクトは使いにくいですよ。
0269デフォルトの名無しさんNGNG
というか、大文字小文字の区別がないんですね、Delphi。
そこらへん、嬉しいような嬉しくないような。
どうも気になって大文字小文字を気にしながら打ち込んでいるのですが、
ふと我に返ると「これって意味ないんかな」とか思って少し鬱。
かといって区別されるとそれはそれで困るんでしょうね。
0270デフォルトの名無しさんNGNG
>>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.
0271turbo type DNGNG
んー、じゃあどうしてIntegerのIは先頭大文字なのでしょ?
0272デフォルトの名無しさんNGNG
>>268
激しく同意。
静的なんていう名前がついているんでしたっけ。
名前すら完璧に忘れてた。

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

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

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

スマソ。
0275デフォルトの名無しさんNGNG
印刷がうまくいかなくて困っています。
pagecontrol-tabsheet上のstringgridの印刷をしたいのですが、pages[i].painttoメソッドを用いると
ウィンドウに表示されている部分しか印字されず、また非常に小さく印刷されます。(プリンタの解像度で印刷されている?)
form.printscaleを変更しても同じでした。用紙いっぱいにstringgridを印刷したいのですが・・・。
helpを見ながら、他にもいろいろとメッソドを試したのですがダメでした。
初歩的な質問ですみませんが、どなたか教えていただけないでしょうか?
0276デフォルトの名無しさんNGNG
>>272
QuickRepじゃだめ?
0277デフォルトの名無しさんNGNG
>>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;
0278277NGNG
これをForm1の宣言部に忘れずにな
procedure CreateParams(var Params: TCreateParams); override;
procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;
0279デフォルトの名無しさんNGNG
>>275

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

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

>>280
vb、vcと挑戦してhelloworldで挫折した私でも、
始めて2日でとりあえずは動くMP3プレーヤーが作れました。
delphiって凄いなぁ。
0284279NGNG
>>281

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

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

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

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

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

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

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

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

でインじゃない.IShellLink で調べてみれ.
0292デフォルトの名無しさんNGNG
http://www.borland.co.jp/qanda/delphi/d0003274.html
http://homepage2.nifty.com/boheme/delphi/tips/tec0810.htm
0293290NGNG
>>291-292
どもども。これでもいいんだが、
SendToのみに作る専用のAPIがあったんだよ。
なんだったけなぁ。Googleで検索しても
出てこないんだよ。APIの名前さえ分かれば...
0294290NGNG
やっぱ勘違いかもしれないなぁ。
IShellLinkでやりますわ。
お手数掛けました。
0295デフォルトの名無しさんNGNG
特殊フォルダのパス取得の事ではあるまいか?
0296名無しさんNGNG
DelphiXって、なんでリファレンス以外に実ソース解析しか理解する方法ないの?
どっかにマシなチュートリアルないのかぇ
本買ったが、添付Helpとサンプル印刷しただけじゃん。鬱。
0297デフォルトの名無しさんNGNG
条件式が非常に多い場合、以下のような書き方をしているのですが、この場合、
コンパイラはショートサーキット評価のコードを生成しないのでしょうか?
つまり、条件式1がすでにfalseでも、条件式2〜4も実行されるのですか?

function test:boolean;
var a,b,c,d:boolean;
begin
a=条件式1;
b=条件式2;
c=条件式3;
d=条件式4;
test:=a and b and c and d;
end;
0298デフォルトの名無しさんNGNG
>>297
生成されたコードをみれ世・・・。
0299turbo type DNGNG
されなかったと思う。
MLではるか昔話題になっていたような。
0300turbo type DNGNG
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;
適当に値変えて動かしてミソ
0301デフォルトの名無しさんNGNG
>>297
ヘルプの「ショートサーキット論理式評価」でも見てみな。
最後まで評価されるかどうかは、コンパイラ指令によって変わる。

つーか、DelphiML過去ログとか検索しようよ。
0302301NGNG
スマン。ここはMLじゃないから、過去ログみろってのは安易に言うべきでなかったか。
0303デフォルトの名無しさんNGNG
あげ
0304デフォルトの名無しさんNGNG
他アプリで反転表示(選択中)の文字列とかって
取得可能でしょうか?
0305turbo type DNGNG
がんばったら出来る。(藁

ToClipHyperってアプリではかなりがんばってる模様。
アクティブなWindowのハンドルに'Ctrl+C'送って
クリップボード見るのが無難じゃないかな?
詳しくしらないから、がんばって。
0306turbo type DNGNG
GExpertsでフリーカーソル無効に出来る?
0307デフォルトの名無しさんNGNG
>>306
出来なかった気がする。
フリーカーソル嫌い?俺はマンセーなんだが。
0308305NGNG
>>305

がんばってみます.
0309デフォルトの名無しさんNGNG
Array of char → Stringの変換って、できますか?
NMUDPで送信したいんですが、Stringが使えないんですよね・・・。
0310turbo type DNGNG
>>307サンきゅ.
すきだよ。フリーカーソル。
0311デフォルトの名無しさんNGNG
VCLってDelphi?
0312デフォルトの名無しさんNGNG
>>311
VCL=Delphiではない。

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

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

こちらも識者のつっこみは却下。
0315デフォルトの名無しさんNGNG
Visual Component Library
Delphi,BCBの使っているコンポーネントライブラリ。

KylixはCLX(Component Library for Cross Platform)
Delphi6は両方のライブラリをサポート。
0316デフォルトの名無しさんNGNG
Visual C++の例も書いたのに・・・。
0317turbo type DNGNG
>>311
何が聞きたいのかがサパーリ(w
0318デフォルトの名無しさんNGNG
これはためした?

Delphi/BCB5フリーカーソル無効化アドイン
http://homepage1.nifty.com/fuu/software/nonfreecursor.htm
0319デフォルトの名無しさんNGNG
もうおなかいっぱいだよー
食べられないっすよー
0320デフォルトの名無しさんNGNG
>>318
横から戴いたYo!超超超イイ感じになったYo!大謝!
0321デフォルトの名無しさんNGNG

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

じゃ駄目だけど、何か方法あるんだろうか?
0327326NGNG
インターフェースに
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;

とやれば出来るけど・・・
0328デフォルトの名無しさんNGNG
>>326
Kylix/Delphi6 なら、部分的な演算子オーバーロードができるんだが。
0329デフォルトの名無しさんNGNG
>>328
詳細キボン
0330デフォルトの名無しさんNGNG
>>328
マジ?! 本当なら超うれしいのだが。
0331デフォルトの名無しさんNGNG
>>328
マジかよ。Delphiも終わったか。
0332デフォルトの名無しさんNGNG
がせ
0333デフォルトの名無しさんNGNG
http://www.oreilly.com/news/kylix_0800.html
>Arithmetic operator overloading
0334デフォルトの名無しさんNGNG
>>333
具体的にどんな感じになるの?
0335デフォルトの名無しさんNGNG
>>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' とでる。
0336デフォルトの名無しさんNGNG
それひょっとして、
http://www.borland.com/delphi/del6/featurematrix/hpnative.html
の、
>Complex Number support via custom variants
の事?
0337デフォルトの名無しさんNGNG
>>326
asじゃなくてTFloatNum(A)じゃできない?
0338デフォルトの名無しさんNGNG
Free Pascalは Operator Overloading出来るらしいが
まさか真似するわけにはいかんだろう。

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

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

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

uses MyFormura TFormura(Extended) as TFloatFormura ;

みたいな感じにしたいとすると、型を拡張するには演算子も
オーバーロード出来ないと駄目か
0341337NGNG
>>340
コンパイルとおったよ?
>procedure TFloatNum.mAdd(A, B: ImNum);
このImNumってINumericとは違うの?
0342337NGNG
age
0343326NGNG
レスありがとう >337

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

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

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

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

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

複素数型で数式処理が出来るようになりました。
DelphiではC++と違って複素数型の扱いが不便。
そこで、文字列で式を与えたら計算させたらどうだと作り始めたのですが
やっぱりテンプレートが欲しいです
0349326NGNG
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) ;とやっても 自分が呼ばれてしまいますよね
0350 NGNG
Result := inherited func(hoge);
だったような
0351デフォルトの名無しさんNGNG
Result := inherited func;
でもいいだよな、確か。
実は、引数がいらない。
0352デフォルトの名無しさんNGNG
あ、もともと引数がないoverload関数があるとダメだねこりゃ
危険危険。
0353326NGNG
>>350
なるほど。それでOKでした。
自分の親の時は引数あってもiherited だけでいいんだと思い込んで
inherited だけでは帰り値が互換性の無い型と出たんで
関数の時は違うんだと思い込んでました。
0354デフォルトの名無しさんNGNG
現在VBでプログラミングしているんですが、
delphiに転向しようかと思っています。

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

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

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

マンデルブロート図形の描画では実際5.5倍ほどの差が出た。
0357354NGNG
なんか良さそうだなぁ。<delphi

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

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

あぁ。もうっ。

らーにんぐえでぃしょんにしとこうかな〜。
0358turbo type DNGNG
>>357
エンタプライズ版の60日限定モノがあるYO.
VB使えたら余裕っす。

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


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

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

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

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

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

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

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

ここで最新スレは追えるよ。
ttp://nh.mikage.to/test/read.cgi?bbs=discuss&key=992023119
0368デフォルトの名無しさんNGNG
DelphiからVBで作ったDLLって呼べるのでしょうか?
0369turbo type DNGNG
>>368
VBでDLLって作れるのでしたっけ?
煽りとかではなくて。
確か作れなかった気がする。
0370D使いβNGNG
>>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
0371D使いβNGNG
>>369
VB5からActiveX DLLっていうのが作れる。
名前の通りCOMサーバ。
0372turbo type DNGNG
>>371サンクス。
ActiveXDLLって、どちらかというとDLLというよりActiveXだったので
思い浮かびませんでした。作ったこともなかったりするし。

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

>Regsvr32 /u Sample.dll

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

コンパイル時は単に無視してるだけ?
0376デフォルトの名無しさんNGNG
delphiが今後バージョンアップしないと別のスレの載っていたの
ですが事実でしょうか?
0377デフォルトの名無しさんNGNG
>>376
コラコラ、デマ飛ばすんじゃない。
出所ぐらい書いとけ。
0378turbo type DNGNG
>>376
ひつこいけど、煽りなのか?

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

Delphiマガジンという雑誌には
D6の内容が紹介されているよ。
0379デフォルトの名無しさんNGNG
>>376
いいかげんしつこすぎ(藁
0380turbo type DNGNG
"ひつこい"と"しつこい"って
どっちが正しい日本語かって調べてみたら
"ひつこい"は訛りなのだそうだ。
0381デフォルトの名無しさんNGNG
江戸っ子だね
0382デフォルトの名無しさんNGNG
>delphiが今後バージョンアップしないと別のスレの載っていたの
>ですが事実でしょうか?

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

今後はネタスレじゃないんだから不毛な書込みは控えてね。
0385D使いβNGNG
>>383
だから誰から聞いたの?
0386デフォルトの名無しさんNGNG
バージョンアップしないという話はネタなんだろうけれど、
Delphiって売れていないのか?
0387デフォルトの名無しさんNGNG
MSの製品と比較して売れてないとは思うが。
0388デフォルトの名無しさんNGNG
>>385
ネタ煽りに反応するなや。
0389D使いβNGNG
>>388
スマン
0390デフォルトの名無しさんNGNG
VBと比較しても売れてないかと思うが
BCBと互角くらいか?
0391デフォルトの名無しさんNGNG
将来プログラマーとして働くにはdelphiよりVCをマスターした
方がいいのでしょうか?
delphiではどんな仕事があるのでしょうか?
マジレスお願いします。
0392デフォルトの名無しさんNGNG
>>391
俺は客先から言語の指定がないのでDelphiで仕事してるけど。

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

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

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

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

>>396さんのこと言ってるんじゃないですよ。一般論として。
0399デフォルトの名無しさんNGNG
delphiで配列データを描画したいのですが、
どのような方法がありますか?
(アニメーションをさせてみたい)
0400デフォルトの名無しさんNGNG
(・∀・) 400!
0401デフォルトの名無しさんNGNG
>>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;
0402399NGNG
>>401
あ、ちがうです。ピクセルに対応したRGB配列に従って
描画したいのです。
わかりにくくてすみません。
0403デフォルトの名無しさんNGNG
(゚Д゚)y─┛~~ 403!
0404デフォルトの名無しさんNGNG
>>402
ピクセル単位で?
効率悪すぎるぞ
0405399NGNG
>>404
どうだと効率よいのですか?
イメージとしては、今3Dのrendering engineを作ろうとしているのですが、
そのためにRGBの配列に書き込んでそれをダブルバッファリングするなりして
描画したいのれす。
0406デフォルトの名無しさんNGNG
Cancas.Pixels[x,y] := TColor(Ary[I]);
かな?TBitmapのScanLineプロパティの方が早そう。
0407406NGNG
X Cancas -> O Canvas

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

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

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

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

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

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

たぶん解決しました。私がやりたかったのはこんなことでした。
レスくれたみなさんどうもありがとうございました。
0413396NGNG
>>397
どこがカッコいいのかよくわかんないんですけど・・・。

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

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

お前も十分イタイ(藁
0418デフォルトの名無しさんNGNG
>>417
その次の行を読んでるか?
0419デフォルトの名無しさんNGNG
DelphiでWin32APIでゴリゴリゲーム作ってるおいらはどうなるんですか。
それでもやっぱRADツール使ってることになるんかな。

>>399
TBitmapのScanLineは激重ですのでご注意を〜。
たぶん自前DIBでやったほうがいいよ。
0420turbo type DNGNG
自分で読み直すとちょっと痛かったですな。スマソ

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

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

てな感じになるものなんだか
0425デフォルトの名無しさんNGNG
>>419
"そういうAPIを使うコンポ"を自作したりはするでしょ?
それとも全部ベタ書き?

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

…っていう話かなと思うんですが、どうでしょう?
0426デフォルトの名無しさんNGNG
>>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);

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


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

DWORD(self)は駄目ですよね?
0429デフォルトの名無しさんNGNG
繰り返しでてる質問なんですが、Array[0..x] of CharとStringはキャスト不可能なんでしょうか?
0430デフォルトの名無しさんNGNG
>>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) で良いのです。
ポインタのことをもっと勉強した方が良いと思います。
0431419NGNG
>>425
レスthanx。
自分の場合、APIを使うコンポはほとんど作ってません。

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

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

そういやガイシュツだけど「Installが面倒」ってのは
Delphiの鬱ポイントですな。
IDEにInstallするというスタイルにこだわりすぎ。
0435422NGNG
>>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 を付けると 実装時に定義が以前と違うというエラーが出ます
0436デフォルトの名無しさんNGNG
>>433
Array of Charだとできるけど、Array[0..x] of Charだと駄目みたい。
Delphiって静的配列の扱いがいまいちよくわからない。
というか普通にポインターを使うことはできないんでしょうか?
0437デフォルトの名無しさんNGNG
>>435
こんなことできるの?知らなんだー。マジで?
0438デフォルトの名無しさんNGNG
>>436
PCharじゃだめ?
0439422NGNG
>436
c:Array of [0..n] of Char;
への代入なら
StrLcopy(@c,PChar(fromStr),High(c));
0440422NGNG
忘れてた。 逆の文字列型への代入はそのまま Caption:=c; みたいに代入出来ますよ

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

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

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

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

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

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

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

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

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

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

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

マルチとか質問スレというのはヲタクのルールです。
私は普通の人間なのでヲタクのルールなど知ったこっちゃありません。
早く教えてください!
早く教えろ!
早く!
これだけ言ってもまだ教えねーのか?!
0456デフォルトの名無しさんNGNG
いやだね〜♪
0457デフォルトの名無しさんNGNG
>>456に同じく〜♪
0458デフォルトの名無しさんNGNG
おれも教えたくないね〜♪
0459453NGNG
私が得をする情報をタダでください。
それによって私は大変な恩恵に預かりますが、あなたには何の
メリットもありません。
でも、いいじゃないですか? どうせ情報なんてタダでしょ?

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

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

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

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

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

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

必要ですよね?
0470デフォルトの名無しさんNGNG
FreeAndNilという名でD5にはある。ちなみに自作するときは
引数は(var Obj)にして、関数内でキャストする必要がある。
0471デフォルトの名無しさんNGNG
>>469, 470
Borland 身内のやらせっぽいな。
0472デフォルトの名無しさんNGNG
そんなしょうも無いやらせしないだろ。
0473469NGNG
>470 ありがとう。 いちいち外で as TObject つけてた・・・・ソースみて納得

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

いと、なつかしや
0475デフォルトの名無しさんNGNG
>>471
「おぉ、FreeAndNilだ。Delphi買おう!」って奴はいないだろ。
0476デフォルトの名無しさんNGNG
procedure MyFreeAndNil(var obj);
var p: TObject;
begin
  if TObject(obj) = nil then exit;
  p := TObject(obj);
  TObject(obj) := nil;
  p.Free;
end;

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

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

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

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

>>479
まぢ?ってことはD6もってこと?わーい。買おうっと。
0481デフォルトの名無しさんNGNG
479はどんな風に拡張されてかまでは言ってないし、D6で実装されているという保証もないぞー。
0482デフォルトの名無しさんNGNG
とはいえ、期待しちまうが。
0483デフォルトの名無しさんNGNG
VBで文字列がselect caseで使えるのはイイ感じ。
D6で拡張されるなら、そっちが先じゃないか?
0484デフォルトの名無しさんNGNG
> VBで文字列がselect caseで使えるのはイイ感じ。

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

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

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

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

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


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

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

DynamicCase 文とか新設するのかな?
0487デフォルトの名無しさんNGNG
>>485
すべて同感。

ある二つのオブジェクトが同じインスタンスを指しているか判断する必要が
出るようなコーディングは駄目だと思います。
0488turbo type DNGNG
>>487
あ、オブジェクトが同じインスタンスを指しているか判断する
コーディングは時々必要かも。


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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

・・・初心者向けではないけどな。
0497デフォルトの名無しさんNGNG
>すごく少ないですよね

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

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

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

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

嘘こいていたら他の人フォロー頼む。
0500デフォルトの名無しさんNGNG
大分かぶった。少々ウトゥ。
0501493NGNG
>>499
確かに厳しいか。すまん(w

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

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

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

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

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

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

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

>>514ワラタ
0516デフォルトの名無しさんNGNG
>>515
アマゾンでいいだろ?
まさか仮面ライダーと間違える奴はいないだろうし。
0517493NGNG
自己レス

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

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

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

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

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

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

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

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

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

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

で、サブクラス化とかはだめなん?
試してないから何ともなんだけど。
0527デフォルトの名無しさんNGNG
中村@NECさ〜ん、署名のメールアドレス違ってるよ〜。
0528デフォルトの名無しさんNGNG
>>525
質問するならせめてageたら?

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

とりあえず他の方のもっといい意見きぼーん。
0542539NGNG
>>540の方。
ありがとうございます。ベーマガですね。買ってみます。
>>541の方。
ありがとうございます。目的の細分化。頂きます。やってみます。目的はRPGなんです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TValueListEditor
TLabeledEdit
TColorBox
TActionManager
TActionMainMenuBar
TActionToolBar
TCustomizeDlg

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

逆に再描画しないようにするにはどうするの?
0574turbo type DNGNG
>>573
TPaintBox
0575573NGNG
>>turbo type D
ありがとう。ちょっとTImageとTPaintBoxを調べてみまっす。

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


表紙に労力をかけなくてもいい・・・。
0581デフォルトの名無しさんNGNG
>>579
自力で実装プリーズ。
0582デフォルトの名無しさんNGNG
ついでに出来たら公開プリーズ
0583デフォルトの名無しさんNGNG
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;
だとだめなんだよ。。。たすけて!
0584デフォルトの名無しさんNGNG
ヘルプを見る気はないのか・・・。
ptr := @arr[1];
ptr^ := 1;
Inc(Ptr);
ptr^ := 2;
0585デフォルトの名無しさんNGNG
こんなんでも可。

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

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

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

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

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

 どうなってるんでしょ?
0594デフォルトの名無しさんNGNG
>>587
へんなところをアクセスしてない? 大体はそういう
単なるふつーのバグが原因。

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

NewとかAllocMemとかとは次元が違う。
あと、動的配列が実装されたのは結構最近の話。
0597デフォルトの名無しさんNGNG
New, AllocMemとかは、Cでいうmalloc, free、
SetLength, Finalizeは、C++でいうnew delete
ってなことでよろしい?
0598デフォルトの名無しさんNGNG
>>597
SetLength ってのは,動的配列と,
文字列のための特殊なアロケータ
で,GetMem New と比べては遺憾
と思われ.
0599デフォルトの名無しさんNGNG
Win2000でDelphi4のクイックレポートがアドレス違反します。
デバッガで動作させるとファイルが書けませんエラーも出てるみたいです。
0600デフォルトの名無しさんNGNG
>>599
それはDelphiのバグ情報ですか?
0601デフォルトの名無しさんNGNG
>>599
もしかして,ドライブの空き容量がないとか
0602599NGNG
そんなことないです。容量あります。
クイックレポートはパッチあててるし。一緒に入れたBCB5が悪さしてますか?
0603デフォルトの名無しさんNGNG
>>599
SET TEMP=C:\TEMP
ttp://www.qusoft.com
0604デフォルトの名無しさんNGNG
クイックレポートいらない&つかいたくない。
Kylixも出たしもっとマシなのつくってくれ。
0605599NGNG
有難うございます。>603 でも実はまだうまくいってません。明日もう一度やってみます。
そうなんですが、昔作った社内ツールで...>クイックレポートいらない&つかいたくない。
0606603NGNG
NT/2000ではAutoexec.batじゃなくて,
My ComputerのPropertyでした。
0607login:PenguinNGNG
Delphiで作られた有名なソフトウェアって何?
0608デフォルトの名無しさんNGNG
>>607
こちらへどうぞ。

delphiで作られた有名ソフトって何がある?
http://piza.2ch.net/test/read.cgi?bbs=tech&key=990056026
0609login:PenguinNGNG
delphiってオブジェクト指向なの?
えへへ。
0610login:PenguinNGNG
age
0611デフォルトの名無しさんNGNG
>>609
ウゼィ
0612デフォルトの名無しさんNGNG
4 から 6 歳児むけ、Delphi 入門書。

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

Delphi3 Pro CD 付き。ただしドイツ語。
0613デフォルトの名無しさんNGNG
login:Penguinねぇ・・・・・・
0614turbo type DNGNG
>4 から 6 歳児むけ、Delphi 入門書。

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

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

詳細アボーン
Delのどの辺?勝手な仕様変更はいやだけど。
0626デフォルトの名無しさんNGNG
ageとくか。
0627デフォルトの名無しさんNGNG
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で返るんですよねえ・・・?
0628>627 CPUウィンドウで確認してみ?NGNG
0629デフォルトの名無しさんNGNG
>>627
label キーワードでラベルを定義しているのがいけないんじゃない?
アセンブリ言語らしくラベル名に@LOOP_STARTを使ったらうまくいったよ。

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

>>629
ありがとうございます。解決しましたぁ!
0631デフォルトの名無しさんNGNG
TKCって就職板じゃなんか悲惨だな。
http://natto.2ch.net/test/read.cgi?bbs=recruit&key=991724613
http://natto.2ch.net/test/read.cgi?bbs=recruit&key=994076415
0632デフォルトの名無しさんNGNG
台湾は燃えているか?
http://www.sinter.com.tw/
0633デフォルトの名無しさんNGNG
Delphi で hlink.h に定義されているインターフェースとか使う方法教えてください
DelphiでOLEとかインターフェースってさっぱりわからんのです
0634デフォルトの名無しさんNGNG
時間の計測をしたいのですが、
Nowから得た終わりと開始のTDateTimeの差をとれば、
とりあえず経過時間の大小は比較できますか?
0635デフォルトの名無しさんNGNG
どのくらいの時間?
msecならMMSystemをusesして、timeGetTimeでGO
0636634NGNG
>>635
どうもです。
このMMSystemってなんですか?ヘルプでほとんど情報が出てこないのですが・・・。
0637デフォルトの名無しさんNGNG
MMSystem.pas のことね。
0638デフォルトの名無しさんNGNG
timeGetTimeはWin32APIっす。Delphiのヘルプでなく、Windows APIのヘルプ参照。
0639デフォルトの名無しさんNGNG
>>633
Delphi でなければ、OLE とか COM とかわかるのかい?
0640634NGNG
>>637, 638
どうもです。Win32 Programmer's Referenceで調べてみます。

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

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

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

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

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

正解は?
0659デフォルトの名無しさんNGNG
とりあえず苦情いれておくか。

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

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

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

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

チェックサムだかmd5だかで
そのへんのブロックのカイソを看視する…のかなあ…
0689デフォルトの名無しさんNGNG
即レスきぼんぬ。
MaskEditでIPアドレスを入力させるには、
どうマスク設定させればいいの?
ちょっとせっぱ詰まってます。
一応検索しに逝ってきます。
ヘルプ見たけどよく分からなかった…
0690デフォルトの名無しさんNGNG
あげ忘れ。
0691デフォルトの名無しさんNGNG
>>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]?
(見づらくならんように故意に行を区切りました)
だな。
0692デフォルトの名無しさんNGNG
>>689です。
あれはたしかに正規表現ではないと思われ(^^;

う〜む。

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

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

こうかな?リテラル文字ってのは何かわからん。
0695デフォルトの名無しさんNGNG
>>693
エンプラ版ならBDE - SQL Link - Net8
プロ版ならBDE - ODBC - Net8

D6やKylixのエンプラ版ならDBExpressというのが
使えるらしい。
0696デフォルトの名無しさんNGNG
>>695
なるほど。ありがとうございます。
ADOとかではないんですね。
0697デフォルトの名無しさんNGNG
>>694殿
なるほど。
大変参考になりました。
990\.990\.990\.990;1;
これでどうでしょうか。
これで大体望み通りの動作になりました。
ありがとうございます。
0698デフォルトの名無しさんNGNG
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プロダクトマネージャ)。
0699デフォルトの名無しさんNGNG
>>695

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

704さん。どうもありがとうございます。
0706デフォルトの名無しさんNGNG







                      ∧_∧
                      ( ・∀・ )ジー
                      (    )
                      | | |
                      (_)(_)
0707デフォルトの名無しさんNGNG
>>706
思わず見つめあっちゃったよ。
0708デフォルトの名無しさんNGNG
>>705
>ヘルプを見ても浮動小数点から整数型への変換はのってないようだし
ほう。で?
0709デフォルトの名無しさんNGNG
int i = 3.0;
0710デフォルトの名無しさんNGNG
なんのヘルプみたのか謎。
Delphiのヘルプじゃなくて、Windowsのヘルプでも見たのかな?
それだったら、ないけど・・・
0711デフォルトの名無しさんNGNG
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行目までしか表示されません。
なにが足りないのでしょうか?
0712デフォルトの名無しさんNGNG
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;
0713デフォルトの名無しさんNGNG
>>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がリスト構造だから追加には気をつけなければならないって
ことでしょうか?
なにはともあれ、ありがとうございました。
0714turbo type DNGNG
ふー。疲れた。

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

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


そういえばPPAってStringReplaceないですよね。
0715turbo type DNGNG
うぅ、レスが無い....PPAって誰も使ってないです?

話題変え。

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

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

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

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

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

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


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

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

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

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

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

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

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

関数にしなきゃならんわけじゃないよね? それなら APL でいけると思う。
究極的には組み込みRubyだけど,実行時ライブラリを使う必要がある。
0729デフォルトの名無しさんNGNG
>>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
0730デフォルトの名無しさんNGNG
脳内インデントは勘弁
0731turbo type DNGNG
そういうときにスクリプトで
半角スペースx2>>全角スペースとすると
いいのに。
0732デフォルトの名無しさんNGNG
コピペには半角スペース2個→&nbsp;&nbsp;のほうがよさげ
ClipBoard.AsText := StringReplace(ClipBoard.AsText, ' ', '  ', [rfReplaceAll]);
別スレより
0733732NGNG
ミスった、鬱だ・・・
ClipBoard.AsText := StringReplace(ClipBoard.AsText, '  ', '&nbsp;&nbsp;', [rfReplaceAll]);
0734turbo type DNGNG
&nbsp;だとかちゅーしゃのHint表示で&nbsp;が
そのまま表示されるので美しくないっす
最新版で直っているかどうかはしらないですが。
0735デフォルトの名無しさんNGNG
テスト

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

>>735
0736デフォルトの名無しさんNGNG
結論。最新版(2.101)で治ってない(´д`;)
0737デフォルトの名無しさんNGNG
つーわけで、かちゅーしゃ板に要望だしとこ。
0738名無しさんNGNG
2chだけのためにアプリ1つ入れる(インストールする)という感覚がわからん。。。
0739デフォルトの名無しさんNGNG
使ってみりゃ分かる・・・。
0740デフォルトの名無しさんNGNG
>>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しちゃ「いけない」!
0741デフォルトの名無しさんNGNG
>>738
正直、webブラウザで見る気がうせる。
0742デフォルトの名無しさんNGNG
>>740
いやゆる感染系ライセンスですな。ヒデェや。
0743デフォルトの名無しさんNGNG
>>702
 Delphiのヘルプはわかりにくいからなぁ.
 慣れると勘が働いてなんとか使いこなせるようになるけど.

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

「明らかにPPAを模倣した…」が「明らかにPPAに変更を加えた…」だったらば
少しはマシだったのだが。
0746デフォルトの名無しさんNGNG
PPAはあきらかに僕が昔作ったインタプリタの模倣です。
ただちに配布を中止してください。
0747デフォルトの名無しさんNGNG
オプソでScriptPascal作る?
0748デフォルトの名無しさんNGNG
ぜひギコPascalにしてやってくれ。
0749たまには外も眺めてみよう。NGNG
http://www.torry.net/tools_compilers.htm
0750ここにもあったYO!NGNG
http://www.torry.net/tools_scripters.htm
0751デフォルトの名無しさんNGNG
ギコPascalをみんで作ろう
0752751NGNG
入力ミスった。すまそ。「みん」>「みんな」
0753デフォルトの名無しさんNGNG
PPAなんか見んで作ろう!
0754デフォルトの名無しさんNGNG
誰かベース作ってうぷして
0755デフォルトの名無しさんNGNG
delphiフリーで出して欲しくなかった。。
こういうスレッドやメーリングリストで初心者質問が飛び交う事態になる気がする。
personal版4800円でパッケージのみで十分じゃないか。むちゃくちゃ安いんだし。
0756デフォルトの名無しさんNGNG
たしかに
0757デフォルトの名無しさんNGNG
Delphi厨房を大量生産する危機かもね。
0758VB厨房NGNG
やったぜ。
これでDelphianの仲間入りだ!
バシバシ質問するよ。
0759デフォルトの名無しさんNGNG
>758 ML逝け
0760デフォルトの名無しさんNGNG
マジメにやってればVB厨よりかは遥かにレベルウプできるのえ
Delphi厨房が増えても問題は少なくなる。

あと、ユーザーが増えてBorlandがつぶれなくなればヨロシ。
0761デフォルトの名無しさんNGNG
>あと、ユーザーが増えてBorlandがつぶれなくなればヨロシ。

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

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

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

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

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

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

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

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

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

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

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

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

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

うざすぎ。もしやこいつゲイツの親戚か?(わら
0777名無しさんNGNG
777
0778turbo type DNGNG
なるほどなあ。
確かにそのライセンス・
作った当人らはあまり意識してなかったと思うが
利用者側にしてみれば痛々しいですね。

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

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

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

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

いろいろ紹介してくれてサンクスYO
0780デフォルトの名無しさんNGNG
そういやrubyのライセンスはどうなん?
PPAの代わりに使えそう?
0781デフォルトの名無しさんNGNG
これ?
http://www.users.yun.co.jp/~moriq/apollo/
0782デフォルトの名無しさんNGNG
>結果的に作者の人々には申し訳ないことをしてしまった。

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

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

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

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

だから、もしある一定以上の肯定的感情をPPAに対して持っているなら、
教えて(=いさめて)上げるのが良策だし、そうでないなら
さくっと去るのもまた道。
0783HIRONGNG
こんにちわ〜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だったらこのようなツールは必要なかったんですよね?
0784デフォルトの名無しさんNGNG
日高徹のゲームプログラミング本って数出てないんですか?
数年前にパラパラと立ち読みしたっきり。
古本屋でも一度もお目にかかれていません。
0785デフォルトの名無しさんNGNG
>>784
新日本プログラミングの人のですね。
確かに最近、本屋でもみないけど。
それはそうと、あれって正直役に立つのかなあ。小細工系ばっかだからさ。
有馬さんの「遊びのレシピ」の方がいいようなな気もするけど。
0786turbo type DNGNG
あっついねー。

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

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

どっちがいいかにゃ〜?
0795デフォルトの名無しさんNGNG
それは読んだことないけど、別のアンクの本を買ってえらい目にあった。
だから言語ガイドの方をお勧めする。
0796デフォルトの名無しさんNGNG
>>794-795
アンクの本は普通。
言語本なのであれでDelphiが使えるようになるかといえば疑問だけど。
0797デフォルトの名無しさんNGNG
>>788
TQueryの BeforePostで別Queryつかってチェック。
もしすでにあったらサイレンと例外でPostさせない。
0798デフォルトの名無しさんNGNG
int64の帰り値をインラインアセンブラで返したいんだけど、
どうやればいいの?

function getRDTSC: int64;
var d:Integer absolute Result;
asm
 DW $310F //RDTSC
 //EDX,EAX を int64で返したい
end;
0799デフォルトの名無しさんNGNG
色変換をして画面に表示するプログラムをつくってます。
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;
0800798NGNG
今、なんとか動くコードは

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

Windows 95/98:作成できるビットマップのサイズは、最大 16MB です。
0803デフォルトの名無しさんNGNG
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;

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

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

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


>>804 判らないけど、GetLastErrorしてFormatMessageして
 どういう理由でエラーになるか調べてみたら?
0806798NGNG
つまりは SysErrorMessage を呼び出すといいよ
0807799NGNG
>>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でこけます。

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

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

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

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

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

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

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

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


>>821
じゃぁ999で。
0825デフォルトの名無しさんNGNG
>>824
プロジェクトオプションのコンパイラ項目でチェックできるように出来るよ。
または{$RANGECHECKS ON}の行をユニットの先頭に挿入する。
0826824NGNG
>>825
ほうほう、逆に危険地域へのアクセスを防ぐこともできるってことですね。
まじDelphiいいなぁ。
0827デフォルトの名無しさんNGNG
>>826
Cはその辺のことを一切面倒を見ない代わりにスピードを追求している。
0828デフォルトの名無しさんNGNG
>>827
でも、唸るほどは速度差でないじゃん
0829デフォルトの名無しさんNGNG
配列アクセスが多くなると効いてくる
Javaでも配列の範囲チェックを以下に省略するかが最適化のネックの1つ
0830デフォルトの名無しさんNGNG
話がかみ合っていないな...
0831デフォルトの名無しさんNGNG
つーか何の話してるのかわからん
0832デフォルトの名無しさんNGNG
>>828
今時のPCではね。
0833デフォルトの名無しさんNGNG
俺は0..0派だな。

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

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

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

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


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

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

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

source の下,検索してごらん。
0842デフォルトの名無しさんNGNG
sage たつもりだったのに...
0843デフォルトの名無しさんNGNG
Delphiから文字列を暗号化する場合何が良いですか?
インストールCDにこっそりそういうDLLが隠されてないですか?
0844デフォルトの名無しさんNGNG
Companion CD みた?
0845833NGNG
>>841
いやまあそれは知ってるよ。
TLogPalette弄ったときにWinodws.pas見たら、構造体の最後[0..0]になってた覚えあるしな。
0846デフォルトの名無しさんNGNG
BCB5のCDは見たけど英語だったので読まなかった>844
0847デフォルトの名無しさんNGNG
>>846
せっかくヒントもらったんだから見ようぜ。

いや、俺も英語だから見なかったくちだけど(w
0848デフォルトの名無しさんNGNG
ボーランドが開発ツールをウェブレンタル
ttp://japan.cnet.com/News/2001/Item/010718-2.html?mn
0849デフォルトの名無しさんNGNG
http://hpmboard1.nifty.com/cgi-bin/thread.cgi?user_id=BYF00221&disp_no=1903&log_no=1903&msg_per_page=50&def=10
0850デフォルトの名無しさんNGNG
a氏がんばれ。

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

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

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

「XMLパーサーを作りたい」という人に対して
「模倣になるからソースは見ない方がよい」とは、なんて
いい加減な...
0851デフォルトの名無しさんNGNG
>例えば、PPAのMLの264で
>
>http://village.infoweb.ne.jp/~skonishi/index.html
>
>のページの管理者の方がppa.pasを参考にしてXML Parserを
>書いてみたいと言っていて、それに対してDEKOさんが
>268の投稿で「模倣」の条項があるからそれは止めた方が
>良いと言っています。
>ここで、仮に上の管理者の方がppa.pasを見ていた場合、
>管理者の方がXML Parserを公開することが
>PPAのライセンス違反になる可能性があります。
>
>こういう事が可能性として考えられるライセンスは
>私的にはマズイと思うのですが、
>どういう意見をお持ちでしょうか?
0852デフォルトの名無しさんNGNG
>>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」は?#なんてな質問はヤブヘビですかね(^^; 持ってますけど。
0853デフォルトの名無しさんNGNG
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;
0854デフォルトの名無しさんNGNG
>>PPA
なんつーか、2ch(匿名)だからってへんに反発くらってる感じがして残念。
いや、それ以前に態度を変えるつもりはないようだから、
2chは口実にすぎないのかもしれないけれど。

しかしa氏ら、キレないでよく頑張ってるなー。
0855デフォルトの名無しさんNGNG
PPA潰しのコンポーネントに期待
0856デフォルトの名無しさんNGNG
>>853
DemoのCustomDrawをみると
DefaultDrawをTrueなのにフォントを描画しては
いけないようです。

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

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

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

Demoの
procedure TCustomDrawForm.TVCustomDrawItem(

の if cdsSelected in State then

をコメントアウトすると幸せになるかも
0857856NGNG
TextOutの直前に
TreeView1.Font.Size := TreeView1.Canvas.Font.Size;
これをするといいのかも知れない。
0858デフォルトの名無しさんNGNG
CustomDrawでTreeView1.Canvas.Fontは全然効きません。
まだ理由はわからんけど。

あとVCLにバグがあって、文字を透過描画する際に
SetBkMode(TreeView1.Canvas.Handle,TRANSPARENT)
をやらんを駄目です。
0859853NGNG
>>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などに描画後、貼付するなどの手段を
試していこうと思います。
0860858NGNG
>>859
漏れ書いたんだけど
>CustomDrawでTreeView1.Canvas.Fontは全然効きません。
コレな

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

TreeNodeの文字にグラデーションでも付けたいの?
0862デフォルトの名無しさんNGNG
カンファはどーだったんかね?
0863デフォルトの名無しさんNGNG
>>861
TreeNodeの右側に文字列を追加したいのです。
Becky(メーラ)のツリーのような感じです。
フォントサイズは、Node、追加文字列ともに同じ大きさですが、
色は、Nodeは黒。追加文字列は青などにしたいです。
また、Nodeを選択しても、追加文字列は反転しません。
と、いうのをカスタムドローでやったら、大きいフォントで
描画されたり色が反映されなかったりしたわけです。
現在は、一旦TBitmapに描画してからNode.CanvasにDrawしています。
多少ちらつきますが、一応上手く表示されています。
本当は、Node.Canvasに直接描ければいいんだけど。
0864デフォルトの名無しさんNGNG
IEのプロクシを外部から変更させたいんだけど.
レジストリの
パス HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\
キー ProxyServer
を変更するだけじゃIEが認識しないんすけど,
何か通知メソッドかなんかありますか?
0865デフォルトの名無しさんNGNG
WM_SETTINGCHANGE
0866865NGNG
めんどくさいのでHWND_BROADCASTで送ってしまいましょう。(おせっかい?)
0867デフォルトの名無しさんNGNG
delphiってもうバージョンアップしないって本当ですか?
買っても将来性がないんですよね。
他の買った方がいいですよね。
0868デフォルトの名無しさんNGNG
放置。
0869デフォルトの名無しさんNGNG
つーか、定期的に同じ内容で書き込んでるやつがいるな。
0870デフォルトの名無しさんNGNG
VBの次はDelか?おいおい。
0871デフォルトの名無しさんNGNG
デルファイってターボパスカル?ってのを使ってるんですよね。
どんな言語なんですか?
0872デフォルトの名無しさんNGNG
>>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の描画が
邪魔しているのか??全然わからないわ。
力になれんでスンマソ・
0873デフォルトの名無しさんNGNG
>>867
はいはい。お前の人生と一緒。
0874デフォルトの名無しさんNGNG
>>873
ワラタ
0875デフォルトの名無しさんNGNG
867の煽りって今まで何度でたっけ
何が悔しくて詰まらんカキコするんだろう?
0876デフォルトの名無しさんNGNG
867ってもうバージョンアップしないって本当ですか?
飼っても将来性がないんですよね。
他の飼った方がいいですよね。
0877デフォルトの名無しさんNGNG
>>875
コボラーが仲間を求めて彷徨ってるに100ルピー
0878デフォルトの名無しさんNGNG
>>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企業として代表電話番号や代表メールアドレスはわかりやすい所に配置しておくことを望みます。

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

>>878
えらいなー。
0880デフォルトの名無しさんNGNG
TFrame の Anchors て何かやらないとダメなの?

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

この一冊はキミの事知らないと何ともいえないね 自分で探すか、
キミの事ある程度知ってる人に選んでも貰えよ
0883デフォルトの名無しさんNGNG
http://www.google.com/search?q=cache:cjeh2Img9aw:www.yahoo.co.jp/Computers_and_Internet/Programming_Languages/Delphi/+Delphi+%8Eq%88%E7%82%C4&hl=ja
39はあったみたい。
EUCでみてちょ
0884デフォルトの名無しさんNGNG
>>881
http://www.valley.ne.jp/~masaiku/index1.htm
http://home1.infonia.ne.jp/~delphian/delphi/history/book.html
http://home1.infonia.ne.jp/~delphian/delphi/history/bookrank2/book.html
0885872NGNG
>>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じゃなくても同じ動作
一応実現したのであとは任せていいかな?
0886デフォルトの名無しさんNGNG
なんだこりゃ
結論はTreeViewのバグなのか?
0887885NGNG
テストコードががちがちに入ってるので
コードぐちゃぐちゃだから削ってね。


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

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

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

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


往々にしてOwnerDrawはだるいので嫌いだ。
0888デフォルトの名無しさんNGNG
初心者向けサイト
http://home.onestop.net/mineko/index2.html
0889881NGNG
>>884,882
さんくす!
0890デフォルトの名無しさんNGNG
>>866
駄目だ.wParamに何くわせりゃいいのか判らん.
鬱出汁脳
0891デフォルトの名無しさんNGNG
ずいぶんと
脳から汁が出ているみたいだな。
0892デフォルトの名無しさんNGNG
戸田です、こんばんは

----- Original Message -----
>駄目だ.wParamに何くわせりゃいいのか判らん.
>鬱出汁脳

過去ログを検索してください

[Delphi-ML:50121] WM_WININICHANGE が飛んでこない?

です。

ML 過去ログの検索は

Delphi-ML の HOME
http://www.users.gr.jp/delphi/

または

About-Delphi
http://www2.big.or.jp/~osamu/Delphi/index.html

からどうぞ


外していたらゴメンなさい。m(_~_)m

---- (^_^)(^_^)(^_^) THE REAL PROGRAMMER (^_^)(^_^)(^_^) ----
At the beach, The Real Programmer is the one drawing flowcharts in the sand.
戸田 英夫 mailto:[email protected];[email protected]
.
0893デフォルトの名無しさんNGNG
>>892
もういいよ。
0894デフォルトの名無しさんNGNG
深雪じゃないか。さすが戸田さん
0895デフォルトの名無しさんNGNG
さぁ。恒例の戸田の門前払いに新参者の岡田がかみついた。

まぁどうでも良いけど,戸田市って自前の実行時パッケージによるアプリケーション配布の
経験きっと無いんだろうな
0896デフォルトの名無しさんNGNG
>>880
>TFrame の Anchors て何かやらないとダメなの?
 ダメみたいね。 設計時はちゃんと動くから気付かないけど
0897turbo type DNGNG
PPA使いたくなくなった・・・・・・・・・・・・・・・・・・・・・・・・・
0898turbo type DNGNG
>>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
0899デフォルトの名無しさんNGNG
戸田ってやつのレスは過去ログを検索してるときうざい
0900896NGNG
>>898 もちろんいつも必ずそうなるんじゃないけど
 ちょっと複雑な事やった時なる時があるよ。
0901turbo type DNGNG
そうですか。
実はオレも似たような不具合に出会った事があるので
TFramesは使わないことにしてます。
0902デフォルトの名無しさんNGNG
>>900,901
羹に懲りて膾を吹く。
0903turbo type DNGNG
あつものにこりてなますをふく。

 羹の熱いのにこりて、冷たい膾をも吹いて食う。
一度失敗したのにこりて無益な用心をする。
羹に懲りたる者あえを吹く
0904デフォルトの名無しさんNGNG
羹がなんだかわからない子供も多いんだろうね。
0905デフォルトの名無しさんNGNG
サパーリワカラン(;´д`)
0906デフォルトの名無しさんNGNG
漢字のお勉強

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


非常に残念ですが他のインタプリタコンポの利用を考えてみます。
アポロかな?
0913デフォルトの名無しさんNGNG
このスレは今期限りで終了させていただきます。
新しいスレは絶対に立てないでください。
0914デフォルトの名無しさんNGNG
統合ですね。

新スレ
http://piza.2ch.net/test/read.cgi?bbs=tech&key=993005709&ls=50
0915デフォルトの名無しさんNGNG
どの言語使いか知らんがいやがらせか?
0916デフォルトの名無しさんNGNG
>>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)')の
初期描画位置がどうしてもずれる

なぜだ!教えてくれ。
0917デフォルトの名無しさんNGNG
このスレは閉鎖しますので、以後の質問は下記でお願いします。

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

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

に統合されなきゃいけないんだよ。
おまえがもうくるな。
0921デフォルトの名無しさんNGNG
よしよし、荒れてきました(w
09221NGNG
以後はこちらにどうぞ

Delphi相談室その2
http://piza.2ch.net/test/read.cgi?bbs=tech&key=995950803
0923testNGNG
test
0924デフォルトの名無しさんNGNG
倉庫入り防止age
0925デフォルトの名無しさんNGNG
Delギコは?
0926デフォルトの名無しさんNGNG
無事終了したスレは倉庫に入れるのが筋では。
part1000ができる頃にはDelphiで板が全部埋まっちゃうよ。
0927デフォルトの名無しさんNGNG
別に上げんでも
0928デフォルトの名無しさんNGNG
>>926
★ 削除依頼の質問!コツ!注意! ★
http://teri.2ch.net/saku/kako/986/986017084.html

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

この板はスレ消費が遅いのであまり必要性は感じませんけど、立てます?
0929デフォルトの名無しさんNGNG
そのうちながれていくから別に立てんでもいいかと
レス数が900を超えています。1000を超えると表示できなくなるよ。