トップページ⇒tech
991コメント277KB

Delphi相談室(上級者用)その12

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさんNGNG
Delphiに関する上級者用の技術相談室です。
中級者は「Delphi相談室(中級者)」へどうぞ。
初心者は「くだすれDelphi(超初心者向け)」へどうぞ。
0002デフォルトの名無しさんNGNG
だからなに?
0003デフォルトの名無しさんNGNG
過去ログ
ミ,,゚Д゚彡フサギコとモナーのDelphi質問相談談話室2
http://pc2.2ch.net/test/read.cgi/tech/1061142216/
ミ,,゚Д゚彡フサギコとモナーのDelphi質問相談談話室
http://pc2.2ch.net/test/read.cgi/tech/1052312038/
ミ,,゚Д゚彡フサギコのフサフサDelphi相談室�H
http://pc2.2ch.net/test/read.cgi/tech/1045813143/
Delphi相談室その8
http://pc2.2ch.net/tech/kako/1037/10371/1037146781.html
Delphi相談室その7
http://pc3.2ch.net/tech/kako/1032/10325/1032576325.html
Delphi相談室その6
http://pc3.2ch.net/tech/kako/1028/10284/1028436692.html
Delphi相談室その5
http://pc3.2ch.net/tech/kako/1022/10229/1022921598.html
Delphi相談室その4
http://pc.2ch.net/tech/kako/1018/10182/1018211735.html
Delphi相談室その3
http://pc.2ch.net/tech/kako/1010/10101/1010153466.html
Delphi相談室その2
http://pc.2ch.net/tech/kako/995/995950803.html
Delphi相談室
http://piza.2ch.net/tech/kako/971/971261573.html
0004デフォルトの名無しさんNGNG
●関連ページ

Borland Japan Delphi
http://www.borland.co.jp/delphi/
Borland Delphi 6 Personal ダウンロード
http://www.borland.co.jp/delphi/personal/
Delphiマガジン
http://dmj.psnet.ne.jp/
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/
0005デフォルトの名無しさんNGNG
バッファオーバーフロー
0006デフォルトの名無しさんNGNG
87 :___ :03/09/28 22:25
Delphiスレは多すぎです。人気なんか全然ないのに。
スレッドの数をもっと減らしてください。
0007デフォルトの名無しさんNGNG
ttp://www.atmarkit.co.jp/fdotnet/questionnaire/2002-11/2002_11.html
もっとも習得したい言語 Delphi : 0 (C# : 49)
もっとも利用したいIDE Delphi : 2 (VS.NET : 65)
0008デフォルトの名無しさんNGNG
TComboBox,TListBox,TToolBar,TListView にバッファオーバーフロー
http://memo.st.ryukoku.ac.jp/archive/200309.month/6508.html

上級者の技術力でこのバグを解消しよう。
0009デフォルトの名無しさんNGNG
荒らすなよDel厨
0010デフォルトの名無しさんNGNG
>>8のケースで上級者の対応ってどういうの?
ライブラリ書き換え。
文字列追加時にチェックする。
実行時にコード書き換え。
0011デフォルトの名無しさんNGNG
何もする必要なし。無駄な事はしません。
0012デフォルトの名無しさんNGNG
>>10
OSにパッチを当てます。
0013デフォルトの名無しさんNGNG
0014初心者NGNG
begin:って面倒くさい構文ですね
0015デフォルトの名無しさんNGNG
>>8
今までそれが発覚しなかったのがいろんな意味ですごいな
0016デフォルトの名無しさんNGNG
>>14
そうだね。C系の言語に慣れてると面倒に見えるだろうね。
でも、これくらい頭の中で共通化して抽象化してしまえ。

>>15
2CHでも前に言ってた人がいると思うよ。
確か、iniファイルの読み込みで行制限があるという話からそっちに流れたような気もする。
0017デフォルトの名無しさんNGNG
>>取り出す文字列の長さを確認せずに4096バイト固定のバッファに格納するため
dephiの開発者って終わってるな。こんなとこチェックしないプログラマーが普通いるか?
0018デフォルトの名無しさんNGNG
>>16
XMLなら行制限も桁制限もないわけだが。
0019デフォルトの名無しさんNGNG
>>17
以前の議論では、パフォーマンスを優先したんだろうという事になったような気がするよ。
0020デフォルトの名無しさんNGNG
有段者向けのスレッドを立てましょう!!!!!!!!!!!!!!!!!!!!!!!!!
ぼくわ厨房でわ無いです!!!!!!!!!
0021デフォルトの名無しさんNGNG
>>19
文字列の取得/設定なんてそう何回も呼び出されないし、単純な長さチェックだけでそんなにロスしないと思うがな。
0022デフォルトの名無しさんNGNG
>>21
どうかな?
・1項目毎に呼ばれる
・サイズの取得もAPIの呼び出し(メッセージ機構で)が必要になる
 から昔は結構大きかったんじゃないの?
0023デフォルトの名無しさんNGNG
>>17
MSにいるじゃん。
0024デフォルトの名無しさんNGNG
パフォーマンスとか以前に固定のバッファに格納するなら長さをチェックしないと駄目だと思うが
002524NGNG
書き込みをチェックするのを忘れたスマソ
>>24はなかったことにしてください
0026デフォルトの名無しさんNGNG
ゲームプログラムをしているのですが、描画内容の計算は1/30秒ごとに行い、
Application.OnIdle で暇なときに描画関数を呼び出し、というのをやっています。

が、このOnIdleというのはCPUに余裕があるときに発生すると聞いたのですが、
完全に暇なときなのでしょうか、それとも100%以外という意味なんでしょうか。
もし前者なら、描画できる余裕が少しあるのに描画できない、後者なら
描画を始めた時点で100%に達してしまい、終わるまで次が描けない → 描くのに1/30秒
以上かかるときに描画が等間隔にならない、と考えたのですが・・・。

理想は、通常は30fpsで描画して、維持できなくなったら徐々にfpsを減らしていく、
という形なのですが、いいアイデアは無いモノでしょうか。
0027デフォルトの名無しさんNGNG
>>26
上級者スレで、くだすれレベルの質問すんなよ。
てかゲーム製作スレで聞けヴァカ
0028デフォルトの名無しさんNGNG
>>26
タイマイベントでやりくりしろよ。つかDirectX使え。
0029デフォルトの名無しさんNGNG
>>26
ソース嫁。
0030デフォルトの名無しさんNGNG
>>26
OnIdleはCPUに余裕があるときです。
33mSのタイマーイベントを使うと希望通りCPUに余裕が無くなると自動的に等間隔でなくなります。
0031デフォルトの名無しさんNGNG
>>30
元々タイマーなんぞに制度を求めては行けません。
0032デフォルトの名無しさんNGNG
>>26
>このOnIdleというのはCPUに余裕があるときに発生する

前提から間違ってる。ヘルプ読め。ついでにソースも読め。
0033デフォルトの名無しさんNGNG
正確に言えば OnIdle は
メッセージキューに何もなければ実行され、Done が Trueなら WaitMessageがその後呼ばれる。
OnIdleはマウスやタイマーイベントでメッセージキューが常に一杯なら1度も実行されない。
よってCPUに余裕があれば、OnIdleが実行される。
ただし、他のアプリのせいでCPUに余裕が無くても、メッセージキューが空なら実行される。

0034デフォルトの名無しさんNGNG
Del厨って馬鹿だなぁ(w
いい加減気づけよ(w
0035デフォルトの名無しさんNGNG
WM_TIMERは優先順位が低いと言われていますよね。
メッセージキューに待機中であってもマウスメッセージ等が割り込むために
正確でなくなります。
0036デフォルトの名無しさんNGNG
age
0037デフォルトの名無しさんNGNG
釣れた(藁
0038デフォルトの名無しさんNGNG
釣れた(藁
0039デフォルトの名無しさんNGNG
WM_TIMER や WM_PAINT は必要に応じてまとめられてしまいます。
他に優先度の高いメッセージがある場合、そちらが先に処理されてしまう。
複数の WM_PAINT は再描画が必要なリージョンが統合されて一つの WM_PAINT に統合される。

逆に、自分で定義したメッセージを自分自身に送れば問題の一部は解決する。

ただし。Windows はリアルタイム OS ではないのでどうしても手の届かない部分が存在します。
DOS みたいに全権限を取得できるわけでもないしね。
いろんな部分の考え方を変えるか、いっそ全画面、CPU 100% 使用と割り切るか。

0040デフォルトの名無しさんNGNG
VB厨にはこれでも上級に見えるわけか。
0041デフォルトの名無しさんNGNG
どこにVB厨が???
0042デフォルトの名無しさんNGNG
煽っているのはすべてVB厨だと思い込んでいるのでしょう。
0043デフォルトの名無しさんNGNG
こんばんわ、
いきなりで申し訳ないですが
キャンバスに出力する文字列も幅と高さを知るのに
CanvasのTextExtent メソッドがありますが、
Canvasを使わず幅高さを知る方法を知ってたら教えて下さい。
004443NGNG
自己解決しました。
0045デフォルトの名無しさんNGNG
>>43
私はそれを知りません。
TCanvas.TextExtent は GetTextExtentPoint32  を呼び出しています。
ですから、もし画面へでしたら GetDC(0)したハンドルで GetTextExtentPoint32 するか
又は これはご希望の方法ではないでしょうが、
TCanvasインスタンスを作ってGetDC(0)ハンドルを渡して Canvsa.TextExtentすればよいと思います。

CreateFontではhDCは必要ありませんが、CreateFontで作成したhFONTは
SelectObjectしなければフォント情報は引き出せません。

0046デフォルトの名無しさんNGNG
>>44
質問した以上は解決法をまとめて下さい。
そうすれば、検索してこのスレを見つけた人にも役立ちます
0047デフォルトの名無しさんNGNG
特に話題もないようなので
http://pc.2ch.net/tech/kako/1003/10035/1003559977.html
こういうスレとして活用させて貰っていいですか?
0048デフォルトの名無しさんNGNG
>>47
良いのではないでしょうか。
0049デフォルトの名無しさんNGNG
 TThreadを使いたいと頑張っているのですが
スレッド側からVCLに対して操作をすると
AccessViolation例外が発生してしまいます。

 例えば、ProgressBar1.Stepby(1);や
LabelEdit1.Text:='文字列'などの一般的な
操作で発生します。(これらは当然Syncronize()を
使って操作してます)

 不思議なことにそのVCLコンポーネントがひとつ
だけの場合に発生するようです。ProgressBar
ならひとつの場合エラーが発生してふたつ置くと
エラーが起きません。仕方なくふたつ置いて、
VisibleとEnableをFalseにして凌いでいるのですが、
この点について何か解決方法など知っていませんで
しょうか。

0050デフォルトの名無しさんNGNG
>>49
その Syncronize で呼び出したメソッドでやってるんだよね?
そうだとしたら、必ず起きるコード書いてみて。


それから Syncronize を多発するより、メッセージを投げた方がいいよ。
SendMessage はSyncronizeと同じだから PostMessag するといい。
0051デフォルトの名無しさんNGNG
>>50
>SendMessage はSyncronizeと同じだから PostMessag するといい。
これはバージョンによって実装が全くことなるよ。最新のものはイベントを使用し効率よく実行されるようになっている。

というか49は、くだすれに池
0052デフォルトの名無しさんNGNG
>>49, >>50
ありがとうございます。
該当コードは以下のとおりです。

>その Syncronize で呼び出したメソッドでやってるんだよね?
>そうだとしたら、必ず起きるコード書いてみて。

//----------------------------------------
// データを追加する
//----------------------------------------
procedure TGetDataThread.AddData;
begin
Form1.DataList.Add(DataStr);
Form1.ProgressBar1.StepBy(1);
Form1.ProgressBar1.Update;
end;

>というか49は、くだすれに池
くだすれレベルの質問ですいませんでした。
次回からそうします。
0053デフォルトの名無しさんNGNG
>>51
ああ実装が同じという意味じゃなくて効果が同じという意味ね。
いちいちメインと同期するのは同じという意味ね。

>>52
そのフォームが完全に作成されてから TGetDataのインスタンスは作成されているんだよね?


ところでそれはテストコードなんだよね? そこにForm1を普通は書かないよね?

0054デフォルトの名無しさんNGNG
名人級用のDelphi相談スレを教えてください。
0055デフォルトの名無しさんNGNG
名人級なら 相談は必要ないでしょう。
Delphiマンセー
http://pc2.2ch.net/test/read.cgi/tech/1029120920/

とかでご指導側に回って下さい。
0056デフォルトの名無しさんNGNG
SendMessageを使うサンプルコード

Type TMyThread=class (TThread)
public
  gate:boolean; //同期を取る為のフラグ(片方は見るだけ、片方は書くだけなら安全)
  WinHandle:THandle; //スレッド作成時にメッセージを送る親を定義しておく
  cnt:Integer;
  procedure Execute; override;
end;

procedure TMyThread.Execute;
begin
cnt:=0;
  while(not Terminated) do
  begin
   inc(cnt);
   if gate then  //ゲートが開いていればメッセージを送る
    begin gate:=false; //実際にはゲートを閉じてから送る
     PostMessage(WinHandle,WM_MyMessageID,Integer(Self),cnt);
    end;  //もし整数以外の情報を送るなら、クラスインスタンスを作って 送られたフォーム側で開放する
  end;
end;
//フォーム側は
procedure TForm1.RefNo(var message: TMessage); //message WM_MyMessageID;
begin
  Caption:=IntToStr(Message.LParam);
 with TMyThread(Message.wParam) do begin 
  if Message.LParam>100 then Terminate;
  gate:=True;
 end;
end;
005749NGNG
>>53 >>56
コードも載せていただき、ありがとうございます。

>そのフォームが完全に作成されてから TGetDataのインスタンスは作成されているんだよね?
はい。

>ところでそれはテストコードなんだよね? そこにForm1を普通は書かないよね?
いろいろ試していたので、Form1.と書いてました。
基本的にVCLの操作はSyncronize経由で、
グローバル変数はForm1.○○○で操作しています。

いろいろ削ったり、コメントアウトしたりしてうまくいくケースを
探ってみましたがダメでした。やはりエラーが起きてしまいます。
原因がよくわかりません。同じコンポーネントを2つ乗せれば
エラーが起きないので、それでよいと言えばよいのですが、
少し気になります。
SendMessageを使うか今後検討してみます。
0058デフォルトの名無しさんNGNG
>>57
一応、グローバル変数の操作は
TCriticalSection内で行ってます。
0059デフォルトの名無しさんNGNG
スレッド関連以外の原因も考えようよ。柔軟に思考を広めよう。
Syncronizeを使えば安全(メインスレッドで実行)という理由は色々あるけど
GUI周りはメインスレッドで実行しないと正しく処理されないものもいくつかある。
それはおいといて、メモリ周りはマルチスレッド時はメモリマネージャとかは基本的にちゃんと排他処理を行っている。
なのでAVが出るのはライブラリ側の排他処理周りである可能性であるのは低い。
あそらく原因はユーザー側のコーディングが問題なのだろう。
AVの出る原因特定ってAVの出た位置から呼び出し履歴やアドレスを見ていけば結構簡単にわかるよね。
大抵は初期化されていないものにアクセスしたり、無効になったポインタやインスタンスをアクセスしにいった時発生するかと。
地道にトレースして探すべし。
0060デフォルトの名無しさんNGNG
>>58
1、グローバル変数を使う時は Form1.メソッドで なおかつTCriticalSection内というのは意味がないよ。
2、SendMessageはSyncronizeと効果は同じ
  進行状況を表示する程度の事ならPostMessageで非同期に状態を送る方がいい
0061デフォルトの名無しさんNGNG
>>59 >>60
>あそらく原因はユーザー側のコーディングが問題なのだろう。
 自分もそうだと思います。やはりどこかがよくない使い方してるのだと
思います。根気よく調べてみます。ありがとうございました。
0062デフォルトの名無しさんNGNG
マルチスレッドでは、排他処理やスレッド同期を常にやってたのでは
せっかくのマルチスレッドが生かせない。
設計を上手くやって、同期や排他処理を必要ないようにするのがコツ。

・単ワード(CPUのデータ幅以内)で構成される整数型、ポインタ型、浮動小数点型は
  あるスレッドが読み書して、他が読むだけの使い方であれば排他処理は必要ない
  この方式でスレッド間通信に使う事も可能

・int64は2ワードとなるのでダメ
・メモリ境界をまたぐ32bit変数も デュアルCPU構成等の環境でダメなので注意


これを利用して、構造体を渡す場合も、リングバッファ構造にしてそのポインタか、配列番号を渡す
ようにすれば、同期や、OSの提供する排他処理に頼らずにすむ。
0063デフォルトの名無しさんNGNG
>>62
そういったカビの生えた古臭い知識は.Netで完全に死滅するわけだが。
0064デフォルトの名無しさんNGNG
>>63
ほう。
では、 .NET で通用しないとでも? それならどのあたりが?

あるいは、.NETでも通用するけど、それよりスマートな概念があるという事かな?
0065デフォルトの名無しさんNGNG
Windowsでは、コンパイラやRADを常に使っていたのでは
せっかくのCPUの性能が生かせない。
アセンブラやCを上手く使って、コンパイラやRADを必要ないようにするのがコツ。
0066デフォルトの名無しさんNGNG
まあ一生Cとアセンブラやってろよ
0067デフォルトの名無しさんNGNG
>42
C厨もいるのにね
0068デフォルトの名無しさんNGNG
>>65
ほー、Cで書いたコードはコンパイラが無くても動くと…メモメモ。
0069デフォルトの名無しさんNGNG
動くだろ
0070デフォルトの名無しさんNGNG
Delphiで書いたコードもね
0071デフォルトの名無しさんNGNG
>>67
C厨とやらがDelスレを煽る理由が無いんだが?
0072デフォルトの名無しさんNGNG
.NET もスレッドは Win32 スレッド前提だからつらいよ。
スレッドを抽象化しきった Java には、それはそれで別の問題があるが。
0073デフォルトの名無しさんNGNG
>>62
ありがとうございます。
教えていただいたことを参考にして早速作り直しましたところ
処理速度があがりました。(まだ不安定ですが・・・)
スレッドプログラムは奥が深いですね!精進します。。
0074デフォルトの名無しさんNGNG
delだと、30K円、
マイクロソフトだと、只なんですが、
どのようにしたら、ボーランドをぬっ殺せますか。
0075デフォルトの名無しさんNGNG
タダということにしたいのですね。
0076デフォルトの名無しさんNGNG
>>74
みんなで Del6パーソナルを使いましょう。 そうすれば ぬっ殺せるかどうか判りませんが、困ると思いますよ。
0077デフォルトの名無しさんNGNG
デルポイを使うと金果敢だよ。視ネ。
0078デフォルトの名無しさんNGNG
いまさら、アフォプログラムなら、自分で十分。
delphiがつまらなくしてしまった。だな。
MSならVISIOがあったし。
暇人は要らんな。俺も含めて。
0079デフォルトの名無しさんNGNG
誰か78を日本語に訳してくれ
0080アニー・尾田NGNG
いまさら、アフォプログラムなら、自分で十分。
delphiがつまらなくしてしまった。だな。
MSならVISIOがあったし。
暇人は要らんな。俺も含めて。
0081デフォルトの名無しさんNGNG
ここで、話題にしてること事態、アフォだね。
でるぽい、ぽい有意義な話題かと思えば、文法と
ウィンばっかりじゃん。ツマンネ。
出るは、イラネ。マイクロソフト純正で十分だよ。
0082デフォルトの名無しさんNGNG
なんか日本語が不自由な香具師が紛れ込んでるな。
0083ちんげNGNG
delphiのソフトはwinnyで落とそう。
0084デフォルトの名無しさんNGNG
ちんげあげうざっ
0085デフォルトの名無しさんNGNG
Delphiプログラマーの給料おいくらでつか?
0086デフォルトの名無しさんNGNG
>>85
ピンキリ
0087デフォルトの名無しさんNGNG
>>85
月収27万
ただし漏れはプログラマーではない。環境測定の工作員。


0088デフォルトの名無しさんNGNG
工作員コワイヨー
0089デフォルトの名無しさんNGNG
馬鹿は高い所が好きとは良く言ったものです。
0090デフォルトの名無しさんNGNG
上級者もっとでてこい。
0091シャザーンNGNG
呼んだ?
0092デフォルトの名無しさんNGNG
こんなところに上級者が居るわけねえだろ
0093デフォルトの名無しさんNGNG
俺は上級者だけど文句ある?
0094デフォルトの名無しさんNGNG
>>93
よっ!上級者!
0095デフォルトの名無しさんNGNG
>>93
よっ!ジョーク者!
0096デフォルトの名無しさんNGNG
>>95うまいっ




アイスが。
0097デフォルトの名無しさんNGNG
>>96寒いっ




お前が。
0098謎の急浮上!NGNG
謎の急浮上!
0099デフォルトの名無しさんNGNG
listViewのreport表示で
1 2   3
1 黒  青
2 黒  赤
3 黒  赤
のように個別に色を変えたいんですが
どうしたらいいのでしょうか?
0100デフォルトの名無しさんNGNG
>>99
マルチ氏ね & 100!
0101デフォルトの名無しさんNGNG
私はマルチではありません
0102デフォルトの名無しさんNGNG
まるぽ
0103デフォルトの名無しさんNGNG
>>99
ゴルフクラブのオーナーが借金でドロン。
0104デフォルトの名無しさんNGNG
object pascalにはC++のANSIみたいに仕様を定めている所はありますか?
Delphiは標準にどれくらい準拠していますか?
0105デフォルトの名無しさんNGNG
>>104
ObjectPascalの規格があるかどうかは知りませんが、
あったとしてもDelphiは全く準拠していません。
今はボーランド自身も「Delphi言語」と称しています。
0106デフォルトの名無しさんNGNG
ANSI-ISO-JIS PASCAL というのは存在します。
http://www.net.intap.or.jp/oiia/cont1/p0302.html%7B0recid=10104.html

感じとして 標準PASCALの9割以上のコードはDelphiでコンパイルして動かす事が出来るようです

ObjectPascalについては、
Delphiのほかには FreePascalがあるていどで、FreePascalはDelphi互換を目指してるようですから
ほぼDelphi(たぶんD3あたり)がデファクトスタンダードだと思います。
0107デフォルトの名無しさんNGNG
ドラフトは残っているので確認してみては?
http://www.pascal-central.com/OOE-stds.html

なんか
  TYPE
   Student = CLASS (Person, Gradable, ... )
   ...
  END;

とか
0108デフォルトの名無しさんNGNG
一社独占で流行らない言語は死滅するだろうな。
0109デフォルトの名無しさんNGNG
macのObjectPascalが最初じゃなかったっけ?
で、TurboPascalもそれに準拠してた(object型ってやつ)
0110デフォルトの名無しさんNGNG
>>108
流行っていたにも関わらず、開発元に見捨てられて死滅寸前の言語もありますな。
0111デフォルトの名無しさんNGNG
ライブラリの方が重要。
0112デフォルトの名無しさんNGNG
>>110
じゃあ流行ってないDelphiはもっと死滅するな。
0113デフォルトの名無しさんNGNG
ところが死滅していないところが優良ツールと糞ツールの違い。
0114デフォルトの名無しさんNGNG
死滅しなくても使われていないんだもんなぁw
0115デフォルトの名無しさんNGNG
労働プログラマに使われていないから、おいしい思いが出来るんじゃないか。
0116デフォルトの名無しさんNGNG
まぁあの会社の主力はバージョンアップの頻度からして多分JBuilderなんだろうな
0117デフォルトの名無しさんNGNG
Delphiは終わってるって言われはじめてから何年経ってるんだろう
どっこい生きてるじゃん
0118デフォルトの名無しさんNGNG
ようするに、今のプログラマ雇用の流れ=不安定化には合わないだけでさ

残念なことに道具として使うぶんにはまだまだパフォーマンス最高の一つだからさ。
.NET は longhornが出て、longhornがサクサク動くマシンが安価になった頃からかなあ・・・
0119デフォルトの名無しさんNGNG
>>117
シャツの中?
0120デフォルトの名無しさんNGNG
Delphiバカにする人って何作ってるんだろ
0121デフォルトの名無しさんNGNG
C#を作ってますがなにか?
0122デフォルトの名無しさんNGNG
>C#を作ってますがなにか?
この一言で、貴方の薄っぺらさが解りました。
「C#を作ってますがなにか?」だって
ごめん、鼻で笑っちまった
0123デフォルトの名無しさんNGNG
私は英語を作りました。
0124デフォルトの名無しさんNGNG
DelphiでC#コンパイラを作ってるの? あんまり意味ないと思うなあ

どうせなら C# で C# コンパイラ作ればいいのに。
0125デフォルトの名無しさんNGNG
>>124
もっと本読め。
0126デフォルトの名無しさんNGNG
そんなにC#が好きなら、C#で荒らしツールでも作ってみたらどうかね?
この板でDelphiが付くスレを"Powerd by Microsoft Visual C#.NET"とか言って荒らしてみるの。


ほ れ 、 作 れ る も ん な ら 作 っ て み ろ よ。


あ、今更善人ぶらなくても良いよ。だれも聞いていないからさ。
0127デフォルトの名無しさんNGNG
Delphiバカにする人って何作ってるんだろ

121 名前:デフォルトの名無しさん[sage] 投稿日:03/10/31 19:57
C#を作ってますがなにか?

そうか、頑張れ。
0128デフォルトの名無しさんNGNG
>124
>DelphiでC#コンパイラを作ってるの? あんまり意味ないと思うなあ
あなた読解力ないね
121 は Delphi をバカにする人で、C# コンパイラ作ってる人なんだけど
0129デフォルトの名無しさんNGNG
だから Delphiスレで 何で を省略するという事は Delphiで作ってるんだろ? それ以外あるか?
0130デフォルトの名無しさんNGNG
日本人じゃないのかな。
0131デフォルトの名無しさんNGNG
>>129
あなたは会話の食い違いから喧嘩になる事が多くないですか?いいえ、多いに決まっています。
そんな読解力では今後大変ですよ。もっと本を読む事をお薦めします。
で、この後「まあDel厨だからな」とかワンパターンな野次が入るんだよな。

ところで C# の他には何か作ってらっしゃらないんですか?
C# はもう出来てるんじゃないんですか?
0132デフォルトの名無しさんNGNG
俺さ、思うんだけど、メモリ容量が32bit空間埋め尽くしそうじゃない。

今まではさ、メモリがどんどん大きくなってCPU速度を食い潰す心配してたけど
これからはメモリ空間が一杯だから、CPUが速くなればそれだけ速くなる時代なのかな?

実際32bitあればメモリ空間としては問題ないじゃない。
動画がどうとか言っても、動画データ全体をメモリに入れる必然ないしさ。

64bit化なんて言ってるけど、64bitじゃなけりゃいけない用途が見えて来ないよね。
0133デフォルトの名無しさんNGNG
>>132
別におまいの事情によって64bit化するわけじゃないからなぁ。
そりゃ、俺個人にも必要ではないけどさ。
世の中にはそれを必要とする分野もあるってだけ。

で、
>今まではさ、メモリがどんどん大きくなってCPU速度を食い潰す心配してたけど
>これからはメモリ空間が一杯だから、CPUが速くなればそれだけ速くなる時代なのかな?
の意味が理解できないのだが。
0134デフォルトの名無しさんNGNG
132は64bit化はメモリの単位だけと思っているらしい。
0135デフォルトの名無しさんNGNG
age
0136デフォルトの名無しさんNGNG
つーかこのすれいらなくねー?藁
0137デフォルトの名無しさんNGNG
放っておけばDAT逝きになるだろ。
0138デフォルトの名無しさんNGNG
とりあえずあげとくか。
0139デフォルトの名無しさんNGNG
>>132
現実にテラバイト超のメモリを実装したコンピュータもあるんですが
あれは無駄な飾りですか?
0140デフォルトの名無しさんNGNG
>>139
そのテラバイト超のメモリを実装したコンピュータは何ビットですか?
0141デフォルトの名無しさんNGNG
>>121はヘジたんですか?
0142デフォルトの名無しさんNGNG
5年前に>>132は、メモリなんて128MBも必要なわけ無いだろ・・・と考えてました。
0143デフォルトの名無しさんNGNG
分子コンピュータが実用化されればメモリの量で心配することはなくなるだろ
0144デフォルトの名無しさんNGNG
蒸し熱いなここ。
みんな変な顔のおっさんなんだろうな。
0145デフォルトの名無しさんNGNG
Delphi使いはすべて上級者ぁぁぁ
0146デフォルトの名無しさんNGNG
>>145
またC#スレで煽動してきたんですか?
0147デフォルトの名無しさんNGNG
>>146
C#スレに返れ
0148デフォルトの名無しさんNGNG
まだDelphiスレなんてあったんだ
なつかしいなぁ
0149デフォルトの名無しさんNGNG
仕方なくVCを使う。
分からずにVBを使う。
好きだからDelphiを使う。


0150デフォルトの名無しさんNGNG
>>149
どっちみち使わなきゃいけないんだ。頑張れ。
0151デフォルトの名無しさんNGNG
常に高レベルな質問を!
0152デフォルトの名無しさんNGNG
いや上級者にはもっと低レベルな所からやるのを望みたい
0153デフォルトの名無しさんNGNG
上級者用ってなってるから見てみたら、低級者しかここいないんか?
はやってないとか、使われてないとか・・・、
おもいっきり広く使われて、スタンダード言語の一つが現実だと思うが?
あんた自分の世界にひたってるアマチュアヲタプログラマーか?
0154デフォルトの名無しさんNGNG
あんたってだれよ?
0155デフォルトの名無しさんNGNG
まぁまぁ。コテハンすら使わない匿名の、やたらえらそうな書き込みは無視するのが一番。
負け犬が一番よく咆える。
0156デフォルトの名無しさんNGNG
晒しあげ
0157デフォルトの名無しさんNGNG
質問です。

Delphiで、コ
0158デフォルトの名無しさんNGNG
>>157
そんなの簡単です。

まず、エ
0159デフォルトの名無しさんNGNG
>>157
中(ry先生の書籍がおすすめです
高いけどなかなか売ってないけど根性で手に入れてください
私は通販が怖いのでまだ手に入れてません
0160デフォルトの名無しさんNGNG
CMYKモードでWindowsビットマップ(bmp)って作れるものなのかなぁ。
ムリだよね、WindowsビットマップってRGBモードオンリーじゃん?
0161デフォルトの名無しさんNGNG
イマイチ何がやりたいのかわからんが、(何かの色原版か?)
各色成分に分解してそれぞれビットマップに保存すればいいんじゃないか?
変換式は色理論とかキーワードに検索すればすぐ見つかると思う。
0162デフォルトの名無しさんNGNG
>>161
ただの独り言じゃないの?
0163デフォルトの名無しさんNGNG
独り言で質問かよ?
0164?NGNG
>>163
160のレスは人に質問するような書き方じゃないと思うが。
0165デフォルトの名無しさんNGNG
>JPEGImage->SaveToStream(Stream);

この処理がマルチスレッドで2つくらい重なると、
Windowsがリソース不足エラーを起します。
何か回避策無いかな。
一応、重ならない工夫はしましたが、他に重いアプリを起動してると駄目みたい。
0166165NGNG
処理的には、TBitmapを使って、Pictureをコピーしてます。

Bitmap = new Graphics::TBitmap();
JPEGImage = new TJPEGImage();
try {
Bitmap->Width = Image->Picture->Graphic->Width;
Bitmap->Height = Image->Picture->Graphic->Height;
Bitmap->Canvas->Draw(0,0,Image->Picture->Graphic);
JPEGImage->Assign(Bitmap);
JPEGImage->SaveToStream(Stream);
} __finally {
delete JPEGImage;
delete Bitmap;
}
0167165NGNG
実際にやりたいことは、bitmap等のフォーマットのJpegファイル化です。
0168デフォルトの名無しさんNGNG
>この処理がマルチスレッドで2つくらい重なると、
>Windowsがリソース不足エラーを起します。

あなたの書いたコードがバグってるだけだと思われます。
0169165NGNG
>Windowsがリソース不足エラーを起します。

書き方間違えました。
Win32APIがエラーをリターンしてVCLの「リソース不足」エラーメッセージになります。
Windows自体は大丈夫でつ。
0170165NGNG
VCLのスレッドとメモリ管理の間に、バグとかありませんでしたっけ。
0171165NGNG
「リソース不足」と出ましたが、Syncronizeすると発生しなくなるので、リソースと関係ないかもしれません。
0172デフォルトの名無しさんNGNG
DelphiスレでC++書くヴァカは病院へカエレ
0173デフォルトの名無しさんNGNG
>>172 はいはいはい。
>>170 さすがに D6 位になると、そんな話は聞かない。メモリマネージャはだいぶ枯れたコード。

リソースというより、何かをスレッド間で共有していませんか?
「リソースがなくなったのでエラー」
ではなく「複数スレッド間で同じリソースを使ったためにエラーがおきた」
って線では?
0174?NGNG
ん?何でdelphiじゃないの言語のを書いてるのかの追求はソレで終わり?(藁
ワケ分からんな。
0175174NGNG
「の」が一つ多かったか。
0176デフォルトの名無しさんNGNG
ふつ〜なDelphiグラマだったらBCBのコードぐらい読めるっしょ。
0177デフォルトの名無しさんNGNG
読めたらDelphiなんか使ってませんよ。
0178デフォルトの名無しさんNGNG
読めないわけではないが、速度がな。
0179デフォルトの名無しさんNGNG
いや、「ふつ〜」かどうかは知らんが、「神経を疑う」つってんだが。
BCBスレ逝けっつーの。
0180デフォルトの名無しさんNGNG
心の狭いこと言うな。ちょっと読み替えれば読めないソースでもなかろう。
0181デフォルトの名無しさんNGNG
因みにふつ〜のBCBグラマはDelのソースが読める。しかしBCBXで読む必要が無くなる。
0182デフォルトの名無しさんNGNG
わざわざBCBのコードをDelスレに書く理由が分からんな
読めるかどうかが問題なのか?知障?
もう一度言おう
わざわざBCBのコードをDelスレに書く理由が分からんな
0183デフォルトの名無しさんNGNG
>>読めるかどうかが問題なのか?知障?
本当のことを言っちゃだめだよ
0184デフォルトの名無しさんNGNG
単純に質問者がBCB使いでVCLの情報はDelphiの方が多いからだと思うが。
そこまで嫌う理由の方がわからん。日本に来たら日本語喋れって口なのか?
0185デフォルトの名無しさんNGNG
>日本に来たら日本語喋れ
例えがおかしい
すぐ隣にアメリカ人がいるのに、日本人に英語について質問しに来たようなもんだろ。
0186デフォルトの名無しさんNGNG
いや、何度もループして無駄だとは思うが
「B C B ス レ 逝 け っ つ っ て ん だ よ ! 」
0187デフォルトの名無しさんNGNG
BCBはDel以上に人少なくなってきてるしなあ。
>>185
それも例えがおかしくないか?
0188デフォルトの名無しさんNGNG
例えがないと理解できない低脳どもはお帰りください。お願いします。
0189デフォルトの名無しさんNGNG
つか、Delスレ縦杉。
このスレの存在意義って何よ?
0190デフォルトの名無しさんNGNG
>>189
弱い犬ほど良く吠える
0191デフォルトの名無しさんNGNG
わけわかんね。
0192デフォルトの名無しさんNGNG
>>189
>Delスレ縦杉
ちょっと前にアンチどもが荒らし&乱立させた。このスレも乱立スレのひとつ。
まあここは隔離スレになっているけどな。
0193デフォルトの名無しさんNGNG
まぁなんだ。漏れが200getするまでもまいら手伝え
0194デフォルトの名無しさんNGNG
>>192
> ちょっと前にアンチどもが荒らし&乱立させた。このスレも乱立スレのひとつ。
の割りには最初の方真面目に立てたって感じがするけどな。
都合が悪くなったらアンチのせいかよ。
お仲間がやったことにちゃんと責任を持ちな。
0195デフォルトの名無しさんNGNG
>>74
この勘違い厨は多くいるけど…
なぜなんだ?,MSの広報部が馬鹿なんだなきっと
0196デフォルトの名無しさんNGNG
>>194
まともな用が無いなら来るなよ
0197デフォルトの名無しさんNGNG
MSの広報部は馬鹿の巣靴ですよ。
0198デフォルトの名無しさんNGNG
次期P2Pの仕様 part7
http://tmp2.2ch.net/test/read.cgi/download/1070647427/

まとめサイト(Wikiへの直リンク禁止)
 http://s2net.s41.xrea.com/

ダウソの馬鹿どもがなんかやってるぞ、からかってやろうぜ!
0199デフォルトの名無しさんNGNG
暇なんだねw
0200デフォルトの名無しさんNGNG
>>197
すくつ?w
0201デフォルトの名無しさんNGNG
こんなんありましたけど。
http://216.239.41.104/search?q=cache:HT23w5vi05wJ:www.rondan.co.jp/html/mail/0309/030916-5.html+%E8%AB%96%E8%AB%87+%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88&hl=ja&ie=UTF-8&inlang=ja

0202デフォルトの名無しさんNGNG
まあ昔からまともなサラリーマン風の人はいないなと思っていたが。
(どことなく風貌がチ○ピラ風?)
0203デフォルトの名無しさんNGNG
手伝ってくれる方キボンヌ
http://program.dot.thebbs.jp/1071486463.html
0204デフォルトの名無しさんNGNG
氏ね
0205デフォルトの名無しさんNGNG
0206デフォルトの名無しさんNGNG
汎用サンク APIを使って 16bitコードから呼ばれる32bitDLLを作っているのですが

このDelphiで作る32bitDLLのデバッグをするのに、
 NT系だと system32\NTVDM.EXE をプロセスにアタッチで出来るのですが
  9x系だと、どうやればいいでしょう?


0207デフォルトの名無しさんNGNG
>>201
こんな会社に大野さん入ったんだ・・・他人事ながら心配です。
0208デフォルトの名無しさんNGNG
QRコード(2次元コード)吐き出したいんだけど、
なんかいいのあります?
0209デフォルトの名無しさんNGNG
>>208
いいのかどうか知らんが、
ttp://www.psnet.ne.jp/software.html#QRCODE
0210デフォルトの名無しさんNGNG
>>209
あ!そんな感じのがあるんですね。
情報サンクス!
0211デフォルトの名無しさんNGNG
*.DFMのロードって、vclのどこでやってましたっけ?
0212デフォルトの名無しさんNGNG
フォームのCreateから辿ってけば? >>211
0213デフォルトの名無しさんNGNG
デバッガで中身見てるけど、見つからない>>212
0214デフォルトの名無しさんNGNG
stream reader は classes にあるよ。
0215デフォルトの名無しさんNGNG
>>213
InitInheritedComponent がそうだよ。
で、そこから
0216デフォルトの名無しさんNGNG
Delphi上級者の定義を教えてください
0217デフォルトの名無しさんNGNG
中村拓男さんの書いていることが全て理解できる。
0218デフォルトの名無しさんNGNG
> Delphi上級者の定義を教えてください

2chには書き込まない人
0219デフォルトの名無しさんNGNG
pcode氏の書き込みをみていらつかなくなる
0220デフォルトの名無しさんNGNG
>>218
それはないな。2ch で答えだけつけてる人。って方が正確では?
0221デフォルトの名無しさんNGNG
2chで書かれている事を鵜呑みにしない。
0222デフォルトの名無しさんNGNG
DelphiでDelphiを作れる
0223116NGNG
> Delphi上級者の定義を教えてください

Delphi を使わないくらい使い込んだ人
0224デフォルトの名無しさんNGNG
>>219
pcode氏って誰? 中間コード?
0225デフォルトの名無しさんNGNG
ttp://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/nsearch.cgi
で、検索汁「
0226デフォルトの名無しさんNGNG
検索してわざわざ読むものなの? それで「いらつかなくなる」というのも変なの
0227デフォルトの名無しさんNGNG
>>226
俺は「技術的には」尊敬してる。
0228デフォルトの名無しさんNGNG
>>227

具体的にどの部分の技術。あんまり具体的な技術を示してないような
0229デフォルトの名無しさんNGNG
たんなる毒舌じいさんで2,3年早く「ひとり2チャンネル」やってただけ
0230デフォルトの名無しさんNGNG
毒舌とは安定のための周囲の苦心や忍耐に対する甘えである、ってね。
0231デフォルトの名無しさんNGNG
実際、彼のレスをここのような2chに貼り付けるとただの平凡な煽りとかわらんな

MLでやったから目立つだけで、内容はただの2ch風煽り
0232デフォルトの名無しさんNGNG
つまり場違いだったというわけで、
0233デフォルトの名無しさんNGNG
227は煽りの技術について尊敬してるのかもな
0234デフォルトの名無しさんNGNG
煽りの技術としても並ていど
0235デフォルトの名無しさんNGNG
それは中島治康が大した事無いといっているのと同じ。
0236デフォルトの名無しさんNGNG
ふーん、煽りがうまいひとなの?
0237デフォルトの名無しさんNGNG
大昔の巨人選手。 >>235 の言ってるのは、当時としてはすごかった、ということか。
つまり、以前 ML に煽りのすごいひとがいた、と。でもそれはいまからみると、並程度と。
0238デフォルトの名無しさんNGNG
ML で煽るのはすごいとかすごくないとか以前に、電波だと思う。当時も今も。
0239デフォルトの名無しさんNGNG
団結力が高まるから、敵がいたほうがいいんだよ
0240デフォルトの名無しさんNGNG
ML で団結ってなに? なにに対して団結するの?
団結しないから最近は閑散としてるの?
0241デフォルトの名無しさんNGNG
ざっとみてきたが、pcode氏、技術はたしかにあるみたいだなぁ〜
今のMLで復活したら、活性化されて面白くなりそう
0242デフォルトの名無しさんNGNG
技術のある電波ってところだよね。
0243デフォルトの名無しさんNGNG
むかーし、電波技術って雑誌があったなー
0244デフォルトの名無しさんNGNG
馬鹿と天才は紙一重
ってよく言ったものだ
0245デフォルトの名無しさんNGNG
>>244
ただの技術ありそうな電波。天才は無関係。
0246デフォルトの名無しさんNGNG
ただの馬鹿より技術馬鹿の方がちょびっとだけマシか。
0247デフォルトの名無しさんNGNG
馬鹿と電波は違うぞ。
0248デフォルトの名無しさんNGNG
ねたんで、そねんで うらやみ やっかんで ひがむ。 そんなのが渦巻いてるスレですね。
0249デフォルトの名無しさんNGNG
そうそう、なにしろ上級者スレですから
248 が一番渦巻いてるがな
0250明日の朝礼スピーチのネタにどうぞNGNG
え〜料理の世界に五味、五色、五法というものがございます。
五味とは甘い、辛い、酸っぱい、苦い、塩辛い
五色とは赤、白、緑、黄、黒
五法とは生、煮る、焼く、揚げる、蒸す

さて、人間にも ゴミ がありまして、それは、
そねみ,ねたみ,うらやみ,やっかみ,ひがみ 
0251デフォルトの名無しさんNGNG
あと、「わざわざかきこみ」っていうのもあるな
0252デフォルトの名無しさんNGNG
>>250
Umamiは?
0253デフォルトの名無しさんNGNG
助けて上級の人。
Windows 2003 serverにMultilingual Interface Pack日本語を被せて、
Delphiで作成したアプリを実行しました。
メニューやポップアップメニューで、
ショートカットキー(ファイル&Fの"&F"みたいなやつ)付けてないキャプションの
先頭文字が化けまつ。
どうすれば対処出来るんでしょう。
0254デフォルトの名無しさんNGNG
MainMenu/PopupMenu の AUtoHotkeys を False に
0255253NGNG
thanx>>254
AutoHotkeysがフォントを間違ってHotkeysを付けてるということですか。
Windowsが間違えてるのか、VCLが間違えてるのか、日本語として処理されてないということかぁ。
0256デフォルトの名無しさんNGNG
「日本語として処理されてない」
ですね。とんでもないところに & を自動挿入しているのでしょう。

ユーザーロケールとシステムロケールは何をお使い?
あと Delphi のバージョンは?
0257デフォルトの名無しさんNGNG
会社で使うアプリをDelphiで作っているのでMLログ参照したりしてます
ちょっと躓いた部分があったのでMLログを見てたらpcode氏のサンプル
がありました
pcode氏のサンプルはすごいなって思ったり
職業delphi使いって感じがして

復活して欲しいな
0258デフォルトの名無しさんNGNG
>>257
番号をおしえてください。
0259デフォルトの名無しさんNGNG
さくら電波?
0260デフォルトの名無しさんNGNG
東京は明日が開花予想日。だけどすこしずれそう。
0261デフォルトの名無しさんNGNG
正直、上級スレが一番程度が低い
0262デフォルトの名無しさんNGNG
いまごろなにを? ネタスレなんだし。
上級者なんていないだろ。いても来ないし。
自称上級者なんてこんなもの。
0263デフォルトの名無しさんNGNG
ちょっと問題。

constructor TLanguages.Create;
var Callback: TCallbackThunk;
begin
inherited Create;
Callback.POPEDX := $5A; <---実行コードを動的に作成して
Callback.MOVEAX := $B8;
Callback.SelfPtr := Self;
Callback.PUSHEAX := $50;
Callback.PUSHEDX := $52;
Callback.JMP := $E9;
Callback.JmpOffset := Integer(@TLanguages.LocalesCallback) - Integer(@Callback.JMP) - 5; <--メソッドへジャンプしてる。
EnumSystemLocales(TFNLocaleEnumProc(@Callback), LCID_SUPPORTED);
end;

この部分、CallBackをポインタ型にして、VirtualAllocで確保して実行フラグを付けて実行させるように変更しとかないとマズイね
0264デフォルトの名無しさんNGNG
TLanguages ってどんなときに使うの?
0265デフォルトの名無しさんNGNG
言語選択のダイアログを作るような時使うんだろうけど
どっちにしても国際化対応するなら、対応国決めてしまうから、あんまり意味ないんだろうな・・・
0266デフォルトの名無しさんNGNG
言語選択のメニュー作りたいんですが、
国旗アイコンメニュー無いですか?

アイコンだけでもあれば自作だけど。
0267デフォルトの名無しさんNGNG
国旗は国が苦労して考え出した独創的な物。
つまり国に著作権があります。
ですので勝手に使うことは出来ません。
各国に許可を取りましょう。きっとそのときアイコンも入手できるはずです。
0268デフォルトの名無しさんNGNG
Mozillaのソースからパクれ
0269デフォルトの名無しさんNGNG
>>266
外務省ホームページ(日本語)-世界の国旗-
http://www.mofa.go.jp/mofaj/world/kokki/index.html
0270デフォルトの名無しさんNGNG
パクルなよ。ちゃんと著作権があるからな。
0271デフォルトの名無しさんNGNG
いや、もう面白くないってば > 270

0272デフォルトの名無しさんNGNG
疑問なんだが、「どっからどこまでがパクリ」なんだろう?
TIPSだとかFAQレベルってのは、そのまんま使い回してるでしょ?
上級じゃない書き込みでスマンが、純粋に疑問なので。
0273デフォルトの名無しさんNGNG
漏れの独断と偏見による判断

コードサンプルとして置いてあったりするものは自由
ソフトウェアの根幹に関わる部分が他人が書いたコードならパクり
0274272NGNG
>>273
うーん。そんな感じだよね。
自由かどうかはちょっと分からないけど(まぁ、断ることはしないだろうから、
結局同じではあるが…)。

※関係無いけど、某所での注釈「(この文章を)PCに無断で保存することを
禁ずる」みたいなことが書いてあったのにはビックリした。
保存もダメかよ!
転載なんてのは言語道断だが、保存くれー許してもいいんじゃないかと思った。
0275デフォルトの名無しさんNGNG
猫でもわかるプログラミング?
0276272NGNG
>>275
ご想像に任せます(藁
0277デフォルトの名無しさんNGNG
>>274
保存されたくなかったらわざわざネットで公開するなよ、て言ってやれ。
0278デフォルトの名無しさんNGNG
「HP見るだけでIEのキャッシュに溜まってしまうんで見たらいけないというですか?」
って屁理屈こねてやれ
0279デフォルトの名無しさんNGNG
それいい。
0280デフォルトの名無しさんNGNG
>>277

まったく同感。公開したHPの内容について著作権を主張するのは当たり前だとしても
リンクする場所の制限したり、印刷するな、とか、コピーするな、保存するな、とか
を主張するなら、そもそも公開するな、と言いたくなる。
0281デフォルトの名無しさんNGNG
まあ、あそこはさぁ
一応シェアウェアとしてvectorなんかに登録してるし
真面目にお金払ってる人もいると思うから。

そういう人へのケアの意味で、
建前だけでも保存禁止にしておかないと、という考えなんじゃないのかな。
0282デフォルトの名無しさんNGNG
> 一応シェアウェアとしてvectorなんかに登録してるし

これDLしたことないんだけど、内容は公開してるHPのと同じなの?
だとしたら、シェアウェアにしたこと自体が間違いでしょう。
0283デフォルトの名無しさんNGNG
一応。
http://search.vector.co.jp/search?query=%94L%82%C5%82%E0

内容は古いけど、更新したら差分メールが来るみたいよ。
0284デフォルトの名無しさんNGNG
で差分は公開してないの? ふーん。
0285デフォルトの名無しさんNGNG
よーし、パパGetHTMLでGetしてWin(ry
0286デフォルトの名無しさんNGNG
つーか、意味無いんだから<保存するな
意味無いことを堂々と書いてるのが不思議。
「はい!保存しません!」って人がどのくらいいるのか。
本気で書いてるのかなぁ?
0287デフォルトの名無しさんNGNG
だってこのスレ的に関係ない話だし。
0288286NGNG
>>287
いや、「保存するなって書いてる人」宛てであって。
0289デフォルトの名無しさんNGNG
ぬるぼ
0290デフォルトの名無しさんNGNG
ガッ
0291デフォルトの名無しさんNGNG
カ゜ッ
0292デフォルトの名無しさんNGNG
やれやれです(^-^;
0293デフォルトの名無しさんNGNG
XP に興味ありな今日この頃です。
DUnit を導入し使い方は、だいたいわかってきました。
やっぱり具体例がないとどう応用していいのかわからないので、
データベースプログラム(できれば売上管理ソフト)のテストにDUnit
使った例があったら教えてください。
(まぁ、2つほど前のスレで、DUnitに関する質問で、
いっこうにレスがつかなかったので、
このスレの住人はあまりDUnitに関心がないようですが・・・)
0294デフォルトの名無しさんNGNG
>>293
>あまりDUnitに関心がないようですが・
んなことないけど。

ただ、DUnit は魔法のツールではないから。単なるテスト。
テスト内容はアプリによって異なるし、人によっても異なる。

応用ではなく、ツール/部品としてみなすべきで、そのためには何をテストするのか
使う人(コードを書いている人)がはっきり認識していないとね
0295デフォルトの名無しさんNGNG
ttp://homepages.borland.com/abauer/2004_04_18_archive.php#108257843133836919
によると次期 IDE は NUnit/DUnit を統合するそうだ。
0296デフォルトの名無しさんNGNG
>>293
xUnitは関数・手続き・メソッドレベルのテストであって
データベースには使かないような。
こうあるべきというデータベースを用意して
処理後のデータベースと比較するテストをすればいいんじゃないの。
0297デフォルトの名無しさんNGNG
BDEのSQLって副問い合わせを使えるところが限られるみたいなんですが、

Type No Name
甲   1  A
甲   2  B
甲   3  C
乙   1  D
乙   2  E

ってテーブルがある時に、

甲 A他2名
乙 D他1名

って結果が欲しい時ってどうすればいいんでしょうか?

select Type from テーブル where No=1

と

select Type,count(*) from テーブル group by Type

を結合したいんですけども。

Oracle(9i以降限定みたいですが)だと副問い合わせでくっつけられるんですけど、
BDE で使えるSQLだと無理みたいです(ぼくが無知なだけかもしれませんが)。

結果格納用のテーブルを作成して、どちらかのクエリの結果をそこに保存する
やりかたしかないのでしょうか?

0298デフォルトの名無しさんNGNG
ひとつめのクエリは

select Type,Name from テーブル where No=1

のアヤマリでした。すいません。
0299デフォルトの名無しさんNGNG
>>297
こんな感じでどうかな?

select x.Type, count(*), y.Name from テーブル x, テーブル y
where x.Type = y.Type and y."No"=1
group by x.Type, y.Name
0300297NGNG
できました!!
from句に同じテーブル2回かけるんですねぇ・・・。
知りませんでした。勉強になりました。
ありがとうございました。
0301デフォルトの名無しさんNGNG
顧客ID, 金額, 売上月

というフィールドがあるテーブルで、ACCESSで言うクロス集計をしたいと思います。

      4月  5月 6月 7月 8月 ・・・・
顧客A xxx円 xxx円
顧客B
顧客C

って感じにしたいのですが、BDEでどうかいたらいいかわかりません。
とりあえず、4・5月分だけ練習で書いてみました。

>select
> T.CustID, T4.Price April , T5.Price May
>from
> Customers T left join Bills T4 on T.CustID = T4.CustID left join Bills T5 on T.CustID = T5.CustID
>where
> (T4."Month" = 4 or T4."Month" is null) and
> (T5."Month" = 5 or T5."Month" is null)

しかしこれだと、5月だけ売上がある会社は消えてしまって思い通りの結果になりません。
月ごとにテンポラリテーブルをつくればいいんでしょうけど、それは煩雑なので、
それ意外になにか解決策はないでしょうか?
0302デフォルトの名無しさんNGNG
とりあえず保守書き込み
0303デフォルトの名無しさんNGNG
このスレなんのためにあるの?
質問がある人は中級スレに書くがよろしい。
ここは人がいない。
0304デフォルトの名無しさんNGNG
>>303
低級者にはこのスレの意義が分からないだろ。中級スレへお帰り
上級者は5人しかいないんだよ。
0305デフォルトの名無しさんNGNG
>>304
ヽ(`Д´)ノウワァァン
0306デフォルトの名無しさんNGNG
>>304
自分の言ってることが、可笑しいことに
気づいてないんだろうか・・・。
0307デフォルトの名無しさんNGNG
まじレスのほうが可笑しい・・・・
0308デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1064420818/

中級者スレが1000いったのでage
0309デフォルトの名無しさんNGNG
再利用はスレタイがじゃまして失敗!
0310ageNGNG
age
0311デフォルトの名無しさんNGNG
Delphiって共産党みたいだな。
もうすぐジリ貧であぼーん
0312デフォルトの名無しさんNGNG
Delphi-MLで聞けばいいんじゃね?
0313デフォルトの名無しさんNGNG
>>311
共産党員をなめるなよ。ゲパルトかけられるぞ。
0314デフォルトの名無しさんNGNG
学会員だって、元真言宗の武闘派でしょ?
0315デフォルトの名無しさんNGNG
いつから赤vs草加スレになった?
0316デフォルトの名無しさんNGNG
ゲパルトってドイツの対空車輌だよね。
そしてナチスは反共。
0317デフォルトの名無しさんNGNG
初心者 or 中級者がないのでここで質問します・・・
インターネットオプションの設定内容を取得したいのですけど
どうすればいいか解りますか?
Netを漁ってみたがうまくhitしないもんで・・・
知りたいのはプロキシ情報なんですけど。
0318デフォルトの名無しさんNGNG
本当に設定を取得しないといけないの?
単にプロキシの設定を利用して接続するだけならWinInetのオプション指定するだけなんだけど。
0319デフォルトの名無しさんNGNG
>>318
同じ設定で動かしたいんです・・・
設定すれば動くようにはできてるんですが、
環境に左右されたくないもので。
0320デフォルトの名無しさんNGNG
317ではシステムの設定を取得したいといい
319では環境とは無関係に独自のプロキシを設定したいといっていて
よく分からないんだけど

システムの情報を取るだけなら
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
のProxyServerあたり
0321デフォルトの名無しさんNGNG
>>320
すいません、わかりづらかったですね。
作っているアプリの環境設定にプロキシの項目があります。
自前で情報をもつのではなく、IEで使っている(インターネットオプションの設定内容)
で動作させたいのです。
0322デフォルトの名無しさんNGNG
>>320
レジストリに情報ありました。ありがとう。
0323上級者NGNG
InternetGetOption
0324デフォルトの名無しさんNGNG
TListViewのvsReport形式についての質問です。
ListViewの上の部分にでてくるTHeaderControlのような部分について
各ヘッダーがおかれている場所の座標を取ることはできないでしょうか?

ちょっと説明しにくいのですがTHeaderContorlにてできる
R.left := HeaderCtrl.Sections.Items[3].Left+3;
R.right := HeaderCtrl.Sections.Items[3].Right-5;
のような情報をTListViewで取得したいのです。

よろしくお願いいたします
0325デフォルトの名無しさんNGNG
n-1
ΣColumns[i].Width でいいと思う
i=0
0326ANGNG
>>324
一つ一つの幅は、ListView1.Column[0].Width で判るみたいだから、
後は計算で、座標に変換、かな?
0327デフォルトの名無しさんNGNG
>>325 >>326
Thx、やはり手計算しかないのか…
0328デフォルトの名無しさんNGNG
>>327
THeaderControl も内部でそうやって計算してるみたいだけど。
高さも必要なら↓

function GetListHeaderHeight(ListView: TListView): Integer;
var
  Handle: HWND;
  Rect: TRect;
begin
  Result := 0;
  Handle := GetWindow(ListView.Handle, GW_CHILD);
  if (Handle <> 0) and Windows.GetClientRect(Handle, Rect) then
    Result := Rect.Bottom;
end;
0329デフォルトの名無しさんNGNG
>>328
なるほどなるほど
どうもありがとうございます!
0330デフォルトの名無しさんNGNG
TControl.Topから、Formの絶対座標のTopを取りたいんですが、教えてください。
0331デフォルトの名無しさんNGNG
ClientOrigin
0332デフォルトの名無しさんNGNG
みんな罫線の多い帳票を作る時は、どうやって作ってるの?
QuickReport で罫線はマンドクさいし、LightReport は使い方が
よくわかんねぇよ!!
でも、仕事でやるハメになってしまいました(ハァ)
言語は Delphi6 です。
0333お願い 教えてNGNG
かかってきた電話を
どの電話番号宛てなのかをPC画面上に
表示してくれる「CTI」システムのような
ソフトは作れるでしょうか?
0334デフォルトの名無しさんNGNG
いつになったら俺が答える気になるような
上級者向けの質問がくるんだ?
0335デフォルトの名無しさんNGNG
くだすれでなく、こっちに質問書いているということは、上級者向け質問と
思っているのかね。
0336デフォルトの名無しさんNGNG
>>334
TComboBox(csDropDown)の高さ(Height)を変える方法をお願いします。
0337デフォルトの名無しさんNGNG
ここはレベルの高いインターナッツですね
0338デフォルトの名無しさんNGNG
ここは上級者が答えてくれる質問板だろ?
つまり>328は上級者でも>330-338は上級者とは限らない
0339デフォルトの名無しさんNGNG
へー、じゃあみんなここで聞いたほうがいいな。
0340デフォルトの名無しさんNGNG
UNIXのように自分に必要なリソースを最低限だけ取ろうっていう思想はWINユーザーには全くないのか?
0341デフォルトの名無しさんNGNG
>>340
Win2kを使い始めた頃からそういう意識はなくなりました。
0342デフォルトの名無しさんNGNG
こことあのバカスレとほぼ連続して書き込みがあるのは何でだろ
0343デフォルトの名無しさんNGNG
>>340
思想って(笑)
0344デフォルトの名無しさんNGNG
>>334
では上級者向けの質問を。

海の水はどうしてですか?
0345デフォルトの名無しさんNGNG
>>344
空が青いから
0346デフォルトの名無しさんNGNG
>>344
海水浴客の汗から塩分が出てるから
0347デフォルトの名無しさんNGNG
>>336
俺は334では無いが、その質問は、フォントのサイズを変える、なんて回答でもいいのか?
0348デフォルトの名無しさんNGNG
>>344
TECN-20811
0349デフォルトの名無しさんNGNG
>>336 はかなり上級者向けかもね。
フォントを維持したいなら多分次の手順でいけると思う。

元のフォントを複製する。
フォントのサイズを変える。
編集部分のフォントを戻すために EditHandle に WM_SETFONT を送る。
リスト部分をオーナー描画できるようにするため GetWindowLong で
ウィンドウスタイルに CBS_OWNERDRAWFIXED を加える。
WindowProc を付け替えてサブクラス化する。
新しいウィンドウプロシージャで CN_MEASUREITEM と CN_DRAWITEM を
処理してリスト部分を元のフォントで描画する。

フォームの直下に乗っていれば WM_MEASUREITEM と WM_DRAWITEM が
フォームの WndProc を回るのでサブクラス化する必要はない。
0350デフォルトの名無しさんNGNG
×GetWindowLong
○SetWindowLong
0351デフォルトの名無しさんNGNG
ここには、QuickReport や LightReport を
使いこなしてる方はいないってことはわかりました。
0352デフォルトの名無しさんNGNG
もしかして>>332ですか?
仕事に必要で付属やフリーのレポートツールに満足できなきゃ商用のレポートツール買うしかないでしょ。
使いこなしてるとかの問題じゃない。
0353デフォルトの名無しさんNGNG
>>352
ここまで日本語読めない人ひさしぶりに見た。
0354デフォルトの名無しさんNGNG
他のアプリが印刷した情報(枚数など)を取得する方法を教えて下さい。
0355デフォルトの名無しさんNGNG
>>354
他のアプリがどういうふうにその情報を記憶してるのか
わからないと答えようが無いじゃん。
0356デフォルトの名無しさんNGNG
>>355
分からないなら黙っててください。レスが流れてしまうので迷惑です。
0357デフォルトの名無しさんNGNG
>>354
他のアプリがどういうふうにその情報を記憶してるのかわからないと答えようがありません。

一般的には無理。
0358デフォルトの名無しさんNGNG
>>357
分からないなら黙っててください。レスが流れてしまうので迷惑です。
0359デフォルトの名無しさんNGNG
>>354
他のアプリが印刷した情報を書き出したファイルを読み込めばいいじゃん
0360デフォルトの名無しさんNGNG
>>359
分からないなら黙っててください。レスが流れてしまうので迷惑です。
0361デフォルトの名無しさんNGNG
> 他のアプリが印刷した情報(枚数など)を取得する方法を教えて下さい。

スキャナで取り込む
0362344NGNG
>>348
知ってる人がいたのか・・・orz
0363デフォルトの名無しさんNGNG
Delphi相談室(中級者用)は死亡でつか?
0364ななしへたぐらま ◆XcB18Bks.Y NGNG
前スレの終了(1000)にあたってこのスレを再利用しようと言うことになりましたです.
0365デフォルトの名無しさんNGNG
> 他のアプリが印刷した情報(枚数など)を取得する方法を教えて下さい。
しかたない、答えてやろう。
プリンターポートを常に監視してデータがきたらそのデータを読み取ってプリンターエミュレーターでも作って
その中で印刷枚数を数えればよい。
汎用性?しらん
0366354NGNG
皆様、ありがとうございました。やはりだめですか・・・
スプーラーの情報には印刷枚数があるので、
これを何とか取得できないかと思いましたので・・・

メッセンジャーのポップアップのテキストから印字バイト数を
取得するのはできたのですが、これから枚数を予想するのは
無理がありますし・・・。
0367デフォルトの名無しさんNGNG

    ./l   ,-,   ,-,
    /i l  y'- `‐‐'‐-i,
    l i l  l ’ ι ’ l  保守。
    l j l キ  iフ  メ  
    l i l   ̄l ̄l ̄`    
    (二)、_,./  `-‐‐‐-、,.-,
      liiil`‐-‐'i,/ / l___,3 .l-‐'
     (二)二二/‐‐,-,-‐,‐'
      ""    l /  l l
         __l l   ヽヽ
         `‐ '   `"
0368デフォルトの名無しさんNGNG
相手のプロセスに侵入して、印刷関係のAPI(EndPageとか)へのエントリポイントを書き換えて
自前のルーチンをはさむようにして、そこで改頁の数を数えるというのは?
0369デフォルトの名無しさんNGNG
ここは厨房度も最上級なスレですね
0370354NGNG
>>368
私の力では、そこまでは、とても・・・;;
0371デフォルトの名無しさんNGNG
タスクトレイにプリンタのアイコンが出たら、それをダブルクリックしたことにして
開いたエクスプローラの SysListView32 から取り出したらどうですか。
0372354NGNG
371>>
それが、アイコンは一瞬で消えるので、うまくいくかどうか・・・
0373デフォルトの名無しさんNGNG
というかDelphiとは全く関係の無い質問ですね
0374354NGNG
というかDelphiでいかに解決するかということです
0375デフォルトの名無しさんNGNG
じゃ、Delphi 以外で実現しているソフトが存在するのか?というところから始めようか。
0376デフォルトの名無しさんNGNG
やり方知ってるから答えてやっても良いが、358, 360 で荒らしたのはおまえか >> 354
0377376NGNG
基本的にはプリンタの情報表示ウィンドウを自作することになる。
注意しなければいけないのは、アプリが何枚出したかったのか、ではなくプリンタ側が
受け取ったページの量しか取れない。ほとんどの場合一致するが。

それと Win9x 系と NT 系、および XP 以前と以降で API や通告メッセージの仕様が変わっている。
この部分はアプリより OS よりの機能のため、OS ごとに微妙に動作が異なる。
既存のすべての OS で動かそうとするには結構努力が必要なのでがんばること。
0378376NGNG
スプーラーを通さずに印刷するプリンタがある場合にはもうどうしようもないが、
Windows ではまず考えなくても良いだろうから NT でのスプーラーサービスのことを考えます。
98 のことはあとで自分で調べてくれ。

NT のスプーラーは system32 の sppolss.dll (スプールサービス?) と spoolsv.exe の組で
動いています。こいつらがスプーラーの本体。
プリンタ情報ウィンドウはこれらから情報を取得して表示しているだけだ。
0379376NGNG
鍵となるのは WM_SPOOLERSTATUS メッセージ。
誰かがプリントジョブを追加するとこのメッセージがやってきますから、EnumJobs で新しい
印刷ジョブを見つけ、その情報を取得。

0380354NGNG
376さんありがとうございます。
WM_SPOOLERSTATUS を検索してみたら以下のコードが見つかりました。
今、自宅なので試せないのですが、休み明けにやってみようと思います。
枚数がこれで取得できれば嬉しいのですが・・・。

なお、358,360は私ではありません(もう四十路なので荒らしなどは・・・)。

type
TyourForm = class(TForm)
private
{ Private declarations }
procedure WMSpoolerStatus(var Msg: TWMSpoolerStatus);
message WM_SPOOLERSTATUS;
public
{ Public declarations }
end;

implementation

{$R *.DFM}

procedure TyourForm.WMSpoolerStatus(var Msg: TWMSpoolerStatus);
begin
ShowMessage('Now in the spooler a ' + IntToStr(msg.JobsLeft) + ' jobs';
msg.Result := 0;
end;
0381デフォルトの名無しさんNGNG
結局Delphiとは全く関係ないじゃん
0382デフォルトの名無しさんNGNG
>>381
「全く」に引っかかるな・・・
0383デフォルトの名無しさんNGNG
枯れ木も山の賑わいです。
0384354NGNG
あれから色々と探してみて、以下の2つのサイトを参考にして、
印刷枚数の取得ができるようになりました。ありがとうございました。

http://www.delphi3000.com/articles/article_1699.asp
http://tew.nease.net/w26.html
0385デフォルトの名無しさんNGNG
ポインタを配列みたいに使いたいんで

type
TIntArray = array[0..0] of integer;
PIntArray = ^TIntArray;

とかやるのって問題ある?
0386デフォルトの名無しさんNGNG
>>385
初心者用へいらっしゃい。
0387デフォルトの名無しさんNGNG
>>385
問題ない、むしろ動的配列が実装される前は、それが普通のテクニックだった
…が、{$R+}状態も考慮するなら、
array[0..High(Integer) div SizeOf(Integer)] of Integer
とかのほうがいいかな
0388デフォルトの名無しさんNGNG
散々外出の上にまちがっとるな
0389デフォルトの名無しさんNGNG
High(Integer)が$7fffffffで最初から2Gには1少ないんだから、あっちのスレの-1に意味は無いんでは?
0390デフォルトの名無しさんNGNG
その上妄想かよ
0391デフォルトの名無しさんNGNG
妄想はどっちだ。試してみろ

本当はどちらも間違ってて 0 .. (2G = $80000000 div SizeOf(T)) - 1 とすべきだが
High(Integer) = $7fffffff を使うなら、1少ない分端数がdiv SizeOf(Integer) = 4 で切り捨てられて
$1fffffffになって、添え字に0を含めるので+1して$20000000になって、
配列全体のサイズはまた*4して2Gジャストだ。-1は不要。
0392デフォルトの名無しさんNGNG
また妄想かよ
コード晒してみ
0393デフォルトの名無しさんNGNG
馬鹿の粘着か。
妄想って言いたいだけちゃうんかと小一時間…
コード晒すも何も型宣言が通るかどうかだけだろ。一行だし。
0394デフォルトの名無しさんNGNG
ここが中級車スレに戻る日は永久にこないのかな・・・・






























age
0395デフォルトの名無しさんNGNG
中級者スレが見当たらないのでこちらに書き込ませていただきます。

BitmapImg: array [0..30] of TBitmap;

上記の配列をfor文でCreate()し、その後、for文でループさせて
30枚の24ビットのビットマップ画像を読み込んでいるのですが
何故かWindows98/Meで実行するとPCがフリーズしてしまいます。
Windows2000/XPでは正常に動作します。

TBitmapを普通に使っているだけなので、何処に問題があるのか
分かりません。ステップ実行で追ってみたのですが
LoadFromFile()で読み込んでいる最中にPCがフリーズしてしまい
例外も拾えません。

何か情報ありましたらアドバイスお願いします。
0396デフォルトの名無しさんNGNG
システムリソースを食い尽くしてるのかな?
30枚程度でというのは、少々考え難いけど。
リソースモニタを表示しながら、もう一回
トレースしてみて。
ついでに、ビットマップのサイズは?
0397デフォルトの名無しさんNGNG
9x系だと画像のサイズとか色々制限がきつかった記憶があるが…
0398395NGNG
>>396
トレースしようにもいきなり
フリーズしてしまうので、出来なさそうです。
フリーズするタイミングですが、必ずfor文の2ループ目に
この現象が起こります。

>>397
画像サイズに関して色々と試してみたのですが
1枚あたり5KBの画像でも、1枚あたり200KBの画像でも
必ず同じ場所(for文2ループ目)でフリーズしてしまいます。
0399デフォルトの名無しさんNGNG
とりあえずGDIリソース見ようぜ
0400395NGNG
>>399
GDIリソース見てみました。
大体59%くらい残っているのですが
いきなりPCがフリーズします。

試しに8ビットのビットマップにしてみたら
フリーズせずに無事読めるようになりました。
しかし、使いたいのは24ビット画像なので
原因が分からないのは非常に困ります…
0401デフォルトの名無しさんNGNG
var
 BitmapImg: array [0..30] of TBitmap;
 i1,i2:Integer;
begin
 for i1 := 0 to 30 do
  BitmapImg[i1] := TBitmap.Create;
 For i1 := 0 to 30 do
  BitmapImg[i1].LoadFromFile(IntToStr(i1) + '.bmp');
 For i1 := 0 to 30 do
  Image1.Canvas.Draw(0,0,BitmapImg[i1]);
 For i1 := 0 to 30 do
 BitmapImg[i1].Free;
end;

俺のWin98環境では、このコードで1600x1200x24の
ビットマップを読ませても、何とも無いけど。
0402デフォルトの名無しさんNGNG
Delphi超初心者スレより画像処理スレへと誘導されたのだですが上級者様のスレなら
お答えしていただける方お思いこちらへと移動してまいりました

ある画像(bmp)ファイルを入力し その画像の中から新円もしくは楕円に近い軌跡を描く線のみを抽出して
別画像ファイルとして 出力するということを考えているのですが
その画像ファイル内には他にも多くの直線部分や、塗りつぶし部分などが含まれているため
曲線部分のみの抽出方法をどうしたらいいのか悩んでおります。

http://www.eyescan.tv/images/me001.jpg

たとえばこのような画像を入力した場合ある程度のフィルタ処理をした後
データ-ベース上にある登録された個人との 照合をしある程度以上の適合率が出た場合は
OKサインを出すといった手法で考えております。
ファイルタ処理は完全に白黒レベルまで虹彩と書いてある目の外側にある放射線状に延びている多くの線は残した状態にまで
フィルタをかけデータベース上にある画像ファイルの一番外側の楕円軌道と入力画像の大外の楕円軌道が一致するよう
拡大縮小処理をした後にその2画像の適合率のようなものを出したいと考えています。

上記のような入力画像ファイルの中から曲線部分の抽出することを考えた場合どのような手法が考えられるでしょうか?
0403デフォルトの名無しさんNGNG
Delphiとは無関係のような
0404デフォルトの名無しさんNGNG
Delphiでbmp画像の処理というのは出来ないものなのでしょうか?
他の言語にはめっぽう疎いものでこちらで質問させていただいたのですが
他の言語を組みこむ?という形になるのでしょうか?
そういう場合はどういった流れらになるのか教えていただけないでしょうか?
0405デフォルトの名無しさんNGNG
0..30
で30枚と言ってるのが怪しい。
他にも勘違いがあるのでは?

2ループ目って事は、i1=1の時?
0406デフォルトの名無しさんNGNG
>Delphiでbmp画像の処理というのは出来ないものなのでしょうか?

できるです。でも質問の内容は、それ以前のアルゴリズム的な内容かと。
0407デフォルトの名無しさんNGNG
せっかく画像処理スレを紹介したのに、
なぜここに書くかなぁ…
0408デフォルトの名無しさんNGNG
>>404
http://pc5.2ch.net/test/read.cgi/tech/1054545005/l50
0409デフォルトの名無しさんNGNG
中級スレ向けなのかもしれませんが、質問です。
最近のエクスプローラのように、"ツールバーを固定する"ことは、
Coolbarを使って簡単にはできないのでしょうか?
0410デフォルトの名無しさんNGNG
>>409
FixedOrder
0411デフォルトの名無しさんNGNG
>>395
ウィンドウズを巻き込んでクラッシュするなら、
ポインタや添え字のミスでスタックやヒープを壊しているか、
初期化忘れやFreeした後のオブジェクトを操作している気がするな。
0412409NGNG
>>410
うーん。それは順番が変更できないだけ..

SendMessageでスタイルを設定すればできそうなのはわかりましたが、
ちょっと試しただけじゃ動かないなぁ。
シェブロンも対応大変そうだし、素直にToolBar2000かなにか試してみるかな。
0413デフォルトの名無しさんNGNG
設計時にコンポーネントから、実行ファイル名を取得したいんですが、
何か方法はありませんか?
Application.ExeNameでは'DELPHI32.EXE'が返ってきてしまいます。
どなたか知恵をお貸しください。
0414デフォルトの名無しさんNGNG
>>413
ファイル名じゃなくて何を知りたい?
0415デフォルトの名無しさんNGNG
>>413
あ、もしかして
Paramstr(0)
のこと?
0416デフォルトの名無しさんNGNG
>>413
OpenToolsApiとか使えばいいんじゃないの
0417デフォルトの名無しさんNGNG
> 設計時にコンポーネントから、実行ファイル名を取得したいんですが

まだセーブしてないかもしれないし、コンパイルさえ一度もしてないかもしれないし
設計時に実行ファイル名を知る必要なんか思いつかないが。
0418デフォルトの名無しさんNGNG
>>417
プロジェクトの設定とプロジェクトファイルのパスが取得できれば分かるだろ。
0419デフォルトの名無しさんNGNG
> プロジェクトファイルのパスが取得できれば分かるだろ。

だからセーブする前にそのコンポ貼り付けたらどうするのよ?
0420デフォルトの名無しさんNGNG
>>419
project1.exeかな?
0421デフォルトの名無しさんNGNG
コンポーネントはコンパイルする前にも貼り付けられる。>>417 を読んでないの?
0422デフォルトの名無しさんNGNG
> 設計時に実行ファイル名を知る必要なんか思いつかないが。

なぁ、>>413 は何がしたくて、設計時にまだないかもしれない実行ファイル名が
知りたいの?
0423デフォルトの名無しさんNGNG
コンポーネントのコード内で、今設計時か実行時か知ることができることを
>>413 は知らないのでは?
0424デフォルトの名無しさんNGNG
>>423 なら、くだスレ行きだな
0425デフォルトの名無しさんNGNG
お前らもくだスレに帰れよ
0426デフォルトの名無しさんNGNG
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< >>425 オマエモナー
  (    )  \_____
  | | |
  (__)_)
0427デフォルトの名無しさんNGNG
>422
設計時にコンポーネントを貼り付けて、
オブジェクトインスペクタでファイルバージョン等を
管理をしたかったんです。
コンパイル後の設計画面でもかまいません。
0428デフォルトの名無しさんNGNG
そりゃリソースエディタの役割だろ。
外部ツールで.resファイル編集しとけ。
0429sageNGNG
とりあえず、設計時にファイルバージョン等を
取得して、いろいろやってみたかったんです。
無理っぽいので挫折します。
0430デフォルトの名無しさんNGNG
>409 こんなんでよければ...
1.FormのAutoScrollをFalseに設定
2.ScrollBarを2つ貼る
 Kind=sbHorizontal、Align=alBottom
 Kind=sbVertica、Align=alRight

3.ToolbarとPanel1を貼る。Panel1のAlignをalCliantに変更

4.Panel1にPanel2を貼る。Panel2を想定する最大サイズに変更
TopとLeftは0に設定
Anchorsを全てTrueに設定。BevelOuterをbvNoneに設定

5.FormのOnShowイベントでScrollBarの最大値を設定
 ScrollBar1.Max := Panel2.Width;
 ScrollBar2.Max := Panel2.Height;

6.2つのScrollBarのOnChangeイベントでPanelのTopとLeftを操作
 sbHorizontalの方で、Panel2.Left := - ScrollBar1.Position;
 sbVerticaの方で、Panel2.Top := - ScrollBar2.Position;
0431デフォルトの名無しさんNGNG
自作のアプリで出力したjpgファイルを、通常使う設定になってるメーラーに添付して
メール作成画面を開くにはどうしたらいいですか?
MAPIに対応したメーラーに対しては、そういったことが可能らしいのですが・・・
0432デフォルトの名無しさんNGNG
Delphi固有の質問じゃないならこんな糞スレに頼るなよ
0433デフォルトの名無しさんNGNG
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=Delphi+%E3%83%A1%E3%83%BC%E3%83%AB+%E6%B7%BB%E4%BB%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&lr=lang_ja
0434デフォルトの名無しさんNGNG
中級スレかもしれませんが、ここで質問させていただきます。
C言語で書かれたプログラムをユニットとしてDelphiに組み入れる
ことは可能なのでしょうか?
それとも、おとなしくDelphiに書き換えなければならないのでしょうか?
0435デフォルトの名無しさんNGNG
C++Builder でコンパイルされた Objファイル はリンク可能。
Jpeg.pas はそうやってリンクしてるよ。
0436デフォルトの名無しさんNGNG
>>435
やっぱ、宣言は__fastcallとか、引数に使えるものとか決まってんだよね。
詳細はどこに記載されてまつか?
0437デフォルトの名無しさんNGNG
シェルのコンテキストメニューに独自のメニュー加えたいんだけど、
良いサンプルないかな?DLLを作る必要があるようなんだけど。
それらしいものがsampleフォルダにあったり、Webにもあったりしたけど、
どれもエラーが起きたり、まともに動かなかった…
0438デフォルトの名無しさんNGNG
BC++5.5じゃだめ?
0439デフォルトの名無しさんNGNG
>>436
ヘルプのキーワード 'external 宣言' の 'オブジェクトファイルのリンク'
かなり不親切な説明しかないけど、実際には次のような感じ。

interface 部にインポートする関数の宣言を書く。
これは C++ 側で宣言されたものをそのまま Delphi 言語に翻訳する。
特に呼び出し規約に注意すること。
指定なし → 普通は cdecl
__fastcall → register
__stdcall, WINAPI, PASCAL → stdcall

implementation 部の冒頭に {$L ファイル名.obj} を入れる。
各関数の実装部は begin 〜 end; の代わりに external; と書く。
0440デフォルトの名無しさんNGNG
>>438
解らない。
C++Builder ver 1 は大丈夫だったから、
それより新しいC++コンパイラなら大丈夫だと思う。
0441デフォルトの名無しさんNGNG
フォームから別のフォームをShowした時に
呼び出したフォームの中央に表示したいのですけどどうやればいいのか教えてください。

呼び出され側のPositionプロパティはpoOwnerFormCenterにしてあります
メインフォームから呼ばれたときはちゃんと中央に表示されます・・・
その他のフォームから呼び出してもメインフォームの中央になってしまします。
Owner?を指定すればいいようなのですが・・・やり方がわかりません。
そもそも、フォームのOwnerはいつきまるのでしょう?
0442デフォルトの名無しさんNGNG
>>441
Position は poDesigned にしておいて Show を呼ぶ前に
Left と Top を設定する。

Owner はコンストラクタ Create の引数 AOwner で決まる。
自動作成の場合は Application グローバル変数。
0443デフォルトの名無しさんNGNG
>>442
ありがとうです、やはり poDesigned で位置指定ですか・・・

0444デフォルトの名無しさんNGNG
もう一つ質問です
PopUpMenu を表示した親を知りたいのですがどうすればいいですか?
PopUpMenu のイベント(Click)で親コンポーネントのTAGの情報を知りたいのです。
(Sender as TComponent).Owner.??? で取得してもフォームの情報のようです・・・
同じPopUpMenu を複数のコンポーネントで使いたいのです。
0445デフォルトの名無しさんNGNG
>>444
AutoPopup で開いた場合は PopupComponent。
コードで開く場合は、PopupComponent を設定してから Popup を呼べばいい。

Owner は単にコンポーネントを解放するコンポーネント。
Create でコンポーネントを作成すると AOwner の Components の List に
作成したコンポーネントが追加される。
Owner が廃棄されると List が廃棄され、その項目も廃棄される。
0446デフォルトの名無しさんNGNG
間違えた。
TMenuItem からなら GetParentMenu を呼んでメニューを取得。
それが TPopupMenu なら、その PopupComponent プロパティを見る。
0447デフォルトの名無しさんNGNG
>>445
うまくいきました。ありがとう。
0448デフォルトの名無しさんNGNG
>>444
最近の上級者ってレベル低いんですねぇ。
0449デフォルトの名無しさんNGNG
>>448
いまはここを埋めようとしてるんじゃ無かったっけ?
中・低級者もここを使えっていってなかったか?
0450デフォルトの名無しさんNGNG
そもそも上級な質問など無い
0451デフォルトの名無しさんNGNG
質問です。
子ウィンドウをタスクバーに表示することはCreateParamsをoverride
することで対応できたのですが・・・
メインのウインドウに対応するタスクバーをクリックしても
子ウィンドウが反応してしまい、メインをアクティブできませんどうしたら
良いのか教えて下さい。
0452デフォルトの名無しさんNGNG
>>451
親子関係にあるとそうなってしまう希ガス
兄弟関係じゃあかんの?
0453デフォルトの名無しさんNGNG
>>451
メインのウィンドウに対応するタスクバーは Application でしょ。
Application.MainForm が本当にメインのウィンドウに対応しているか
どうか確認してみたら?
0454デフォルトの名無しさんNGNG
>>452
兄弟でもいいけど・・・それって親もCreateParamsをoverrideということでしょうか?
そうすると、親の表示が2つになってしまう・・・(消し方が解りません)
0455デフォルトの名無しさんNGNG
>>453
たぶん違っていると思う、確認してみます。
変更できればいいんだけど・・・
0456デフォルトの名無しさんNGNG
Indyは製品に入りましたが、使う場合は今でも
>バージョン情報ダイアログか起動時のスプラッシュダイアログ、
>またはドキュメントに以下の著作権表記を表示してください。
が必要でつか?

ttp://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BIndy%2FFAQ%5D%5D#content_1_5
0457デフォルトの名無しさんNGNG
parent-child と owner-owned の関係が混同されているのはよくあることだな
0458デフォルトの名無しさんNGNG
>>455
FormActivate で Application.MainForm.Handl 確認してみましたが同じ値でした。
仕方がないので、親もCreateParamsをoverrideして
表示しているウィンドウ+1の状態にしています・・・
どなたか解決の方法を知りませんか?
0459デフォルトの名無しさんNGNG
そもそも何でそんなことしたいの?

タスクバーから Application ウィンドウを消して不都合なく動作させるのは大変。
MLでたくさん議論されている。
0460デフォルトの名無しさんNGNG
>>456 もキボンニュ
0461デフォルトの名無しさんNGNG
aa\a.txt
aa\bb\c.txt
aa\bb\d.txt
aa\ee\f.txt
aa\ee\gg\h.txt

↑このような感じの任意のフォルダを起点としたファイル名が記載されたテキストがあります。
で、このテキストを読み込んで、このツリー構造をTTreeViewとTListViewで表現したいと思ってます。
テキストはもちろん読み込めるんですが、その後のツリー構造の解析と、それをTTreeViewとTListViewに
落とし込む方法がわかりません。どなたかご教授ください。お願いします。
0462デフォルトの名無しさんNGNG
初心者スレじゃないんだからもっと具体的にどこまでできていて
どこでつまってるかを書きなさい。それとも丸投げしたいのか?
0463ANGNG
>>461
初心者が妄想してみました。

テキストのフルパスを得る。
フルパスから任意のフォルダまでのパスを削除。
残りを、\ ごとに分解して、順番にツリーに登録していく。
もしすでに登録済みだった場合は、登録せずにノードを移動するだけ。
パスの最後まで繰り返す。

これを、全部のファイル分繰り返す。

こんな感じでどうかと。初心者が思いついた妄想なので、実際に正しく動くかどうかは
わかりません。もっといい方法があるかも、しれません。
0464デフォルトの名無しさんNGNG
>>459
普通に複数ウインドを表示していて切り替えたいだけなんですが・・・
画面サイズいっぱいのウインドが一つあるので、他のは下になるから。
0465デフォルトの名無しさんNGNG
>>462
すみません。ほとんど自分は初心者なんですが、
まず、あとから使いやすいように、ツリー構造をメモリに読み込んでおくんだと思うんですが、
そのツリー構造をどのように保存しておけばいいかわかりません。
ツリーの解析と、それを何型に保存するのか、がわかりません。よろしくどうぞ。
0466デフォルトの名無しさんNGNG
( つД`) 初心者スレの方がよかったねたぶん
0467デフォルトの名無しさんNGNG
223 名前:名無し~3.EXE[sage] 投稿日:04/08/11 22:14 ID:UFKHXgd0
>>113
ja_winxp_sp2.iso
CRC16:6A0B
CRC32:FFFFFFFF
MD5:35CB1233E6D8C6B7630A216B6AA75892

CRC32がオールFすげぇ…
0468デフォルトの名無しさんNGNG
>>459
お薦めの delphi MLを教えていただけませんか?
0469デフォルトの名無しさんNGNG
>>467
末尾にゴミ埋めたりすればCRC32を自由に操作するのは簡単だよね。
MD5だと一部を除き難しいんだけどね。
0470デフォルトの名無しさんNGNG
最近のMSはCRC32をオールFにする傾向がある
覚えやすいからか?
0471ANGNG
>>465
>463は読んでない?( つД`)
というか、461=465 でいいんだよね? それを前提に書くけど…

>まず、あとから使いやすいように、ツリー構造をメモリに読み込んでおくんだと思うんですが、

これってどういう意味…?
読み込んでおくんだと思う、って、誰が何を…?

>そのツリー構造をどのように保存しておけばいいかわかりません。
>ツリーの解析と、それを何型に保存するのか、がわかりません。よろしくどうぞ。

ファイルにツリー構造を保存したい、ってことだよね?
ファイルに保存するための決まった形式ってのは無いと思うから、
自分が使いたいだけなら、自分で使いやすいように好きに決めていいと思うよ。
ツリーの構造だけを保存したいのなら、>461に書いてある、\で区切られた文字列の列を
テキストで書き出すだけでも保存できる。

それを読み込むのは>463の手順で、書き出すのは、ツリーを辿りながら、テキストに変換。
ツリー構造を辿るには、「再帰」ってのを使うと簡単にできるようになる。
0472デフォルトの名無しさんNGNG
> ファイルにツリー構造を保存したい、ってことだよね?

How to save and load a TTreeView to / from a stream
http://www.lmc-mediaagentur.de/dpool/tips/0703.htm

TStream の派生クラスとして TFileStream を使えば自動的にファイルになる。
TMemoryStream を使えばいろいろ応用できるし、LoadFromFile() SaveToFile()
でファイルにすることも可能。
0473デフォルトの名無しさんNGNG
>>464

ttp://www.asahi-net.or.jp/~HA3T-NKMR/tips025.htm
0474デフォルトの名無しさんNGNG
>>473
ありがとう、試してないけどメイン非表示で最初のウインドを表示すればいいのか・・・
なんか、コロンブスの・・・かなぁ
0475デフォルトの名無しさんNGNG
>なんか、コロンブスの・・・かなぁ

いや、このTipsはけっこう巧妙にできてるよ。VCLのForm間の関係と
Windowsの作法に精通してないと、こうは書けないものだよ
0476デフォルトの名無しさんNGNG
>>465
TTreeView 自体が TreeNodes プロパティにツリー構造を
持ってるので、わざわざ実装しなくてもいい。

TListView との連携は TTreeNode にある Data プロパティを
活用するといい。Data は Pointer だけど任意のオブジェクトを
入れることもできるので、TreeView の選択を変更するたびに
ListView の状態をそのオブジェクトに保存/復元をする。
ファイル名だけなら保存先は TStringList あたりでいいと思う。
TListItem の方にも Data プロパティがあるので、これもうまく
利用すると相互に関連づけを行うことができる。
ただし、動的に生成したオブジェクトはちゃんと廃棄すること。
0477デフォルトの名無しさんNGNG
>>475
>Windowsの作法に精通してないと、こうは書けないものだよ
俺が書けるかと言われれば・・・だけど、メインを消してしまえという発送が・・・
0478デフォルトの名無しさんNGNG
> だけど、メインを消してしまえという発送が・・・

Delphi の VCLアプリで、複数のフォームがある場合、MainForm だけを特別
扱いしているんです。ですから、すべてのフォームを同等に扱うためには、まず、
MainForm だけを使わないようにしよう、というのはかなり自然な発想だと思うよ。
0479デフォルトの名無しさんNGNG
>>465
ただ単にツリーを保存するだけならTTreeViewのSaveToFileもあるよ
0480デフォルトの名無しさんNGNG
たとえスレッド内ローカルなオブジェクトであっても
VCLオブジェクトにアクセスする時はSynchronizeメソッドで同期をとってからアクセ
スしたほうが安全です。

って聞いたんですけど、これって本当にそうなのですか?
TThreadから派生したクラス内で動的に確保したTList等にアクセスするのにもSynchronizeメソッド
を利用しないといけないのですか?
0481デフォルトの名無しさんNGNG
しなくていい、っていうかしてはだめ。
0482デフォルトの名無しさんNGNG
>>480
そのTListのインスタンスが自分で生成したもので、
なおかつTThreadから派生したクラスがアクセスするのと同時に
メインスレッドからアクセスしないことを保証できるならSynchronizeなしでもアクセス可能。
0483デフォルトの名無しさんNGNG
> メインスレッドからアクセスしないことを保証できるならSynchronizeなしでもアクセス可能。

こういう場合は、アクセス可能というより、Synchronizeなしの方がいいでしょ。
0484デフォルトの名無しさんNGNG
中級者スレが見あたらないのでこちらへ・・・

DelphiでCADソフトを作りたいのですが
.DWG .DFX .JWC 等々のファイルフォーマットの形式を
詳しく解説しているサイトなど、ご存じの方又はCADソフトの開発に携わった方いらっしゃいましたら
ご教授頂けないでしょうか?
0485デフォルトの名無しさんNGNG
CAD板池
0486484NGNG
スンマセン(´д`;)ドコ?

ビジネスsoftの所ですかね・・・
0487デフォルトの名無しさんNGNG
昔DXFから座標を拾い出して簡単な絵を描くソフトを書いたが、すんげー面倒で
苦労したし、二度とやりたくない。その時は知り合いが「CADユーザーのためのDXF
リファレンス・ガイド」という本を持ってたので借りてきたけどもう売ってないし、
それの改訂版すら完売らしい。



ってDFX?そいつぁしらねーな。
0488デフォルトの名無しさんNGNG
Delphi6 personal + Indy 9.0.14でIdFTPServerを使用しています。

StoreFileイベントに
VStream := TFileStream.Create(AFileName, fmCreate or fmShareDenyNone);
でファイルを受信しているのですが、
2,147,483,647Byte(2GB)以上のサイズのファイルを受信しようとすると強制的に転送が終了します。
この問題を回避する方法は無いでしょうか?
むろん他のFTPServerでは正常にファイルが受信できる事を確認済みです。

Indyのソースを見るとsizeやseekをintegerで操作しているので
このあたりがあやしいと思うのですが…
0489デフォルトの名無しさんNGNG
>Indyのソースを見るとsizeやseekをintegerで操作しているので

ヘルプより
Integer の範囲 -2147483648..2147483647 形式 符号付き 32 ビット

だから桁あふれして一気にマイナス最大値に突入してるんじゃないの
2GB以上は無理な感じだね
0490デフォルトの名無しさんNGNG
>>484
DWGは知らないが、DXFやJWCはそれぞれ詳しく書かれた書籍がある。
DXFに関しては海外のサイトでDelphiのサンプルコードだったか、コンポだったか忘れたが
以前落とした記憶がある。
DXFの古いバージョンならテキストエディッタで開いて見たらすぐ理解できるだろ。
自分も遊びでCAD作ったりしてみたが、この手の情報はネットには少ない。
SFXのように仕様をちゃんと公開してくれるといいんだけどね。
0491デフォルトの名無しさんNGNG
>>484
ものすごく手抜きになるし、勉強にならないかもしれないけど、
単にCADアプリケーションを作りたいという目的のためだけなら、こんなものもある。

ttp://www.codeidea.com/html/tcad.htm

dxfにも保存できたはず。
0492488NGNG
>>489
やっぱりこれが原因なんだろうな。
Indyのソースは膨大で俺の力量じゃ直せないし
一から作った方が楽か…
0493デフォルトの名無しさんNGNG
BDE で like 演算子使うとスゲェ遅いんですけど、
早くする方法なんかないですか?

ぐぐっても、MLでもめっかんなかったーYO!!
0494デフォルトの名無しさんNGNG
>>492
IntegerをすべてCardinalに置換
0495デフォルトの名無しさんNGNG
2倍にしかならないが
0496デフォルトの名無しさんNGNG
FATなら4GBで十分
NTFSでもっと欲しかったらがんがれ
Int64は素人にはおすすめできない
0497デフォルトの名無しさんNGNG
WinSockつかって分割して読み込めばいい。
0498488NGNG
>>494 >>496 >>497
結局、Indyのソースの怪しい箇所をInt64に直して可能になりました。
ちなみに作成しているのはHDD&DVDレコーダのソフト関連で、
扱うファイルサイズは数GBになるのが当たり前だったので必要でした。

ところでInt64が素人にお勧めできない理由ってなぜでしょう?

# ソース直すときMin関数にだまされてました。
# 標準のを使っていると思ったらIndyで独自に定義してるのね
# そのせいでいつまでも出来なかったよ…
0499デフォルトの名無しさんNGNG
488はShare作者
0500デフォルトの名無しさんNGNG
ShareははじめっからInt64使ってる
0501ANGNG
>>488
全然関係ないのだけど…もしかして、VRDの作者さん?
0502488NGNG
>>501
そです。
東芝HDD&DVDレコ ネットdeダビング解析
ttp://hobby5.2ch.net/test/read.cgi/av/1090733687/
から来ました。
この部分は完全にプログラム板の話だと思ったので
向こうではなくここに書き込みました。
0503デフォルトの名無しさんNGNG
>>498
・遅い
・オペランドへの配慮が面倒
欠点っつったらこれくらいしか思い浮かばんな
0504ANGNG
>>502
おお、向こうと話題がシンクロしてたのでもしやと思ったのですが。
開発、がんばってください〜
0505デフォルトの名無しさんNGNG
BCB のスレで質問したら、あまり興味ある人がいないらしく
まともなレスがつかなかったので、こちらで質問しなおしたいと思います。

DBGridで、

1.グリッドに表示されている一番下のアイテム(仮にRow=5だとします)をクリック。
2.カーソルキーの↓を押す。  ---> Row=6に移動し、[*]と表示される。
3. 1.で選択されてたアイテム(Row=5)を再度クリック。
---> するとクリックしたアイテムの1個うえ(Row=4)のアイテムが選択される。

という症状が現れます。

環境は、BCB6 Pro SP4、WINXP Pro SP1 です。






0506デフォルトの名無しさんNGNG
(つづき)
調査の結果、
TDBGrid.MouseDown()
 ↓
TDatalink.MoveBy()
  ↓
TDataSet.MoveBy()
  ↓
TDataSet.CheckBrowseMode()
と呼び出されています。

CheckBrowseMode内で
TDataSet.State = dsInsert の時、TDataSet.Cancel() が実行され、
この時点で Row は一行上に移動するわけなんですが、
その分を考慮していないため、
「MoveBy の移動分+Cancel の1行分」移動してしまい、
クリックした行のひとつ上の行が選択されるようです。

ここまでわかったのですが、じゃあ具体的にソースをどうなおしたら
よいかわかりません。

また、他のプログラムに影響を与えたくないので、できれば、VCLソースの修正ではなく、
アプリケーション側で対応したいのですが、無理でしょうか?

よろしくお願いします。
0507デフォルトの名無しさんNGNG
特定のユニットを、そのアプリだけで修正verを使いたいなら、修正後の.pasをコンパイルして出来た.dcuを
アプリのフォルダに入れておけばOK。優先して使われますよ

ただしinterface節を変えてはダメ、修正できるのはimplementation以下のみ
0508デフォルトの名無しさんNGNG
質問です。
バイナリファイルの検索をしたいのですが、バイナリエディタで開いたときに
「4A 44 6C 23」と表示される場所の位置を調べるには、どのようにしたら
よいのでしょうか?
0509デフォルトの名無しさんNGNG
バイナリ版BM法を自前で実装しろ
0510デフォルトの名無しさんNGNG
4バイト程度ならbrute-forceでへらへら検索しても
たいして変わらない気もしないでもないけど
0511デフォルトの名無しさんNGNG
んなこたーない。
0512デフォルトの名無しさんNGNG
>>507
それは知らなかたーYO!!!
それなら気楽にトライできます。

というわけで、デバグに挑戦すます。
ありがと!
0513デフォルトの名無しさんNGNG
DBGRIDで行の複数行選択して選択した行を全て下位に複写したいのですが
どのようなコードをかけばいいのですか?
0514本田NGNG
>また、
>他のプログラムに影響を与えたくないので、
>できれば、VCLソースの修正ではなく、
>アプリケーション側で対応したいのですが、
>無理でしょうか?

VCLを修正してもスタテックリンクすれば、
他のアプリケーションに影響を与えない。
0515デフォルトの名無しさんNGNG
>>513
選択行をDBへAPPEND
0516513NGNG
>>515
行追加はできるんですけどカラムのデータまでコピーされないんですけど
どうしたものか・・
0517デフォルトの名無しさんNGNG
>>516
普通にコードでコピー
0518デフォルトの名無しさんNGNG
でけた 
0519デフォルトの名無しさんNGNG
4バイトなら、Longint型にして先頭から1バイトづつ順番に調べた方が
BM方より速いのでは?
0520デフォルトの名無しさんNGNG
Delphi7でDeCALを使おうとするとコンパイルエラー。
sourceforgeなんだし誰か直してウプしてよ。

自分はBCB派なんでSTLするしぃ。
0521デフォルトの名無しさんNGNG
>>520
どう直せばいいか教えてくれたらやるよ
0522デフォルトの名無しさんNGNG
>>521
ttp://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BDeCal%2FInstall%5D%5D
0523デフォルトの名無しさんNGNG
マルチページTIFFファイルを表示する方法をきぼんぬ。
0524デフォルトの名無しさんNGNG
TIFFならここにあるが、マルチページTIFFファイルは知らん。
ttp://www.logicnet.dk/lib/
0525デフォルトの名無しさんNGNG
>>524
ありがとう、でも全く使い物になりません。
0526デフォルトの名無しさんNGNG
>>525
じゃあこれはどうだ?
ttp://www.hicomponents.com/zzimageen.asp

一応、カタログには Load and save AVI, animated GIF, multi-TIFF
とあるが。
0527デフォルトの名無しさんNGNG
>>522
たったこれだけかよ。やる気うせた(´_`)
0528デフォルトの名無しさんNGNG
>>526
さんくそ。有料だがしばらく試用してみる。
0529デフォルトの名無しさんNGNG
>>527
誰かがやらないと皆困るんじゃない?
0530デフォルトの名無しさんNGNG
>>529
数行追加だから、各自直しても特に問題ないけどね。

現在の所有者は、現状渡しに妙に拘っているし・・・
苛めの腹いせ?
0531デフォルトの名無しさんNGNG
STLに該当する標準ライブラリなら各自直すんでなく、元を直すべき。
でないとライブラリが氏滅しちゃう。
0532デフォルトの名無しさんNGNG
クイックレポートで表示させる列をで画面から任意で順番を変えたいのだが、
項目の位置のずらしかたがわかりません!どなたかお助けを!!

左から[名称][コード][区分]で表示させていたのを画面で順番を選ぶことができて
出力すると[コード][名称][区分]とかさせないといけないのです。
0533デフォルトの名無しさんNGNG
>>531
Delphi自体死滅予定だから大丈夫☆
0534デフォルトの名無しさんNGNG
>>533
お前、とっとと死滅して欲しい。
0535デフォルトの名無しさんNGNG
死ぬ死ぬいってる奴に限って死なないんだよな
0536デフォルトの名無しさんNGNG
クラスの○藤くんは、サクッと死にました
0537デフォルトの名無しさんNGNG
どうしてボーランドは nil as THoge で例外を出さないようにしたのですか?
0538デフォルトの名無しさんNGNG
>>537
ボーランド
0539デフォルトの名無しさんNGNG
F12でデバッガ立ち上がるのなんとかならん?
いちいちウザイ
0540デフォルトの名無しさんNGNG
あ、NTの機能ということは知ってていってます。
切れないものかと
0541デフォルトの名無しさんNGNG
>>539
切れないけど、キーを変更することは出来る

レジストリのHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows NT\CurrentVersion\AeDebugの中の

UserDebuggerHotKey=0x00000000を、例えば0x00000013 に変更後・再起動
0542デフォルトの名無しさんNGNG
thx!!
0543デフォルトの名無しさんNGNG
お勧めのコンポって何かある?
特に伝票入力に必要なグリッド系のを探してます。

教えれクリ
0544デフォルトの名無しさんNGNG
上級者にはおそれ多くて教えられん
0545デフォルトの名無しさんNGNG
>>543
TEditとかいいよ。一行入力用として最も使われてる。
特に伝票入力に必要なグリッド系のではないけど。
0546デフォルトの名無しさんNGNG
>>543
有名ではないけどTStringGridなんかどうだろう。かなりお勧めだよ。
入力できるし、オーナードローもできる。
0547デフォルトの名無しさんNGNG
>>546
それは、有名だと思います。
0548デフォルトの名無しさんNGNG
>>544
上級者に質問するスレなんだと思ってますたが・・・。

それはともかく中級者スレ復活しないかなぁ・・・。
0549デフォルトの名無しさんNGNG
>>543
TFromとかいいよ。いろいろな伝票がデザインできる。
0550デフォルトの名無しさんNGNG
TButtonとか、知る人ぞ知るって感じだけど、便利だよね。
0551デフォルトの名無しさんNGNG
>>549
TFrom とかの詳細を語ってくれないか。はじめて聞いた、そのクラス。
0552デフォルトの名無しさんNGNG
上級者の質問じゃないと思うんですが、初心者スレでスルーされたので
教えてください。DelphiでPythonの埋め込みってできますか? マクロ
みたいな拡張機能をPythonで書けるようにしたいんですが。
0553デフォルトの名無しさんNGNG
できるらしい
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=Delphi+Python+%E5%9F%8B%E3%82%81%E8%BE%BC%E3%81%BF&lr=
0554デフォルトの名無しさんNGNG
埋め込みはRubyでやろうかと思ったけど面倒そうなので一分であきらめた。
埋め込みたければ言語にはこだわらずにメジャーなの使ったほうがいいんじゃないの。
0555デフォルトの名無しさんNGNG
簡単だけどな・・・
どこが難しかったの?
0556デフォルトの名無しさんNGNG
>>555
難しいという以前にRubyの低レベルな知識が皆無な状態で
ここからここまでを読めば埋め込みできるってドキュメントが見つからなかったから。
ついでに技術デモになるようなexeも実際に採用したフリーウェアも見当たらなかった。
0557デフォルトの名無しさんNGNG
Apolloはチェックしたのか?
ttp://www.moriq.com/apollo/
0558デフォルトの名無しさんNGNG
チェックしたよ。その上での>556。
WEB眺めてもApollo\Docを眺めても(だいたいApolloのヘルプなんて置いてないし)
どこから手をつけていいのかわからなかったし
簡単に行きそうな気配が微塵もしなかった。

で結局DMokeyに落ち着いた。
シンプルなヘルプを上から下まで一読してあっさり動いたよ。
0559デフォルトの名無しさんNGNG
組み込みならDMonkey汎用性持たせるならWSHって線がほとんどの用途で一番無難かもね
0560デフォルトの名無しさんNGNG
メソッドの引き数がdata: array of charになってまつ。
ここに、MemoryStream.Memory(メモリのポインタ)を代入したいんですが、
どうやったら良いですか?
0561デフォルトの名無しさんNGNG
どうして data: array of char を渡さないの?
返ってきたら MemoryStream.Memory に内容をコピーしたらいいじゃないの
0562560NGNG
いや、逆にMemoryStream.Memory の内容を関数に渡したいんです。
2重にメモリ取りたくなくて。
0563デフォルトの名無しさんNGNG
ヘルプでは、
>代入の互換性
>T1 がPChar 型またはPWideChar 型で,T2 がarray [0..n]of Char(T1 がPCharの場合)またはarray [0..n]of WideChar(T1 がPWideChar)という形式の添字がゼロから始まる文字配列である
となってますね。
0564デフォルトの名無しさんNGNG
じゃ、配列に内容コピーして MemoyStream Free。これで解決
0565デフォルトの名無しさんNGNG
Pointer<->PChar<-Stringの変換はメモリ上の構造が同じなので可能だけど
array of char<-Pointerはメモリ上の構造が異なるので渡せない。
array of charにコピーするか
可能ならメソッド側をPCharに変更するしかない。
0566デフォルトの名無しさんNGNG
なるほど、サンクス。
>可能ならメソッド側をPCharに変更するしかない。
これにしてみます。
0567デフォルトの名無しさんNGNG
参照型みたいなので、array of charとPointerをマッピングしたいと思った。
0568デフォルトの名無しさんNGNG
補足すると、array of char は動的配列なので、いつでも大きさが変えられる。
これは隠れたフィールドをコンパイラ/RTL が管理しているわけだ。だからいつでも
大きさを変更でき、かつ好きなときに大きさを入手できる。

ポインタは単にメモリの一点を示すだけ。

Array of char の保持する内容をポインタで操作することはできるが
ポインタを(何もせずに)array of char として渡すことはできない。
無理して渡すと、たとえば array of char の大きさを変えようとしたときに
存在しない(隠れた)変数を参照しに行くため、結果は悲惨なことになる。
0569デフォルトの名無しさんNGNG
>可能ならメソッド側をPCharに変更するしかない。
メソッドオーバーライドを使って引数二種類定義したら?
0570デフォルトの名無しさんNGNG
参照されるだけだとしたら、こんなん駄目かな?

type
 ArrayChar = array[0..0] of char;
 PArrayChar = ^ArrayChar;

var
 Pac: PArrayChar;
begin
 Pac := MemorySteam.Memory;
 obj.method(Pac^);
0571デフォルトの名無しさんNGNG
array of charとarray[0..0] of charは全く別物。
0..0なんて小細工は勧めない方がいい。
0572デフォルトの名無しさんNGNG
メソッドの引数array of charに動的配列(これもarray of char)を入れようとすると、
動的配列は入りません、てエラーが出る。

array[0..10] of charなんてしとくとコンパイル通るが、
固定サイズは何だかやり難いなー。
0573デフォルトの名無しさんNGNG
新しく型宣言するんだよ、そんなときは
0574デフォルトの名無しさんNGNG
やっぱ、
>>569
の通りにしまつ。
0575デフォルトの名無しさんNGNG
2chに入り浸ってるからTCharDynArrayとTWideCharDynArrayを定義し忘れるんだよ>某
0576デフォルトの名無しさんNGNG
しょうもねぇな、まったく
0577デフォルトの名無しさんNGNG
TUpDown の Associate プロパティにTEditを指定しているのですが
マウスでアップまたはダウンをクリック後、他の場所(フォームとか他のコントロール)
をクリックすると勝手にクリックされてしまうという現象が発生します・・・
どうやら、既出の不具合のようですが今だに改善されていないのでしょうか?
W2K D6 Update Pack2 です。

http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/browse.cgi?index=20127
で論議されてますが・・・
0578デフォルトの名無しさんNGNG
>>577
なんとなく解決、イベントの処理中にProcessMessagesを投げてたのがまずかったみたいです・・・
0579デフォルトの名無しさんNGNG
しょうもねぇな、まったく
0580デフォルトの名無しさんNGNG
ProcessMessages って投げるもんなのか?
0581デフォルトの名無しさんNGNG
差し込むものに一票。
0582デフォルトの名無しさんNGNG
呼び出すものに一票。
0583デフォルトの名無しさんNGNG
>クリックすると勝手にクリックされてしまうという現象が発生します
>なんとなく解決、イベントの処理中にProcessMessagesを投げてたのがまずかったみたいです

因果応報
0584デフォルトの名無しさんNGNG
DelphiのinterfaceってCOM依存って聞いたんですけど
Javaのinterfaceみたいな気分で使えないんですか?
0585デフォルトの名無しさんNGNG
無理
できなくもないという言い方もできなくもないけど
0586デフォルトの名無しさんNGNG
COM に依存してませんが?
デフォルトで COM のための実装クラスだけが用意されているだけでしょ?
0587デフォルトの名無しさんNGNG
クイックリファレンスにのってたTNoRefCountから継承させてインターフェイスをよく使ってる
0588デフォルトの名無しさんNGNG
>>586
言語仕様的にCOM向けにデザインされてるって意味で
COMに依存してるって意味じゃないの。
自分はJavaでは使うけどDelphiでは使う気しないな。
面倒だしなんかインターフェースごっこをしてるみたいでなんかヤダw
0589デフォルトの名無しさんNGNG
>自分はJavaでは使うけどDelphiでは使う気しないな。

同感
0590デフォルトの名無しさんNGNG
もったいない
0591デフォルトの名無しさんNGNG
もったいない。
どこら辺が「言語仕様的にCOM向けにデザインされてる」と思うの?
0592デフォルトの名無しさんNGNG
ここら辺の ttp://www.borland.co.jp/delphi/del6/report/tsunoda_2.html
>ただし、Javaと異なり、DelphiのインターフェースはIUnknownを継承しているため、
>TInterfacedObjectを継承しないと個別に、QueryInterface, _AddRef, _Releaseを
>実装しなければならない。
などを無批判に信じ込んでしまっている人がいるのかな?
某結城浩が、それを無駄に広めている形跡もある...

Interface を宣言すると暗黙の IUnknow が継承されるが、これも
インターフェースでしかないのだから COM に依存なんかはしていない。
TNoRefCount でもなんでも定義して使えば済む話だ。

Java と違って GC が無いから、代わりに GC 代わりの参照カウンタを実装するための
インターフェースが二本出ているだけ。

ToolsAPI なんか COM とは一切関係の無い Interface 宣言の山だぞ

0593デフォルトの名無しさんNGNG
AddRefとかのメモリ管理を強制(されないけど)される
Java,C#等で用意されている基本的なインターフェースがない(かなり貧弱)
VCL自体COM関連でしか使ってないのでインターフェースベースの設計になっていない。から拡張時に使わない。
Delphiでインターフェース使っても特に劇的に生産性が向上するわけでもない。継承ベースでもふつーにこなせる。
だから使ってない。別に役に立たないというつもりはないけどDelphi積極的に使う気がしないというだけ。
0594デフォルトの名無しさんNGNG
Del房ってネガティブだよね
0595デフォルトの名無しさんNGNG
ネガティブではないよ。ただ個人的に老い先短いDelphiでがんばるつもりがないってだけで。
interfaceもinterfaceとTComInterfaceを分けてくれればもう少し幸せになれたって気がしないでもないけど。
0596デフォルトの名無しさんNGNG
Del7にTHTMLが無いんですが、どうしたら良いでつか?
0597デフォルトの名無しさんNGNG
>>595
言語に老い先も糞もねぇだろ。
プログラマという職業が老い先短いというのは分かるが。
だいたい職業でDelってるやつなんていないし。
0598デフォルトの名無しさんNGNG
言語ではなく、プラットホームに依存した開発環境というのはあります。
だからOSの変更により使えなくなる開発環境もあり得ます。

最近はSPで使えなくなる環境もあるようですね。
0599デフォルトの名無しさんNGNG
>>598
プラットホームに依存しない開発環境があったら教えてください。
0600デフォルトの名無しさんNGNG
Ruby
0601デフォルトの名無しさんNGNG
>600
依存してるじゃねーか
0602デフォルトの名無しさんNGNG
BrainFuck
0603デフォルトの名無しさんNGNG
>>600
言語だしw
0604デフォルトの名無しさんNGNG
久々にIrvineのvupがあったのでhp見てて思ったのだけれど
mark&sweep GCを行う ライブラリって何?便利?
0605デフォルトの名無しさんNGNG
おい、苺きんたまとかいうウイルス作ったのDelphianらしいじゃねーか
責任取れよお目ーら
0606デフォルトの名無しさんNGNG
ほとんどのウィルスは VC 製だけど、そこんとこよろしく。
0607デフォルトの名無しさんNGNG
ちなみに過去にはVBで作られたウイルスもありましたよ。
ただVBでウイルス作れるような香具師でも
ランタイムの面倒をみる事までは出来なかったようで感染力は低い。
0608デフォルトの名無しさんNGNG
vbsで十分
0609デフォルトの名無しさんNGNG
C++のstl::sortよりも高速なソート方はありませんか?
0610デフォルトの名無しさんNGNG
>>609
スレ違いでは?
0611デフォルトの名無しさんNGNG
言葉が足りませんでしたね
C++のSTLの std::sortよりも高速なソートをDelphiで
実装できますか?
0612デフォルトの名無しさんNGNG
そりゃまー、できるだろ。
高速なソートってのはデータにも依るから、データの傾向を調べてあわせれば
汎用であるstd::sortには勝てるんじゃないか?
0613デフォルトの名無しさんNGNG
>>611
逆に何で実装できないと思うの?
0614デフォルトの名無しさんNGNG
可能 不可能じゃなくて
勝てるなら実際に教えてください
0615デフォルトの名無しさんNGNG
だからソートなんてデータに大きく依るんだって
0616デフォルトの名無しさんNGNG
ポインタなら32bitだから関係ない
0617デフォルトの名無しさんNGNG
ポインタでソートするわけないだろ。比較は中身
0618デフォルトの名無しさんNGNG
馬鹿ばっか
0619デフォルトの名無しさんNGNG
そうだな、アルゴリズムスレでも行けばいい
0620デフォルトの名無しさんNGNG
std::sortはどうやってるか知りませんが、逆写像ソートは速いらしいです。
0621デフォルトの名無しさんNGNG
実数や不定長文字列の逆写像ソートの効率の良いアルゴリズム、あったらおしえてくれ。
0622デフォルトの名無しさんNGNG
分布数えソートの方が速いらしい。

>>621
大小関係を維持したままハッシュ値を求められればいいね。
0623デフォルトの名無しさんNGNG
じゃ
>大小関係を維持したままハッシュ値
の求め方を考えてくれよぉ

でまぁ stl にしろ、汎用性と性能は衝突することがあるので、要注意。
stl だと(というか stl の目的は)アルゴリズムを取り替えられるので
使う人がいろいろ選択できる点は良いです。

その代わり stl のコードは読みやすいものではないし、不必要なコードも
大量に生成される。
0624デフォルトの名無しさんNGNG
それはおまいの力不足
人のせいにするな
0625デフォルトの名無しさんNGNG
>>615
だったら限りなく等しいデータでいいよ
0626デフォルトの名無しさんNGNG
>>625
なんじゃそら。
大体ソート済み、とか、逆順になっている事が多い、とか、ランダム並びが多い、とか、
全データ量が膨大、とか、入れ換えより比較に時間がかかる、とか、
そういうところを見るんじゃないのか?
0627デフォルトの名無しさんNGNG
アラシだろ、ほっとけ
0628デフォルトの名無しさんNGNG
>>620
逆写像はバケットに比べて勝ってる所が全くない使い道0ソートです。
0629デフォルトの名無しさんNGNG
PC Anywareチックなプログラムを作ろうと試みています。
クライアント側が指示を出すとサーバが指示を受けて動作するような感じのです。

//Client側
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText('01');
end;

SendText以外に
・MessageDlgのような任意のダイアログを出す場合
・その他の指示を出す場合
の記述の例を書いていただけませんか?
とても勝手なのですが是非お願いします。
0630デフォルトの名無しさんNGNG
すいません投稿するスレ間違いました∧||∧
0631デフォルトの名無しさんNGNG
>>614
台風ですが釣れますか?
0632デフォルトの名無しさんNGNG
文字列はラディックスソートと分布数えソートを組み合わせるのが速いらしい。
実数は途中までクイックソートで残りを挿入ソートで仕上げるのはどうかな。

ところで、分布数えソートって最速なの?
0633デフォルトの名無しさんNGNG
データ構造とデータの傾向に依存する。
0634デフォルトの名無しさんNGNG
昇順に並んでいるデータなら挿入ソートが最速かも。

0635デフォルトの名無しさんNGNG
procedure combsort11(var data: array of integer);
var
i, size, hold, gap, done: integer;
begin
size:= High(data) + 1;
gap:= size;
done:= 0;
while (gap > 1) or (done = 0) do begin
gap:= (gap * 10) div 13;
if gap = 0 then gap:= 1;
if (gap = 9) or (gap = 10) then gap:= 11;
done:= 1;
for i:= 0 to size - gap - 1 do begin
if data[i] > data[i + gap] then begin
hold:= data[i];
data[i]:= data[i + gap];
data[i + gap]:= hold;
done:= 0;
end;
end;
end;
end;

0636デフォルトの名無しさんNGNG
>>635
分布数えソートの方が4〜5倍速い。
0637デフォルトの名無しさんNGNG
分布数えソートって呼び方はアフォっぽい。
バケットソートと呼べ
0638デフォルトの名無しさんNGNG
馬尻
0639デフォルトの名無しさんNGNG
そんな変なソートアルゴリズムと一緒にしないでください
0640デフォルトの名無しさんNGNG
WindowsXP上でテーマがWindowsXPの場合、
フォームにTDBGridと結果を返すデータセットをおいて、
以下のコードを実行するとTDBGridの垂直スクロールバーが消えてしまいます。

�@Button1Click → ○ 垂直スクロールバー出る
�AButton2Click → ○ 件数0で垂直スクロールバー消える
�@Button1Click → × 垂直スクロールバーが表示されない(描画の形跡は見られる)

�@�A�A�@の様に�Aを2回繰り返した場合は正常に表示される。

procedure TForm1.Button1Click(Sender: TObject);
begin
ADODataSet1.Close;
ADODataSet1.CommandText := 'select item_cd from item';
ADODataSet1.Open;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ADODataSet1.Close;
ADODataSet1.CommandText := 'select item_cd from item where item_cd = ''無いコード''';
//結果は0件
ADODataSet1.Open;
end;

外国のサイトにも同様の現象で困っている人がいましたが、解決されてないみたいでした。

解決できる天才はいませんか?
0641デフォルトの名無しさんNGNG
Delphi5Proにて…

ClientSocketのHostプロパティに無効なURLを入力すると
OnErrorイベントが発生しないで
「'ASync Lookup' APIでWindows ソケットエラー:そのようなホストは不明です。(11001)」
というメッセージが表示されちゃうのはなんとかできないのでしょうか?
0642デフォルトの名無しさんNGNG
そんなバナナ
0643ななしへたぐらま ◆XcB18Bks.Y NGNG
>>641
おい〜,あるスレで回答がもらえなかったらほかのスレで尋ねる前に
「レスがないようなのでほかのスレで尋ねてみます」とか一言断わろう.

…と!いうわけで!くだすれの方でレスつけたのでご覧下さい.
0644641NGNG
…いろいろお手数かけました
0645デフォルトの名無しさんNGNG
個々のプログラムが使用するメモリー容量を取得したいのですが・・・(タスクマネージャのプロセスタブみたいなの)
TMemoryStreamとかで動的に取得しているメモリー容量まで取得したいのですが方法がわかりません
どなたか、解りませんか?
0646デフォルトの名無しさんNGNG
>>645
仮想メモリサイズ ってのがあるのか・・・
これはどうやれば取得できるのだろう?
0647デフォルトの名無しさんNGNG
Win32APIスレ池
0648デフォルトの名無しさんNGNG
こんなマルチが出没してるね。このスレにもくるかな?
 ↓
『うほっ!いいPDF
 http://www.impress.co.jp/ebook/title/263-1.html 』
0649デフォルトの名無しさんNGNG
くだすれで返答を頂けませんでしたので
申し訳ありませんがこちらでも質問させて下さい

サイズ変更可能なタイトルバーなしのフォームを作りたく思い、
検索してサンプルなども見つかって動作するのですが、不満な点があります。

探したところCreateParamsをoverrideしてWS_THICKFRAMEを指定してあげる方法しか
見つからなかったのですが、これだと当然ながらフォームの縁に太い線が出来てしまいます。
出来れば縁がないものを作りたいのですが、良い方法がありますでしょうか?
※BorderStyleでbsNoneにしたときのような外観にしたいのです。
0650デフォルトの名無しさんNGNG
WM_NCHITTEST でぐぐる
0651おしえて!!NGNG
a(n)=1×2×...×n
b(n)=b(n-1)+b(n-2)、 b(1)=1、 b(0)=0

・n(≥1)が入力として与えられたとき、a(n)の値を返す再帰的なプログラムを記述せよ。
・上記の問題を再帰を用いないプログラムで記述せよ。
・n(≥1)が入力として与えられたとき、b(n)の値を返す再帰的なプログラムを記述せよ。
・上記の問題を再帰を用いないプログラムで記述せよ。
※ただし入力と出力は全ての整数型で与えられるとし、記述はDel-phiで記述せよ。
0652デフォルトの名無しさんNGNG
>>651
失せろキチガイ

>どなたかわかる方いらっしゃいませんか??
>もしくはわかりそうな人がいるとこしりませんか??

お前の態度が気に食わない。かつ、マルチポストするなボケ。
0653デフォルトの名無しさんNGNG
Del-phi
0654デフォルトの名無しさんNGNG
>どなたかわかる方いらっしゃいませんか??
>もしくはわかりそうな人がいるとこしりませんか??

偏差値50程度の高校生なら誰でもわかるよ。
宿題は自分でやろうね。
0655デフォルトの名無しさんNGNG
もう冬休みか。はえーな。
0656デフォルトの名無しさんNGNG
簡単すぎて、レスする気にもならないんだよね。だから、ウザがられるってことに気がついてないのかな。
0657デフォルトの名無しさんNGNG
簡単杉っていうより、それで必死なのがうざいんだろ
0658デフォルトの名無しさんNGNG
学校の宿題だとして、学校でDelphi使ってるのに驚いたよ
0659デフォルトの名無しさんNGNG
つかってるのは Del-phi だろ
0660デフォルトの名無しさんNGNG
自作クラスのHelpInsight対応めんどくさすぎ。
.pasから.dcu, .xmlはいた時点で自動的にIDEが認識すべきだろ。
MSはVC++6.0から既に対応してるんだが。
0661デフォルトの名無しさんNGNG
D2005使ってる時点で(ry
0662デフォルトの名無しさんNGNG
やり放題のOSメーカーと一中小企業を比較するのが無理ってもんです。
巨人ファンは黙っててください。
0663デフォルトの名無しさんNGNG
なんだ敗北宣言か > 一中小企業

つまらん
0664デフォルトの名無しさんNGNG
巨人ファンが、あたかも自身が巨人であるかのように振舞う不思議
0665デフォルトの名無しさんNGNG
一中小企業ファンが、あたかも自身が一中小企業であるかのように振舞う不思議
0666デフォルトの名無しさんNGNG
TRichEditに読ませるリッチテキストを作ろうと思ったんですが、
リッチフォーマットって暗号みたいでつね。
テキストをリッチテキストに変換してくれるライブラリはありまつか?
0667デフォルトの名無しさんNGNG
>>666
初心者スレとマルチ
http://pc5.2ch.net/test/read.cgi/tech/1062422335/560
0668デフォルトの名無しさんNGNG
>>666
MicrosoftWordとか
0669デフォルトの名無しさんNGNG
マルチじゃないよ。
だって初心者スレでは透明人間でつから!
0670デフォルトの名無しさんNGNG
TEditor作者さん、D2005インストール出来なかったそうです
0671デフォルトの名無しさんNGNG
ACMを使ってMP3をデコードさせようとしてるのだが上手くいかない・・・
acmFormatSuggest
acmStreamOpen
acmStreamSize
acmStreamPrepareHeader
acmStreamConvert
acmStreamUnprepareHeader
acmStreamClose
を使うのは分かったけど
落ちてるmsacm.pasの定義だとacmStreamOpenすら通らない・・・
どなたかACM使ってデコードできてる方いません??
0672デフォルトの名無しさんNGNG
TRichEdit.SaveToFileするとリッチテキストになってしまいます。
テキストファイルでSaveToFileするにはどうしたら良いですか?
0673デフォルトの名無しさんNGNG
PlainText
0674デフォルトの名無しさんNGNG
サンクスでつ>>673

上級な質問でなくてゴメソ
0675デフォルトの名無しさんNGNG
>>670
incファイルいじればインスコはできるんだけど、たまに例外起こして止まる
0676デフォルトの名無しさんNGNG
独自の画像形式のファイルがあって、それを描画するコントロールを作りたいんですが、
何のクラス(TCanvas、TGraphic、TBitmapとかとクラスが一杯あって...)を派生したら良いでつか?

関連サイトもキボンニュでつ
0677デフォルトの名無しさんNGNG
>>676
内部的にビットマップに描画しておいてそれを表示するのと
WM_PAINTで毎回Canvasに描画する方法があるけどどっち?
0678デフォルトの名無しさんNGNG
>内部的にビットマップに描画しておいてそれを表示するのと
こっちキボンニュ

>WM_PAINTで毎回Canvasに描画する方法があるけどどっち?
こっちは、全体の一部を描画する場合にのみ速くなるんですか?
もしそうだったら今回使いませんが、お手数でなかったら教えて下さい。
0679デフォルトの名無しさんNGNG
>>676-678 の件、教えてage!

ググッてみましたが、TImageの書き込みが遅いだとか、Canvas.Pixelsが遅いだとか、難しいですね。
0680デフォルトの名無しさんNGNG
>>679
Pixelsは1ピクセル書き換えるだけなのにGDIのAPI呼ぶからな。ScanLineで検索。
0681デフォルトの名無しさんNGNG
ScanLineは見つけました。

なるほど、PixelsはGDIのAPIコールが遅いわけですか。
ScanLineだとビットマップイメージでこれだとAPI呼ばない、、、わけないですよね?
GDI以外のAPIコールなんかな。
まだ理解できてなくて苦しい。。。
0682デフォルトの名無しさんNGNG
WindowsのビットマップにはDDBとDIBがあって、DDBはデバイス依存形式で常にAPIを介して操作する。
DIBは固定形式で作成時にビットマップ(=ビット配列)へのポインタを受け取れるので直接弄れる。
ScanLineはDIBの各ラインへのポインタを計算して返してくるだけ。
0683676NGNG
なるほど勉強になりました。サンクス>>682

ビットマップ形式にしてScanLineで書くと、ビットマップのポインタに直接書けるわけですね。

もう一つ知りたいのは、せっかくScanLineしてもTImageに書くと遅いのでしょうか?
TPaintBoxとかに書くのが良いのでしょうか。
(1回書けば、再描画は意識しなくてOKですよね?)

それともう一つ、
>WM_PAINTで毎回Canvasに描画する方法があるけどどっち?
について、詳細を知りたいです。
WM_PAINTのメッセージハンドラを作るとして、そうするとなんで高速化なんですか???
0684デフォルトの名無しさんNGNG
つうかJpeg
uses XYZ;
...
Image1.Picture.LoadFromFile('image.xyz');
だけできればいいんじゃないの?
やり方知らないけど
0685デフォルトの名無しさんNGNG
×つうかJpeg
○つうかJpegみたいに
0686デフォルトの名無しさんNGNG
とにかく、どれかひとつでもやってみては?
全部の疑問が解決しないと取り掛かれませんか?

・ビットマップのファイル形式を調べる(TBitmap について理解が進む)
・ウィンドウズにおける描画の仕組みを理解する

どっちも Delphi と直接関係ない
0687デフォルトの名無しさんNGNG
>TBitmap について理解が進む
これ重要。

>ウィンドウズにおける描画の仕組みを理解する
上級なら知っとくべし。
0688デフォルトの名無しさんNGNG
>WM_PAINTのメッセージハンドラを作るとして、そうするとなんで高速化なんですか???
高速化にはならないだろ。
例えばベクトルデータの配列があってそれを毎回
LineToとかで描くとかそういう話。
ビットマップ持たないで済むから省メモリだし
レンダリングに柔軟性を持たせることが出来るかも試練。
0689676NGNG
納得でつ>>688
やっぱScanLineですね。
0690デフォルトの名無しさんNGNG
>TImageの書き込みが遅い
これは何でだろ。
0691デフォルトの名無しさんNGNG
日本ヒューレット・パッカード株式会社 SSS サポートセンター Delphi 係ってなんだ?
0692デフォルトの名無しさんNGNG
>>690
>>688のようにCanvasに描画する処理は、
TImageでは一度Picture.Bitmapの上で行われてから転送されるので
メモリ的にも処理速度的にも効率が悪い。
ただし、Picture.GraphicのDrawは直接親のCanvasに行われるので
一般的な使い方なら関係ない。

あとは、状態によりWM_ERASEBKGNDで全て背景色で塗りつぶしてから
その上にPicture.Graphicを描き直すので、無駄だしちらつく。

そのほかに、TImage.Picture.Graphicへの代入は実際にはAssignなので、
代入するオブジェクトが複製される。これは画像のデータを内部の
TSharedImageで共有するVCLのTGraphic派生クラスでは問題にならないけど、
そうなっていないフリーのクラスなどでは、代入の時の複製処理が重いし、
さっさと元のオブジェクトを破棄しないと必要量の2倍のメモリを食う。
0693デフォルトの名無しさんNGNG
>>688 の話は PaintBox の OnPaint のことだろ
0694デフォルトの名無しさんNGNG
Bitmap の Assign てコピーなの? CopyOnWrite だから、一方が変更されるまで
実際のコピーは行われない、ってきいたことがあるけど
0695ななしへたぐらま ◆XcB18Bks.Y NGNG
>>671
遅いレスですいません.

ACMは2年くらい前にPCMファイルのサンプリングレート変換に使いました.
MP3での変換は使ったことがありません.

やはり落ちていたユニットを使ってプログラムを作りました.
レコード型の宣言が一部抜けていたのでMSDNを参考に追加.
ちなみにうちにあるユニットのacmStreamOpenの宣言:

function acmStreamOpen(
phas : PHACMSTREAM;
had : HACMDRIVER;
const pwfxSrc : TWAVEFORMATEX;
const pwfxdst : TWAVEFORMATEX;
pwfltr : PWAVEFILTER;
dwCallback : DWORD;
dwInstance : DWORD;
fdwOpen : DWORD
) : MMRESULT; stdcall;
0696671NGNG
>>695
レスどうもです。
やはり宣言は同じですか・・・
結局acmStreamOpenを通すのに使った宣言は
function acmStreamOpen(
phas : PHACMSTREAM; had : HACMDRIVER;
pwfxSrc : PWAVEFORMATEX;
pwfxdst : PWAVEFORMATEX;
pwfltr : PWAVEFILTER;
dwCallback : DWORD;
dwInstance : DWORD;
fdwOpen : DWORD) : MMRESULT; stdcall;
でポインタを使って通してます。
しかし、acmFormatSuggestをポインタで通すとエラーに・・・
acmStreamPrepareHeaderでもMMSYSERR_INVALPARAMが返ってくる・・・
ん〜
0697ななしへたぐらま ◆XcB18Bks.Y NGNG
>>676
独自の画像形式を扱いたいときはTGraphicを派生します.詳しくはこちらに.
ttp://www.asahi-net.or.jp/~HA3T-NKMR/vcl2-10.htm
ネット上で公開されている画像クラスはほとんどTGraphicの派生です.
私も独自形式画像のためのクラスを作りましたが作りやすかったですし
誰でも簡単に使えて非常に便利です.

>>691
自動車パーツメーカーとかコクヨの机関係だったりするかもです.
>>694
「オブジェクト(インスタンス)は複製しますが画像データは複製しない」ということです.
0698ななしへたぐらま ◆XcB18Bks.Y NGNG
>>696
その宣言のようにpwfxSrc, pwfxDstはポインタにした方が素直ですね.
acmFormatSuggestは使ったことがないので,すいませんがわかりません.
acmStreamPrepareHeaderですが呼び出す前にACMSTREAMHEADER構造体の要素に値を設定していますか?

var ash: TACMSTREAMHEADER;
(中略)
FillChar(ash, sizeof(ash), 0);
ash.cbStruct := sizeof(ash);
ash.pbSrc := PByte(SrcData);
ash.cbSrcLength := SrcLength;
ash.pbDst := PByte(DestData);
ash.cbDstLength := DestLength;

あとは思いつきませんでしたすいません.
0699671NGNG
>>698
ACMSTREAMHEADERは設定してます。
pbSrcにFileStreamから参照させるためにFileStream.Memoryを渡してるのがまずいのですかね・・・
0700デフォルトの名無しさんNGNG
TFileStream に Memory なんかない
0701671NGNG
TMemoryStreamでした。スミマセン
0702ななしへたぐらま ◆XcB18Bks.Y NGNG
>>699
遅くなりましたが…
読み出し側ならそれでも問題なさそうですよね.

思いつきで恐縮ですが単純にPCMからPCMへの変換ができるのでしたら
CODECの種類に固有の問題かもしれません.
0703デフォルトの名無しさんNGNG
Demos\RichEdit
で、ワードパッドが作れるのは凄いんでつが、
「挿入−オブジェクト」メニューがありません。
Delphiだと簡単に実装で期末か?
0704デフォルトの名無しさんNGNG
メニューは簡単の実装で期末
0705デフォルトの名無しさんNGNG
Delphiの起動方法はどのこからどのようにして起動すれば良いのでしょうか、
デスクトップにアイコンがないのです。もう一度ダウンロードしたほうが良いのでしょうか?
0706デフォルトの名無しさんNGNG
上級者ッ!
0707デフォルトの名無しさんNGNG
>>705
なんて じょうきゅうな しつもんなんだー(棒読み)
0708デフォルトの名無しさんNGNG
>>705
スタートメニュー辿ってけばあるはず。
ExplorerでC:\Program Files\Borland以下を探してもいい。
0709デフォルトの名無しさんNGNG
いやきっと>>705はプログラマがゲームとかに現実逃避するのを抑止するために
Delphiをデスクトップに統合しようとしているんだ!!
ロングホーンよりすばらしいUIになるに違いない。
0710デフォルトの名無しさんNGNG
そうだね
0711デフォルトの名無しさんNGNG
俺達は(略)>>705を並び替えて(略)
な、なんだってー
0712デフォルトの名無しさん05/01/25 21:38:14
Delphi 7 Proで EmbeddedWbを使うにはどうしたらいいでしょうか?
0713デフォルトの名無しさん05/01/25 21:47:28
うーん、上級な質問だw
071471205/01/25 21:51:41
ムリなんだろうか。。。orz
0715デフォルトの名無しさん05/01/25 23:24:06
くだすれDelphi(超初心者用)その21
ttp://pc5.2ch.net/test/read.cgi/tech/1104511938/l50
0716デフォルトの名無しさん05/01/28 19:37:56
初心者板で質問したのですがレス付かないので此方で聴きます

RichEditで通常と太字で大きさ同じにしたいのですが
abcde ←1行目フォント指定しない
abcde ←2行目太字
で文字位置がだんだんずれていくんですがどうすればいいのでしょうか
0717デフォルトの名無しさん05/01/28 19:41:22
何で表示装置上で文字が太く見えるか分かる?
0718デフォルトの名無しさん05/01/28 19:50:45
文字幅が大きくなるから
IDE上だとprocedureやinとかrecordとか太字じゃないですか
それでも文字位置はずれないですよね。そういうふうにしたいのですが
0719デフォルトの名無しさん05/01/28 19:55:11
そんなこと無いです。IDE上だってずれてるよ
0720デフォルトの名無しさん05/01/28 20:02:40
え?
IDEのデフォルトで右マージン位置80文字目にラインが引かれますよね
その位置は太字が含んでいても80文字目になりますし、
見た目にもずれてないと思いますが
0721デフォルトの名無しさん05/01/28 20:13:00
字詰めやるなら自分で計算するべきだな
0722デフォルトの名無しさん05/01/28 20:46:31
計算ってFONTのややこしい計算ですよね?
一字一字の計算したフォント位置を求めたとして、
RichEdit・・・というかCreateSubClass(Params, 'RICHEDIT') や
CreateSubClass(Params, 'EDIT')で作られるウインドウで反映させる事は出来るのでしょうか?
0723デフォルトの名無しさん05/01/28 20:50:27
仕方ないよ、アドビとかの存在意味なくなるじゃん。
安く上げるなら我慢しないと。
0724デフォルトの名無しさん05/01/28 21:03:41
無理と言うことになるのかな?
つまりエディタとして全実装を自前で作らないといけないとか?
カレット作ったり、PAINTでDC文字描画したり、スクロール数計算したり・・・しろって事?
0725デフォルトの名無しさん05/01/28 21:05:46
です、それで十分飯食えるほどの物です
0726デフォルトの名無しさん05/01/28 21:29:47
マジかよ・・・・
相当時間掛かるんですが、集中的にやらないと作れるようなものじゃないし

どうもありがとうございました
0727デフォルトの名無しさん05/01/29 08:50:57
HEditorやSynEdit使え
0728デフォルトの名無しさん05/01/29 10:20:37
さんく
探してみました。HEditorは金掛かるみたいなので、SynEditってほう(beta200)
すげーファイル群とコンポーネント入れられたけど、
とりあえずSimpleIDEDemoってのビルドしてみた。
目的な事が出来そうかな。Delphi無し環境で実行出来る事確認したし
なんか使い方複雑そうだけどソースもサンプルもあるし、なんとかなるかな

どうもありがとうございました
0729デフォルトの名無しさん05/01/29 10:43:13
むぅ使い方ワカラネ、サイトみて使い方覚えてくる
0730デフォルトの名無しさん05/01/30 02:39:46
したいことが SynEdit とは関係ない方に122ルギコント
0731デフォルトの名無しさん05/01/30 16:17:01
>>730
少なくとも参考にはなる罠
0732デフォルトの名無しさん05/01/31 04:17:26
VC++(非.NET)アプリ用に、DelphiでDLLを書く必要があるんですが、
VC++から関数の引数として渡されるデータアクセス用の関数ポインタを
Delphi製DLL内で、関数ポインタから関数を呼ぶ時点で例外が生じてしまいます。
cdeclをつけても、stdcallをつけても、safecallをつけても、なにもつけなくても、
同じです。

VC++アプリから渡される関数ポインタをDelphi内で利用するには、
特別な方法がいるのでしょうか?
(一応、アクセス用のVC製DLLを作って、Delphi製DLLから呼び出すと
データにはアクセスできてはいます。)
0733デフォルトの名無しさん05/01/31 04:33:03
わざとややこしく書いてるのか?もちっと、簡素に言ってみ
073473205/01/31 04:35:24
>>733 すみませぬ。

VC++アプリから引数で送られてくる関数ポインタを
Delphiで作ったDLL内で使うには、何か特別な操作がいるのでしょうか。
0735デフォルトの名無しさん05/01/31 04:39:35
メソッド呼び出しているオチだったらぬっころしますよ?
0736デフォルトの名無しさん05/01/31 04:40:47
手続き型を宣言して、それにキャストすれば良いのでは
0737デフォルトの名無しさん05/01/31 04:43:14
>>735
いや、さすがにそれは・・・
しかし、そうおっしゃられるということは、普通にできるということですね。
もうちょっと、自分のコードにミスがないかチェックしてみます。お騒がせしました。
VC++側は多分、cdeclで呼び出しているんだとは思います。
VC++で書いたDLLでは、普通に関数ポインタから関数呼び出せますので。
073873205/01/31 04:44:28
>>736
そのはずですよね・・・。orz
0739デフォルトの名無しさん05/01/31 04:47:52
(性的だが)実行部に
function ナンチャラ関数名; external ナンチャラDLL名 name ナンチャラ関数名;
やってるか?
074073205/01/31 04:52:08
>>739
仕様で、VC++アプリ側から、動的にインポートされているはずです。
それから、関数の引数を通じて関数ポインタが渡されてきてます。

一応、私が勘違いだったらすみませんが、
external〜、Delphiから外のDLLを静的に呼ぶときですよね?
0741デフォルトの名無しさん05/01/31 04:54:53
実際の関数名と合ってないとか?(頭に_@が付いてるとか)
dumpbinで調べてみ
074273205/01/31 04:56:06
>>741
そうしてみます。

って、いきなり他の仕事割り当てられました。orz
経過はまた後ほど。 お騒がせしました。
0743デフォルトの名無しさん05/02/01 04:20:14
関数ポインタの受け渡しで呼び出し規約が合っていないために
正しい関数ポインタを受け取れないか、
Delphi側の関数ポインタの宣言を間違えているか。

まずは、DLL側が受け取ったアドレスが実際にVC++側の関数のアドレスかどうか確認する。
後は、VC++側の関数の宣言と、Delphi側の型をここに出せば簡単に解かる。
関数ポインタと、エクスポートした関数の両方ね。
074473205/02/01 04:40:06
昨日からどうもです。
今日になって、新しいVC++アプリのバイナリがあてがわれまして、
このバイナリだと、無事動作しました。
昨日の苦労はなんだったんだ orz
みなさん、本当にどうもありがとうです。
0745デフォルトの名無しさん05/02/01 07:56:39
原因不明のまま放って置く奴って伸びないよね
0746デフォルトの名無しさん05/02/01 09:55:18
動くことが優先で、追求は後でもいいじゃん?
0747デフォルトの名無しさん05/02/01 10:22:03
そういう奴は後でも追及なんかしないし
0748デフォルトの名無しさん05/02/01 12:01:44
まあそうなんだけど、そういう風に元質問者を決め付けるのはどうかな?ってことで。
0749デフォルトの名無しさん05/02/01 13:18:47
一般論
0750デフォルトの名無しさん05/02/01 23:33:30
そのうち同じ事に出くわすよ
0751デフォルトの名無しさん05/02/01 23:51:41
あー気になる。 宣言だけでも教えてくれ。
075273205/02/02 00:32:36
どうも、お騒がせしてすみません。
結論から言うと、cdeclで良かったです。
あのあと、VC++製ホストアプリバイナリ開発元に問い合わせたら、
今更になって、dll側のサイズを見て、サイズが条件内に無いときは、蹴っているとのこと。
(そういうのは、最初に言ってくれ・・・)

結局、新しいバイナリを送ってもらって、cdeclでちゃんと動きました。
重ね重ねお騒がせして申し訳ないです。
0753デフォルトの名無しさん05/02/02 01:25:21
つまり、DLLが大きすぎたら、正しい関数ポインタを渡してくれないの?
こっそり誤動作するようにしてるのか?
0754デフォルトの名無しさん05/02/02 01:44:29
セキュリティ対策だろ、多分

どれだけ意味あるかわからんけど
075575405/02/02 01:54:01
誤爆 スマソです orz
0756デフォルトの名無しさん05/02/02 03:36:47
誤爆に見えない。
0757デフォルトの名無しさん05/02/02 14:16:24
くだすれに書いたとたんにスレがいっぱいになってしまったので
引っ越させてください。

とあるDLL中の関数をDelphiから呼び出そうとしています。
DLLのヘッダファイルを読むと
extern "C" _declspec(dllimport) __time64_t #関数名#();
という定義になっていました。

この関数は日付を返す関数で、戻り値の型が __time64_t となっています
この値をTDateTime型に変換する方法を教えて下さい。
0758デフォルトの名無しさん05/02/02 14:37:37
TDateTimeとWindowsのFileTimeとは同じだ
0759デフォルトの名無しさん05/02/02 15:30:18
hatumimidesu
0760デフォルトの名無しさん05/02/03 05:08:53
FileDateToDateTime 関数か
0761デフォルトの名無しさん05/02/03 06:21:50
time_t系との変換はUnixTime(ry
0762デフォルトの名無しさん05/02/03 06:38:10
一旦文字列にしてTDateTimeに変換してはどうでしょう?
076375705/02/04 11:32:33
UnixToDateTime関数は違うようでした(浮動小数点なんとかエラーが出た)。
「time_t delphi」でぐぐってみたらそれ用の関数がサンプル蔵に
あったものの、time64_tのものは見つかりません。

いっそDLL内の関数がtime64_t以外の形式で返してくれれば良かったのですが
(2006/1/31 12:34:56 なら "20060131123456" みたいに文字列で返して
 くれればまだマシだった)
DLL自体は自社のものではないため手を出すこともできず。
何するにしても、まずは__time64_tから自分で読み解ける形式にしないと
話が始まらず、今のところ手詰まりです。

また、Win32APIにはそもそもこの型を扱うものが見当たらない。
CStringクラスのメソッドがばんばん検索でヒットするので、
VC使いなら問題ないんでしょう。
というかDLL自体VCで作ってんだろうな…

まぁ、そんなところです。己の知識不足を恥じる。
0764デフォルトの名無しさん05/02/04 11:41:30
time64_tでぐぐると、トップにMSDNのページが来る。
で、これを読む限り、単にtime_tを64bitにしただけのようだ。

そして、もし、TDateTimeがFILETIMEと同じであるとするならば
単に、time_tをFILETIMEに変換すればよい。
これもぐぐれば簡単に出てくるが
time_t = (FILETIME - 0x19DB1DED53E8000) / 10000000
という式を変形すればよい。
0765デフォルトの名無しさん05/02/04 11:44:33
と、TDateTimeはFILETIMEとは違うのかな。

だとしても、
FILETIMEをSYSTEMTIMEに変更して
そのメンバからTDateTimeを作り出せばいいだけ。
076675705/02/04 12:36:18
をぉ、ありがとう。
試しに関数作ってみますた。出来の良し悪しはさておく。

type
time64_t = int64;

function time64_tToDateTime(Time: time64_t): TDateTime;
var
filetime: TFileTime;
systemtime: TSystemTime;
begin
filetime := TFileTime(Time * 10000000 + $19DB1DED53E8000);
FileTimeToSystemTime(filetime, systemtime);
Result := SystemTimeToDateTime(systemtime);
end;

答え合わせ。
ShowMessage(FormatDateTime('yyyy/mm/dd hh:nn:ss', 1138719599));
すると、'2006/01/31 14:59:59'が表示されました。

パラメータの1138719599はDLLから取得した値で、
別の資料から2006/1/31を意味する内容である事が分かってます。
(残念ながら時刻は不明)
結果を見る限り、いちおうちゃんと動いてるくさいです。
これで今の仕事には支障ないです。助かりました。
076775705/02/04 12:39:03
ごめん、答え合わせの方、転記間違ってた。
ShowMessage(FormatDateTime('yyyy/mm/dd hh:nn:ss',
time64_tToDateTime(1138719599)));
だった。
076875705/02/04 14:05:01
あ、ちょっとダメだ9時間の差が出てる
ってことはTimeZoneの時差を補正してないとか、そういう話か。
もう少し考えてみます。
0769デフォルトの名無しさん05/02/04 14:37:50
FileTimeToLocalFileTime(Time, tmpTime)
FileTimeToSystemTime(tmpTime, SysTime)
SystemTimeToDateTime(SysTime)

少しは調べろ。
077075705/02/04 15:30:34
面目ない。

で、こうなった。
type
time64_t = int64;

function time64_tToDateTime(Time: time64_t): TDateTime;
var
filetime, localfiletime: TFileTime;
systemtime: TSystemTime;
begin
filetime := TFileTime(Time * 10000000 + $19DB1DED53E8000);
FileTimeToLocalFileTime(filetime, localfiletime);
FileTimeToSystemTime(localfiletime, systemtime);
Result := SystemTimeToDateTime(systemtime);
end;

くだすれ系のネタに付き合ってくれて感謝。
0771デフォルトの名無しさん05/02/04 23:14:56
>>763
>UnixToDateTime関数は違うようでした(浮動小数点なんとかエラーが出た)。
はぁ?ちゃんと使えるぞ。
time64_tが1970/01/01 00:00:00(UTC)からの経過秒数だということを理解しているのか?
あぁ、先に言っておくとUTCとJSTは9時間ずれているから、タイムゾーン取得して補正しろ。
0772デフォルトの名無しさん05/02/05 01:41:30
>>771
0の基準知ってるよ、ここの人は
0773デフォルトの名無しさん05/02/12 01:10:26
ここは上級者スレなんだからレビューしあうようなレスなら書くな
0774デフォルトの名無しさん05/02/12 22:38:16
活性化すればなんでもヨシ。
0775デフォルトの名無しさん05/02/13 01:22:38
枯れ木も山の賑わいってか?
いよいよダメっぽいのか?
0776デフォルトの名無しさん05/02/13 05:43:39
いよいよってwww
もうとっくに、の間違いだろwwww
0777デフォルトの名無しさん05/02/13 05:44:29
しかもダメっぽいじゃなくダメじゃn
0778デフォルトの名無しさん05/02/13 05:51:25
くだすれはマターリしてていい感じなのに
何で上級スレは殺伐としてるんだろうか?w
0779デフォルトの名無しさん05/02/13 10:29:51
アンチは無視しとけって。
0780デフォルトの名無しさん05/02/13 17:15:53
実際はもう趣味範囲でしか無いのでは?
クラサバ業務ならD5〜D7はまだ案件あるけど、D8以降は企業が採用しないだろうし
Delphi実装をWeb(IIS)対応にリニューアルするならVSに変更してるのが実情
0781デフォルトの名無しさん05/02/13 19:02:45
それは当然。だから先がないことは明らかなんだが、わからん人が多いんだよな
0782デフォルトの名無しさん05/02/13 21:15:35
10年前にも781みたいなこといってた奴はいたよ。
いまだVBしかできないけど。
0783デフォルトの名無しさん05/02/13 23:49:10
だからVBしかできないんじゃないの?
0784デフォルトの名無しさん05/02/14 00:28:41
10年まえにはDelphiなかっただろ。テキトウなこというなよ
0785デフォルトの名無しさん05/02/14 00:35:30
10年前はWin3.1→Win95へホビー層に浸透する頃だ
この時期のWin環境のまともな仕事はVC++2.0(例外的にBC++4.0)しか無かったが
8年前と言うならわかるが
0786デフォルトの名無しさん05/02/14 00:45:46
>784
丁度10年ぐらいかな、正確には9.n年前だろうけど
Del1正式発売前に評価版として3ヶ月ぐらい前から雑誌の付録に付いていた
Win3.1orWin95ファイナルベータで使った
趣味でBC++使ってたがVB覚えようかなと思った時に出てきたので、VBは覚えませんでした
0787デフォルトの名無しさん05/02/14 07:18:52
先がない・・・・・変な事言うなあ・・・・・

プログラマとして仕事してたら、そもそもどんな幸せな未来があるっての?
どこもソフトの開発現場は派遣化。 現場は使い捨て。

先が暗いなら、なおさら今を楽しまなくちゃね。

だいたいさ、道具の使い方には可能性があってもさ、道具に未来があるんじゃないよ。
0788デフォルトの名無しさん05/02/14 08:36:07
つかえねぇ道具には可能性があっても小さいわな。本質論と程度論を混同するのはアフォ
0789デフォルトの名無しさん05/02/14 11:30:48
どちらにしても道具の使い方レベルの所で可能性を論じてもしょうがないと思う
所詮はスキルも使い捨ての時代。
0790デフォルトの名無しさん05/02/14 11:36:55
使えない道具か。 かわいそうに、使い方くらいのところで躓いてるのか
0791デフォルトの名無しさん05/02/14 11:53:19
IDEが落ちるから、じゃないの?
0792デフォルトの名無しさん05/02/14 11:55:14
D8もよく落ちたよなぁ、そういえば。
0793デフォルトの名無しさん05/02/14 16:04:54
D8以降は使い方以前の問題
0794デフォルトの名無しさん05/02/15 09:59:43
先細りだよね・・・・・Delphi・・・・・
0795デフォルトの名無しさん05/02/17 01:21:18
お前は激太りだけどな。
0796デフォルトの名無しさん05/02/17 02:42:42
そうだね。やはり、Delphiは死滅直前だとは思ってるんだね、みんな。
0797デフォルトの名無しさん05/02/17 03:44:45
微妙に会話成立してないワロタ
0798デフォルトの名無しさん05/02/17 10:19:28
古い安定版をちまちま改造して最新版と同程度の機能を実現するのが楽しみなD2..5ユーザ
0799デフォルトの名無しさん05/02/18 11:23:27
TFrameのResizeでTImageへの描画を行うと、
マウスでリサイズ中に物凄くチラツキます。

リサイズの最後のタイミングイベントなんか無いですかね?
0800デフォルトの名無しさん05/02/18 11:54:59
フォームのリサイズ完了後に処理を行うには
ttp://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200405/04050034.txt
0801デフォルトの名無しさん05/02/18 12:37:43
>>799
LockWindowsUpdateは?
0802デフォルトの名無しさん05/02/18 13:28:48
>>801
いつ解除する?
0803ミ,,゚Д゚彡 ◆A6VzDeLphI 05/02/19 12:40:32
興味があって、みにいったが
>>800
ものすごく役に立たないスレだな。

そんなのリンクするなゴルァ

結局どうやって解決するんだよ。
0804デフォルトの名無しさん05/02/19 14:36:29
>>803
だから、マウスボタンを押してるかどうかで判断だろ?
ものすごく役に立つと思うけど?
0805デフォルトの名無しさん05/02/19 14:39:05
>>803
解決方法が分からないのに、役に立つどうかどうやって判断したのかをききたい
0806デフォルトの名無しさん05/02/19 18:12:49
WM_SIZE ではなく WM_EXITSIZEMOVE を使うような様相でお願いすれば多分うまくいく気がしないでもない。
0807デフォルトの名無しさん05/02/19 18:55:26
まあちらつきが気になる人は画面のプロパティで「ドラッグ中にウィンドウの内容を表示する。」
をOFFにしそうな気がしないでもない。
0808デフォルトの名無しさん05/02/19 19:41:28
>>801と >>806を組み合わせてみた

procedure WM_EXITSIZEMOVE (var msg:TMessage );message WM_EXITSIZEMOVE ;

var fLock:boolean=True;
procedure TForm1.WM_EXITSIZEMOVE(var msg: TMessage);
begin
LockWindowUpdate(0);
fLock :=False;

end;

procedure TForm1.FormResize(Sender: TObject);
begin
if not fLock then LockWindowUpdate(handle);
fLock :=False;
end;

ちらつかないが、枠が動かない・・・・・

という事で、やるなら WndProc メッセージフックで リサイズを適当に潰して
WM_EXITSIZEMOVE で確実にという感じかな
0809デフォルトの名無しさん05/02/19 22:23:53
みんな暇なのかな
0810デフォルトの名無しさん05/03/05 21:54:01
UTF-16LE 文字列を ANSI 文字列に変換したいのですが対応する標準関数
が解りません・・・ていうかあるのでしょうか?
0811デフォルトの名無しさん05/03/08 03:23:14
>>810
WideStringをAnsiStringに代入する
0812デフォルトの名無しさん05/03/08 17:11:45
>>799
{ Private 宣言 }
procedure WMEXITSIZEMOVE(var Message: TMessage); message WM_EXITSIZEMOVE;

・・・

procedure TForm1.WMEXITSIZEMOVE(var Message: TMessage);
begin
//ここにやりたい処理を書く
beep;

inherited;
end;
0813デフォルトの名無しさん05/03/08 19:22:24
> //ここにやりたい処理を書く

TImage を使用してるんだから、再描画は自動的に行われる。やりたいことなどなんにもない。
>>799 は質問自体がネタ
0814デフォルトの名無しさん05/03/11 01:06:09
>>811
すいません、もう少し教えてください。
UTF-16LE 文字列ですが、バイト配列のデータです・・・
最終的にはString型に変換したいのです。
WideCharLenToString とかをどのように使えばいいのかが解りません
(というか、どうすればいいのか解りません)
0815デフォルトの名無しさん05/03/11 02:02:31
バイト列の先頭アドレスを(キャストして)WideStringに代入
WideStringをそのままAnsiStringに代入

これ以外にどう解釈しろというんですかね
0816デフォルトの名無しさん05/03/12 14:23:51
>>814

const
ws: WideString = 'あいうえお';
var
 astr: string;
begin
astr := ws; <---ここでブレークしてCPUウインドウでみればどんなコードが補われているか良く分かる
end;
0817デフォルトの名無しさん2005/04/11(月) 08:54:41
インターフェース=COM専用で無い事は知っていたが

> [Kylix:01023] Re: 使えない interface
> 「親を TInterfacedObject にせずに、独自のものを使えば、
> 勝手に破棄されないものも作れます」

これは知らんかった orz
0818デフォルトの名無しさん2005/04/11(月) 08:56:30
ペイントブラシを非表示で開いてそれに印刷させる、なんてことはできますか?
0819デフォルトの名無しさん2005/04/11(月) 12:46:19
"(…)\mspaint.exe" /p "%1"
08208182005/04/12(火) 16:37:54
ヲオ,レスサンクツ>>819
印刷出来ます田。
どうやってその内容調べられましたか?



といいますのは、
プレビューの場合のコマンドラインがどうなるのか知りたいのですが、
連続質問出すと、教えてクンみたいですよね...
0821デフォルトの名無しさん2005/04/12(火) 16:58:00
>>820
ファイルの関連付けをミロ。てかここは上級者用スレだぞ。
0822デフォルトの名無しさん2005/04/12(火) 17:17:03
>>821
エクスプローラのフォルダオプションでファイルの関連付け見ましたが、プレビューはありませんが...
0823デフォルトの名無しさん2005/04/12(火) 17:42:38
>>822
プレビュー、プレビューっていまいち意味わからんがWindowsの画像ビューワのことか?
それだったらShellExecuteで開けばえんでないかい。
0824デフォルトの名無しさん2005/04/12(火) 17:49:44
>>823
ペイントブラシのプレビューコマンドが知りたいです。
ついでに、これらの情報はWindowsのどこをみれば分かるのでしょう?
0825デフォルトの名無しさん2005/04/12(火) 17:58:48
>>824
もしかして印刷プレビューのこと?
0826デフォルトの名無しさん2005/04/12(火) 18:12:26
>>824
PC初心者板行って来い。
Delphi と何の関係もない。
0827デフォルトの名無しさん2005/04/12(火) 18:41:55
yes>>825
0828デフォルトの名無しさん2005/04/20(水) 09:59:33
初心者スレで質問をしたのですが、
結局わからなかったので、こちらでも質問させていただきます。

FormをDockしたりUndockしたりすると
Form上に配置していたコンポーネントのDataプロパティから
オブジェクトを正しく参照できなくなるのを回避するためにはどうすればよいんでしょうか。

例)
Form2にTreeViewを配置
TreeViewに適当にNodeを追加
NodeのDataプロパティに適当にオブジェクトを参照させる
Form2をForm1にドック
先ほど参照したオブジェクトが参照できなくなる

という感じです。
どなたかご存知の方、教えてください。

Delphiのバージョンは6Personalです。
0829デフォルトの名無しさん2005/04/20(水) 13:11:14
>>828
ん?別に問題なく参照できるけど?
0830デフォルトの名無しさん2005/04/20(水) 13:13:30
なんてこったい。
もう一度実験してきます。
0831デフォルトの名無しさん2005/04/20(水) 13:32:30
>>824-825 もヨロ
0832デフォルトの名無しさん2005/04/20(水) 13:46:51
>>831
>>826
0833デフォルトの名無しさん2005/04/20(水) 14:03:26
>>831
あまりいいやり方じゃないけどこれでできるんじゃない?

CreateProcess でペイントを起動する。
ペイントのウィンドウを探す。
PostMessage で WM_COMMAND を送ってメニューを操作したことにする。
Windows 2000 SP4 の場合 ItemID = 57609。ほかは違うかも。
0834デフォルトの名無しさん2005/04/20(水) 23:18:13
OLEを使って出来ないかって質問では?
0835デフォルトの名無しさん2005/04/21(木) 00:54:53
>>828
form2.dock(form1,...);
form2.dock(nil,...); //ここで参照不能になる
当環境ではundockしたら参照できなくなった
08368282005/04/22(金) 03:10:29
どうにかして回避できませんかね。それ。
ご存知の方いらっしゃいましたらご教授お願いします。
0837デフォルトの名無しさん2005/04/26(火) 03:02:15
AnimateWindowで、ウインドウにフォーカスを移さずにフェード表示できる方法誰か知りませんか?
0838デフォルトの名無しさん2005/04/26(火) 19:43:43
TStream系の派生クラスでSeekメソッドをオーバーライドする場合、Resultには何を入れれば
いいんですか? ヘルプには何も書いてないのですが・・・。
08398382005/04/26(火) 20:11:54
自己解決しました。Positionの値ですね。
0840デフォルトの名無しさん2005/04/27(水) 00:21:36
TStringGridの質問です。
セルの結合(2行結合)をやってみたのですが、結合したセルに入力しようとすると
1行分のフォーカスになって入力した内容が上にずれてしまいます。
EXCELのように結合したセルでも正しく表示できないでしょうか?
環境はD7です。
ご教授お願いします。
0841デフォルトの名無しさん2005/04/28(木) 10:15:25
For all you Australian pascal developers out there.
The May 2005 edition of the magazine APC comes with a copy of
Delphi 2005 Personal Edition on the DVD. You still have to obtain
a license from Borland to run it but thats the only thing required to use it for free.

I would suggest reading up on the license terms for using this application
as you can only use it for Personal and not Commercial usage.
0842デフォルトの名無しさん2005/04/28(木) 18:02:32
よし、オーストラリア行くか。
0843デフォルトの名無しさん2005/04/29(金) 08:10:41
IEコンポーネント使って変り種ブラウザ作ってるんですが、
サーバーから取得したHTMLをIEコンポーネントがレンダリングする前に
書き換えたいのです。
(あとからDHTMLで書き換えるのではダメなんです。)

都合のいいイベントとかフックする方法あったら教えてください。
0844デフォルトの名無しさん2005/04/29(金) 11:48:54
普通にhttpでソースをリクエストして、
書き換えてから書き換えたHTMLソースを
IEコンポーネントに投げる。
08458432005/04/29(金) 12:31:21
レスありがとさん。

その方法も考えた、というかその方法でコーディングしてたんですが
リンクをクリックされた場合とかフレームの場合とかの制御が大変とか
認証が必要な画面でIE標準の動作が出来ないとか
カレントURLによってHTMLの動作が変わってしまう(相対アドレス)とかとか・・・
色々問題が出てきたんでちょっと僕には無理っぽいなと断念しました。

温泉いってる間に神様出てくることを祈っとこう・・・
0846デフォルトの名無しさん2005/04/29(金) 14:50:31
TWebBrowser.DownloadBegin // DL開始時

TWebBrowser.DownloadComplete // DL完了時。ここで TWebBrowser.Document を操作

TWebBrowser.DocumentComplete //レンダリング完了時
0847デフォルトの名無しさん2005/05/22(日) 07:09:00
スクリーンの垂直リフレッシュレートはdelphiのプログラムから取得できますか?
0848デフォルトの名無しさん2005/05/24(火) 23:38:10
>>847
やるとしたらレジストリかAPIになると思うけど
0849デフォルトの名無しさん2005/05/27(金) 05:07:07
ステータスバー上にプログレスバーを配置する方法を教えてください
0850デフォルトの名無しさん2005/05/27(金) 08:45:11
少しは調べろよ
ttp://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=17#0132.txt
0851デフォルトの名無しさん2005/05/27(金) 11:17:46
dfm直接いじってもできるけどね
0852デフォルトの名無しさん2005/05/29(日) 02:51:18
>>851
頭いいなもまえ
0853デフォルトの名無しさん2005/06/01(水) 22:07:50
ToolBar2000+TBXで実験がてら遊んでおります。
で質問なんですが、ソフトの起動時にどのドックにはまってたのかを復元する方法が判りません。
DockRowやDockPosやらでは、はまってたドックでの位置は復元出来ますが別のドックにはめるとナニな訳です。
誰かご存知の方おられませんでしょうか?
08548532005/06/01(水) 23:04:51
すんません、自己解決しました。CurrentDockとかLastDock使えばよかったようです。
0855デフォルトの名無しさん2005/06/08(水) 22:40:18
671〜
で書かれているACMを使って、MP3をデコードする方法を参考に自分でも組んでみましたが
つまずいてます・・・
acmStreamConvertを実行した後に入ってくるbufferに何も入ってこないのです。
どなたか分かる人いますか?
08568552005/06/08(水) 22:41:50
ソースはこんな感じです。
var mp3buf,wavbuf : array of byte;
block_size, raw_buf_size : DWORD;

acmStreamOpen
acmStreamSize
は問題なく通過してます。
//各バッファの確保
SetLength(mp3buf,block_size);
SetLength(wavbuf,raw_buf_size);

FillChar(ash, sizeof(ash), 0);
ash.cbStruct := sizeof(ash);
ash.pbSrc := PByte(mp3buf);
ash.cbSrcLength := block_size;
ash.pbDst := PByte(wavbuf);
ash.cbDstLength := raw_buf_size;
mmr := acmStreamPrepareHeader(hstr, ash, 0);
// 結果判定
if mmr <> 0 then
begin
showmessage('ヘッダ取得に失敗しました');
end;
//ファイルからデータ読み込み
blockread(f,mp3buf[0],block_size);
//データ変換
mmr := acmStreamConvert(hstr, ash, $30);
if mmr <> 0 then
begin
showmessage('変換に失敗しました');
end;
0857デフォルトの名無しさん2005/06/09(木) 14:52:29
TPrinterの用紙トレイ値、DMBIN_とかいうやつを取得する方法教えて下さい。
08588572005/06/09(木) 15:17:24
>用紙トレイ
給紙トレイ=ビン
というみたいでつね。
08598572005/06/09(木) 19:49:01
TNkPrintDialogというのが給紙トレイを使えるそうなんですが、
使い方が分からない...
0860デフォルトの名無しさん2005/06/09(木) 21:57:12
>>858
DeviceCapabilities
0861デフォルトの名無しさん2005/06/10(金) 09:24:57
TPrinterSetupダイアログで設定された内容を、
Windowsに反映できますか?
0862デフォルトの名無しさん2005/06/10(金) 11:53:28
> Windowsに反映
って何だ?
0863デフォルトの名無しさん2005/06/10(金) 11:59:30
>>862
コントロールパネルのプリンタ設定の中の人が、
ダイアログで設定した通りになってる、という意味で津。
0864デフォルトの名無しさん2005/06/10(金) 12:31:43
ずいぶん身勝手なアプリだな。
0865デフォルトの名無しさん2005/06/10(金) 13:04:56
反映しないのが普通なんだ?

TPrinterSetupダイアログから、給紙トレイが取れなくて困って待つ。
で、Winに反映してから取ろうかなぁ、と。
0866デフォルトの名無しさん2005/07/08(金) 09:07:58
TFrameに独自のイベントを追加し、そのフレームを貼り付けた
フォームで、追加したイベントを発生することはできないでしょうか?
0867デフォルトの名無しさん2005/07/08(金) 09:33:19
>>866
普通のメッセージ処理と何が違うの?
08688662005/07/08(金) 09:48:17
例えば、フレーム内にボタンが貼り付けてあるとして、
そのボタンをクリックすると、フレーム内のクリックイベントが発生しますが、
その後、フォーム側でこのボタンがクリックされたことを知りたいのです。
0869デフォルトの名無しさん2005/07/08(金) 17:04:12
貼り付けたフォームで参照できるように、フレーム内publicにOnButtonClickみたいなイベントかいたら?
0870デフォルトの名無しさん2005/07/08(金) 19:55:45
>>868
フォーム側でイベントハンドラ設定して、その中からフレームのイベントを呼ぶってのは?
0871デフォルトの名無しさん2005/07/08(金) 20:03:15
×フレームのイベント
○フレームのイベントハンドラ

スマソ
イベント呼んだら無限ループだ
08728662005/07/11(月) 08:44:28
>>869
それが、コンポーネントのようにイベントの追加がうまくできないのです・・・
08738692005/07/12(火) 16:35:56
>>872
フレームにあるボタンのイベントを貼り付けたフォームから設定すると解釈して
TMyFrame = class(TFrame)
private
 FMyButtonEvent: TNotifyEvent;
 procedure DoMyButtonEvent(Sender: TObject);
public
 property MyButtonEvent: TNotifyEvent read FMybuttonEvent write FMybuttonEvent;
end;

procedure TMyFrame.DoMyButtonEvent(Sender: TObject);
begin
 if Assigned(FMyButtonEvent) then
  FMyButtonEvent(Sender);
end;

procedure TMyFrame.ButtonClick(Sender: TObject);
begin
 DoMyButtonEvent(Sender);
end;

後は貼り付けたTForm側で
TMyFrame.MyButtonEvent := MyEvent; //実行したい手続き(型をTNotifyEventにあわせるように)。
て書くだけ。
いかがでしょ?
08748662005/07/13(水) 16:24:11
>>873
ありがとうございます。
でも、TForm側のコードをどうすればいいかさっぱりです;;
ご教授お願い致します。
0875デフォルトの名無しさん2005/07/13(水) 17:27:25
流石はDelphi上級者だな
言うことが違う
0876デフォルトの名無しさん2005/07/13(水) 17:32:55
わはははは、最後の4行の意味がわからないようじゃ、絶対無理だわ
0877デフォルトの名無しさん2005/07/13(水) 18:40:58
マルチだし、ほっとけ
0878デフォルトの名無しさん2005/07/14(木) 08:50:06
QuickReportの復帰はもう無いんでつか?
0879デフォルトの名無しさん2005/07/14(木) 09:00:37
>>877
マルチだからほっとくというのは、どういう理由で?
何の根拠で?万人に理解できる返答が欲しいものだな
0880デフォルトの名無しさん2005/07/14(木) 10:36:46
あっちで解決してるから
0881デフォルトの名無しさん2005/07/14(木) 11:09:51
>>880
ここしか見てない者はどうなる?
0882デフォルトの名無しさん2005/07/14(木) 11:19:03
あっち見ればいい。
0883デフォルトの名無しさん2005/07/14(木) 11:33:53
ようするにマルチポストの弊害なわけで、それをしたほうが責められるべきで
他人に当り散らすのは筋違いだ
0884デフォルトの名無しさん2005/07/14(木) 12:01:21
>>882
あっちの存在を知らない者はどうなる?
0885デフォルトの名無しさん2005/07/14(木) 13:44:31
知らなきゃ、別にどうにもならない。
0886デフォルトの名無しさん2005/07/14(木) 13:47:38
質問者がマルチポストして、しかも両方放置しておいて逆切れはみっともないな
0887デフォルトの名無しさん2005/07/14(木) 14:53:45
>>885
違う。知らなければ、こちらしか解決の場が無いので、
マルチポストは第三者にとっては弊害ではない。
0888デフォルトの名無しさん2005/07/14(木) 15:25:38
>>879
万人がそう思ってるから。
0889デフォルトの名無しさん2005/07/14(木) 17:44:19
第三者は質問者じゃないから解決する必要なんかないじゃん
0890デフォルトの名無しさん2005/07/14(木) 17:52:07
かわった第三者だな
0891デフォルトの名無しさん2005/07/15(金) 08:38:23
>>889
同じ疑問を持った第三者がいたらどうだ?
0892デフォルトの名無しさん2005/07/15(金) 08:49:20
だったら質問しなよ。ここでもあっちでも解決ずみだよ。
質問者が理解できないだけ。
同じ疑問をもってかつ今回の質問者と同じレベルの第三者はきわめてまれだろうな。
0893デフォルトの名無しさん2005/07/15(金) 08:51:30
まっ、マルチした最初の質問者を恨むべきだろうな
0894デフォルトの名無しさん2005/07/15(金) 10:13:39
>>878 もヨロ
0895デフォルトの名無しさん2005/07/15(金) 13:00:26
>>894
ソース買うしかない。
QuickReport最初は使いにくいと思ったけど、今はコレ無しじゃ帳票作るならん・・・
0896デフォルトの名無しさん2005/07/15(金) 13:57:14
>>895
ソース買ったらD2005で使えるわけ?
なら買うぞ。
0897デフォルトの名無しさん2005/07/15(金) 22:44:54
>>896
本家みろよ。
D2005ってかいてあるだろ?
つーかソース買うのに下位で動いてて、D2005で使えないわけないだろ。
ソースからコンパイルするとヒントや警告がでてウザイかもしれんが、そこは自分で直せ。
0898デフォルトの名無しさん2005/07/26(火) 03:46:45


http://blog.livedoor.jp/junki560/
0899デフォルトの名無しさん2005/07/26(火) 21:38:04
製品のQuickReport買えば、Delphi2005でも使え待つか?
0900デフォルトの名無しさん2005/07/26(火) 21:44:04
製品のQuickReport買えば、Delphi2005でも使え待つか?
0901デフォルトの名無しさん2005/07/26(火) 21:46:35
製品のQuickReport買えば、Delphi2005でも使え待つか?
0902デフォルトの名無しさん2005/07/27(水) 09:07:05
>899-901
回答出てましたね。
QRのソース買う方向にしてみまつ。
でも実はD2005じゃなくて、次のBCB(Del統合予定のやつ)で使うので若干不安。
0903デフォルトの名無しさん2005/07/27(水) 11:52:50
いきなりで失礼しますが質問させて下さい。

税込み原価価格から税抜き原価価格を計算する処理をしているところで、
ごく一部なんですが、正しい価格と1銭差が出る場合があるようなのです。

 (正)税込み:80.85 税抜き:77.00
 (誤)税込み:80.85 税抜き:77.01  ← こうなる時があるようです。

ただ、私の所では再現すら出来ず、原因究明が滞っている状態です。
おかしい点や「ここでそういう事おきるって聞いたことあるよ」というご指摘が頂ければ幸いです。

原価価格は小数第2位以下は切り捨てと考え、消費税は5%計算です。
09049032005/07/27(水) 11:53:56
ソースは下記の通りです。

function F_Get_Hontaikakaku(Hasuu:Integer): String;
var
Zeikomi:Currency;
Zeiritu:Double;
Zei:Double;
begin

Result := '0';

if txtZeikomi.Text = '' then//空だったら0を指定
Zeikomi := '0'
else
Zeikomi := txtZeikomi.Text;

Zeikomi := StrToCurr(Zeikomi);
Zeiritu := 0.05 * 100;
Zeikomi := Zeikomi * 100;//小数点の計算(切り上げ、四捨五入)ができないので*100
09059032005/07/27(水) 11:54:59
ソースの続きです

//端数処理
if Hasuu = 1 then//切り捨て
Zei := trunc((Zeikomi * Zeiritu) / (100 + Zeiritu))
else if Hasuu = 2 then //切り上げ
Zei := Ceil((Zeikomi * Zeiritu) / (100 + Zeiritu))
else if Hasuu = 3 then //四捨五入
Zei := trunc((Zeikomi * Zeiritu) / (100 + Zeiritu) + 0.5)
else
Zei := 0;

Zeikomi := (Zeikomi - Zei) / 100;

Result := FloatToStr(Zeikomi);

end;
0906デフォルトの名無しさん2005/07/27(水) 12:09:00
それ、簡略したコード?

Zeikomi := StrToCurr(Zeikomi);
ってコンパイルエラーになるでしょ? バリアントでもないなら

で、
Zei := trunc((Zeikomi * Zeiritu) / (100 + Zeiritu))

が怪しそうだよ。
0907デフォルトの名無しさん2005/07/27(水) 13:15:32
>>906
略したコードです。
というか余計な部分を端折ってあるうえに分かりやすく少し書き換えてあります。

>Zei := trunc((Zeikomi * Zeiritu) / (100 + Zeiritu))
>が怪しそうだよ。

ここですか。。
うーん。せめて問題の現象が再現できていればもう少しなんとかなるんですが・・。

ご返答ありがとうございます。
0908デフォルトの名無しさん2005/07/27(水) 13:30:00
むかーしのことだけど、どっかのいんてりマウスドライバと、どっかのうんぬIMEが
コプロの丸め精度フラグを下げっぱなしにしてくることがあった。
(割り込み時のコントロールワードの戻し忘れ)
もしかすると誰かに銀行家丸めを変更されているとか。
0.05%とかをそのまま使わないで(小数点以下が出ないようにして)、最後の最後で100とかで割るといいよ。

あと、消費税は2進数できれいに表せる数にしてくれよ>政府

暑いから納涼話どう?
0909デフォルトの名無しさん2005/07/27(水) 13:38:28
>>908
そうしてるようだが

で>>903よ、なぜCurrencyとDoubleを混在させる?
ZeikomiがCurrencyならZeiだってCurrencyでいいし
ZeirituだってCurrencyでいいじゃん
0910デフォルトの名無しさん2005/07/27(水) 13:40:22
>>908
うーん。一応消費税は
>Zeiritu := 0.05 * 100;
のところで100倍してから計算に使用してるんですけど、
なんか順序とかがおかしいんですかね?
truncするタイミングとか・・??

正しい値が出たり出なかったりとかはやっぱり環境とかも影響あるんでしょうか。
0911デフォルトの名無しさん2005/07/27(水) 13:45:10
>>909

>なぜCurrencyとDoubleを混在させる?
前任の作成した関数(さっきのソース)なので
私も「なぜ」かという所までは・・。
(前任は既に会社を辞めております)

やはりそのへんもあやしい部分なのでしょうか?
現象が再現されないうちにそういうあやしい部分を潰していくと
修正が完了したのかどうかも判断が付かないので
へたにいじることが出来ないのが現状です。。

なにぶん「なんかおかしいからコレ直して。はいソース」という状態でして・・
0912デフォルトの名無しさん2005/07/27(水) 14:09:10
http://pc21.nikkeibp.co.jp/special/gosa/eg4.shtml
0913デフォルトの名無しさん2005/07/27(水) 14:50:10
>>912
今読み終わりました!
大変参考になりました。ありがとうございます。

やっぱり>>909さんからご指摘頂いている
CurrencyとDoubleの混在あたりがいけないようですね。
Currencyで統一すれば誤差はなくなりそうです。

ただやはりこちらで再現出来ていない状態で手直しして
「直りました」は説得力がないですよね。。

うーん。
さすがにこればかりは自分の力でなんとか頑張ってみます。
皆さんのおかげでなんとかなりそうです。
たくさんのご教授ありがとうございました<(_ _)>
09149082005/07/27(水) 16:44:07
>>910
>>Zeiritu := 0.05 * 100; 
>のところで100倍してから計算に使用してるんですけど、 

もしかしたら定数にするのに0.05を変換しきれなくて、100かけても
≠5.0かと思っただけ。
杞憂だと思うけど。

再現できる環境の確保がポイントですね〜。
あと、状況を絞り込んだ(ボタン押すと結果だけ出す)プログラムなどを相手に渡すとか。
0915デフォルトの名無しさん2005/07/27(水) 17:06:13
>>902
今のうちにD2005買っとけ。
up3+FastMMで使えるレベルだから。
次のバージョンも安定するまで半年はかかるだろうしね。
0916デフォルトの名無しさん2005/07/27(水) 17:08:55
>>908
俺も金額計算する時によくはまったな。
Currencyはたしか少数以下4桁まで保障だっけ?
Currencyが6桁まで保障してくれたらいいのにな〜なんて材木関係の仕事の時に思ったな。
09179032005/07/27(水) 17:18:16
みなさんいろいろと案を出してくださってありがとうございます。
ですが「再現出来なきゃあてにならない」と言い換えされてしまいました。。

うぅ。そう言われるのは当然なんですけど・・。・゚・(ノд`)・゚・。
0918デフォルトの名無しさん2005/07/27(水) 17:42:27
>>917
現象が発生する環境では常に発生してないとおかしい
もしかしてやたら古い機械じゃまいか?
09199032005/07/27(水) 17:47:25
>>918
実は常に発生しているかもハッキリしていないのです。
情報が少なくて・・。

えっと。とりあえず、
その現象が再現できるPCを特定→手直ししたものをそのPCで実行→それから判断
という流れで問題を潰していくことになりました。
私のところでやっていても再現は難しいだろうということで。

みなさん本当にお騒がせしました。。
ありがとうございました。
0920デフォルトの名無しさん2005/07/27(水) 17:50:19
>>917
データ見せられて、おかしいよって言われてるわけだよね?
そしてその計算部分の特定は出来てる。
あとは、その使用しているデータを客にきけばいいのでは?
もしくは、その部分だけ読み取って計算するような小さなプログラムを客先で動かしたら?
0921デフォルトの名無しさん2005/07/27(水) 18:02:07
>>903
>>920にも書いてあるがStrategy パターンでも使用した新しいソースと古いソースの計算結果を
照らし合わせ異なる場合のみ、そのデータを適当に抜き出すような小さいプログラムを作れ。
0922デフォルトの名無しさん2005/07/29(金) 00:26:59
計算誤差はいったんstring型にしてから、元の型に戻せば解消されることが多い。
09239062005/07/29(金) 07:12:11
まだ解決してないの?
再現するには、大量の乱数を発生させてこのルーチンを通してやればいいじゃない。

そして、再現した数字でトレースすれば簡単に判るでしょ。


たぶん、皆が書いてるように
 Zeiritu := 0.05 * 100 ってのが実際にこう書いてるなら 5になってるけど
 0.05が変数なら (1+0.6)*2^(-5) で 0.6は 16進数で書くと 0.9999999999999999と無限小数だ
 だから、 0.05 * 100 しても5にならない。

で、
Zeiritu:Double;
Zeikomi:Currency;

でZeikomi * Zeiritu すると、結果は浮動小数点型になる。 

つまり
trunc( Zeikomi *5/(100+5) ) と
trunc( Zeikomi *4.999999999999..../(100+4.999999999999.....) ) が同じになるかという事になるわけだけど


09249062005/07/29(金) 07:18:32
で、こういうのを予防する方法としては >>922の言うように誤差を10進化して丸めながら計算するといい

いちいち文字列形にするのは格好悪いと思うならCurrency流に計算すればいい。
変数をExtend型にして、1000倍とか1万倍してroundすればいい。

つまり、2桁で常に丸めるなら
Zeiritu := 0.05 * 100 ではなくて Zeiritu :=round( 0.05 * 100) とする
4桁必要なら
ZeirituX10000 :=round( 0.05 * 10000) とする

実際に計算する時は round(ZeirituX10000 * Daikin)/10000てな感じね
09259062005/07/29(金) 07:26:18
それから、状況を悪くしているのは
Zeiritu:Double;  にしている事。 
浮動小数点型はExtendedで計算されるから
いわば πに 3.14 つかって、半径1メートルで円周を求めて 6280mmなんて書いてるような状態になる

Extended同士で計算させてれば、もっと滅多に起きなかったろう・・・まあもっと状況が悪いとも言えるが
09269062005/07/29(金) 07:37:27
>>913
>Currencyで統一すれば誤差はなくなりそうです。

ってのは注意しないといけない。Currency形ってのは 1万倍して保持しているだけだから
Currency*Currency は 掛け算して1万で割るわけで
誤差が無いのは小数点2桁同士の掛算まで。

Currency同士の割算が入ると、それは浮動小数点で計算される
0927デフォルトの名無しさん2005/08/01(月) 11:32:24
 
0928デフォルトの名無しさん2005/08/01(月) 15:45:56
ファイルをPC外に持ち出されないように、
エクスプロラーで、「コピー」操作を
行った段階で、その事をDelphiから
感知する方法はありますでしょうか。
0929デフォルトの名無しさん2005/08/01(月) 15:47:22
ファイル システム フィルタ ドライバを書きましょう。
ttp://www.microsoft.com/japan/whdc/driver/filterdrv/default.mspx
ttp://www.amazon.co.jp/exec/obidos/ASIN/4774116661/250-6294777-6809015
なんのことだかわからないなら、無理です。あきらめましょう
0930デフォルトの名無しさん2005/08/01(月) 15:48:22
いわゆるクリップボード監視アプリでは似たようなことやっているけど、
ドラッグアンドドロップとか、ファイルダイアログでのファイル移動操作とかも考慮すると、
完全に防ぐのは難しい。
0931デフォルトの名無しさん2005/08/01(月) 15:57:00
satoといいます。
ファイルをPC外に持ち出されないように、
エクスプロラーで、「コピー」操作を
行った段階で、その事をDelphiから
感知する方法はありますでしょうか。
よろしく、お願いします。
Windows2000 Delphi6.0です。
0932デフォルトの名無しさん2005/08/01(月) 17:07:45
MLと2chでマルチする人も珍しい
0933デフォルトの名無しさん2005/08/01(月) 17:10:01
フィルタドライバってネットに資料全然ないな(英語では調べてないけど)
ファイルを暗号化して別ファイルとして保存、別のプログラムで復号したら
トラッキングするのはかなり難しくなりそうだけど・・・
難しいというか、面倒と言うべきかな
0934デフォルトの名無しさん2005/08/01(月) 18:21:04
929 であげた資料は日本語ですが...
普通の SDK の外の資料だからあまり読む人はいないのかもしれないけど、
プリンタドライバとかでも必要だから、読む人は読んでいるんだろう。

ファイルシステムを丸ごと作るわけではなく、ミニポートドライバを作るだけで
すむから、速度を気にしなければ COM が使える人なら簡単なんだけどね
0935デフォルトの名無しさん2005/08/03(水) 18:45:38
>>932
同じスレにもう一度投下する人もな
0936デフォルトの名無しさん2005/09/01(木) 13:39:09
すみません教えてください。
Win32APIのReadConsoleとか使ってコンソールアプリを作っているのですが
パスワード入力のところで、エコーバック無しで入力させたいのですが
どのようにすれば良いのでしょうか?
SetConsoleModeとか?いろいろやってみたのですがダメです。
09379362005/09/01(木) 16:00:25
ありゃりゃ、このスレってよく見たら氏んでた?

Win32API質問箱でもいってくる。
マルチになるんでこの質問はスルーしてください。
0938デフォルトの名無しさん2005/09/01(木) 16:57:08
Delphiでコンソールってあんまりやらないからな
まあ、がんばってくれや
0939デフォルトの名無しさん2005/09/28(水) 20:37:06
DLL を使うアプリなんだけど、
もしDLLが無ければそのDLLを吐き出して終了して
次実行したらDLLが使えるというような仕掛けにしようと思うのだけど、
実行時動的リンク だと大量にある関数をいちいちポインタ表現するのが面倒
ロード時動的リンク だと、ロード時にエラーメッセージが出るのは良いとしても
その後の実行で SysInit InitializeModule 内でメモリアクセスエラーが出て強制終了されてしまう。

スマートな解決方法は何かあるかな?

案1、別の実行ファイルでDLLがあるかどうかだけチェックする・・・・結局格好悪いし普段の起動が遅くなる
案2、_InitExe を書き換えてしまう。 ・・・・これだけの為にはチョッと・・・
0940デフォルトの名無しさん2005/09/28(水) 20:58:53
DLLをロードする前にチェックするんじゃだめなのか?
0941デフォルトの名無しさん2005/09/28(水) 21:06:34
>>940
それは実行時動的リンクでしょ。
なにせ100近く関数があるから
全部の関数ポインタとを書くのは、ちょっと勘弁してくれって感じ。
・・・・でもそうするしかないか。

みんなどうしてるんだろ? 正規表現置換でやれば、それほどでも無いのかな?
0942デフォルトの名無しさん2005/09/28(水) 21:10:04
>DLL を使うアプリなんだけど、
>もしDLLが無ければそのDLLを吐き出して終了して
>次実行したらDLLが使えるというような仕掛けにしようと思うのだけど、
別に終了する必要はないし・・・そのまま動的リンクへ

>実行時動的リンク だと大量にある関数をいちいちポインタ表現するのが面倒
>ロード時動的リンク だと、ロード時にエラーメッセージが出るのは良いとしても
>その後の実行で SysInit InitializeModule 内でメモリアクセスエラーが出て強制終了されてしまう。
>スマートな解決方法は何かあるかな?
面倒でも動的リンクでいちいち記述するのが逆にスマートかも
0943デフォルトの名無しさん2005/09/28(水) 21:14:14
>>939読んで何かつっかかえていたんだが、ヘルプひっくりかえして思い出した。
Delphi for .NETには仮想ライブラリインターフェースっつうDLLの遅延ロードに便利そうなものが新設されてた。
まあ_InitExeなんて書いてるぐらいだから.NETはお呼びでないだろうが。
09449392005/09/28(水) 21:33:59
今まで、実行時動的リンクする時は

procedure Hoge(hage:Integer);
begin
if assigned(pHoge) then Hoge(hage) else MyRaise( 'Hoge');
end;
こんな感じのを作ってたけど、
さすがにこれを100も書くのは無理。

それをあきらめて、直接間接コールさせれば、 正規表現置換で出来そう。

>>943 うん。 いまだにD5だし
0945デフォルトの名無しさん2005/09/28(水) 21:36:42
ロード時動的リンクでロードできなかったらDLLを吐いた後即座に終了して、
自分自身を再実行させるんではだめですか

再実行は終了直前に別のプロセスとして起動させるか
batファイルを吐いて実行させるか
09469392005/09/28(水) 22:02:12
>>945
ロード時動的リンクはOSがまずエラーメッセージを出すみたい。

これはいいんだけど、

ロード時動的リンクに失敗すると、Delphiで作ったアプリは
その後のセットアップルーチン内でメモリアクセスエラー出してしまうんで
結局DLLを吐き出す事が出来んのです。
それには、スタートアップルーチンである InitExeを書き換えてしまうしかない


で結局
procedure Hoge(hage:Integer); stdcall;
 ↓
procedure RaiseHoge(hage:Integer); stdcall;begin MyRaise('Hoge');
type THoge = procedure (hage:Integer); stdcall;
var Hoge:THoge;

さらに

p=GetProcAddress(hModule, 'Hoge'); if p=nil then Hoge=RaiseHoge else Hoge=THoge(p);
とやれば、正規表現置換でなんとかなりそう

0947デフォルトの名無しさん2005/09/28(水) 22:35:32
なるほどね
ただLoader.exeの可能性も考えていいんじゃないか?
programからVCL抜きで小さいの作れば起動もそれほど遅くならないし
それはそれでスマートだと思うけど
0948デフォルトの名無しさん2005/09/28(水) 22:55:54
とか何とかやってる間に100個位書けるんジャマイカ
0949デフォルトの名無しさん2005/09/29(木) 00:14:36
要は実行タイミングが得られればいいんだろ?
もう一個DLL作って、それが最初にロード時リンクされるように
順番を調整して、そのDLLの中で目的のDLLの存在確認をとる
なんてのはどうだ?
思いついただけだが。
0950デフォルトの名無しさん2005/09/29(木) 00:27:09
それか、_InitExe直せるぐらいなら自己書き換えなんて楽勝だろ。
.exeでもDLL同様にエクスポートはできるから、
100個の関数をプロトタイプと名前を合わせた
ダミー関数として作っておいて自身のエクスポートテーブルに載せる。
あとは自身のエクスポートテーブルを参照して、
各関数と同名でGetProcAddressして、結果によって
ダミー関数の実体を書き換えてやれば…。
思いついただけだってば。
0951デフォルトの名無しさん2005/10/13(木) 18:33:55
procedure TForm1.Button1Click(Sender: TObject);
var
    Form2: TForm2;
begin
    Form2 := TForm2.Create(self);
    Form2.Show;
    Form2.Parent := self;
end;
↑
こうして実行すると、チャイルドウィンドウとしてForm2が開かれます。
ここでForm2がForm1の範囲をはみ出すとForm1にスクロールバーが出ます。

その後マウスでForm2移動してを内側にした上でスクロールバーをクリックすると、
エラーが出ます。(スクロールバーはVerzとHorzと両方の場合のみ)

これって何でエラーが出るんでしょうか?
対策として、Form2が動いたときForm1のスクロールのアップデートをしようかと思っていますが、
どういうコードに
0952デフォルトの名無しさん2005/10/13(木) 18:39:47
MDIFormではダメなの?
09539512005/10/13(木) 18:46:45
>>952
あ、その存在を忘れていました。


確かにMDIフォームならスクロールバーはリアルタイムに直されますね。

でも、ボタンの下にForm2が入っちゃう。
09549512005/10/13(木) 18:55:57
やっぱりMDIフォームじゃない解決策お願いします。
0955デフォルトの名無しさん2005/10/13(木) 19:17:46
Form を Form に貼り付けるような厨房アプリなんてつくるなよー
0956デフォルトの名無しさん2005/10/13(木) 20:19:32
>>955
フレームがない頃はFormPanelなんてのがあったりしたなぁ。
今でもドッキングがあるし、普通じゃない?。
0957デフォルトの名無しさん2005/10/13(木) 21:26:27
なら、ドッキングさせりゃいいじゃない
0958デフォルトの名無しさん2005/10/14(金) 08:45:17
Frame もすでにあるし
0959デフォルトの名無しさん2005/10/31(月) 09:03:33
TPanelとか、回転できますか?
0960デフォルトの名無しさん2005/10/31(月) 12:08:10
そのままの形では回転できない。モニタ回すしかない。
0961デフォルトの名無しさん2005/10/31(月) 13:04:53
じゃあ、TPanelに回転機能を付けたコンポーネント希望。
ネットに落ちてないかな?
0962デフォルトの名無しさん2005/10/31(月) 13:10:09
>>959 >>961
ここってDel上級者用じゃないのか?
回転したいpanelのRectを部分の画像をコピーして回転させればイイじゃん。
それを別で表示
0963デフォルトの名無しさん2005/10/31(月) 13:18:05
>>961は自称上級なんだろ。
0964デフォルトの名無しさん2005/10/31(月) 13:27:12
>>959 はageたかっただけだろ
0965デフォルトの名無しさん2005/10/31(月) 13:37:41
>>962
その内容をコンポーネント化する方法きぼんぬ。
0966デフォルトの名無しさん2005/10/31(月) 13:46:39
画像を回転してもウィンドウを回転したことにならないよ
0967デフォルトの名無しさん2005/10/31(月) 13:48:28
TPanel は子ウィンドウなのでウィンドウとしての性質はOSが決めている。
だから真の意味では回転できない。
09689592005/10/31(月) 13:49:35
ウィンドウ自体回転になってなくても良いです。

でも、TImage(おっと、今使ってるのTPanelじゃなかった、TImageのビットマップだった)の中の
ビットマップの人が回転してて欲しいでつ。
0969デフォルトの名無しさん2005/10/31(月) 13:52:46
イメージ 回転 Delphi でググル
0970デフォルトの名無しさん2005/10/31(月) 14:00:21
ここ見るとか

ttp://junki.main.jp/delphigr/050Rotation.htm
0971デフォルトの名無しさん2005/10/31(月) 16:03:11
Canvas.Pixels[X,Y]でアクセスすると激遅になるだろうし、
結構面倒だね。
09729622005/10/31(月) 16:39:56
>>971
Scanlineで取る事ぐらいするだろww
0973デフォルトの名無しさん2005/10/31(月) 16:47:54
上級スレにしては回答も低級すぎだな
0974デフォルトの名無しさん2005/11/01(火) 01:28:21
煽れば教えてもらえるという考えは誤りです。
0975デフォルトの名無しさん2005/11/01(火) 15:17:59
2005でMSAccess2003で作ったdb1.mdbに接続したいのですが、
データエクスプローラでMSAccessに新しい接続を追加して
「接続の変更」でプロパティ画面見たいのを出して、
「Database」のところにdb1.mdbのパスを入力して
「Password」と「UserName」をくうらんにして
テストを押したのですが、
「接続が開きませんでした」とメッセージが出て接続できません。
誰かお知恵を貸してください。
0976デフォルトの名無しさん2005/11/02(水) 12:22:53
既にあるExeファイルのアイコンを書き換えようと思っているんですけど
どうすればできるのでしょうか?
Delphiに限らずどこかにサンプルとか落ちてないですかね。。。
0977デフォルトの名無しさん2005/11/02(水) 12:37:27
>>976
UpdateResourceでできるようです。
0978デフォルトの名無しさん2005/11/04(金) 09:40:58
Delphi 7 proですが、
Rave(5.0.8-英語バージョンにバージョンアップ済)
について、ワードラップで文字化けが発生します。
以下の2005と同じ現象だと思います。
ttp://onigiri.s3.xrea.com:8080/delphi/index.php?RaveReports
そこで上のPukiに書いてあるように、
TRaveCustumMemoについて、
paint,printをオーバーライドしたカスタムコンポを
作成しようとしているのですが、
そのTRaveCustumMemoのソースが見つかりません。
Delphi自体にもインストールされていなく、
上位クラスリストにもありません。
Pukiに書いてある、TRaveCustumMemo
の在処をご存じの方は教えて下さい。
0979デフォルトの名無しさん2005/11/04(金) 11:02:51
http://blog.goo.ne.jp/taka-_-kun/e/8541188484550165883b26d55ace8873
0980デフォルトの名無しさん2005/11/04(金) 11:44:11
>>979
ありがとうございます。
ただ、そのblogの方も2005で
同じようにカスタムコンポを作った
とだけあります。

Delphi 7 ではコンポーネントの新規作成について
RaveのTRaveCustumMemoが上位クラスのリストに出てこなくて
Raveコントロールのカスタムコンポが作成できません。

Delphi 2005には上位クラスの
リストにRaveの(Data)Memoクラスが表示されて、
選択できるのでしょうか?
0981デフォルトの名無しさん2005/11/04(金) 12:53:08
Delphiに付いているRaveにはソースは無いと思いますが、代わりにdcuが付いてます。
usesすれば、参照はできます。
Delphiでコンポーネントを作って、RANTという仕組みを使って登録するみたいです。

(Delphi2005のPDFマニュアル, RaveDevGuideに載っている例)
unit NDCsBlue;
interface
uses
 RVClass, RVCsStd;
type
 TNDBlueText = class(TRaveText)
public
 constructor Create(AOwner: TComponent); override;
end; { TNDBlueText }
procedure RaveRegister;
implementation
{$IFDEF DESIGNER}
{$R *.RES}
{$ENDIF}
procedure RaveRegister;
begin { RaveRegister }
 RegisterRaveGroup('ND','ND Components');
 RegisterRaveComponents('ND',[TNDBlueText]);
 RegisterRaveProperties(TNDBlueText, {Beginner} '', {Intermediate} '', {Developer} '', {Hidden} '');
end; { RaveRegister }
constructor TNDBlueText.Create(AOwner: TComponent);
begin { Create }
 inherited Create(AOwner);
 FFont.Color := clBlue;
end; { Create }
end.
0982デフォルトの名無しさん2005/11/04(金) 13:02:46
>>981
ありがとうございます。助かりました。
その方法で試したみます。
0983デフォルトの名無しさん2005/11/04(金) 13:03:16
s/試したみます。 /試してみます。
0984デフォルトの名無しさん2005/11/04(金) 13:03:18
TRaveCustomMemo(スペル注意)も何かをusesすれば利用できると思いますが
自分で探しても見つからないと思います。
情報があるのはニューズグループなので、ググッても無駄でしょう。

ブログの人が答えてくれなければ
borland.public.delphi.thirdpartytools.ravereportsにいるサポセンの人に
聞くのが手っ取り早いと思います。
0985デフォルトの名無しさん2005/11/04(金) 13:18:10
Raveの文字化け解消法ですが、Delpih for .NETを使えば、ほぼ解決するらしいです。
(PDFについてはDelphi 2006でも完全解決しないような雰囲気ですが・・・)

WIN32についてはもうお手上げと言った感じで
今後も文字化け解消の予定は無いらしいですので、RaveReportsを使っていくのは
かなり大変だと思います。
0986デフォルトの名無しさん2005/11/04(金) 13:55:36
いろいろ、ありがとうございます。
Memo だけでなく
Data Memoも同じく(本当はこちらがメイン)しなければ
いけません。

Delphi 8 proですと、ADO関連コンポ(ADOConnection等)
が実装されてなく、仕様上使えません。

>>984で教えて下さった。サポセンに聞いてみます。

>WIN32についてはもうお手上げと言った感じで
>今後も文字化け解消の予定は無いらしいですので、
>RaveReportsを使っていくのは
>かなり大変だと思います。
これはつらいです、システム構築がメインなので、
他に良い印刷コンポを探すことも視野に入れます。

dvExpressの印刷パッケージは、開発環境で
使用するとDelphi自体が落ちるし、開発元に
投げても日本語環境だから・・・という回答だけです。
(他のサポートは親切ですが)
Raveも、やっとUIの日本語が完了したと思ったのですが...

印刷関連でかなり苦労しています。
0987デフォルトの名無しさん2005/11/05(土) 09:08:54
はじめまして。 
相談なのですが、DLLとして作ったプログラムをメインスレッドではない
スレッドでダイナミックにロードした場合、データモジュールに載せた
タイマーが動いてくれません。

任意のスレッドから、メインスレッドで Loadlibrary するにはどうしたらよいか
ご存知の方いらっしゃいますか?
0988デフォルトの名無しさん2005/11/05(土) 09:35:05
DLL の問題ではないと思われる。タイマはメッセージベースで動作しているので
ワーカスレッドのようなメッセージループを持たないスレッドでは動作しないのは
当然です。
0989デフォルトの名無しさん2005/11/05(土) 09:40:08
>任意のスレッドから、メインスレッドで Loadlibrary するにはどうしたらよいか

Synchronize
09909872005/11/05(土) 10:31:12
お返事ありがとうございます。
Synchronizeでやりたいのですが、TThreadは見えなくて呼び出しできません。
(Indyのserverコンポーネントから呼び出される部分)

メインスレッドで生成されるウインドウ(form)はあるので、そこにメッセージハンドラ
作ってやらせるとかでしょうか?
09919872005/11/05(土) 10:58:03
>>990
すいません、スレッドオブジェクトへの参照、もろ取れますね。
TIdTCPServer の継承クラスを作っているので
 DoExecute(AThread: TIdPeerThread); override;
がそのものでした。
おさわがせいたしました m(_ _)m
レス数が950を超えています。1000を超えると書き込みができなくなります。