Delphi相談室(上級者用)その12
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG中級者は「Delphi相談室(中級者)」へどうぞ。
初心者は「くだすれDelphi(超初心者向け)」へどうぞ。
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
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デフォルトの名無しさん
NGNGBorland 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デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGDelphiスレは多すぎです。人気なんか全然ないのに。
スレッドの数をもっと減らしてください。
0007デフォルトの名無しさん
NGNGもっとも習得したい言語 Delphi : 0 (C# : 49)
もっとも利用したいIDE Delphi : 2 (VS.NET : 65)
0008デフォルトの名無しさん
NGNGhttp://memo.st.ryukoku.ac.jp/archive/200309.month/6508.html
上級者の技術力でこのバグを解消しよう。
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGライブラリ書き換え。
文字列追加時にチェックする。
実行時にコード書き換え。
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGOSにパッチを当てます。
0013デフォルトの名無しさん
NGNG0014初心者
NGNG0015デフォルトの名無しさん
NGNG今までそれが発覚しなかったのがいろんな意味ですごいな
0016デフォルトの名無しさん
NGNGそうだね。C系の言語に慣れてると面倒に見えるだろうね。
でも、これくらい頭の中で共通化して抽象化してしまえ。
>>15
2CHでも前に言ってた人がいると思うよ。
確か、iniファイルの読み込みで行制限があるという話からそっちに流れたような気もする。
0017デフォルトの名無しさん
NGNGdephiの開発者って終わってるな。こんなとこチェックしないプログラマーが普通いるか?
0018デフォルトの名無しさん
NGNGXMLなら行制限も桁制限もないわけだが。
0019デフォルトの名無しさん
NGNG以前の議論では、パフォーマンスを優先したんだろうという事になったような気がするよ。
0020デフォルトの名無しさん
NGNGぼくわ厨房でわ無いです!!!!!!!!!
0021デフォルトの名無しさん
NGNG文字列の取得/設定なんてそう何回も呼び出されないし、単純な長さチェックだけでそんなにロスしないと思うがな。
0022デフォルトの名無しさん
NGNGどうかな?
・1項目毎に呼ばれる
・サイズの取得もAPIの呼び出し(メッセージ機構で)が必要になる
から昔は結構大きかったんじゃないの?
0023デフォルトの名無しさん
NGNGMSにいるじゃん。
0024デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGApplication.OnIdle で暇なときに描画関数を呼び出し、というのをやっています。
が、このOnIdleというのはCPUに余裕があるときに発生すると聞いたのですが、
完全に暇なときなのでしょうか、それとも100%以外という意味なんでしょうか。
もし前者なら、描画できる余裕が少しあるのに描画できない、後者なら
描画を始めた時点で100%に達してしまい、終わるまで次が描けない → 描くのに1/30秒
以上かかるときに描画が等間隔にならない、と考えたのですが・・・。
理想は、通常は30fpsで描画して、維持できなくなったら徐々にfpsを減らしていく、
という形なのですが、いいアイデアは無いモノでしょうか。
0027デフォルトの名無しさん
NGNG上級者スレで、くだすれレベルの質問すんなよ。
てかゲーム製作スレで聞けヴァカ
0028デフォルトの名無しさん
NGNGタイマイベントでやりくりしろよ。つかDirectX使え。
0029デフォルトの名無しさん
NGNGソース嫁。
0030デフォルトの名無しさん
NGNGOnIdleはCPUに余裕があるときです。
33mSのタイマーイベントを使うと希望通りCPUに余裕が無くなると自動的に等間隔でなくなります。
0031デフォルトの名無しさん
NGNG元々タイマーなんぞに制度を求めては行けません。
0032デフォルトの名無しさん
NGNG>このOnIdleというのはCPUに余裕があるときに発生する
前提から間違ってる。ヘルプ読め。ついでにソースも読め。
0033デフォルトの名無しさん
NGNGメッセージキューに何もなければ実行され、Done が Trueなら WaitMessageがその後呼ばれる。
OnIdleはマウスやタイマーイベントでメッセージキューが常に一杯なら1度も実行されない。
よってCPUに余裕があれば、OnIdleが実行される。
ただし、他のアプリのせいでCPUに余裕が無くても、メッセージキューが空なら実行される。
0034デフォルトの名無しさん
NGNGいい加減気づけよ(w
0035デフォルトの名無しさん
NGNGメッセージキューに待機中であってもマウスメッセージ等が割り込むために
正確でなくなります。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG他に優先度の高いメッセージがある場合、そちらが先に処理されてしまう。
複数の WM_PAINT は再描画が必要なリージョンが統合されて一つの WM_PAINT に統合される。
逆に、自分で定義したメッセージを自分自身に送れば問題の一部は解決する。
ただし。Windows はリアルタイム OS ではないのでどうしても手の届かない部分が存在します。
DOS みたいに全権限を取得できるわけでもないしね。
いろんな部分の考え方を変えるか、いっそ全画面、CPU 100% 使用と割り切るか。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGいきなりで申し訳ないですが
キャンバスに出力する文字列も幅と高さを知るのに
CanvasのTextExtent メソッドがありますが、
Canvasを使わず幅高さを知る方法を知ってたら教えて下さい。
004443
NGNG0045デフォルトの名無しさん
NGNG私はそれを知りません。
TCanvas.TextExtent は GetTextExtentPoint32 を呼び出しています。
ですから、もし画面へでしたら GetDC(0)したハンドルで GetTextExtentPoint32 するか
又は これはご希望の方法ではないでしょうが、
TCanvasインスタンスを作ってGetDC(0)ハンドルを渡して Canvsa.TextExtentすればよいと思います。
CreateFontではhDCは必要ありませんが、CreateFontで作成したhFONTは
SelectObjectしなければフォント情報は引き出せません。
0046デフォルトの名無しさん
NGNG質問した以上は解決法をまとめて下さい。
そうすれば、検索してこのスレを見つけた人にも役立ちます
0047デフォルトの名無しさん
NGNGhttp://pc.2ch.net/tech/kako/1003/10035/1003559977.html
こういうスレとして活用させて貰っていいですか?
0048デフォルトの名無しさん
NGNG良いのではないでしょうか。
0049デフォルトの名無しさん
NGNGスレッド側からVCLに対して操作をすると
AccessViolation例外が発生してしまいます。
例えば、ProgressBar1.Stepby(1);や
LabelEdit1.Text:='文字列'などの一般的な
操作で発生します。(これらは当然Syncronize()を
使って操作してます)
不思議なことにそのVCLコンポーネントがひとつ
だけの場合に発生するようです。ProgressBar
ならひとつの場合エラーが発生してふたつ置くと
エラーが起きません。仕方なくふたつ置いて、
VisibleとEnableをFalseにして凌いでいるのですが、
この点について何か解決方法など知っていませんで
しょうか。
0050デフォルトの名無しさん
NGNGその Syncronize で呼び出したメソッドでやってるんだよね?
そうだとしたら、必ず起きるコード書いてみて。
それから Syncronize を多発するより、メッセージを投げた方がいいよ。
SendMessage はSyncronizeと同じだから PostMessag するといい。
0051デフォルトの名無しさん
NGNG>SendMessage はSyncronizeと同じだから PostMessag するといい。
これはバージョンによって実装が全くことなるよ。最新のものはイベントを使用し効率よく実行されるようになっている。
というか49は、くだすれに池
0052デフォルトの名無しさん
NGNGありがとうございます。
該当コードは以下のとおりです。
>その Syncronize で呼び出したメソッドでやってるんだよね?
>そうだとしたら、必ず起きるコード書いてみて。
//----------------------------------------
// データを追加する
//----------------------------------------
procedure TGetDataThread.AddData;
begin
Form1.DataList.Add(DataStr);
Form1.ProgressBar1.StepBy(1);
Form1.ProgressBar1.Update;
end;
>というか49は、くだすれに池
くだすれレベルの質問ですいませんでした。
次回からそうします。
0053デフォルトの名無しさん
NGNGああ実装が同じという意味じゃなくて効果が同じという意味ね。
いちいちメインと同期するのは同じという意味ね。
>>52
そのフォームが完全に作成されてから TGetDataのインスタンスは作成されているんだよね?
ところでそれはテストコードなんだよね? そこにForm1を普通は書かないよね?
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGDelphiマンセー
http://pc2.2ch.net/test/read.cgi/tech/1029120920/
とかでご指導側に回って下さい。
0056デフォルトの名無しさん
NGNGType 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;
005749
NGNGコードも載せていただき、ありがとうございます。
>そのフォームが完全に作成されてから TGetDataのインスタンスは作成されているんだよね?
はい。
>ところでそれはテストコードなんだよね? そこにForm1を普通は書かないよね?
いろいろ試していたので、Form1.と書いてました。
基本的にVCLの操作はSyncronize経由で、
グローバル変数はForm1.○○○で操作しています。
いろいろ削ったり、コメントアウトしたりしてうまくいくケースを
探ってみましたがダメでした。やはりエラーが起きてしまいます。
原因がよくわかりません。同じコンポーネントを2つ乗せれば
エラーが起きないので、それでよいと言えばよいのですが、
少し気になります。
SendMessageを使うか今後検討してみます。
0058デフォルトの名無しさん
NGNG一応、グローバル変数の操作は
TCriticalSection内で行ってます。
0059デフォルトの名無しさん
NGNGSyncronizeを使えば安全(メインスレッドで実行)という理由は色々あるけど
GUI周りはメインスレッドで実行しないと正しく処理されないものもいくつかある。
それはおいといて、メモリ周りはマルチスレッド時はメモリマネージャとかは基本的にちゃんと排他処理を行っている。
なのでAVが出るのはライブラリ側の排他処理周りである可能性であるのは低い。
あそらく原因はユーザー側のコーディングが問題なのだろう。
AVの出る原因特定ってAVの出た位置から呼び出し履歴やアドレスを見ていけば結構簡単にわかるよね。
大抵は初期化されていないものにアクセスしたり、無効になったポインタやインスタンスをアクセスしにいった時発生するかと。
地道にトレースして探すべし。
0060デフォルトの名無しさん
NGNG1、グローバル変数を使う時は Form1.メソッドで なおかつTCriticalSection内というのは意味がないよ。
2、SendMessageはSyncronizeと効果は同じ
進行状況を表示する程度の事ならPostMessageで非同期に状態を送る方がいい
0061デフォルトの名無しさん
NGNG>あそらく原因はユーザー側のコーディングが問題なのだろう。
自分もそうだと思います。やはりどこかがよくない使い方してるのだと
思います。根気よく調べてみます。ありがとうございました。
0062デフォルトの名無しさん
NGNGせっかくのマルチスレッドが生かせない。
設計を上手くやって、同期や排他処理を必要ないようにするのがコツ。
・単ワード(CPUのデータ幅以内)で構成される整数型、ポインタ型、浮動小数点型は
あるスレッドが読み書して、他が読むだけの使い方であれば排他処理は必要ない
この方式でスレッド間通信に使う事も可能
・int64は2ワードとなるのでダメ
・メモリ境界をまたぐ32bit変数も デュアルCPU構成等の環境でダメなので注意
これを利用して、構造体を渡す場合も、リングバッファ構造にしてそのポインタか、配列番号を渡す
ようにすれば、同期や、OSの提供する排他処理に頼らずにすむ。
0063デフォルトの名無しさん
NGNGそういったカビの生えた古臭い知識は.Netで完全に死滅するわけだが。
0064デフォルトの名無しさん
NGNGほう。
では、 .NET で通用しないとでも? それならどのあたりが?
あるいは、.NETでも通用するけど、それよりスマートな概念があるという事かな?
0065デフォルトの名無しさん
NGNGせっかくのCPUの性能が生かせない。
アセンブラやCを上手く使って、コンパイラやRADを必要ないようにするのがコツ。
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGC厨もいるのにね
0068デフォルトの名無しさん
NGNGほー、Cで書いたコードはコンパイラが無くても動くと…メモメモ。
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGC厨とやらがDelスレを煽る理由が無いんだが?
0072デフォルトの名無しさん
NGNGスレッドを抽象化しきった Java には、それはそれで別の問題があるが。
0073デフォルトの名無しさん
NGNGありがとうございます。
教えていただいたことを参考にして早速作り直しましたところ
処理速度があがりました。(まだ不安定ですが・・・)
スレッドプログラムは奥が深いですね!精進します。。
0074デフォルトの名無しさん
NGNGマイクロソフトだと、只なんですが、
どのようにしたら、ボーランドをぬっ殺せますか。
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGみんなで Del6パーソナルを使いましょう。 そうすれば ぬっ殺せるかどうか判りませんが、困ると思いますよ。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGdelphiがつまらなくしてしまった。だな。
MSならVISIOがあったし。
暇人は要らんな。俺も含めて。
0079デフォルトの名無しさん
NGNG0080アニー・尾田
NGNGdelphiがつまらなくしてしまった。だな。
MSならVISIOがあったし。
暇人は要らんな。俺も含めて。
0081デフォルトの名無しさん
NGNGでるぽい、ぽい有意義な話題かと思えば、文法と
ウィンばっかりじゃん。ツマンネ。
出るは、イラネ。マイクロソフト純正で十分だよ。
0082デフォルトの名無しさん
NGNG0083ちんげ
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNGピンキリ
0087デフォルトの名無しさん
NGNG月収27万
ただし漏れはプログラマーではない。環境測定の工作員。
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091シャザーン
NGNG0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGよっ!上級者!
0095デフォルトの名無しさん
NGNGよっ!ジョーク者!
0096デフォルトの名無しさん
NGNGアイスが。
0097デフォルトの名無しさん
NGNGお前が。
0098謎の急浮上!
NGNG0099デフォルトの名無しさん
NGNG1 2 3
1 黒 青
2 黒 赤
3 黒 赤
のように個別に色を変えたいんですが
どうしたらいいのでしょうか?
0100デフォルトの名無しさん
NGNGマルチ氏ね & 100!
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGゴルフクラブのオーナーが借金でドロン。
0104デフォルトの名無しさん
NGNGDelphiは標準にどれくらい準拠していますか?
0105デフォルトの名無しさん
NGNGObjectPascalの規格があるかどうかは知りませんが、
あったとしてもDelphiは全く準拠していません。
今はボーランド自身も「Delphi言語」と称しています。
0106デフォルトの名無しさん
NGNGhttp://www.net.intap.or.jp/oiia/cont1/p0302.html%7B0recid=10104.html
感じとして 標準PASCALの9割以上のコードはDelphiでコンパイルして動かす事が出来るようです
ObjectPascalについては、
Delphiのほかには FreePascalがあるていどで、FreePascalはDelphi互換を目指してるようですから
ほぼDelphi(たぶんD3あたり)がデファクトスタンダードだと思います。
0107デフォルトの名無しさん
NGNGhttp://www.pascal-central.com/OOE-stds.html
なんか
TYPE
Student = CLASS (Person, Gradable, ... )
...
END;
とか
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGで、TurboPascalもそれに準拠してた(object型ってやつ)
0110デフォルトの名無しさん
NGNG流行っていたにも関わらず、開発元に見捨てられて死滅寸前の言語もありますな。
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNGじゃあ流行ってないDelphiはもっと死滅するな。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGどっこい生きてるじゃん
0118デフォルトの名無しさん
NGNG残念なことに道具として使うぶんにはまだまだパフォーマンス最高の一つだからさ。
.NET は longhornが出て、longhornがサクサク動くマシンが安価になった頃からかなあ・・・
0119デフォルトの名無しさん
NGNGシャツの中?
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGこの一言で、貴方の薄っぺらさが解りました。
「C#を作ってますがなにか?」だって
ごめん、鼻で笑っちまった
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNGどうせなら C# で C# コンパイラ作ればいいのに。
0125デフォルトの名無しさん
NGNGもっと本読め。
0126デフォルトの名無しさん
NGNGこの板でDelphiが付くスレを"Powerd by Microsoft Visual C#.NET"とか言って荒らしてみるの。
ほ れ 、 作 れ る も ん な ら 作 っ て み ろ よ。
あ、今更善人ぶらなくても良いよ。だれも聞いていないからさ。
0127デフォルトの名無しさん
NGNG121 名前:デフォルトの名無しさん[sage] 投稿日:03/10/31 19:57
C#を作ってますがなにか?
そうか、頑張れ。
0128デフォルトの名無しさん
NGNG>DelphiでC#コンパイラを作ってるの? あんまり意味ないと思うなあ
あなた読解力ないね
121 は Delphi をバカにする人で、C# コンパイラ作ってる人なんだけど
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNGあなたは会話の食い違いから喧嘩になる事が多くないですか?いいえ、多いに決まっています。
そんな読解力では今後大変ですよ。もっと本を読む事をお薦めします。
で、この後「まあDel厨だからな」とかワンパターンな野次が入るんだよな。
ところで C# の他には何か作ってらっしゃらないんですか?
C# はもう出来てるんじゃないんですか?
0132デフォルトの名無しさん
NGNG今まではさ、メモリがどんどん大きくなってCPU速度を食い潰す心配してたけど
これからはメモリ空間が一杯だから、CPUが速くなればそれだけ速くなる時代なのかな?
実際32bitあればメモリ空間としては問題ないじゃない。
動画がどうとか言っても、動画データ全体をメモリに入れる必然ないしさ。
64bit化なんて言ってるけど、64bitじゃなけりゃいけない用途が見えて来ないよね。
0133デフォルトの名無しさん
NGNG別におまいの事情によって64bit化するわけじゃないからなぁ。
そりゃ、俺個人にも必要ではないけどさ。
世の中にはそれを必要とする分野もあるってだけ。
で、
>今まではさ、メモリがどんどん大きくなってCPU速度を食い潰す心配してたけど
>これからはメモリ空間が一杯だから、CPUが速くなればそれだけ速くなる時代なのかな?
の意味が理解できないのだが。
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG現実にテラバイト超のメモリを実装したコンピュータもあるんですが
あれは無駄な飾りですか?
0140デフォルトの名無しさん
NGNGそのテラバイト超のメモリを実装したコンピュータは何ビットですか?
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNGみんな変な顔のおっさんなんだろうな。
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNGまたC#スレで煽動してきたんですか?
0147デフォルトの名無しさん
NGNGC#スレに返れ
0148デフォルトの名無しさん
NGNGなつかしいなぁ
0149デフォルトの名無しさん
NGNG分からずにVBを使う。
好きだからDelphiを使う。
0150デフォルトの名無しさん
NGNGどっちみち使わなきゃいけないんだ。頑張れ。
0151デフォルトの名無しさん
NGNG0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNGはやってないとか、使われてないとか・・・、
おもいっきり広く使われて、スタンダード言語の一つが現実だと思うが?
あんた自分の世界にひたってるアマチュアヲタプログラマーか?
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG負け犬が一番よく咆える。
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNGDelphiで、コ
0158デフォルトの名無しさん
NGNGそんなの簡単です。
まず、エ
0159デフォルトの名無しさん
NGNG中(ry先生の書籍がおすすめです
高いけどなかなか売ってないけど根性で手に入れてください
私は通販が怖いのでまだ手に入れてません
0160デフォルトの名無しさん
NGNGムリだよね、WindowsビットマップってRGBモードオンリーじゃん?
0161デフォルトの名無しさん
NGNG各色成分に分解してそれぞれビットマップに保存すればいいんじゃないか?
変換式は色理論とかキーワードに検索すればすぐ見つかると思う。
0162デフォルトの名無しさん
NGNGただの独り言じゃないの?
0163デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNGこの処理がマルチスレッドで2つくらい重なると、
Windowsがリソース不足エラーを起します。
何か回避策無いかな。
一応、重ならない工夫はしましたが、他に重いアプリを起動してると駄目みたい。
0166165
NGNGBitmap = 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;
}
0167165
NGNG0168デフォルトの名無しさん
NGNG>Windowsがリソース不足エラーを起します。
あなたの書いたコードがバグってるだけだと思われます。
0169165
NGNG書き方間違えました。
Win32APIがエラーをリターンしてVCLの「リソース不足」エラーメッセージになります。
Windows自体は大丈夫でつ。
0170165
NGNG0171165
NGNG0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG>>170 さすがに D6 位になると、そんな話は聞かない。メモリマネージャはだいぶ枯れたコード。
リソースというより、何かをスレッド間で共有していませんか?
「リソースがなくなったのでエラー」
ではなく「複数スレッド間で同じリソースを使ったためにエラーがおきた」
って線では?
0174?
NGNGワケ分からんな。
0175174
NGNG0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGBCBスレ逝けっつーの。
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG読めるかどうかが問題なのか?知障?
もう一度言おう
わざわざBCBのコードをDelスレに書く理由が分からんな
0183デフォルトの名無しさん
NGNG本当のことを言っちゃだめだよ
0184デフォルトの名無しさん
NGNGそこまで嫌う理由の方がわからん。日本に来たら日本語喋れって口なのか?
0185デフォルトの名無しさん
NGNG例えがおかしい
すぐ隣にアメリカ人がいるのに、日本人に英語について質問しに来たようなもんだろ。
0186デフォルトの名無しさん
NGNG「B C B ス レ 逝 け っ つ っ て ん だ よ ! 」
0187デフォルトの名無しさん
NGNG>>185
それも例えがおかしくないか?
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNGこのスレの存在意義って何よ?
0190デフォルトの名無しさん
NGNG弱い犬ほど良く吠える
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG>Delスレ縦杉
ちょっと前にアンチどもが荒らし&乱立させた。このスレも乱立スレのひとつ。
まあここは隔離スレになっているけどな。
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG> ちょっと前にアンチどもが荒らし&乱立させた。このスレも乱立スレのひとつ。
の割りには最初の方真面目に立てたって感じがするけどな。
都合が悪くなったらアンチのせいかよ。
お仲間がやったことにちゃんと責任を持ちな。
0195デフォルトの名無しさん
NGNGこの勘違い厨は多くいるけど…
なぜなんだ?,MSの広報部が馬鹿なんだなきっと
0196デフォルトの名無しさん
NGNGまともな用が無いなら来るなよ
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGhttp://tmp2.2ch.net/test/read.cgi/download/1070647427/
まとめサイト(Wikiへの直リンク禁止)
http://s2net.s41.xrea.com/
ダウソの馬鹿どもがなんかやってるぞ、からかってやろうぜ!
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNGすくつ?w
0201デフォルトの名無しさん
NGNGhttp://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デフォルトの名無しさん
NGNGhttp://program.dot.thebbs.jp/1071486463.html
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGこのDelphiで作る32bitDLLのデバッグをするのに、
NT系だと system32\NTVDM.EXE をプロセスにアタッチで出来るのですが
9x系だと、どうやればいいでしょう?
0207デフォルトの名無しさん
NGNGこんな会社に大野さん入ったんだ・・・他人事ながら心配です。
0208デフォルトの名無しさん
NGNGなんかいいのあります?
0209デフォルトの名無しさん
NGNGいいのかどうか知らんが、
ttp://www.psnet.ne.jp/software.html#QRCODE
0210デフォルトの名無しさん
NGNGあ!そんな感じのがあるんですね。
情報サンクス!
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGInitInheritedComponent がそうだよ。
で、そこから
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG2chには書き込まない人
0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNGそれはないな。2ch で答えだけつけてる人。って方が正確では?
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG0223116
NGNGDelphi を使わないくらい使い込んだ人
0224デフォルトの名無しさん
NGNGpcode氏って誰? 中間コード?
0225デフォルトの名無しさん
NGNGで、検索汁「
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG俺は「技術的には」尊敬してる。
0228デフォルトの名無しさん
NGNG具体的にどの部分の技術。あんまり具体的な技術を示してないような
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNGMLでやったから目立つだけで、内容はただの2ch風煽り
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNGつまり、以前 ML に煽りのすごいひとがいた、と。でもそれはいまからみると、並程度と。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNG団結しないから最近は閑散としてるの?
0241デフォルトの名無しさん
NGNG今のMLで復活したら、活性化されて面白くなりそう
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGってよく言ったものだ
0245デフォルトの名無しさん
NGNGただの技術ありそうな電波。天才は無関係。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG248 が一番渦巻いてるがな
0250明日の朝礼スピーチのネタにどうぞ
NGNG五味とは甘い、辛い、酸っぱい、苦い、塩辛い
五色とは赤、白、緑、黄、黒
五法とは生、煮る、焼く、揚げる、蒸す
さて、人間にも ゴミ がありまして、それは、
そねみ,ねたみ,うらやみ,やっかみ,ひがみ
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGUmamiは?
0253デフォルトの名無しさん
NGNGWindows 2003 serverにMultilingual Interface Pack日本語を被せて、
Delphiで作成したアプリを実行しました。
メニューやポップアップメニューで、
ショートカットキー(ファイル&Fの"&F"みたいなやつ)付けてないキャプションの
先頭文字が化けまつ。
どうすれば対処出来るんでしょう。
0254デフォルトの名無しさん
NGNG0255253
NGNGAutoHotkeysがフォントを間違ってHotkeysを付けてるということですか。
Windowsが間違えてるのか、VCLが間違えてるのか、日本語として処理されてないということかぁ。
0256デフォルトの名無しさん
NGNGですね。とんでもないところに & を自動挿入しているのでしょう。
ユーザーロケールとシステムロケールは何をお使い?
あと Delphi のバージョンは?
0257デフォルトの名無しさん
NGNGちょっと躓いた部分があったのでMLログを見てたらpcode氏のサンプル
がありました
pcode氏のサンプルはすごいなって思ったり
職業delphi使いって感じがして
復活して欲しいな
0258デフォルトの名無しさん
NGNG番号をおしえてください。
0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG上級者なんていないだろ。いても来ないし。
自称上級者なんてこんなもの。
0263デフォルトの名無しさん
NGNGconstructor 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デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNGどっちにしても国際化対応するなら、対応国決めてしまうから、あんまり意味ないんだろうな・・・
0266デフォルトの名無しさん
NGNG国旗アイコンメニュー無いですか?
アイコンだけでもあれば自作だけど。
0267デフォルトの名無しさん
NGNGつまり国に著作権があります。
ですので勝手に使うことは出来ません。
各国に許可を取りましょう。きっとそのときアイコンも入手できるはずです。
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNG外務省ホームページ(日本語)-世界の国旗-
http://www.mofa.go.jp/mofaj/world/kokki/index.html
0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNGTIPSだとかFAQレベルってのは、そのまんま使い回してるでしょ?
上級じゃない書き込みでスマンが、純粋に疑問なので。
0273デフォルトの名無しさん
NGNGコードサンプルとして置いてあったりするものは自由
ソフトウェアの根幹に関わる部分が他人が書いたコードならパクり
0274272
NGNGうーん。そんな感じだよね。
自由かどうかはちょっと分からないけど(まぁ、断ることはしないだろうから、
結局同じではあるが…)。
※関係無いけど、某所での注釈「(この文章を)PCに無断で保存することを
禁ずる」みたいなことが書いてあったのにはビックリした。
保存もダメかよ!
転載なんてのは言語道断だが、保存くれー許してもいいんじゃないかと思った。
0275デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG保存されたくなかったらわざわざネットで公開するなよ、て言ってやれ。
0278デフォルトの名無しさん
NGNGって屁理屈こねてやれ
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNGまったく同感。公開したHPの内容について著作権を主張するのは当たり前だとしても
リンクする場所の制限したり、印刷するな、とか、コピーするな、保存するな、とか
を主張するなら、そもそも公開するな、と言いたくなる。
0281デフォルトの名無しさん
NGNG一応シェアウェアとしてvectorなんかに登録してるし
真面目にお金払ってる人もいると思うから。
そういう人へのケアの意味で、
建前だけでも保存禁止にしておかないと、という考えなんじゃないのかな。
0282デフォルトの名無しさん
NGNGこれDLしたことないんだけど、内容は公開してるHPのと同じなの?
だとしたら、シェアウェアにしたこと自体が間違いでしょう。
0283デフォルトの名無しさん
NGNGhttp://search.vector.co.jp/search?query=%94L%82%C5%82%E0
内容は古いけど、更新したら差分メールが来るみたいよ。
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG意味無いことを堂々と書いてるのが不思議。
「はい!保存しません!」って人がどのくらいいるのか。
本気で書いてるのかなぁ?
0287デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNGDUnit を導入し使い方は、だいたいわかってきました。
やっぱり具体例がないとどう応用していいのかわからないので、
データベースプログラム(できれば売上管理ソフト)のテストにDUnit
使った例があったら教えてください。
(まぁ、2つほど前のスレで、DUnitに関する質問で、
いっこうにレスがつかなかったので、
このスレの住人はあまりDUnitに関心がないようですが・・・)
0294デフォルトの名無しさん
NGNG>あまりDUnitに関心がないようですが・
んなことないけど。
ただ、DUnit は魔法のツールではないから。単なるテスト。
テスト内容はアプリによって異なるし、人によっても異なる。
応用ではなく、ツール/部品としてみなすべきで、そのためには何をテストするのか
使う人(コードを書いている人)がはっきり認識していないとね
0295デフォルトの名無しさん
NGNGによると次期 IDE は NUnit/DUnit を統合するそうだ。
0296デフォルトの名無しさん
NGNGxUnitは関数・手続き・メソッドレベルのテストであって
データベースには使かないような。
こうあるべきというデータベースを用意して
処理後のデータベースと比較するテストをすればいいんじゃないの。
0297デフォルトの名無しさん
NGNGType 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デフォルトの名無しさん
NGNGselect Type,Name from テーブル where No=1
のアヤマリでした。すいません。
0299デフォルトの名無しさん
NGNGこんな感じでどうかな?
select x.Type, count(*), y.Name from テーブル x, テーブル y
where x.Type = y.Type and y."No"=1
group by x.Type, y.Name
0300297
NGNGfrom句に同じテーブル2回かけるんですねぇ・・・。
知りませんでした。勉強になりました。
ありがとうございました。
0301デフォルトの名無しさん
NGNGというフィールドがあるテーブルで、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デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG質問がある人は中級スレに書くがよろしい。
ここは人がいない。
0304デフォルトの名無しさん
NGNG低級者にはこのスレの意義が分からないだろ。中級スレへお帰り
上級者は5人しかいないんだよ。
0305デフォルトの名無しさん
NGNGヽ(`Д´)ノウワァァン
0306デフォルトの名無しさん
NGNG自分の言ってることが、可笑しいことに
気づいてないんだろうか・・・。
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG中級者スレが1000いったのでage
0309デフォルトの名無しさん
NGNG0310age
NGNG0311デフォルトの名無しさん
NGNGもうすぐジリ貧であぼーん
0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNG共産党員をなめるなよ。ゲパルトかけられるぞ。
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNGそしてナチスは反共。
0317デフォルトの名無しさん
NGNGインターネットオプションの設定内容を取得したいのですけど
どうすればいいか解りますか?
Netを漁ってみたがうまくhitしないもんで・・・
知りたいのはプロキシ情報なんですけど。
0318デフォルトの名無しさん
NGNG単にプロキシの設定を利用して接続するだけならWinInetのオプション指定するだけなんだけど。
0319デフォルトの名無しさん
NGNG同じ設定で動かしたいんです・・・
設定すれば動くようにはできてるんですが、
環境に左右されたくないもので。
0320デフォルトの名無しさん
NGNG319では環境とは無関係に独自のプロキシを設定したいといっていて
よく分からないんだけど
システムの情報を取るだけなら
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
のProxyServerあたり
0321デフォルトの名無しさん
NGNGすいません、わかりづらかったですね。
作っているアプリの環境設定にプロキシの項目があります。
自前で情報をもつのではなく、IEで使っている(インターネットオプションの設定内容)
で動作させたいのです。
0322デフォルトの名無しさん
NGNGレジストリに情報ありました。ありがとう。
0323上級者
NGNG0324デフォルトの名無しさん
NGNGListViewの上の部分にでてくるTHeaderControlのような部分について
各ヘッダーがおかれている場所の座標を取ることはできないでしょうか?
ちょっと説明しにくいのですがTHeaderContorlにてできる
R.left := HeaderCtrl.Sections.Items[3].Left+3;
R.right := HeaderCtrl.Sections.Items[3].Right-5;
のような情報をTListViewで取得したいのです。
よろしくお願いいたします
0325デフォルトの名無しさん
NGNGΣColumns[i].Width でいいと思う
i=0
0327デフォルトの名無しさん
NGNGThx、やはり手計算しかないのか…
0328デフォルトの名無しさん
NGNGTHeaderControl も内部でそうやって計算してるみたいだけど。
高さも必要なら↓
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なるほどなるほど
どうもありがとうございます!
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNGQuickReport で罫線はマンドクさいし、LightReport は使い方が
よくわかんねぇよ!!
でも、仕事でやるハメになってしまいました(ハァ)
言語は Delphi6 です。
0333お願い 教えて
NGNGどの電話番号宛てなのかをPC画面上に
表示してくれる「CTI」システムのような
ソフトは作れるでしょうか?
0334デフォルトの名無しさん
NGNG上級者向けの質問がくるんだ?
0335デフォルトの名無しさん
NGNG思っているのかね。
0336デフォルトの名無しさん
NGNGTComboBox(csDropDown)の高さ(Height)を変える方法をお願いします。
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNGつまり>328は上級者でも>330-338は上級者とは限らない
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNGWin2kを使い始めた頃からそういう意識はなくなりました。
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG思想って(笑)
0344デフォルトの名無しさん
NGNGでは上級者向けの質問を。
海の水はどうしてですか?
0345デフォルトの名無しさん
NGNG空が青いから
0346デフォルトの名無しさん
NGNG海水浴客の汗から塩分が出てるから
0347デフォルトの名無しさん
NGNG俺は334では無いが、その質問は、フォントのサイズを変える、なんて回答でもいいのか?
0348デフォルトの名無しさん
NGNGTECN-20811
0349デフォルトの名無しさん
NGNGフォントを維持したいなら多分次の手順でいけると思う。
元のフォントを複製する。
フォントのサイズを変える。
編集部分のフォントを戻すために EditHandle に WM_SETFONT を送る。
リスト部分をオーナー描画できるようにするため GetWindowLong で
ウィンドウスタイルに CBS_OWNERDRAWFIXED を加える。
WindowProc を付け替えてサブクラス化する。
新しいウィンドウプロシージャで CN_MEASUREITEM と CN_DRAWITEM を
処理してリスト部分を元のフォントで描画する。
フォームの直下に乗っていれば WM_MEASUREITEM と WM_DRAWITEM が
フォームの WndProc を回るのでサブクラス化する必要はない。
0350デフォルトの名無しさん
NGNG○SetWindowLong
0351デフォルトの名無しさん
NGNG使いこなしてる方はいないってことはわかりました。
0352デフォルトの名無しさん
NGNG仕事に必要で付属やフリーのレポートツールに満足できなきゃ商用のレポートツール買うしかないでしょ。
使いこなしてるとかの問題じゃない。
0353デフォルトの名無しさん
NGNGここまで日本語読めない人ひさしぶりに見た。
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG他のアプリがどういうふうにその情報を記憶してるのか
わからないと答えようが無いじゃん。
0356デフォルトの名無しさん
NGNG分からないなら黙っててください。レスが流れてしまうので迷惑です。
0357デフォルトの名無しさん
NGNG他のアプリがどういうふうにその情報を記憶してるのかわからないと答えようがありません。
一般的には無理。
0358デフォルトの名無しさん
NGNG分からないなら黙っててください。レスが流れてしまうので迷惑です。
0359デフォルトの名無しさん
NGNG他のアプリが印刷した情報を書き出したファイルを読み込めばいいじゃん
0360デフォルトの名無しさん
NGNG分からないなら黙っててください。レスが流れてしまうので迷惑です。
0361デフォルトの名無しさん
NGNGスキャナで取り込む
0363デフォルトの名無しさん
NGNG0364ななしへたぐらま ◆XcB18Bks.Y
NGNG0365デフォルトの名無しさん
NGNGしかたない、答えてやろう。
プリンターポートを常に監視してデータがきたらそのデータを読み取ってプリンターエミュレーターでも作って
その中で印刷枚数を数えればよい。
汎用性?しらん
0366354
NGNGスプーラーの情報には印刷枚数があるので、
これを何とか取得できないかと思いましたので・・・
メッセンジャーのポップアップのテキストから印字バイト数を
取得するのはできたのですが、これから枚数を予想するのは
無理がありますし・・・。
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自前のルーチンをはさむようにして、そこで改頁の数を数えるというのは?
0369デフォルトの名無しさん
NGNG0370354
NGNG私の力では、そこまでは、とても・・・;;
0371デフォルトの名無しさん
NGNG開いたエクスプローラの SysListView32 から取り出したらどうですか。
0372354
NGNGそれが、アイコンは一瞬で消えるので、うまくいくかどうか・・・
0373デフォルトの名無しさん
NGNG0374354
NGNG0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG0377376
NGNG注意しなければいけないのは、アプリが何枚出したかったのか、ではなくプリンタ側が
受け取ったページの量しか取れない。ほとんどの場合一致するが。
それと Win9x 系と NT 系、および XP 以前と以降で API や通告メッセージの仕様が変わっている。
この部分はアプリより OS よりの機能のため、OS ごとに微妙に動作が異なる。
既存のすべての OS で動かそうとするには結構努力が必要なのでがんばること。
0378376
NGNGWindows ではまず考えなくても良いだろうから NT でのスプーラーサービスのことを考えます。
98 のことはあとで自分で調べてくれ。
NT のスプーラーは system32 の sppolss.dll (スプールサービス?) と spoolsv.exe の組で
動いています。こいつらがスプーラーの本体。
プリンタ情報ウィンドウはこれらから情報を取得して表示しているだけだ。
0379376
NGNG誰かがプリントジョブを追加するとこのメッセージがやってきますから、EnumJobs で新しい
印刷ジョブを見つけ、その情報を取得。
0380354
NGNGWM_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デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG「全く」に引っかかるな・・・
0383デフォルトの名無しさん
NGNG0384354
NGNG印刷枚数の取得ができるようになりました。ありがとうございました。
http://www.delphi3000.com/articles/article_1699.asp
http://tew.nease.net/w26.html
0385デフォルトの名無しさん
NGNGtype
TIntArray = array[0..0] of integer;
PIntArray = ^TIntArray;
とかやるのって問題ある?
0386デフォルトの名無しさん
NGNG初心者用へいらっしゃい。
0387デフォルトの名無しさん
NGNG問題ない、むしろ動的配列が実装される前は、それが普通のテクニックだった
…が、{$R+}状態も考慮するなら、
array[0..High(Integer) div SizeOf(Integer)] of Integer
とかのほうがいいかな
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
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デフォルトの名無しさん
NGNGage
0395デフォルトの名無しさん
NGNGBitmapImg: array [0..30] of TBitmap;
上記の配列をfor文でCreate()し、その後、for文でループさせて
30枚の24ビットのビットマップ画像を読み込んでいるのですが
何故かWindows98/Meで実行するとPCがフリーズしてしまいます。
Windows2000/XPでは正常に動作します。
TBitmapを普通に使っているだけなので、何処に問題があるのか
分かりません。ステップ実行で追ってみたのですが
LoadFromFile()で読み込んでいる最中にPCがフリーズしてしまい
例外も拾えません。
何か情報ありましたらアドバイスお願いします。
0396デフォルトの名無しさん
NGNG30枚程度でというのは、少々考え難いけど。
リソースモニタを表示しながら、もう一回
トレースしてみて。
ついでに、ビットマップのサイズは?
0397デフォルトの名無しさん
NGNG0398395
NGNGトレースしようにもいきなり
フリーズしてしまうので、出来なさそうです。
フリーズするタイミングですが、必ずfor文の2ループ目に
この現象が起こります。
>>397
画像サイズに関して色々と試してみたのですが
1枚あたり5KBの画像でも、1枚あたり200KBの画像でも
必ず同じ場所(for文2ループ目)でフリーズしてしまいます。
0399デフォルトの名無しさん
NGNG0400395
NGNGGDIリソース見てみました。
大体59%くらい残っているのですが
いきなりPCがフリーズします。
試しに8ビットのビットマップにしてみたら
フリーズせずに無事読めるようになりました。
しかし、使いたいのは24ビット画像なので
原因が分からないのは非常に困ります…
0401デフォルトの名無しさん
NGNGBitmapImg: 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お答えしていただける方お思いこちらへと移動してまいりました
ある画像(bmp)ファイルを入力し その画像の中から新円もしくは楕円に近い軌跡を描く線のみを抽出して
別画像ファイルとして 出力するということを考えているのですが
その画像ファイル内には他にも多くの直線部分や、塗りつぶし部分などが含まれているため
曲線部分のみの抽出方法をどうしたらいいのか悩んでおります。
http://www.eyescan.tv/images/me001.jpg
たとえばこのような画像を入力した場合ある程度のフィルタ処理をした後
データ-ベース上にある登録された個人との 照合をしある程度以上の適合率が出た場合は
OKサインを出すといった手法で考えております。
ファイルタ処理は完全に白黒レベルまで虹彩と書いてある目の外側にある放射線状に延びている多くの線は残した状態にまで
フィルタをかけデータベース上にある画像ファイルの一番外側の楕円軌道と入力画像の大外の楕円軌道が一致するよう
拡大縮小処理をした後にその2画像の適合率のようなものを出したいと考えています。
上記のような入力画像ファイルの中から曲線部分の抽出することを考えた場合どのような手法が考えられるでしょうか?
0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNG他の言語にはめっぽう疎いものでこちらで質問させていただいたのですが
他の言語を組みこむ?という形になるのでしょうか?
そういう場合はどういった流れらになるのか教えていただけないでしょうか?
0405デフォルトの名無しさん
NGNGで30枚と言ってるのが怪しい。
他にも勘違いがあるのでは?
2ループ目って事は、i1=1の時?
0406デフォルトの名無しさん
NGNGできるです。でも質問の内容は、それ以前のアルゴリズム的な内容かと。
0407デフォルトの名無しさん
NGNGなぜここに書くかなぁ…
0409デフォルトの名無しさん
NGNG最近のエクスプローラのように、"ツールバーを固定する"ことは、
Coolbarを使って簡単にはできないのでしょうか?
0410デフォルトの名無しさん
NGNGFixedOrder
0411デフォルトの名無しさん
NGNGウィンドウズを巻き込んでクラッシュするなら、
ポインタや添え字のミスでスタックやヒープを壊しているか、
初期化忘れやFreeした後のオブジェクトを操作している気がするな。
0412409
NGNGうーん。それは順番が変更できないだけ..
SendMessageでスタイルを設定すればできそうなのはわかりましたが、
ちょっと試しただけじゃ動かないなぁ。
シェブロンも対応大変そうだし、素直にToolBar2000かなにか試してみるかな。
0413デフォルトの名無しさん
NGNG何か方法はありませんか?
Application.ExeNameでは'DELPHI32.EXE'が返ってきてしまいます。
どなたか知恵をお貸しください。
0414デフォルトの名無しさん
NGNGファイル名じゃなくて何を知りたい?
0415デフォルトの名無しさん
NGNGあ、もしかして
Paramstr(0)
のこと?
0416デフォルトの名無しさん
NGNGOpenToolsApiとか使えばいいんじゃないの
0417デフォルトの名無しさん
NGNGまだセーブしてないかもしれないし、コンパイルさえ一度もしてないかもしれないし
設計時に実行ファイル名を知る必要なんか思いつかないが。
0418デフォルトの名無しさん
NGNGプロジェクトの設定とプロジェクトファイルのパスが取得できれば分かるだろ。
0419デフォルトの名無しさん
NGNGだからセーブする前にそのコンポ貼り付けたらどうするのよ?
0420デフォルトの名無しさん
NGNGproject1.exeかな?
0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNGなぁ、>>413 は何がしたくて、設計時にまだないかもしれない実行ファイル名が
知りたいの?
0423デフォルトの名無しさん
NGNG>>413 は知らないのでは?
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNG( ´∀`)< >>425 オマエモナー
( ) \_____
| | |
(__)_)
0427デフォルトの名無しさん
NGNG設計時にコンポーネントを貼り付けて、
オブジェクトインスペクタでファイルバージョン等を
管理をしたかったんです。
コンパイル後の設計画面でもかまいません。
0428デフォルトの名無しさん
NGNG外部ツールで.resファイル編集しとけ。
0429sage
NGNG取得して、いろいろやってみたかったんです。
無理っぽいので挫折します。
0430デフォルトの名無しさん
NGNG1.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メール作成画面を開くにはどうしたらいいですか?
MAPIに対応したメーラーに対しては、そういったことが可能らしいのですが・・・
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNGC言語で書かれたプログラムをユニットとしてDelphiに組み入れる
ことは可能なのでしょうか?
それとも、おとなしくDelphiに書き換えなければならないのでしょうか?
0435デフォルトの名無しさん
NGNGJpeg.pas はそうやってリンクしてるよ。
0436デフォルトの名無しさん
NGNGやっぱ、宣言は__fastcallとか、引数に使えるものとか決まってんだよね。
詳細はどこに記載されてまつか?
0437デフォルトの名無しさん
NGNG良いサンプルないかな?DLLを作る必要があるようなんだけど。
それらしいものがsampleフォルダにあったり、Webにもあったりしたけど、
どれもエラーが起きたり、まともに動かなかった…
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGヘルプのキーワード 'external 宣言' の 'オブジェクトファイルのリンク'
かなり不親切な説明しかないけど、実際には次のような感じ。
interface 部にインポートする関数の宣言を書く。
これは C++ 側で宣言されたものをそのまま Delphi 言語に翻訳する。
特に呼び出し規約に注意すること。
指定なし → 普通は cdecl
__fastcall → register
__stdcall, WINAPI, PASCAL → stdcall
implementation 部の冒頭に {$L ファイル名.obj} を入れる。
各関数の実装部は begin 〜 end; の代わりに external; と書く。
0440デフォルトの名無しさん
NGNG解らない。
C++Builder ver 1 は大丈夫だったから、
それより新しいC++コンパイラなら大丈夫だと思う。
0441デフォルトの名無しさん
NGNG呼び出したフォームの中央に表示したいのですけどどうやればいいのか教えてください。
呼び出され側のPositionプロパティはpoOwnerFormCenterにしてあります
メインフォームから呼ばれたときはちゃんと中央に表示されます・・・
その他のフォームから呼び出してもメインフォームの中央になってしまします。
Owner?を指定すればいいようなのですが・・・やり方がわかりません。
そもそも、フォームのOwnerはいつきまるのでしょう?
0442デフォルトの名無しさん
NGNGPosition は poDesigned にしておいて Show を呼ぶ前に
Left と Top を設定する。
Owner はコンストラクタ Create の引数 AOwner で決まる。
自動作成の場合は Application グローバル変数。
0443デフォルトの名無しさん
NGNGありがとうです、やはり poDesigned で位置指定ですか・・・
0444デフォルトの名無しさん
NGNGPopUpMenu を表示した親を知りたいのですがどうすればいいですか?
PopUpMenu のイベント(Click)で親コンポーネントのTAGの情報を知りたいのです。
(Sender as TComponent).Owner.??? で取得してもフォームの情報のようです・・・
同じPopUpMenu を複数のコンポーネントで使いたいのです。
0445デフォルトの名無しさん
NGNGAutoPopup で開いた場合は PopupComponent。
コードで開く場合は、PopupComponent を設定してから Popup を呼べばいい。
Owner は単にコンポーネントを解放するコンポーネント。
Create でコンポーネントを作成すると AOwner の Components の List に
作成したコンポーネントが追加される。
Owner が廃棄されると List が廃棄され、その項目も廃棄される。
0446デフォルトの名無しさん
NGNGTMenuItem からなら GetParentMenu を呼んでメニューを取得。
それが TPopupMenu なら、その PopupComponent プロパティを見る。
0447デフォルトの名無しさん
NGNGうまくいきました。ありがとう。
0448デフォルトの名無しさん
NGNG最近の上級者ってレベル低いんですねぇ。
0449デフォルトの名無しさん
NGNGいまはここを埋めようとしてるんじゃ無かったっけ?
中・低級者もここを使えっていってなかったか?
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG子ウィンドウをタスクバーに表示することはCreateParamsをoverride
することで対応できたのですが・・・
メインのウインドウに対応するタスクバーをクリックしても
子ウィンドウが反応してしまい、メインをアクティブできませんどうしたら
良いのか教えて下さい。
0452デフォルトの名無しさん
NGNG親子関係にあるとそうなってしまう希ガス
兄弟関係じゃあかんの?
0453デフォルトの名無しさん
NGNGメインのウィンドウに対応するタスクバーは Application でしょ。
Application.MainForm が本当にメインのウィンドウに対応しているか
どうか確認してみたら?
0454デフォルトの名無しさん
NGNG兄弟でもいいけど・・・それって親もCreateParamsをoverrideということでしょうか?
そうすると、親の表示が2つになってしまう・・・(消し方が解りません)
0455デフォルトの名無しさん
NGNGたぶん違っていると思う、確認してみます。
変更できればいいんだけど・・・
0456デフォルトの名無しさん
NGNG>バージョン情報ダイアログか起動時のスプラッシュダイアログ、
>またはドキュメントに以下の著作権表記を表示してください。
が必要でつか?
ttp://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BIndy%2FFAQ%5D%5D#content_1_5
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNGFormActivate で Application.MainForm.Handl 確認してみましたが同じ値でした。
仕方がないので、親もCreateParamsをoverrideして
表示しているウィンドウ+1の状態にしています・・・
どなたか解決の方法を知りませんか?
0459デフォルトの名無しさん
NGNGタスクバーから Application ウィンドウを消して不都合なく動作させるのは大変。
MLでたくさん議論されている。
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNGaa\bb\c.txt
aa\bb\d.txt
aa\ee\f.txt
aa\ee\gg\h.txt
↑このような感じの任意のフォルダを起点としたファイル名が記載されたテキストがあります。
で、このテキストを読み込んで、このツリー構造をTTreeViewとTListViewで表現したいと思ってます。
テキストはもちろん読み込めるんですが、その後のツリー構造の解析と、それをTTreeViewとTListViewに
落とし込む方法がわかりません。どなたかご教授ください。お願いします。
0462デフォルトの名無しさん
NGNGどこでつまってるかを書きなさい。それとも丸投げしたいのか?
0463A
NGNG初心者が妄想してみました。
テキストのフルパスを得る。
フルパスから任意のフォルダまでのパスを削除。
残りを、\ ごとに分解して、順番にツリーに登録していく。
もしすでに登録済みだった場合は、登録せずにノードを移動するだけ。
パスの最後まで繰り返す。
これを、全部のファイル分繰り返す。
こんな感じでどうかと。初心者が思いついた妄想なので、実際に正しく動くかどうかは
わかりません。もっといい方法があるかも、しれません。
0464デフォルトの名無しさん
NGNG普通に複数ウインドを表示していて切り替えたいだけなんですが・・・
画面サイズいっぱいのウインドが一つあるので、他のは下になるから。
0465デフォルトの名無しさん
NGNGすみません。ほとんど自分は初心者なんですが、
まず、あとから使いやすいように、ツリー構造をメモリに読み込んでおくんだと思うんですが、
そのツリー構造をどのように保存しておけばいいかわかりません。
ツリーの解析と、それを何型に保存するのか、がわかりません。よろしくどうぞ。
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNG>>113
ja_winxp_sp2.iso
CRC16:6A0B
CRC32:FFFFFFFF
MD5:35CB1233E6D8C6B7630A216B6AA75892
CRC32がオールFすげぇ…
0468デフォルトの名無しさん
NGNGお薦めの delphi MLを教えていただけませんか?
0469デフォルトの名無しさん
NGNG末尾にゴミ埋めたりすればCRC32を自由に操作するのは簡単だよね。
MD5だと一部を除き難しいんだけどね。
0470デフォルトの名無しさん
NGNG覚えやすいからか?
0471A
NGNG>463は読んでない?( つД`)
というか、461=465 でいいんだよね? それを前提に書くけど…
>まず、あとから使いやすいように、ツリー構造をメモリに読み込んでおくんだと思うんですが、
これってどういう意味…?
読み込んでおくんだと思う、って、誰が何を…?
>そのツリー構造をどのように保存しておけばいいかわかりません。
>ツリーの解析と、それを何型に保存するのか、がわかりません。よろしくどうぞ。
ファイルにツリー構造を保存したい、ってことだよね?
ファイルに保存するための決まった形式ってのは無いと思うから、
自分が使いたいだけなら、自分で使いやすいように好きに決めていいと思うよ。
ツリーの構造だけを保存したいのなら、>461に書いてある、\で区切られた文字列の列を
テキストで書き出すだけでも保存できる。
それを読み込むのは>463の手順で、書き出すのは、ツリーを辿りながら、テキストに変換。
ツリー構造を辿るには、「再帰」ってのを使うと簡単にできるようになる。
0472デフォルトの名無しさん
NGNGHow 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デフォルトの名無しさん
NGNGttp://www.asahi-net.or.jp/~HA3T-NKMR/tips025.htm
0474デフォルトの名無しさん
NGNGありがとう、試してないけどメイン非表示で最初のウインドを表示すればいいのか・・・
なんか、コロンブスの・・・かなぁ
0475デフォルトの名無しさん
NGNGいや、このTipsはけっこう巧妙にできてるよ。VCLのForm間の関係と
Windowsの作法に精通してないと、こうは書けないものだよ
0476デフォルトの名無しさん
NGNGTTreeView 自体が TreeNodes プロパティにツリー構造を
持ってるので、わざわざ実装しなくてもいい。
TListView との連携は TTreeNode にある Data プロパティを
活用するといい。Data は Pointer だけど任意のオブジェクトを
入れることもできるので、TreeView の選択を変更するたびに
ListView の状態をそのオブジェクトに保存/復元をする。
ファイル名だけなら保存先は TStringList あたりでいいと思う。
TListItem の方にも Data プロパティがあるので、これもうまく
利用すると相互に関連づけを行うことができる。
ただし、動的に生成したオブジェクトはちゃんと廃棄すること。
0477デフォルトの名無しさん
NGNG>Windowsの作法に精通してないと、こうは書けないものだよ
俺が書けるかと言われれば・・・だけど、メインを消してしまえという発送が・・・
0478デフォルトの名無しさん
NGNGDelphi の VCLアプリで、複数のフォームがある場合、MainForm だけを特別
扱いしているんです。ですから、すべてのフォームを同等に扱うためには、まず、
MainForm だけを使わないようにしよう、というのはかなり自然な発想だと思うよ。
0479デフォルトの名無しさん
NGNGただ単にツリーを保存するだけならTTreeViewのSaveToFileもあるよ
0480デフォルトの名無しさん
NGNGVCLオブジェクトにアクセスする時はSynchronizeメソッドで同期をとってからアクセ
スしたほうが安全です。
って聞いたんですけど、これって本当にそうなのですか?
TThreadから派生したクラス内で動的に確保したTList等にアクセスするのにもSynchronizeメソッド
を利用しないといけないのですか?
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNGそのTListのインスタンスが自分で生成したもので、
なおかつTThreadから派生したクラスがアクセスするのと同時に
メインスレッドからアクセスしないことを保証できるならSynchronizeなしでもアクセス可能。
0483デフォルトの名無しさん
NGNGこういう場合は、アクセス可能というより、Synchronizeなしの方がいいでしょ。
0484デフォルトの名無しさん
NGNGDelphiでCADソフトを作りたいのですが
.DWG .DFX .JWC 等々のファイルフォーマットの形式を
詳しく解説しているサイトなど、ご存じの方又はCADソフトの開発に携わった方いらっしゃいましたら
ご教授頂けないでしょうか?
0485デフォルトの名無しさん
NGNG0486484
NGNGビジネスsoftの所ですかね・・・
0487デフォルトの名無しさん
NGNG苦労したし、二度とやりたくない。その時は知り合いが「CADユーザーのためのDXF
リファレンス・ガイド」という本を持ってたので借りてきたけどもう売ってないし、
それの改訂版すら完売らしい。
ってDFX?そいつぁしらねーな。
0488デフォルトの名無しさん
NGNGStoreFileイベントに
VStream := TFileStream.Create(AFileName, fmCreate or fmShareDenyNone);
でファイルを受信しているのですが、
2,147,483,647Byte(2GB)以上のサイズのファイルを受信しようとすると強制的に転送が終了します。
この問題を回避する方法は無いでしょうか?
むろん他のFTPServerでは正常にファイルが受信できる事を確認済みです。
Indyのソースを見るとsizeやseekをintegerで操作しているので
このあたりがあやしいと思うのですが…
0489デフォルトの名無しさん
NGNGヘルプより
Integer の範囲 -2147483648..2147483647 形式 符号付き 32 ビット
だから桁あふれして一気にマイナス最大値に突入してるんじゃないの
2GB以上は無理な感じだね
0490デフォルトの名無しさん
NGNGDWGは知らないが、DXFやJWCはそれぞれ詳しく書かれた書籍がある。
DXFに関しては海外のサイトでDelphiのサンプルコードだったか、コンポだったか忘れたが
以前落とした記憶がある。
DXFの古いバージョンならテキストエディッタで開いて見たらすぐ理解できるだろ。
自分も遊びでCAD作ったりしてみたが、この手の情報はネットには少ない。
SFXのように仕様をちゃんと公開してくれるといいんだけどね。
0491デフォルトの名無しさん
NGNGものすごく手抜きになるし、勉強にならないかもしれないけど、
単にCADアプリケーションを作りたいという目的のためだけなら、こんなものもある。
ttp://www.codeidea.com/html/tcad.htm
dxfにも保存できたはず。
0493デフォルトの名無しさん
NGNG早くする方法なんかないですか?
ぐぐっても、MLでもめっかんなかったーYO!!
0494デフォルトの名無しさん
NGNGIntegerをすべてCardinalに置換
0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNGNTFSでもっと欲しかったらがんがれ
Int64は素人にはおすすめできない
0497デフォルトの名無しさん
NGNG0498488
NGNG結局、Indyのソースの怪しい箇所をInt64に直して可能になりました。
ちなみに作成しているのはHDD&DVDレコーダのソフト関連で、
扱うファイルサイズは数GBになるのが当たり前だったので必要でした。
ところでInt64が素人にお勧めできない理由ってなぜでしょう?
# ソース直すときMin関数にだまされてました。
# 標準のを使っていると思ったらIndyで独自に定義してるのね
# そのせいでいつまでも出来なかったよ…
0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG0502488
NGNGそです。
東芝HDD&DVDレコ ネットdeダビング解析
ttp://hobby5.2ch.net/test/read.cgi/av/1090733687/
から来ました。
この部分は完全にプログラム板の話だと思ったので
向こうではなくここに書き込みました。
0503デフォルトの名無しさん
NGNG・遅い
・オペランドへの配慮が面倒
欠点っつったらこれくらいしか思い浮かばんな
0505デフォルトの名無しさん
NGNGまともなレスがつかなかったので、こちらで質問しなおしたいと思います。
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アプリのフォルダに入れておけばOK。優先して使われますよ
ただしinterface節を変えてはダメ、修正できるのはimplementation以下のみ
0508デフォルトの名無しさん
NGNGバイナリファイルの検索をしたいのですが、バイナリエディタで開いたときに
「4A 44 6C 23」と表示される場所の位置を調べるには、どのようにしたら
よいのでしょうか?
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNGたいして変わらない気もしないでもないけど
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNGそれは知らなかたーYO!!!
それなら気楽にトライできます。
というわけで、デバグに挑戦すます。
ありがと!
0513デフォルトの名無しさん
NGNGどのようなコードをかけばいいのですか?
0514本田
NGNG>他のプログラムに影響を与えたくないので、
>できれば、VCLソースの修正ではなく、
>アプリケーション側で対応したいのですが、
>無理でしょうか?
VCLを修正してもスタテックリンクすれば、
他のアプリケーションに影響を与えない。
0515デフォルトの名無しさん
NGNG選択行をDBへAPPEND
0516513
NGNG行追加はできるんですけどカラムのデータまでコピーされないんですけど
どうしたものか・・
0517デフォルトの名無しさん
NGNG普通にコードでコピー
0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNGBM方より速いのでは?
0520デフォルトの名無しさん
NGNGsourceforgeなんだし誰か直してウプしてよ。
自分はBCB派なんでSTLするしぃ。
0521デフォルトの名無しさん
NGNGどう直せばいいか教えてくれたらやるよ
0522デフォルトの名無しさん
NGNGttp://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BDeCal%2FInstall%5D%5D
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNGttp://www.logicnet.dk/lib/
0525デフォルトの名無しさん
NGNGありがとう、でも全く使い物になりません。
0526デフォルトの名無しさん
NGNGじゃあこれはどうだ?
ttp://www.hicomponents.com/zzimageen.asp
一応、カタログには Load and save AVI, animated GIF, multi-TIFF
とあるが。
0527デフォルトの名無しさん
NGNGたったこれだけかよ。やる気うせた(´_`)
0528デフォルトの名無しさん
NGNGさんくそ。有料だがしばらく試用してみる。
0529デフォルトの名無しさん
NGNG誰かがやらないと皆困るんじゃない?
0530デフォルトの名無しさん
NGNG数行追加だから、各自直しても特に問題ないけどね。
現在の所有者は、現状渡しに妙に拘っているし・・・
苛めの腹いせ?
0531デフォルトの名無しさん
NGNGでないとライブラリが氏滅しちゃう。
0532デフォルトの名無しさん
NGNG項目の位置のずらしかたがわかりません!どなたかお助けを!!
左から[名称][コード][区分]で表示させていたのを画面で順番を選ぶことができて
出力すると[コード][名称][区分]とかさせないといけないのです。
0533デフォルトの名無しさん
NGNGDelphi自体死滅予定だから大丈夫☆
0534デフォルトの名無しさん
NGNGお前、とっとと死滅して欲しい。
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNGボーランド
0539デフォルトの名無しさん
NGNGいちいちウザイ
0540デフォルトの名無しさん
NGNG切れないものかと
0541デフォルトの名無しさん
NGNG切れないけど、キーを変更することは出来る
レジストリのHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows NT\CurrentVersion\AeDebugの中の
UserDebuggerHotKey=0x00000000を、例えば0x00000013 に変更後・再起動
0542デフォルトの名無しさん
NGNG0543デフォルトの名無しさん
NGNG特に伝票入力に必要なグリッド系のを探してます。
教えれクリ
0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNGTEditとかいいよ。一行入力用として最も使われてる。
特に伝票入力に必要なグリッド系のではないけど。
0546デフォルトの名無しさん
NGNG有名ではないけどTStringGridなんかどうだろう。かなりお勧めだよ。
入力できるし、オーナードローもできる。
0547デフォルトの名無しさん
NGNGそれは、有名だと思います。
0548デフォルトの名無しさん
NGNG上級者に質問するスレなんだと思ってますたが・・・。
それはともかく中級者スレ復活しないかなぁ・・・。
0549デフォルトの名無しさん
NGNGTFromとかいいよ。いろいろな伝票がデザインできる。
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNGTFrom とかの詳細を語ってくれないか。はじめて聞いた、そのクラス。
0552デフォルトの名無しさん
NGNG教えてください。DelphiでPythonの埋め込みってできますか? マクロ
みたいな拡張機能をPythonで書けるようにしたいんですが。
0553デフォルトの名無しさん
NGNGhttp://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埋め込みたければ言語にはこだわらずにメジャーなの使ったほうがいいんじゃないの。
0555デフォルトの名無しさん
NGNGどこが難しかったの?
0556デフォルトの名無しさん
NGNG難しいという以前にRubyの低レベルな知識が皆無な状態で
ここからここまでを読めば埋め込みできるってドキュメントが見つからなかったから。
ついでに技術デモになるようなexeも実際に採用したフリーウェアも見当たらなかった。
0557デフォルトの名無しさん
NGNGttp://www.moriq.com/apollo/
0558デフォルトの名無しさん
NGNGWEB眺めてもApollo\Docを眺めても(だいたいApolloのヘルプなんて置いてないし)
どこから手をつけていいのかわからなかったし
簡単に行きそうな気配が微塵もしなかった。
で結局DMokeyに落ち着いた。
シンプルなヘルプを上から下まで一読してあっさり動いたよ。
0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNGここに、MemoryStream.Memory(メモリのポインタ)を代入したいんですが、
どうやったら良いですか?
0561デフォルトの名無しさん
NGNG返ってきたら MemoryStream.Memory に内容をコピーしたらいいじゃないの
0562560
NGNG2重にメモリ取りたくなくて。
0563デフォルトの名無しさん
NGNG>代入の互換性
>T1 がPChar 型またはPWideChar 型で,T2 がarray [0..n]of Char(T1 がPCharの場合)またはarray [0..n]of WideChar(T1 がPWideChar)という形式の添字がゼロから始まる文字配列である
となってますね。
0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNGarray of char<-Pointerはメモリ上の構造が異なるので渡せない。
array of charにコピーするか
可能ならメソッド側をPCharに変更するしかない。
0566デフォルトの名無しさん
NGNG>可能ならメソッド側をPCharに変更するしかない。
これにしてみます。
0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNGこれは隠れたフィールドをコンパイラ/RTL が管理しているわけだ。だからいつでも
大きさを変更でき、かつ好きなときに大きさを入手できる。
ポインタは単にメモリの一点を示すだけ。
Array of char の保持する内容をポインタで操作することはできるが
ポインタを(何もせずに)array of char として渡すことはできない。
無理して渡すと、たとえば array of char の大きさを変えようとしたときに
存在しない(隠れた)変数を参照しに行くため、結果は悲惨なことになる。
0569デフォルトの名無しさん
NGNGメソッドオーバーライドを使って引数二種類定義したら?
0570デフォルトの名無しさん
NGNGtype
ArrayChar = array[0..0] of char;
PArrayChar = ^ArrayChar;
var
Pac: PArrayChar;
begin
Pac := MemorySteam.Memory;
obj.method(Pac^);
0571デフォルトの名無しさん
NGNG0..0なんて小細工は勧めない方がいい。
0572デフォルトの名無しさん
NGNG動的配列は入りません、てエラーが出る。
array[0..10] of charなんてしとくとコンパイル通るが、
固定サイズは何だかやり難いなー。
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG>>569
の通りにしまつ。
0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNGマウスでアップまたはダウンをクリック後、他の場所(フォームとか他のコントロール)
をクリックすると勝手にクリックされてしまうという現象が発生します・・・
どうやら、既出の不具合のようですが今だに改善されていないのでしょうか?
W2K D6 Update Pack2 です。
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/browse.cgi?index=20127
で論議されてますが・・・
0578デフォルトの名無しさん
NGNGなんとなく解決、イベントの処理中にProcessMessagesを投げてたのがまずかったみたいです・・・
0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNG>なんとなく解決、イベントの処理中にProcessMessagesを投げてたのがまずかったみたいです
因果応報
0584デフォルトの名無しさん
NGNGJavaのinterfaceみたいな気分で使えないんですか?
0585デフォルトの名無しさん
NGNGできなくもないという言い方もできなくもないけど
0586デフォルトの名無しさん
NGNGデフォルトで COM のための実装クラスだけが用意されているだけでしょ?
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG言語仕様的にCOM向けにデザインされてるって意味で
COMに依存してるって意味じゃないの。
自分はJavaでは使うけどDelphiでは使う気しないな。
面倒だしなんかインターフェースごっこをしてるみたいでなんかヤダw
0589デフォルトの名無しさん
NGNG同感
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNGどこら辺が「言語仕様的にCOM向けにデザインされてる」と思うの?
0592デフォルトの名無しさん
NGNG>ただし、Javaと異なり、DelphiのインターフェースはIUnknownを継承しているため、
>TInterfacedObjectを継承しないと個別に、QueryInterface, _AddRef, _Releaseを
>実装しなければならない。
などを無批判に信じ込んでしまっている人がいるのかな?
某結城浩が、それを無駄に広めている形跡もある...
Interface を宣言すると暗黙の IUnknow が継承されるが、これも
インターフェースでしかないのだから COM に依存なんかはしていない。
TNoRefCount でもなんでも定義して使えば済む話だ。
Java と違って GC が無いから、代わりに GC 代わりの参照カウンタを実装するための
インターフェースが二本出ているだけ。
ToolsAPI なんか COM とは一切関係の無い Interface 宣言の山だぞ
0593デフォルトの名無しさん
NGNGJava,C#等で用意されている基本的なインターフェースがない(かなり貧弱)
VCL自体COM関連でしか使ってないのでインターフェースベースの設計になっていない。から拡張時に使わない。
Delphiでインターフェース使っても特に劇的に生産性が向上するわけでもない。継承ベースでもふつーにこなせる。
だから使ってない。別に役に立たないというつもりはないけどDelphi積極的に使う気がしないというだけ。
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNGinterfaceもinterfaceとTComInterfaceを分けてくれればもう少し幸せになれたって気がしないでもないけど。
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNG言語に老い先も糞もねぇだろ。
プログラマという職業が老い先短いというのは分かるが。
だいたい職業でDelってるやつなんていないし。
0598デフォルトの名無しさん
NGNGだからOSの変更により使えなくなる開発環境もあり得ます。
最近はSPで使えなくなる環境もあるようですね。
0599デフォルトの名無しさん
NGNGプラットホームに依存しない開発環境があったら教えてください。
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNG依存してるじゃねーか
0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNG言語だしw
0604デフォルトの名無しさん
NGNGmark&sweep GCを行う ライブラリって何?便利?
0605デフォルトの名無しさん
NGNG責任取れよお目ーら
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNGただVBでウイルス作れるような香具師でも
ランタイムの面倒をみる事までは出来なかったようで感染力は低い。
0608デフォルトの名無しさん
NGNG0609デフォルトの名無しさん
NGNG0610デフォルトの名無しさん
NGNGスレ違いでは?
0611デフォルトの名無しさん
NGNGC++のSTLの std::sortよりも高速なソートをDelphiで
実装できますか?
0612デフォルトの名無しさん
NGNG高速なソートってのはデータにも依るから、データの傾向を調べてあわせれば
汎用であるstd::sortには勝てるんじゃないか?
0613デフォルトの名無しさん
NGNG逆に何で実装できないと思うの?
0614デフォルトの名無しさん
NGNG勝てるなら実際に教えてください
0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNG>>621
大小関係を維持したままハッシュ値を求められればいいね。
0623デフォルトの名無しさん
NGNG>大小関係を維持したままハッシュ値
の求め方を考えてくれよぉ
でまぁ stl にしろ、汎用性と性能は衝突することがあるので、要注意。
stl だと(というか stl の目的は)アルゴリズムを取り替えられるので
使う人がいろいろ選択できる点は良いです。
その代わり stl のコードは読みやすいものではないし、不必要なコードも
大量に生成される。
0624デフォルトの名無しさん
NGNG人のせいにするな
0625デフォルトの名無しさん
NGNGだったら限りなく等しいデータでいいよ
0626デフォルトの名無しさん
NGNGなんじゃそら。
大体ソート済み、とか、逆順になっている事が多い、とか、ランダム並びが多い、とか、
全データ量が膨大、とか、入れ換えより比較に時間がかかる、とか、
そういうところを見るんじゃないのか?
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNG逆写像はバケットに比べて勝ってる所が全くない使い道0ソートです。
0629デフォルトの名無しさん
NGNGクライアント側が指示を出すとサーバが指示を受けて動作するような感じのです。
//Client側
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText('01');
end;
SendText以外に
・MessageDlgのような任意のダイアログを出す場合
・その他の指示を出す場合
の記述の例を書いていただけませんか?
とても勝手なのですが是非お願いします。
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG台風ですが釣れますか?
0632デフォルトの名無しさん
NGNG実数は途中までクイックソートで残りを挿入ソートで仕上げるのはどうかな。
ところで、分布数えソートって最速なの?
0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNGvar
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分布数えソートの方が4〜5倍速い。
0637デフォルトの名無しさん
NGNGバケットソートと呼べ
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNGフォームに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デフォルトの名無しさん
NGNGClientSocketのHostプロパティに無効なURLを入力すると
OnErrorイベントが発生しないで
「'ASync Lookup' APIでWindows ソケットエラー:そのようなホストは不明です。(11001)」
というメッセージが表示されちゃうのはなんとかできないのでしょうか?
0642デフォルトの名無しさん
NGNG0643ななしへたぐらま ◆XcB18Bks.Y
NGNGおい〜,あるスレで回答がもらえなかったらほかのスレで尋ねる前に
「レスがないようなのでほかのスレで尋ねてみます」とか一言断わろう.
…と!いうわけで!くだすれの方でレスつけたのでご覧下さい.
0644641
NGNG0645デフォルトの名無しさん
NGNGTMemoryStreamとかで動的に取得しているメモリー容量まで取得したいのですが方法がわかりません
どなたか、解りませんか?
0646デフォルトの名無しさん
NGNG仮想メモリサイズ ってのがあるのか・・・
これはどうやれば取得できるのだろう?
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG↓
『うほっ!いいPDF
http://www.impress.co.jp/ebook/title/263-1.html 』
0649デフォルトの名無しさん
NGNG申し訳ありませんがこちらでも質問させて下さい
サイズ変更可能なタイトルバーなしのフォームを作りたく思い、
検索してサンプルなども見つかって動作するのですが、不満な点があります。
探したところCreateParamsをoverrideしてWS_THICKFRAMEを指定してあげる方法しか
見つからなかったのですが、これだと当然ながらフォームの縁に太い線が出来てしまいます。
出来れば縁がないものを作りたいのですが、良い方法がありますでしょうか?
※BorderStyleでbsNoneにしたときのような外観にしたいのです。
0650デフォルトの名無しさん
NGNG0651おしえて!!
NGNGb(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失せろキチガイ
>どなたかわかる方いらっしゃいませんか??
>もしくはわかりそうな人がいるとこしりませんか??
お前の態度が気に食わない。かつ、マルチポストするなボケ。
0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG>もしくはわかりそうな人がいるとこしりませんか??
偏差値50程度の高校生なら誰でもわかるよ。
宿題は自分でやろうね。
0655デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG.pasから.dcu, .xmlはいた時点で自動的にIDEが認識すべきだろ。
MSはVC++6.0から既に対応してるんだが。
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG巨人ファンは黙っててください。
0663デフォルトの名無しさん
NGNGつまらん
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNGリッチフォーマットって暗号みたいでつね。
テキストをリッチテキストに変換してくれるライブラリはありまつか?
0667デフォルトの名無しさん
NGNG初心者スレとマルチ
http://pc5.2ch.net/test/read.cgi/tech/1062422335/560
0668デフォルトの名無しさん
NGNGMicrosoftWordとか
0669デフォルトの名無しさん
NGNGだって初心者スレでは透明人間でつから!
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNGacmFormatSuggest
acmStreamOpen
acmStreamSize
acmStreamPrepareHeader
acmStreamConvert
acmStreamUnprepareHeader
acmStreamClose
を使うのは分かったけど
落ちてるmsacm.pasの定義だとacmStreamOpenすら通らない・・・
どなたかACM使ってデコードできてる方いません??
0672デフォルトの名無しさん
NGNGテキストファイルでSaveToFileするにはどうしたら良いですか?
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG上級な質問でなくてゴメソ
0675デフォルトの名無しさん
NGNGincファイルいじればインスコはできるんだけど、たまに例外起こして止まる
0676デフォルトの名無しさん
NGNG何のクラス(TCanvas、TGraphic、TBitmapとかとクラスが一杯あって...)を派生したら良いでつか?
関連サイトもキボンニュでつ
0677デフォルトの名無しさん
NGNG内部的にビットマップに描画しておいてそれを表示するのと
WM_PAINTで毎回Canvasに描画する方法があるけどどっち?
0678デフォルトの名無しさん
NGNGこっちキボンニュ
>WM_PAINTで毎回Canvasに描画する方法があるけどどっち?
こっちは、全体の一部を描画する場合にのみ速くなるんですか?
もしそうだったら今回使いませんが、お手数でなかったら教えて下さい。
0679デフォルトの名無しさん
NGNGググッてみましたが、TImageの書き込みが遅いだとか、Canvas.Pixelsが遅いだとか、難しいですね。
0680デフォルトの名無しさん
NGNGPixelsは1ピクセル書き換えるだけなのにGDIのAPI呼ぶからな。ScanLineで検索。
0681デフォルトの名無しさん
NGNGなるほど、PixelsはGDIのAPIコールが遅いわけですか。
ScanLineだとビットマップイメージでこれだとAPI呼ばない、、、わけないですよね?
GDI以外のAPIコールなんかな。
まだ理解できてなくて苦しい。。。
0682デフォルトの名無しさん
NGNGDIBは固定形式で作成時にビットマップ(=ビット配列)へのポインタを受け取れるので直接弄れる。
ScanLineはDIBの各ラインへのポインタを計算して返してくるだけ。
0683676
NGNGビットマップ形式にしてScanLineで書くと、ビットマップのポインタに直接書けるわけですね。
もう一つ知りたいのは、せっかくScanLineしてもTImageに書くと遅いのでしょうか?
TPaintBoxとかに書くのが良いのでしょうか。
(1回書けば、再描画は意識しなくてOKですよね?)
それともう一つ、
>WM_PAINTで毎回Canvasに描画する方法があるけどどっち?
について、詳細を知りたいです。
WM_PAINTのメッセージハンドラを作るとして、そうするとなんで高速化なんですか???
0684デフォルトの名無しさん
NGNGuses XYZ;
...
Image1.Picture.LoadFromFile('image.xyz');
だけできればいいんじゃないの?
やり方知らないけど
0685デフォルトの名無しさん
NGNG○つうかJpegみたいに
0686デフォルトの名無しさん
NGNG全部の疑問が解決しないと取り掛かれませんか?
・ビットマップのファイル形式を調べる(TBitmap について理解が進む)
・ウィンドウズにおける描画の仕組みを理解する
どっちも Delphi と直接関係ない
0687デフォルトの名無しさん
NGNGこれ重要。
>ウィンドウズにおける描画の仕組みを理解する
上級なら知っとくべし。
0688デフォルトの名無しさん
NGNG高速化にはならないだろ。
例えばベクトルデータの配列があってそれを毎回
LineToとかで描くとかそういう話。
ビットマップ持たないで済むから省メモリだし
レンダリングに柔軟性を持たせることが出来るかも試練。
0690デフォルトの名無しさん
NGNGこれは何でだろ。
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNG>>688のようにCanvasに描画する処理は、
TImageでは一度Picture.Bitmapの上で行われてから転送されるので
メモリ的にも処理速度的にも効率が悪い。
ただし、Picture.GraphicのDrawは直接親のCanvasに行われるので
一般的な使い方なら関係ない。
あとは、状態によりWM_ERASEBKGNDで全て背景色で塗りつぶしてから
その上にPicture.Graphicを描き直すので、無駄だしちらつく。
そのほかに、TImage.Picture.Graphicへの代入は実際にはAssignなので、
代入するオブジェクトが複製される。これは画像のデータを内部の
TSharedImageで共有するVCLのTGraphic派生クラスでは問題にならないけど、
そうなっていないフリーのクラスなどでは、代入の時の複製処理が重いし、
さっさと元のオブジェクトを破棄しないと必要量の2倍のメモリを食う。
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG実際のコピーは行われない、ってきいたことがあるけど
0695ななしへたぐらま ◆XcB18Bks.Y
NGNG遅いレスですいません.
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;
0696671
NGNGレスどうもです。
やはり宣言は同じですか・・・
結局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独自の画像形式を扱いたいときはTGraphicを派生します.詳しくはこちらに.
ttp://www.asahi-net.or.jp/~HA3T-NKMR/vcl2-10.htm
ネット上で公開されている画像クラスはほとんどTGraphicの派生です.
私も独自形式画像のためのクラスを作りましたが作りやすかったですし
誰でも簡単に使えて非常に便利です.
>>691
自動車パーツメーカーとかコクヨの机関係だったりするかもです.
>>694
「オブジェクト(インスタンス)は複製しますが画像データは複製しない」ということです.
0698ななしへたぐらま ◆XcB18Bks.Y
NGNGその宣言のように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;
あとは思いつきませんでしたすいません.
0699671
NGNGACMSTREAMHEADERは設定してます。
pbSrcにFileStreamから参照させるためにFileStream.Memoryを渡してるのがまずいのですかね・・・
0700デフォルトの名無しさん
NGNG0701671
NGNG0702ななしへたぐらま ◆XcB18Bks.Y
NGNG遅くなりましたが…
読み出し側ならそれでも問題なさそうですよね.
思いつきで恐縮ですが単純にPCMからPCMへの変換ができるのでしたら
CODECの種類に固有の問題かもしれません.
0703デフォルトの名無しさん
NGNGで、ワードパッドが作れるのは凄いんでつが、
「挿入−オブジェクト」メニューがありません。
Delphiだと簡単に実装で期末か?
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNGデスクトップにアイコンがないのです。もう一度ダウンロードしたほうが良いのでしょうか?
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGなんて じょうきゅうな しつもんなんだー(棒読み)
0708デフォルトの名無しさん
NGNGスタートメニュー辿ってけばあるはず。
ExplorerでC:\Program Files\Borland以下を探してもいい。
0709デフォルトの名無しさん
NGNGDelphiをデスクトップに統合しようとしているんだ!!
ロングホーンよりすばらしいUIになるに違いない。
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNGな、なんだってー
0712デフォルトの名無しさん
05/01/25 21:38:140713デフォルトの名無しさん
05/01/25 21:47:280714712
05/01/25 21:51:410715デフォルトの名無しさん
05/01/25 23:24:06ttp://pc5.2ch.net/test/read.cgi/tech/1104511938/l50
0716デフォルトの名無しさん
05/01/28 19:37:56RichEditで通常と太字で大きさ同じにしたいのですが
abcde ←1行目フォント指定しない
abcde ←2行目太字
で文字位置がだんだんずれていくんですがどうすればいいのでしょうか
0717デフォルトの名無しさん
05/01/28 19:41:220718デフォルトの名無しさん
05/01/28 19:50:45IDE上だとprocedureやinとかrecordとか太字じゃないですか
それでも文字位置はずれないですよね。そういうふうにしたいのですが
0719デフォルトの名無しさん
05/01/28 19:55:110720デフォルトの名無しさん
05/01/28 20:02:40IDEのデフォルトで右マージン位置80文字目にラインが引かれますよね
その位置は太字が含んでいても80文字目になりますし、
見た目にもずれてないと思いますが
0721デフォルトの名無しさん
05/01/28 20:13:000722デフォルトの名無しさん
05/01/28 20:46:31一字一字の計算したフォント位置を求めたとして、
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:460726デフォルトの名無しさん
05/01/28 21:29:47相当時間掛かるんですが、集中的にやらないと作れるようなものじゃないし
どうもありがとうございました
0727デフォルトの名無しさん
05/01/29 08:50:570728デフォルトの名無しさん
05/01/29 10:20:37探してみました。HEditorは金掛かるみたいなので、SynEditってほう(beta200)
すげーファイル群とコンポーネント入れられたけど、
とりあえずSimpleIDEDemoってのビルドしてみた。
目的な事が出来そうかな。Delphi無し環境で実行出来る事確認したし
なんか使い方複雑そうだけどソースもサンプルもあるし、なんとかなるかな
どうもありがとうございました
0729デフォルトの名無しさん
05/01/29 10:43:130730デフォルトの名無しさん
05/01/30 02:39:460731デフォルトの名無しさん
05/01/30 16:17:01少なくとも参考にはなる罠
0732デフォルトの名無しさん
05/01/31 04:17:26VC++から関数の引数として渡されるデータアクセス用の関数ポインタを
Delphi製DLL内で、関数ポインタから関数を呼ぶ時点で例外が生じてしまいます。
cdeclをつけても、stdcallをつけても、safecallをつけても、なにもつけなくても、
同じです。
VC++アプリから渡される関数ポインタをDelphi内で利用するには、
特別な方法がいるのでしょうか?
(一応、アクセス用のVC製DLLを作って、Delphi製DLLから呼び出すと
データにはアクセスできてはいます。)
0733デフォルトの名無しさん
05/01/31 04:33:030734732
05/01/31 04:35:24VC++アプリから引数で送られてくる関数ポインタを
Delphiで作ったDLL内で使うには、何か特別な操作がいるのでしょうか。
0735デフォルトの名無しさん
05/01/31 04:39:350736デフォルトの名無しさん
05/01/31 04:40:470737デフォルトの名無しさん
05/01/31 04:43:14いや、さすがにそれは・・・
しかし、そうおっしゃられるということは、普通にできるということですね。
もうちょっと、自分のコードにミスがないかチェックしてみます。お騒がせしました。
VC++側は多分、cdeclで呼び出しているんだとは思います。
VC++で書いたDLLでは、普通に関数ポインタから関数呼び出せますので。
0739デフォルトの名無しさん
05/01/31 04:47:52function ナンチャラ関数名; external ナンチャラDLL名 name ナンチャラ関数名;
やってるか?
0740732
05/01/31 04:52:08仕様で、VC++アプリ側から、動的にインポートされているはずです。
それから、関数の引数を通じて関数ポインタが渡されてきてます。
一応、私が勘違いだったらすみませんが、
external〜、Delphiから外のDLLを静的に呼ぶときですよね?
0741デフォルトの名無しさん
05/01/31 04:54:53dumpbinで調べてみ
0743デフォルトの名無しさん
05/02/01 04:20:14正しい関数ポインタを受け取れないか、
Delphi側の関数ポインタの宣言を間違えているか。
まずは、DLL側が受け取ったアドレスが実際にVC++側の関数のアドレスかどうか確認する。
後は、VC++側の関数の宣言と、Delphi側の型をここに出せば簡単に解かる。
関数ポインタと、エクスポートした関数の両方ね。
0744732
05/02/01 04:40:06今日になって、新しいVC++アプリのバイナリがあてがわれまして、
このバイナリだと、無事動作しました。
昨日の苦労はなんだったんだ orz
みなさん、本当にどうもありがとうです。
0745デフォルトの名無しさん
05/02/01 07:56:390746デフォルトの名無しさん
05/02/01 09:55:180747デフォルトの名無しさん
05/02/01 10:22:030748デフォルトの名無しさん
05/02/01 12:01:440749デフォルトの名無しさん
05/02/01 13:18:470750デフォルトの名無しさん
05/02/01 23:33:300751デフォルトの名無しさん
05/02/01 23:51:410752732
05/02/02 00:32:36結論から言うと、cdeclで良かったです。
あのあと、VC++製ホストアプリバイナリ開発元に問い合わせたら、
今更になって、dll側のサイズを見て、サイズが条件内に無いときは、蹴っているとのこと。
(そういうのは、最初に言ってくれ・・・)
結局、新しいバイナリを送ってもらって、cdeclでちゃんと動きました。
重ね重ねお騒がせして申し訳ないです。
0753デフォルトの名無しさん
05/02/02 01:25:21こっそり誤動作するようにしてるのか?
0754デフォルトの名無しさん
05/02/02 01:44:29どれだけ意味あるかわからんけど
0755754
05/02/02 01:54:010756デフォルトの名無しさん
05/02/02 03:36:470757デフォルトの名無しさん
05/02/02 14:16:24引っ越させてください。
とあるDLL中の関数をDelphiから呼び出そうとしています。
DLLのヘッダファイルを読むと
extern "C" _declspec(dllimport) __time64_t #関数名#();
という定義になっていました。
この関数は日付を返す関数で、戻り値の型が __time64_t となっています
この値をTDateTime型に変換する方法を教えて下さい。
0758デフォルトの名無しさん
05/02/02 14:37:370759デフォルトの名無しさん
05/02/02 15:30:180760デフォルトの名無しさん
05/02/03 05:08:530761デフォルトの名無しさん
05/02/03 06:21:500762デフォルトの名無しさん
05/02/03 06:38:100763757
05/02/04 11:32:33「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で、これを読む限り、単にtime_tを64bitにしただけのようだ。
そして、もし、TDateTimeがFILETIMEと同じであるとするならば
単に、time_tをFILETIMEに変換すればよい。
これもぐぐれば簡単に出てくるが
time_t = (FILETIME - 0x19DB1DED53E8000) / 10000000
という式を変形すればよい。
0765デフォルトの名無しさん
05/02/04 11:44:33だとしても、
FILETIMEをSYSTEMTIMEに変更して
そのメンバからTDateTimeを作り出せばいいだけ。
0766757
05/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を意味する内容である事が分かってます。
(残念ながら時刻は不明)
結果を見る限り、いちおうちゃんと動いてるくさいです。
これで今の仕事には支障ないです。助かりました。
0767757
05/02/04 12:39:03ShowMessage(FormatDateTime('yyyy/mm/dd hh:nn:ss',
time64_tToDateTime(1138719599)));
だった。
0768757
05/02/04 14:05:01ってことはTimeZoneの時差を補正してないとか、そういう話か。
もう少し考えてみます。
0769デフォルトの名無しさん
05/02/04 14:37:50FileTimeToSystemTime(tmpTime, SysTime)
SystemTimeToDateTime(SysTime)
少しは調べろ。
0770757
05/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>UnixToDateTime関数は違うようでした(浮動小数点なんとかエラーが出た)。
はぁ?ちゃんと使えるぞ。
time64_tが1970/01/01 00:00:00(UTC)からの経過秒数だということを理解しているのか?
あぁ、先に言っておくとUTCとJSTは9時間ずれているから、タイムゾーン取得して補正しろ。
0772デフォルトの名無しさん
05/02/05 01:41:300の基準知ってるよ、ここの人は
0773デフォルトの名無しさん
05/02/12 01:10:260774デフォルトの名無しさん
05/02/12 22:38:160775デフォルトの名無しさん
05/02/13 01:22:38いよいよダメっぽいのか?
0776デフォルトの名無しさん
05/02/13 05:43:39もうとっくに、の間違いだろwwww
0777デフォルトの名無しさん
05/02/13 05:44:290778デフォルトの名無しさん
05/02/13 05:51:25何で上級スレは殺伐としてるんだろうか?w
0779デフォルトの名無しさん
05/02/13 10:29:510780デフォルトの名無しさん
05/02/13 17:15:53クラサバ業務ならD5〜D7はまだ案件あるけど、D8以降は企業が採用しないだろうし
Delphi実装をWeb(IIS)対応にリニューアルするならVSに変更してるのが実情
0781デフォルトの名無しさん
05/02/13 19:02:450782デフォルトの名無しさん
05/02/13 21:15:35いまだVBしかできないけど。
0783デフォルトの名無しさん
05/02/13 23:49:100784デフォルトの名無しさん
05/02/14 00:28:410785デフォルトの名無しさん
05/02/14 00:35:30この時期のWin環境のまともな仕事はVC++2.0(例外的にBC++4.0)しか無かったが
8年前と言うならわかるが
0786デフォルトの名無しさん
05/02/14 00:45:46丁度10年ぐらいかな、正確には9.n年前だろうけど
Del1正式発売前に評価版として3ヶ月ぐらい前から雑誌の付録に付いていた
Win3.1orWin95ファイナルベータで使った
趣味でBC++使ってたがVB覚えようかなと思った時に出てきたので、VBは覚えませんでした
0787デフォルトの名無しさん
05/02/14 07:18:52プログラマとして仕事してたら、そもそもどんな幸せな未来があるっての?
どこもソフトの開発現場は派遣化。 現場は使い捨て。
先が暗いなら、なおさら今を楽しまなくちゃね。
だいたいさ、道具の使い方には可能性があってもさ、道具に未来があるんじゃないよ。
0788デフォルトの名無しさん
05/02/14 08:36:070789デフォルトの名無しさん
05/02/14 11:30:48所詮はスキルも使い捨ての時代。
0790デフォルトの名無しさん
05/02/14 11:36:550791デフォルトの名無しさん
05/02/14 11:53:190792デフォルトの名無しさん
05/02/14 11:55:140793デフォルトの名無しさん
05/02/14 16:04:540794デフォルトの名無しさん
05/02/15 09:59:430795デフォルトの名無しさん
05/02/17 01:21:180796デフォルトの名無しさん
05/02/17 02:42:420797デフォルトの名無しさん
05/02/17 03:44:450798デフォルトの名無しさん
05/02/17 10:19:280799デフォルトの名無しさん
05/02/18 11:23:27マウスでリサイズ中に物凄くチラツキます。
リサイズの最後のタイミングイベントなんか無いですかね?
0800デフォルトの名無しさん
05/02/18 11:54:59ttp://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200405/04050034.txt
0801デフォルトの名無しさん
05/02/18 12:37:43LockWindowsUpdateは?
0802デフォルトの名無しさん
05/02/18 13:28:48いつ解除する?
0803ミ,,゚Д゚彡 ◆A6VzDeLphI
05/02/19 12:40:32>>800
ものすごく役に立たないスレだな。
そんなのリンクするなゴルァ
結局どうやって解決するんだよ。
0804デフォルトの名無しさん
05/02/19 14:36:29だから、マウスボタンを押してるかどうかで判断だろ?
ものすごく役に立つと思うけど?
0805デフォルトの名無しさん
05/02/19 14:39:05解決方法が分からないのに、役に立つどうかどうやって判断したのかをききたい
0806デフォルトの名無しさん
05/02/19 18:12:490807デフォルトの名無しさん
05/02/19 18:55:26をOFFにしそうな気がしないでもない。
0808デフォルトの名無しさん
05/02/19 19:41:28procedure 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:530810デフォルトの名無しさん
05/03/05 21:54:01が解りません・・・ていうかあるのでしょうか?
0811デフォルトの名無しさん
05/03/08 03:23:14WideStringをAnsiStringに代入する
0812デフォルトの名無しさん
05/03/08 17:11:45{ 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:24TImage を使用してるんだから、再描画は自動的に行われる。やりたいことなどなんにもない。
>>799 は質問自体がネタ
0814デフォルトの名無しさん
05/03/11 01:06:09すいません、もう少し教えてください。
UTF-16LE 文字列ですが、バイト配列のデータです・・・
最終的にはString型に変換したいのです。
WideCharLenToString とかをどのように使えばいいのかが解りません
(というか、どうすればいいのか解りません)
0815デフォルトの名無しさん
05/03/11 02:02:31WideStringをそのままAnsiStringに代入
これ以外にどう解釈しろというんですかね
0816デフォルトの名無しさん
05/03/12 14:23:51const
ws: WideString = 'あいうえお';
var
astr: string;
begin
astr := ws; <---ここでブレークしてCPUウインドウでみればどんなコードが補われているか良く分かる
end;
0817デフォルトの名無しさん
2005/04/11(月) 08:54:41> [Kylix:01023] Re: 使えない interface
> 「親を TInterfacedObject にせずに、独自のものを使えば、
> 勝手に破棄されないものも作れます」
これは知らんかった orz
0818デフォルトの名無しさん
2005/04/11(月) 08:56:300819デフォルトの名無しさん
2005/04/11(月) 12:46:190820818
2005/04/12(火) 16:37:54印刷出来ます田。
どうやってその内容調べられましたか?
といいますのは、
プレビューの場合のコマンドラインがどうなるのか知りたいのですが、
連続質問出すと、教えてクンみたいですよね...
0821デフォルトの名無しさん
2005/04/12(火) 16:58:00ファイルの関連付けをミロ。てかここは上級者用スレだぞ。
0822デフォルトの名無しさん
2005/04/12(火) 17:17:03エクスプローラのフォルダオプションでファイルの関連付け見ましたが、プレビューはありませんが...
0823デフォルトの名無しさん
2005/04/12(火) 17:42:38プレビュー、プレビューっていまいち意味わからんがWindowsの画像ビューワのことか?
それだったらShellExecuteで開けばえんでないかい。
0824デフォルトの名無しさん
2005/04/12(火) 17:49:44ペイントブラシのプレビューコマンドが知りたいです。
ついでに、これらの情報はWindowsのどこをみれば分かるのでしょう?
0825デフォルトの名無しさん
2005/04/12(火) 17:58:48もしかして印刷プレビューのこと?
0826デフォルトの名無しさん
2005/04/12(火) 18:12:26PC初心者板行って来い。
Delphi と何の関係もない。
0827デフォルトの名無しさん
2005/04/12(火) 18:41:550828デフォルトの名無しさん
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ん?別に問題なく参照できるけど?
0830デフォルトの名無しさん
2005/04/20(水) 13:13:30もう一度実験してきます。
0831デフォルトの名無しさん
2005/04/20(水) 13:32:300832デフォルトの名無しさん
2005/04/20(水) 13:46:51>>826
0833デフォルトの名無しさん
2005/04/20(水) 14:03:26あまりいいやり方じゃないけどこれでできるんじゃない?
CreateProcess でペイントを起動する。
ペイントのウィンドウを探す。
PostMessage で WM_COMMAND を送ってメニューを操作したことにする。
Windows 2000 SP4 の場合 ItemID = 57609。ほかは違うかも。
0834デフォルトの名無しさん
2005/04/20(水) 23:18:130835デフォルトの名無しさん
2005/04/21(木) 00:54:53form2.dock(form1,...);
form2.dock(nil,...); //ここで参照不能になる
当環境ではundockしたら参照できなくなった
0836828
2005/04/22(金) 03:10:29ご存知の方いらっしゃいましたらご教授お願いします。
0837デフォルトの名無しさん
2005/04/26(火) 03:02:150838デフォルトの名無しさん
2005/04/26(火) 19:43:43いいんですか? ヘルプには何も書いてないのですが・・・。
0839838
2005/04/26(火) 20:11:540840デフォルトの名無しさん
2005/04/27(水) 00:21:36セルの結合(2行結合)をやってみたのですが、結合したセルに入力しようとすると
1行分のフォーカスになって入力した内容が上にずれてしまいます。
EXCELのように結合したセルでも正しく表示できないでしょうか?
環境はD7です。
ご教授お願いします。
0841デフォルトの名無しさん
2005/04/28(木) 10:15:25The 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:320843デフォルトの名無しさん
2005/04/29(金) 08:10:41サーバーから取得したHTMLをIEコンポーネントがレンダリングする前に
書き換えたいのです。
(あとからDHTMLで書き換えるのではダメなんです。)
都合のいいイベントとかフックする方法あったら教えてください。
0844デフォルトの名無しさん
2005/04/29(金) 11:48:54書き換えてから書き換えたHTMLソースを
IEコンポーネントに投げる。
0845843
2005/04/29(金) 12:31:21その方法も考えた、というかその方法でコーディングしてたんですが
リンクをクリックされた場合とかフレームの場合とかの制御が大変とか
認証が必要な画面でIE標準の動作が出来ないとか
カレントURLによってHTMLの動作が変わってしまう(相対アドレス)とかとか・・・
色々問題が出てきたんでちょっと僕には無理っぽいなと断念しました。
温泉いってる間に神様出てくることを祈っとこう・・・
0846デフォルトの名無しさん
2005/04/29(金) 14:50:31TWebBrowser.DownloadComplete // DL完了時。ここで TWebBrowser.Document を操作
TWebBrowser.DocumentComplete //レンダリング完了時
0847デフォルトの名無しさん
2005/05/22(日) 07:09:000848デフォルトの名無しさん
2005/05/24(火) 23:38:10やるとしたらレジストリかAPIになると思うけど
0849デフォルトの名無しさん
2005/05/27(金) 05:07:070850デフォルトの名無しさん
2005/05/27(金) 08:45:11ttp://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=17#0132.txt
0851デフォルトの名無しさん
2005/05/27(金) 11:17:460852デフォルトの名無しさん
2005/05/29(日) 02:51:18頭いいなもまえ
0853デフォルトの名無しさん
2005/06/01(水) 22:07:50で質問なんですが、ソフトの起動時にどのドックにはまってたのかを復元する方法が判りません。
DockRowやDockPosやらでは、はまってたドックでの位置は復元出来ますが別のドックにはめるとナニな訳です。
誰かご存知の方おられませんでしょうか?
0854853
2005/06/01(水) 23:04:510855デフォルトの名無しさん
2005/06/08(水) 22:40:18で書かれているACMを使って、MP3をデコードする方法を参考に自分でも組んでみましたが
つまずいてます・・・
acmStreamConvertを実行した後に入ってくるbufferに何も入ってこないのです。
どなたか分かる人いますか?
0856855
2005/06/08(水) 22:41:50var 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:290858857
2005/06/09(木) 15:17:24給紙トレイ=ビン
というみたいでつね。
0859857
2005/06/09(木) 19:49:01使い方が分からない...
0860デフォルトの名無しさん
2005/06/09(木) 21:57:12DeviceCapabilities
0861デフォルトの名無しさん
2005/06/10(金) 09:24:57Windowsに反映できますか?
0862デフォルトの名無しさん
2005/06/10(金) 11:53:28って何だ?
0863デフォルトの名無しさん
2005/06/10(金) 11:59:30コントロールパネルのプリンタ設定の中の人が、
ダイアログで設定した通りになってる、という意味で津。
0864デフォルトの名無しさん
2005/06/10(金) 12:31:430865デフォルトの名無しさん
2005/06/10(金) 13:04:56TPrinterSetupダイアログから、給紙トレイが取れなくて困って待つ。
で、Winに反映してから取ろうかなぁ、と。
0866デフォルトの名無しさん
2005/07/08(金) 09:07:58フォームで、追加したイベントを発生することはできないでしょうか?
0867デフォルトの名無しさん
2005/07/08(金) 09:33:19普通のメッセージ処理と何が違うの?
0868866
2005/07/08(金) 09:48:17そのボタンをクリックすると、フレーム内のクリックイベントが発生しますが、
その後、フォーム側でこのボタンがクリックされたことを知りたいのです。
0869デフォルトの名無しさん
2005/07/08(金) 17:04:120870デフォルトの名無しさん
2005/07/08(金) 19:55:45フォーム側でイベントハンドラ設定して、その中からフレームのイベントを呼ぶってのは?
0871デフォルトの名無しさん
2005/07/08(金) 20:03:15○フレームのイベントハンドラ
スマソ
イベント呼んだら無限ループだ
0873869
2005/07/12(火) 16:35:56フレームにあるボタンのイベントを貼り付けたフォームから設定すると解釈して
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にあわせるように)。
て書くだけ。
いかがでしょ?
0875デフォルトの名無しさん
2005/07/13(水) 17:27:25言うことが違う
0876デフォルトの名無しさん
2005/07/13(水) 17:32:550877デフォルトの名無しさん
2005/07/13(水) 18:40:580878デフォルトの名無しさん
2005/07/14(木) 08:50:060879デフォルトの名無しさん
2005/07/14(木) 09:00:37マルチだからほっとくというのは、どういう理由で?
何の根拠で?万人に理解できる返答が欲しいものだな
0880デフォルトの名無しさん
2005/07/14(木) 10:36:460881デフォルトの名無しさん
2005/07/14(木) 11:09:51ここしか見てない者はどうなる?
0882デフォルトの名無しさん
2005/07/14(木) 11:19:030883デフォルトの名無しさん
2005/07/14(木) 11:33:53他人に当り散らすのは筋違いだ
0884デフォルトの名無しさん
2005/07/14(木) 12:01:21あっちの存在を知らない者はどうなる?
0885デフォルトの名無しさん
2005/07/14(木) 13:44:310886デフォルトの名無しさん
2005/07/14(木) 13:47:380887デフォルトの名無しさん
2005/07/14(木) 14:53:45違う。知らなければ、こちらしか解決の場が無いので、
マルチポストは第三者にとっては弊害ではない。
0888デフォルトの名無しさん
2005/07/14(木) 15:25:38万人がそう思ってるから。
0889デフォルトの名無しさん
2005/07/14(木) 17:44:190890デフォルトの名無しさん
2005/07/14(木) 17:52:070891デフォルトの名無しさん
2005/07/15(金) 08:38:23同じ疑問を持った第三者がいたらどうだ?
0892デフォルトの名無しさん
2005/07/15(金) 08:49:20質問者が理解できないだけ。
同じ疑問をもってかつ今回の質問者と同じレベルの第三者はきわめてまれだろうな。
0893デフォルトの名無しさん
2005/07/15(金) 08:51:300894デフォルトの名無しさん
2005/07/15(金) 10:13:390895デフォルトの名無しさん
2005/07/15(金) 13:00:26ソース買うしかない。
QuickReport最初は使いにくいと思ったけど、今はコレ無しじゃ帳票作るならん・・・
0896デフォルトの名無しさん
2005/07/15(金) 13:57:14ソース買ったらD2005で使えるわけ?
なら買うぞ。
0897デフォルトの名無しさん
2005/07/15(金) 22:44:54本家みろよ。
D2005ってかいてあるだろ?
つーかソース買うのに下位で動いてて、D2005で使えないわけないだろ。
ソースからコンパイルするとヒントや警告がでてウザイかもしれんが、そこは自分で直せ。
0898デフォルトの名無しさん
2005/07/26(火) 03:46:45http://blog.livedoor.jp/junki560/
0899デフォルトの名無しさん
2005/07/26(火) 21:38:040900デフォルトの名無しさん
2005/07/26(火) 21:44:040901デフォルトの名無しさん
2005/07/26(火) 21:46:350902デフォルトの名無しさん
2005/07/27(水) 09:07:05回答出てましたね。
QRのソース買う方向にしてみまつ。
でも実はD2005じゃなくて、次のBCB(Del統合予定のやつ)で使うので若干不安。
0903デフォルトの名無しさん
2005/07/27(水) 11:52:50税込み原価価格から税抜き原価価格を計算する処理をしているところで、
ごく一部なんですが、正しい価格と1銭差が出る場合があるようなのです。
(正)税込み:80.85 税抜き:77.00
(誤)税込み:80.85 税抜き:77.01 ← こうなる時があるようです。
ただ、私の所では再現すら出来ず、原因究明が滞っている状態です。
おかしい点や「ここでそういう事おきるって聞いたことあるよ」というご指摘が頂ければ幸いです。
原価価格は小数第2位以下は切り捨てと考え、消費税は5%計算です。
0904903
2005/07/27(水) 11:53:56function 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
0905903
2005/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:00Zeikomi := StrToCurr(Zeikomi);
ってコンパイルエラーになるでしょ? バリアントでもないなら
で、
Zei := trunc((Zeikomi * Zeiritu) / (100 + Zeiritu))
が怪しそうだよ。
0907デフォルトの名無しさん
2005/07/27(水) 13:15:32略したコードです。
というか余計な部分を端折ってあるうえに分かりやすく少し書き換えてあります。
>Zei := trunc((Zeikomi * Zeiritu) / (100 + Zeiritu))
>が怪しそうだよ。
ここですか。。
うーん。せめて問題の現象が再現できていればもう少しなんとかなるんですが・・。
ご返答ありがとうございます。
0908デフォルトの名無しさん
2005/07/27(水) 13:30:00コプロの丸め精度フラグを下げっぱなしにしてくることがあった。
(割り込み時のコントロールワードの戻し忘れ)
もしかすると誰かに銀行家丸めを変更されているとか。
0.05%とかをそのまま使わないで(小数点以下が出ないようにして)、最後の最後で100とかで割るといいよ。
あと、消費税は2進数できれいに表せる数にしてくれよ>政府
暑いから納涼話どう?
0909デフォルトの名無しさん
2005/07/27(水) 13:38:28そうしてるようだが
で>>903よ、なぜCurrencyとDoubleを混在させる?
ZeikomiがCurrencyならZeiだってCurrencyでいいし
ZeirituだってCurrencyでいいじゃん
0910デフォルトの名無しさん
2005/07/27(水) 13:40:22うーん。一応消費税は
>Zeiritu := 0.05 * 100;
のところで100倍してから計算に使用してるんですけど、
なんか順序とかがおかしいんですかね?
truncするタイミングとか・・??
正しい値が出たり出なかったりとかはやっぱり環境とかも影響あるんでしょうか。
0911デフォルトの名無しさん
2005/07/27(水) 13:45:10>なぜCurrencyとDoubleを混在させる?
前任の作成した関数(さっきのソース)なので
私も「なぜ」かという所までは・・。
(前任は既に会社を辞めております)
やはりそのへんもあやしい部分なのでしょうか?
現象が再現されないうちにそういうあやしい部分を潰していくと
修正が完了したのかどうかも判断が付かないので
へたにいじることが出来ないのが現状です。。
なにぶん「なんかおかしいからコレ直して。はいソース」という状態でして・・
0912デフォルトの名無しさん
2005/07/27(水) 14:09:100913デフォルトの名無しさん
2005/07/27(水) 14:50:10今読み終わりました!
大変参考になりました。ありがとうございます。
やっぱり>>909さんからご指摘頂いている
CurrencyとDoubleの混在あたりがいけないようですね。
Currencyで統一すれば誤差はなくなりそうです。
ただやはりこちらで再現出来ていない状態で手直しして
「直りました」は説得力がないですよね。。
うーん。
さすがにこればかりは自分の力でなんとか頑張ってみます。
皆さんのおかげでなんとかなりそうです。
たくさんのご教授ありがとうございました<(_ _)>
0914908
2005/07/27(水) 16:44:07>>Zeiritu := 0.05 * 100;
>のところで100倍してから計算に使用してるんですけど、
もしかしたら定数にするのに0.05を変換しきれなくて、100かけても
≠5.0かと思っただけ。
杞憂だと思うけど。
再現できる環境の確保がポイントですね〜。
あと、状況を絞り込んだ(ボタン押すと結果だけ出す)プログラムなどを相手に渡すとか。
0915デフォルトの名無しさん
2005/07/27(水) 17:06:13今のうちにD2005買っとけ。
up3+FastMMで使えるレベルだから。
次のバージョンも安定するまで半年はかかるだろうしね。
0916デフォルトの名無しさん
2005/07/27(水) 17:08:55俺も金額計算する時によくはまったな。
Currencyはたしか少数以下4桁まで保障だっけ?
Currencyが6桁まで保障してくれたらいいのにな〜なんて材木関係の仕事の時に思ったな。
0917903
2005/07/27(水) 17:18:16ですが「再現出来なきゃあてにならない」と言い換えされてしまいました。。
うぅ。そう言われるのは当然なんですけど・・。・゚・(ノд`)・゚・。
0918デフォルトの名無しさん
2005/07/27(水) 17:42:27現象が発生する環境では常に発生してないとおかしい
もしかしてやたら古い機械じゃまいか?
0919903
2005/07/27(水) 17:47:25実は常に発生しているかもハッキリしていないのです。
情報が少なくて・・。
えっと。とりあえず、
その現象が再現できるPCを特定→手直ししたものをそのPCで実行→それから判断
という流れで問題を潰していくことになりました。
私のところでやっていても再現は難しいだろうということで。
みなさん本当にお騒がせしました。。
ありがとうございました。
0920デフォルトの名無しさん
2005/07/27(水) 17:50:19データ見せられて、おかしいよって言われてるわけだよね?
そしてその計算部分の特定は出来てる。
あとは、その使用しているデータを客にきけばいいのでは?
もしくは、その部分だけ読み取って計算するような小さなプログラムを客先で動かしたら?
0921デフォルトの名無しさん
2005/07/27(水) 18:02:07>>920にも書いてあるがStrategy パターンでも使用した新しいソースと古いソースの計算結果を
照らし合わせ異なる場合のみ、そのデータを適当に抜き出すような小さいプログラムを作れ。
0922デフォルトの名無しさん
2005/07/29(金) 00:26:590923906
2005/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.....) ) が同じになるかという事になるわけだけど
0924906
2005/07/29(金) 07:18:32いちいち文字列形にするのは格好悪いと思うなら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てな感じね
0925906
2005/07/29(金) 07:26:18Zeiritu:Double; にしている事。
浮動小数点型はExtendedで計算されるから
いわば πに 3.14 つかって、半径1メートルで円周を求めて 6280mmなんて書いてるような状態になる
Extended同士で計算させてれば、もっと滅多に起きなかったろう・・・まあもっと状況が悪いとも言えるが
0926906
2005/07/29(金) 07:37:27>Currencyで統一すれば誤差はなくなりそうです。
ってのは注意しないといけない。Currency形ってのは 1万倍して保持しているだけだから
Currency*Currency は 掛け算して1万で割るわけで
誤差が無いのは小数点2桁同士の掛算まで。
Currency同士の割算が入ると、それは浮動小数点で計算される
0927デフォルトの名無しさん
2005/08/01(月) 11:32:240928デフォルトの名無しさん
2005/08/01(月) 15:45:56エクスプロラーで、「コピー」操作を
行った段階で、その事をDelphiから
感知する方法はありますでしょうか。
0929デフォルトの名無しさん
2005/08/01(月) 15:47:22ttp://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ファイルをPC外に持ち出されないように、
エクスプロラーで、「コピー」操作を
行った段階で、その事をDelphiから
感知する方法はありますでしょうか。
よろしく、お願いします。
Windows2000 Delphi6.0です。
0932デフォルトの名無しさん
2005/08/01(月) 17:07:450933デフォルトの名無しさん
2005/08/01(月) 17:10:01ファイルを暗号化して別ファイルとして保存、別のプログラムで復号したら
トラッキングするのはかなり難しくなりそうだけど・・・
難しいというか、面倒と言うべきかな
0934デフォルトの名無しさん
2005/08/01(月) 18:21:04普通の SDK の外の資料だからあまり読む人はいないのかもしれないけど、
プリンタドライバとかでも必要だから、読む人は読んでいるんだろう。
ファイルシステムを丸ごと作るわけではなく、ミニポートドライバを作るだけで
すむから、速度を気にしなければ COM が使える人なら簡単なんだけどね
0935デフォルトの名無しさん
2005/08/03(水) 18:45:38同じスレにもう一度投下する人もな
0936デフォルトの名無しさん
2005/09/01(木) 13:39:09Win32APIのReadConsoleとか使ってコンソールアプリを作っているのですが
パスワード入力のところで、エコーバック無しで入力させたいのですが
どのようにすれば良いのでしょうか?
SetConsoleModeとか?いろいろやってみたのですがダメです。
0937936
2005/09/01(木) 16:00:25Win32API質問箱でもいってくる。
マルチになるんでこの質問はスルーしてください。
0938デフォルトの名無しさん
2005/09/01(木) 16:57:08まあ、がんばってくれや
0939デフォルトの名無しさん
2005/09/28(水) 20:37:06もしDLLが無ければそのDLLを吐き出して終了して
次実行したらDLLが使えるというような仕掛けにしようと思うのだけど、
実行時動的リンク だと大量にある関数をいちいちポインタ表現するのが面倒
ロード時動的リンク だと、ロード時にエラーメッセージが出るのは良いとしても
その後の実行で SysInit InitializeModule 内でメモリアクセスエラーが出て強制終了されてしまう。
スマートな解決方法は何かあるかな?
案1、別の実行ファイルでDLLがあるかどうかだけチェックする・・・・結局格好悪いし普段の起動が遅くなる
案2、_InitExe を書き換えてしまう。 ・・・・これだけの為にはチョッと・・・
0940デフォルトの名無しさん
2005/09/28(水) 20:58:530941デフォルトの名無しさん
2005/09/28(水) 21:06:34それは実行時動的リンクでしょ。
なにせ100近く関数があるから
全部の関数ポインタとを書くのは、ちょっと勘弁してくれって感じ。
・・・・でもそうするしかないか。
みんなどうしてるんだろ? 正規表現置換でやれば、それほどでも無いのかな?
0942デフォルトの名無しさん
2005/09/28(水) 21:10:04>もしDLLが無ければそのDLLを吐き出して終了して
>次実行したらDLLが使えるというような仕掛けにしようと思うのだけど、
別に終了する必要はないし・・・そのまま動的リンクへ
>実行時動的リンク だと大量にある関数をいちいちポインタ表現するのが面倒
>ロード時動的リンク だと、ロード時にエラーメッセージが出るのは良いとしても
>その後の実行で SysInit InitializeModule 内でメモリアクセスエラーが出て強制終了されてしまう。
>スマートな解決方法は何かあるかな?
面倒でも動的リンクでいちいち記述するのが逆にスマートかも
0943デフォルトの名無しさん
2005/09/28(水) 21:14:14Delphi for .NETには仮想ライブラリインターフェースっつうDLLの遅延ロードに便利そうなものが新設されてた。
まあ_InitExeなんて書いてるぐらいだから.NETはお呼びでないだろうが。
0944939
2005/09/28(水) 21:33:59procedure Hoge(hage:Integer);
begin
if assigned(pHoge) then Hoge(hage) else MyRaise( 'Hoge');
end;
こんな感じのを作ってたけど、
さすがにこれを100も書くのは無理。
それをあきらめて、直接間接コールさせれば、 正規表現置換で出来そう。
>>943 うん。 いまだにD5だし
0945デフォルトの名無しさん
2005/09/28(水) 21:36:42自分自身を再実行させるんではだめですか
再実行は終了直前に別のプロセスとして起動させるか
batファイルを吐いて実行させるか
0946939
2005/09/28(水) 22:02:12ロード時動的リンクは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:540949デフォルトの名無しさん
2005/09/29(木) 00:14:36もう一個DLL作って、それが最初にロード時リンクされるように
順番を調整して、そのDLLの中で目的のDLLの存在確認をとる
なんてのはどうだ?
思いついただけだが。
0950デフォルトの名無しさん
2005/09/29(木) 00:27:09.exeでもDLL同様にエクスポートはできるから、
100個の関数をプロトタイプと名前を合わせた
ダミー関数として作っておいて自身のエクスポートテーブルに載せる。
あとは自身のエクスポートテーブルを参照して、
各関数と同名でGetProcAddressして、結果によって
ダミー関数の実体を書き換えてやれば…。
思いついただけだってば。
0951デフォルトの名無しさん
2005/10/13(木) 18:33:55var
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:470953951
2005/10/13(木) 18:46:45あ、その存在を忘れていました。
確かにMDIフォームならスクロールバーはリアルタイムに直されますね。
でも、ボタンの下にForm2が入っちゃう。
0954951
2005/10/13(木) 18:55:570955デフォルトの名無しさん
2005/10/13(木) 19:17:460956デフォルトの名無しさん
2005/10/13(木) 20:19:32フレームがない頃はFormPanelなんてのがあったりしたなぁ。
今でもドッキングがあるし、普通じゃない?。
0957デフォルトの名無しさん
2005/10/13(木) 21:26:270958デフォルトの名無しさん
2005/10/14(金) 08:45:170959デフォルトの名無しさん
2005/10/31(月) 09:03:330960デフォルトの名無しさん
2005/10/31(月) 12:08:100961デフォルトの名無しさん
2005/10/31(月) 13:04:53ネットに落ちてないかな?
0962デフォルトの名無しさん
2005/10/31(月) 13:10:09ここってDel上級者用じゃないのか?
回転したいpanelのRectを部分の画像をコピーして回転させればイイじゃん。
それを別で表示
0963デフォルトの名無しさん
2005/10/31(月) 13:18:050964デフォルトの名無しさん
2005/10/31(月) 13:27:120965デフォルトの名無しさん
2005/10/31(月) 13:37:41その内容をコンポーネント化する方法きぼんぬ。
0966デフォルトの名無しさん
2005/10/31(月) 13:46:390967デフォルトの名無しさん
2005/10/31(月) 13:48:28だから真の意味では回転できない。
0968959
2005/10/31(月) 13:49:35でも、TImage(おっと、今使ってるのTPanelじゃなかった、TImageのビットマップだった)の中の
ビットマップの人が回転してて欲しいでつ。
0969デフォルトの名無しさん
2005/10/31(月) 13:52:460970デフォルトの名無しさん
2005/10/31(月) 14:00:21ttp://junki.main.jp/delphigr/050Rotation.htm
0971デフォルトの名無しさん
2005/10/31(月) 16:03:11結構面倒だね。
0973デフォルトの名無しさん
2005/10/31(月) 16:47:540974デフォルトの名無しさん
2005/11/01(火) 01:28:210975デフォルトの名無しさん
2005/11/01(火) 15:17:59データエクスプローラでMSAccessに新しい接続を追加して
「接続の変更」でプロパティ画面見たいのを出して、
「Database」のところにdb1.mdbのパスを入力して
「Password」と「UserName」をくうらんにして
テストを押したのですが、
「接続が開きませんでした」とメッセージが出て接続できません。
誰かお知恵を貸してください。
0976デフォルトの名無しさん
2005/11/02(水) 12:22:53どうすればできるのでしょうか?
Delphiに限らずどこかにサンプルとか落ちてないですかね。。。
0977デフォルトの名無しさん
2005/11/02(水) 12:37:27UpdateResourceでできるようです。
0978デフォルトの名無しさん
2005/11/04(金) 09:40:58Rave(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:510980デフォルトの名無しさん
2005/11/04(金) 11:44:11ありがとうございます。
ただ、そのblogの方も2005で
同じようにカスタムコンポを作った
とだけあります。
Delphi 7 ではコンポーネントの新規作成について
RaveのTRaveCustumMemoが上位クラスのリストに出てこなくて
Raveコントロールのカスタムコンポが作成できません。
Delphi 2005には上位クラスの
リストにRaveの(Data)Memoクラスが表示されて、
選択できるのでしょうか?
0981デフォルトの名無しさん
2005/11/04(金) 12:53:08usesすれば、参照はできます。
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ありがとうございます。助かりました。
その方法で試したみます。
0983デフォルトの名無しさん
2005/11/04(金) 13:03:160984デフォルトの名無しさん
2005/11/04(金) 13:03:18自分で探しても見つからないと思います。
情報があるのはニューズグループなので、ググッても無駄でしょう。
ブログの人が答えてくれなければ
borland.public.delphi.thirdpartytools.ravereportsにいるサポセンの人に
聞くのが手っ取り早いと思います。
0985デフォルトの名無しさん
2005/11/04(金) 13:18:10(PDFについてはDelphi 2006でも完全解決しないような雰囲気ですが・・・)
WIN32についてはもうお手上げと言った感じで
今後も文字化け解消の予定は無いらしいですので、RaveReportsを使っていくのは
かなり大変だと思います。
0986デフォルトの名無しさん
2005/11/04(金) 13:55:36Memo だけでなく
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ワーカスレッドのようなメッセージループを持たないスレッドでは動作しないのは
当然です。
0989デフォルトの名無しさん
2005/11/05(土) 09:40:08Synchronize
0990987
2005/11/05(土) 10:31:12Synchronizeでやりたいのですが、TThreadは見えなくて呼び出しできません。
(Indyのserverコンポーネントから呼び出される部分)
メインスレッドで生成されるウインドウ(form)はあるので、そこにメッセージハンドラ
作ってやらせるとかでしょうか?
0991987
2005/11/05(土) 10:58:03すいません、スレッドオブジェクトへの参照、もろ取れますね。
TIdTCPServer の継承クラスを作っているので
DoExecute(AThread: TIdPeerThread); override;
がそのものでした。
おさわがせいたしました m(_ _)m
レス数が950を超えています。1000を超えると書き込みができなくなります。