モナーの *やさしい* Delphi質問スレ
■ このスレッドは過去ログ倉庫に格納されています
0001DELモナ
NGNGDELモナは時に私であり、時には別の人。
他のスレに書き込んで罵倒される前に、まずここで質問しよう。
∧ ∧
( ´∀`)( )
0083デフォルトの名無しさん
NGNG0084DELモナ
NGNG( ´∀`)( ここは、モナー専用なのれす )
0085デフォルトの名無しさん
NGNGいいじゃん別に。
君がこのスレ立てたとしても、持ち主になったわけじゃないんだからね。
0086デフォルトの名無しさん
NGNGさんきゅ。うっかりミス。今直します。
0087デフォルトの名無しさん
NGNGうわっっっ!!!直ってる!!!!!びびったよ(´д`;)
関係者ですか?
0088デフォルトの名無しさん
NGNG天網恢恢疎にして漏らさず
0089デフォルトの名無しさん
NGNGえぇっ!
0090デフォルトの名無しさん
NGNGWhistler serverで動かすと画面が出てこないです
俺だけ?
0091デフォルトの名無しさん
NGNGServer のビルド番号は?
0092デフォルトの名無しさん
NGNGUpdate1 当てる前だと問題なかった?
009390
NGNG今手元にないのでわからないのですがMSDNについてきたベータ版です
Delphi6使うのは普通に使えてます
おかしいのはアップデートのプログラムの方です
起動するとSetup.exeが裏(タスクマネージャ)で実行して表に画面が出てこないです
0094デフォルトの名無しさん
NGNG普通の InstallShield アプリですから、問題が出るとしたら OS の
問題でしょうか。
009590
NGNGSetupが途中で止まってるのか画面がShowしてないだけかもしれません
どっちにしてもこの環境は今週までなので他の環境にセットします
ちなみに
ComCtrls.pasのTSubItemsは
procedure TSubItems.Clear;
begin
inherited Clear;
FImageIndices.Clear;
end;
が治ってないようです
追加しないとFImageIndicesがクリアされません
0096デフォルトの名無しさん
NGNG良い書き方を思いついたのれす。
変数宣言を見なくても、変数の型が一発で分かるのれす。
全変数の初期化なんぞも簡単にできるのれす。
例)
type
TInt = (Age);
TDbl = (Height, Weight);
TStr = (LastName, FirstName);
var
int:array [TInt] of Integer;
dbl:array [TDbl] of Double;
str:array [TStr] of string;
begin
Write( 'LastName > ' );
ReadLn( Str[ LastName ] );
Write( 'FirstName > ' );
ReadLn( Str[ FirstName ] );
Write( 'Age > ' );
ReadLn( Int[ Age ] );
Write( 'Height(cm) > ' );
ReadLn( Dbl[ Height ] );
Write( 'Weight(kg) > ' );
ReadLn( Dbl[ Weight ] );
WriteLn( Format('%s %s %d Years old. %f kg, %f cm',[
Str[LastName],
Str[FirstName],
Int[Age],
Dbl[Weight],
Dbl[Height]
]));
end.
00971
NGNGモナーと書いたのは、単にギコは既出だからという理由であって、
真意は「AA容認スレ」及び、たとえ厨房でも「罵倒はしない、やさしく諭す」という方針にしたかったから。
いや、それだけ。
さらば。DELギコ降臨を望む。
0098デフォルトの名無しさん
NGNGハンガリアン表記をより凶悪に推し進めただけのトリッキーコードにしか見えない…。
0099デフォルトの名無しさん
NGNGDelphiならフィールドに F 付ければ十分だと思う。
0100デフォルトの名無しさん
NGNG0101Del初心者
NGNGあと、コンパイラ型ですか?記述はCに近いのですか?
0102デフォルトの名無しさん
NGNGDelphiはコンパイラ型です。
記述は C や Basicと同じ種類の方式です。 LISPと比べるならばですが
Delphi と VC++は似てるのは、単に Windows用のネイテブコンパイラである
事くらいで、違う事の方が多く違いはあげられません
0103Del初心者
NGNGありがとうございます。
0104Delあめ猫にゃ
NGNG実行時型情報に入るようにプロパティに登録して、変数名=値をファイルに書き出す
ようにしたら便利かも・・・・
でも、それローカル変数でやると最適化が効かないかもしれない
0105デフォルトの名無しさん
NGNGRar用の圧縮・展開ルーチンを収めたDLLあるかとぞんじます。
使い方を教えれ。エレ。エレ。エレ。
おねがいします。
0106デフォルトの名無しさん
NGNGhttp://www.csdinc.co.jp/archiver/index.html
圧縮ルーチンは優良だと思ったけど。
0107デフォルトの名無しさん
NGNG下の様なコード実行するとnew()でエラーが出るんですが
ヘルプ見る限り問題ないように思うんですが何処がおかしいのでしょうか?
サパーリ分かりません‥‥鬱だ‥‥
pFILE_DATA = ^FILE_DATA;
FILE_DATA = record
FileName: String;
Size: Integer;
Date: String;
end;
function AddFileList( const fileName: String): Integer;
var
NewItem: pFILE_DATA;
begin
new(NewItem);
NewItem^.FileName := fileName;
{ 以下略 }
end;
それとファイルのリストを保持する場合、TListに格納して変更があった時にUI側のListViewを更新するのと
直接ListViewに格納してそこから値を取り出すのとでは(Delphiでは)どちらが一般的なんでしょうか?
0108デフォルトの名無しさん
NGNGどんなエラーば出るの?
0109107
NGNGです。。
Personalなんで手も足も尻尾も出ません。(泣
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGん〜、そのエラーが new(NewItem); の行で発生するのかな?
0112デフォルトの名無しさん
NGNGソースがないのでソースコードを追ってのデバッグができないというだけ。
さっくり無視(I)すれ。
0113Delフサギコ
NGNG∧,,∧ / usesにVariantを追加するのかな?
ミ,,゚Д゚彡 <
U U \
〜ミ ミ
∪∪
某NewsGroupeでこんな投稿があります、"Delphi6 の ライブラリが全てデバッグ版!?"
デバッグ版だとVCLソースをトレースしようとするので
ソスなしのPersonalはUp1のインストは必須です
0115デフォルトの名無しさん
NGNGン?実行時に出るのか?
レスを読む限りコンパイルエラーになりそうだが。
0116107
NGNGエラーの原因はむしろMessageBoxのhwndにCの感覚でNULLを入れてたのが不味かった模様‥‥
‥‥逝ってきます‥‥
0117デフォルトの名無しさん
NGNGつーか、『識別子定義の表示』があるからなあ。型わかるし。
まあ、マウスでしかポップアップされないから、それがイヤなんだろうけど
# ていうか、この機能はキーボードからも出来てほしい・・・
0118デフォルトの名無しさん
NGNGキーボードからできるとして、どのキーに割り当てればよいと思う?
もうほとんどの組み合わせが使われてしまっているしね。
0119デフォルトの名無しさん
NGNGデバッグの際、特定のコードで発生する例外では止めないようにするには
どうしたらよいのでしょうか?
意図的に例外を発生させていて、例外を発生する状態の方がむしろ正常なのです。
調べてもよく分からないので・・・よろしくお願いします。
0120デフォルトの名無しさん
NGNG興味があるのですが、
常に例外を発生させるようなコードというのはどういうものでしょう?
0121デフォルトの名無しさん
NGNG0123( ´∀`)さん ◆Monar0j6
NGNG意図的に例外を発生させ、耐障害性とかエラー処理を
テストしてるんだったらごめん。
0124119
NGNG>常に例外を発生させるようなコードというのはどういうものでしょう?
オフコンにFTPでファイルを送るのですが
オフコン側ではそのファイルを処理してから消去します。
オフコンがそのファイルを未処理の場合はファイルを送ってはいけません。
そこで
「FTPで前に送ったファイルをGETしてみて
失敗した場合(ファイルがない場合)にのみ処理を続ける」
という具合にしてみたわけです。
0125デフォルトの名無しさん
NGNG例外じゃなく、戻り値でエラー判断なんかやってるコードが問題だと思われ。
0127デフォルトの名無しさん
NGNGそういう用途ならAbort でいいんじゃない
Abortならデバッカにひっかからないし
0128( ´∀`)さん ◆Monar0j6
NGNG>例外ってスピード速いし、普通に使って問題無いんだYO!
そんなに早いもんだったのか、知らんかったよ。
>>119サソ、スマソ。
なんかどっかで実行中のプログラムの例外を補足して
ログとるツールがあったような記憶があって(曖昧でゴメソ)、
それで気持ち悪いなぁとか思ってね。
>例外じゃなく、戻り値でエラー判断なんかやってるコードが問題だと思われ。
だけど、Win32APIとかは戻り値でしかエラーの有無を判定できないと思われ…
0129119
NGNGサイレント例外は気がつきませんでした。
ありがとうございます。早速やってみます。
0130Delフサギコ
NGNG継承した例外を発生させてIDEにそれを無視させるとか
VCLが発生させる例外なら
ブレークポイント2つで上下はさみ
その間だけ例外ムシさせる方法があるぞよ
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧
ミ,,゚Д゚彡∬
〃 つ旦O
〜ミ,,,n,,n[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0131デフォルトの名無しさん
NGNG>にUI側のListViewを更新するのと
>直接ListViewに格納してそこから値を取り出すのとでは(Delphiでは)
>どちらが一般的なんでしょうか?
俺ならば、UpdateFileList みたいなメソッドつくっておいて、
リスト内容を更新するたびにそれを呼び出す。
0132デフォルトの名無しさん
NGNGIDE内から実行しているから、例外でややこしいことになるのよ。
コンパイルして、エクスプローラから直接実行ファイルを
実行するようにすれば、何の問題もない。
0133Delphi6 Enterprise の自慢
NGNGコンポーネントいろいろついてくるし!
0134Delフサギコ
NGNG∧,,∧ / >>131
ミ,,゚Д゚彡< TListなどにて内部データ構造を格納しつつ、
ミつ つ \ そのItemをListViewのTListItem.Dataと関連付けるのがいいかも
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U チョット手間かニャ
0135119
NGNGIndyが出す例外なので
> VCLが発生させる例外なら
> ブレークポイント2つで上下はさみ
> その間だけ例外ムシさせる方法があるぞよ
これを試してみます。
ありがとうございました。
0136デフォルトの名無しさん
NGNG1.256色のBMPファイルからパレットを取得する方法(pal[256]という変数に取得したい。)
2.他のBMP画像を読み込み、上記1で取得したpal[256]のパレットにする方法。
が、知りたいです。
ご存知の方がいたら教えてください!
0137デフォルトの名無しさん
NGNGvar
p:PByteArray;
x,y:Integer;
begin
for y:=0 to ABitmap.Height-1 do
begin
p := ABitmap.ScanLine[y];
for x:=0 to ABitmap.Width-1 do
Paretto[x] := p[x];
end;
end;
0138デフォルトの名無しさん
NGNGIndy が出す例外は、原則 IdException.pas で定義されている EIdException から
継承された例外クラスを使っている。だから「言語固有の例外 - 無視する例外の種類」
に EIdException を追加すれば、Indy 固有の例外で IDE が停止することは無くなる。
0139デフォルトの名無しさん
NGNGパレットってなんだか知っている?
Paretto -> Palette
0140デフォルトの名無しさん
NGNG各ピクセルにはパレット番号を格納。
それがなにか。
0141119
NGNGありがとうございます。うまく行きました。
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG>>137
ネタですか?ネタですよね!?
ネタでなければ、プログラムがバグっている&やろうとしていることが
違うと思います。
自分としては、>>140と同じ意味でパレットという言葉を使っています。
で、フルカラーモードで、256色ビットマップを扱うときに、
1.256色のBMPファイルからパレットを取得する方法(pal[256]という変数に取得したい。)
->BMPのファイルを読んで画面に表示して、その画像のパレットを変数palに代入したい。
というのをどうやるのかが、知りたいです。
よろしくおねがいします。
0144ねこま
NGNGあとは TNkDIB のソースでも見れ.
0146117
NGNG0147デフォルトの名無しさん
NGNGScanlineを使って得られる値はなんなのさ。
0148デフォルトの名無しさん
NGNG入力支援に1行ヒントってないものかね。
THoge = class
....
procedure Hoge(x:Integer);{$HINT '引数 x をつかって〜する'}
てな風に書くと、
入力支援時、リストに
procedure THoge.Hoge(x:Integer) 引数 x をつかって〜する
つーふうにでてくると。
0149デフォルトの名無しさん
NGNGVCだと
struct foo{
int bar; // hoge ←hogeがTIPヘルプで表示
}
ってできる
0150デフォルトの名無しさん
NGNGDELでそれできる?
0152デフォルトの名無しさん
NGNG>ネタでなければ、プログラムがバグっている&やろうとしていることが
>違うと思います。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNGいや、それでも分かりにくい場合ってあるでしょ?
0157デフォルトの名無しさん
NGNGGetPaletteEntries調べてみたのですがVBの解説しか
みつからなかったです。Delphiのヘルプにもないところをみると
APIか何かなのでしょうか?
パレット詳しい方いたら、教えてほしいです。
0158デフォルトの名無しさん
NGNG// パレットの色を取得
GetPaletteEntries(bm.Palette, 0, PalSize-1, pal.palPalEntry);
ってところか?
GetPaletteEntries に関しては
http://www.microsoft.com/japan/developer/library/jpgdipf/_win32_getpaletteentries.htm
ここを。
0160デフォルトの名無しさん
NGNG自作のコンポD6で使いたいんだけど ヘルプにあるWinEditors ユニットも無いし
DesignEditors.ini なんてのがdocディレクトリにあるけど??
D5Proの時からDsgnIntfが変な所にあるなと思ってたけど、
なんかコンポーネントはコンパイル済みにしないとダメって事になったのかな?
それともD6パーソナル無料化の為に わざと不便にしてるのかな?
0161デフォルトの名無しさん
NGNG気がする今日この頃。
凡庸画像フォーマットを実現するには、
TCustomImage = interface
public
procedure LoadFromFile(〜);
procedure SaveToFile(〜);
procedure CopyFrom(〜);
property Pixels[x,y]:Integer 〜;
end;
みたいなインターフェイスを作ってやれば、
内部でどのような画像の表現方法を取っていても、
呼び出して利用するほうのコードを変更する必要はないということですか。
たとえば、これまでビットマップだったものを
処理速度の向上を理由に、配列にいろ情報を格納するように変更した
TPixelArrayImage なんて形式に変えても、利用するほうの
コードは変更する必要がないと。
0162デフォルトの名無しさん
NGNGDelphi4 の時から、デザイン時ライブラリを分割してね。って書かれているのに
いまだにこういう質問が出てくるとは..
Help 読みなさい
0163Delフサギコ
NGNGミ,,゚Д゚彡 < 自分で体感しないと知らないものです
ミ つ且~~ \___________
〜ミ,,,,,, ,,ミ キビシイッス>>162さん
プロパチエヂタまでこだわって作っている人は少なそう。
こだわらなくてテキトに作っている人はD6になったとたんつまづーきますね。
フサも2週間前くらいに思いっきりツマヅイタ
>>160さん、とりあえず、Personalはつらそう……
ご検討を祈ります。
プロパティエディタ系コード(uses Designなんとか)
は実行時コンポーネントコードとは別ユニットにしましょう。
あと、TEditorの作者さま...
プロパティエディタ問題なんとかしてください。
フサの勘違いかもしれないけど、
思いっきりD6DsgnIntf問題にひっかかってません?
0164160
NGNGヘルプってこれだよな?
>DSGNINTF.DCU は Delphi に付属しなくなりました。したがって,コンポーネント開発者は
>設計時コードを実行時コードとは別のユニットに分離することを考える必要があります。
>実行時コードでは,それらのユニットを参照しないようにしてください。
>それが不可能な場合は,\source\toolsapi\ ディレクトリにある DSGNINTF.PAS をコンパイル
>することが可能です。ただし,この方法は一時の間に合わせとして提供されるもので,
>将来のリリースでは提供されない可能性があります。
>また,ライセンス契約の条項により,インプライズ社が所有するソースコードに基づく DCU
>を配布することは,そのコードがどのように提供されたかに関係なく,
>許可されないことに注意してください。
設計時ユニットと別けるってのは、単にプロパティエディとかを別ユニットに別けろって事だよな?
てことは、どっちにしたって、コンポソースがプロパティエディタを使う場合はパーソナルだ
けじゃ使えないって事だな・・・まあそんな制限無いと無料で配れないか・・・
使ってみて便利だったらバージョンアップしようかと思ったけど、俺はVer7まで待つわ
0165デフォルトの名無しさん
NGNGけじゃ使えないって事だな
どうしてそういう結論になる?設計時パケージに分離してそっちで
designide60.bpl を必須パッケージとして指定すればおわり。
Personal でもコンポ作成/インストールできるって。
0166160
NGNGうーん。方法があるのか?
DSGNINTFで使ってるのは RegisterPropertyEditor だけだから
これを別ユニットにして、別に設計時パッケージに入れろって事だよな?
自分のコンポーネントをuses して、RegisterPropertyEditorしてる
だけのソースを作ってみてプロジェクトファイルを弄ってみたけど、
やっぱりコンパイル出来ない。
スマン。どうやってコンパイルしたらいいか教えてくれ
0167デフォルトの名無しさん
NGNGD6personalよりD5learningのほうが使用権が自由でよいなぁ
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGWindowsの場合非同期ソケットのほうがいいのわかってるのに
今非同期ソケットやってるのってICSとFastnetだけ、SynapseもIndyも
スレッド使いすぎだ
というよりなんか似たようなコンポーネントがごちゃごちゃしすぎだD6
0170デフォルトの名無しさん
NGNG>やっぱりコンパイル出来ない。
エラーはなんと?
0171160
NGNGもしかして、設計時コンポ無くても実行ファイルは作れるだろうという意味か?
そういう意味なら確かに作れたよ。
0172160
NGNGで、これを消せば
RegisterPropertyEditor が無いが出るよ
0173デフォルトの名無しさん
NGNGそうだね。多分すでに正解を手にしていると思う。
「設計時コンポ」ではなく「設計時パッケージ」ね。
設計時パッケージは IDE のみが使う。プロパティエディタも IDE のみ。
実行時パッケージおよびコンポーネントのユニットは設計時パッケージやデザイン用
ツールとは分離できる。
0174デフォルトの名無しさん
NGNGそこまでできているのなら、分離した設計時パッケージに
designide を追加すれば designide60.bpl が DSGNINTF を
提供してくれる。
デザインパッケージの実コード。
登録やプロパティエディタを定義。
unit x;
interface
implementation
uses DesignIntf, MyComp;
begin
RegisterPropertyEditor( TypeInfo(TMyComp), TMyComp, 'Caption', nil); // nil にはプロパティエディタのコードが入るはず。
end.
Package1.dpk の部分
requires
rtl,
designide;
contains
x in 'x.pas';
end.
0175160
NGNGdpkを開いて requires の下に
rtl,
designide,
vcl:
と挟んで入れたらコンパイル出来た。 いやホントありがとう
0176160
NGNGDsgnIntf/DsgnIntfを切り替えるのは {$IFDEF }でいいとして
designide と dsnide50 はどうやったらいいんだろ?
まあ別名で作ればいいか
0177デフォルトの名無しさん
NGNG幸い今後は DLL 名とパッケージ名が分離しパッケージ名には
バージョン番号が含まれなくなったから、今回だけですむ。はずだ。
0178デフォルトの名無しさん
NGNGSynapse のどこにスレッドが使われてる?
0179デフォルトの名無しさん
NGNGIndy は「スレッドが使えるんだ。ブロッキングで何が悪い?」という思想だから
スレッド使いすぎという批判は筋違い。
0180デフォルトの名無しさん
NGNGスマソ、誤送信
0181デフォルトの名無しさん
NGNGやっぱり踊って歌える ギコのほうが人気高いんね。
0182デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています