- 1 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 20:41:37 ]
- Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を 勇気を持って書き込むスレッドです。 Delphi使いが優しくコメントを返しますが お礼はDelphiの布教と初心者の救済をお願いします。 <前スレ> くだすれDelphi(超初心者用)その50 pc12.2ch.net/test/read.cgi/tech/1246340765/ <過去スレ> DelWiki避難所(Delphi 関連の過去スレッド) delwiki.info/?%E3%83%AA%E3%83%B3%E3%82%AF%2F%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%2FDelphi%20%E9%96%A2%E9%80%A3%E3%81%AE%E9%81%8E%E5%8E%BB%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89
- 844 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 09:37:41 ]
- 最近、Delphi7のデータベースを使ったプログラムを作った時の
配布方法について教えて下さい。 データベースを使ったプログラム自体初めてなので、これから 本とか買って調べるのですが、データベースアプリってデータベースも含めて Zipとかで配布できますか? インストーラーとかよく分からないので、解凍して終わりな感じにしたいです。
- 845 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 09:40:18 ]
- >>844
そんな知識レベルで配布とかすんな。
- 846 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 09:51:04 ]
- Delphi は複数の DB 接続技術を利用できますから、あなたのアプリがどれを使うかによって
話は変わってしまいます。 まず、データベースアプリを作りましょう。 配布の話はそれからで十分だと思います。
- 847 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 10:22:34 ]
- >>845
答えてくれてありがとうなんだけど、ケチ付ける前に日本語読めるか? これから調べて作るんだよ。 すっこんどけ。ヽ(`Д´)ノプンプン >>846 了解しました。
- 848 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 10:38:27 ]
- あと、せめてどのデータベースにつなげたいのかくらいは書いてね。
そういうのもまだ決まっていないならどうしようも無いけど
- 849 名前:844 mailto:sage [2010/06/23(水) 11:27:58 ]
- >>848
> あと、せめてどのデータベースにつなげたいのかくらいは書いてね。 > そういうのもまだ決まっていないならどうしようも無いけど なにぶん、初めてでどのデータベースに繋げようかとか決まってないです。 一応、「Delphi DB&Webプログラミング」って本が手に入りそうなので、 それで調べようかなと思っています。 逆に、簡単に配布出来るものってあるんでしょうか?
- 850 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 11:54:09 ]
- デルファイでマリオ作ろうとしてるやつっておめでたいな・・・
- 851 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 12:07:02 ]
- >>849
何を構築しようとしてるのか知らないけど、多分、君にDBは必要無いと思うよ。
- 852 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 13:09:16 ]
- 7をWindows7で使ってます。
TRicheditの背景色についてですが、 いったん表示されてから、Windowsのテーマ変更で背景色が変わった場合 TRicheditは背景色がclWindowに追随してくれません。(ほかにTTrackbarも) テーマ変更時のイベントを捕捉できればいいのですが、eventにはそれらしき ものが見当たりません。 ためしにonChangeイベントで reRichedit.color := clWindow; とやってみましたが、テーマ変更後の色に変わりませんでした。 いったんコンポごと消して再生成するしかないのでしょうか?
- 853 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:14:26 ]
- まぁ、確かに要らないかも何ですが・・・
あるデータを溜め込んで、andやorで抽出する必要があるんで 何かのデータベースを使った方が楽かと。 データリスト自前で作っても良いんですけどね。
- 854 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:18:23 ]
- ・自分でフィルタリングするの面倒だからDB使う。
・インストール面倒だからzipでファイルだけ配布。 ・調べるの面倒だから2chで丸投げ。
- 855 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:38:43 ]
- 854 どれも立派な理由だと思います。
- 856 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:41:06 ]
- いやいや別に丸投げって、そんんぁ。
インストーラーみたいなのをやらないといけないかどうかだけだよ知りたいのは。 データベースによるわ、ヴォケ!ってなら ヾ(゚∀゚)ノ ハイ で終わり
- 857 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:45:26 ]
- リレーショナル DB である必要がなく、データ件数が高々数万でよいなら
ClientDataSet を MidasLib ユニット経由で使えば、アプリケーションに 組み込み(追加の配布ファイルなし)で作れます。 一般の(リレーショナル)DB を使う場合には、そのサーバーそのもの以外に DB メーカー提供のミドルウェア(接続用 DLL)が必要になります。 多くの場合、アプリケーションと同じディレクトリに置けば動く場合が多いですが そうでない場合もあります。
- 858 名前:856 mailto:sage [2010/06/23(水) 15:52:28 ]
- >>857
ありがとうございました。 調べる的が絞れました。
- 859 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 02:31:28 ]
- ちょいちょい挟んでくるAAがイラッと来るなw
分かってやってるのかもしれんが
- 860 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 08:11:08 ]
- 朝から引っ込んで炉よ、クズβακα..._φ(゚∀゚ )アヒャ
- 861 名前:デフォルトの名無しさん [2010/06/24(木) 16:06:04 ]
- SHFileOperationって、いわゆる非同期というやつなんでしょうか?
大量のファイル(フォルダ)をバックグラウンドでコピーするために FOF_SILENTを指定してSHFileOperationを使ってみたのですが、 処理が終わるまで画面が固まってしまいます。 そこで↓みたいなワークスレッドを作ってその中で実行させてみたのですが 今度はすべてのファイルがコピーされないまま、SHFileOperationから抜けて スレッドが終了してしまいます。 procedure TWorkThread.Execute; begin ShellAPI.SHFileOperation(ShellParam); end; こっち立てればあっち立たずな感じで困っています... こういうときにDelphiでうまい対処法みたいなものがあるのでしょうか?
- 862 名前:デフォルトの名無しさん [2010/06/24(木) 17:10:41 ]
- Outlook Expressの保存フォルダ(dbxファイル)の場所を取得するには?
- 863 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 17:46:25 ]
- >>858
分かってるとは思うけどDBのライセンスに注意してね 付属のIntereBaseも再配布不可どころか開発専用のライセンスだし。 Delphiの場合だとIBX+組み込み版Firebirdが手っ取り早いと思うけど
- 864 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 19:01:39 ]
- うるせーハゲ^^
- 865 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 19:59:16 ]
- >>861
画面の見た目にこだわらないのであれば 処理の進捗を表示するフォームを作成してからCopyFileExを呼び出して、 コールバック関数内で画面を更新させる手もある
- 866 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 09:09:38 ]
- >>861
TSHFileOpStructのウィンドウハンドルに0を指定でいいんじゃね。
- 867 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 11:48:40 ]
- 他のアプリのフォントの色を取得するにはどうすればいいですか?
目的のアプリのコントロール?のハンドルは取得できています。 GetDCでデバイスコンテキストを取得して、 Label1.Font.Color := GetTextColor(DC); みたいにしているんですが、「0」が返ってきてしまいます。 よろしくお願いします。
- 868 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 11:54:56 ]
- 全く同じ質問を見たような気がするが気のせいか?
- 869 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 11:58:16 ]
- 失礼しました。
675にアキラメロンがありました。
- 870 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 15:40:43 ]
- 数年前にDelphi6をやっていてある程度マスターしていたのですが
ひさしぶりにプログラミングをやろうとしたら全然状況が変わっていて どの言語をやろうか迷っています。 Delphi経験者が今から趣味でプログラミングを始めるならどの言語がいいですか?
- 871 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 15:57:52 ]
- >>870
Object C
- 872 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 16:54:59 ]
- >>870
C#
- 873 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 21:47:02 ]
- >>870
Prism
- 874 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 22:03:33 ]
- >870
趣味?お金をかけたくないならC#、お金に余裕があるならDelphiかPrism。 C#はEEならただだから。
- 875 名前:765 mailto:sage [2010/06/26(土) 12:09:21 ]
- >>832
すいません、やっと出張から帰ってこれました・・・。 遅くなりましたが、うpローダーにうpしてみました。 ttp://www.dotup.org/uploda/www.dotup.org988294.zip.html 確認用に取得したHTMLをtest.htmlとしてexeと同じ位置に保存し、それを再度TWebBrowserに 取り込んでいます(ランタイムエラーでますが)。 TWebbrowserの画面でいますぐ利用する(無料)ボタンが表示されている場合、ログインできて いないhome.pl画面です。 ログインできている場合は、該当アカウントのhome画面になるはずです。 よろしくお願いします。 来週からまた出張・・・orz
- 876 名前:765 mailto:sage [2010/06/26(土) 12:10:15 ]
- しまった書き忘れ・・・。
うpローダーのダウンロードパスはdelphiです。
- 877 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 13:36:05 ]
- Delphiってもう無料版はないの?
- 878 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 14:16:33 ]
- ない
- 879 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 00:56:09 ]
- 処理中にマウスのカーソルを砂時計にしたいのですが、
各コントロールのCursorを全部設定していかないと いけないのでしょうか?
- 880 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 03:16:10 ]
- Screen.Cursor := crDefault;
- 881 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 18:52:36 ]
- >>875
何度も言われていることなのにバカなの? login.pl→check.pl→home.plっていう流れなのに いきなりhome.plアクセスしてるじゃん。 いろんな人がいろんなアドバイスしてくれてるのに 全く聞く耳持ってないじゃん。 login.plでちゃんとログインできたらメタタグだけでcheck.plに行けって返ってくるから そこにアクセスしてからhome.plにアクセスしてみなよ。 一度目のPOSTのレスポンスを表示しようと思わなかったのはなんでだろうか。
- 882 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 19:45:37 ]
- 聞いてる時点でやる気も調べる気も行動する気も最後までやり遂げる気も無い
- 883 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 02:03:47 ]
- 釣れた釣れたw
- 884 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 05:34:07 ]
- 釣られちゃった
てへっ
- 885 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 09:44:58 ]
- 恥ずかしい後釣り宣言来ました
- 886 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:00:40 ]
- 恥ずかしい後釣り宣言来ました宣言来ました
- 887 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:47:30 ]
- 自動ログインしたいという根性そのものがいけすかない。
手動でやれ手動で。ビシっと。
- 888 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:55:47 ]
- そういうのはC#でやるのが簡単なのに
- 889 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 16:35:18 ]
- Del7のListViewの事で質問です。
ListViewの左端(ItemのCaption?)に入力されている文字列と これから追加しようとする文字列が重複していないか確認をしたいのですが、 for i:=0 to ListView1.Items.Count-1 do if ListView1.Items.Item[i].Caption<>stringData then ・・・・ みたいにするしかないでしょうか? よろしくおねがいします。
- 890 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:25:46 ]
- ListView1.Items.IndexOf(stringData) >= 0
とか ListView1.FindCaption(0,stringData,False,True,False) = nil とか
- 891 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:29:14 ]
- ListView1.Items.IndexOf(stringData) < 0
だった
- 892 名前:889 mailto:sage [2010/06/29(火) 10:20:41 ]
- 質問した時のプログラム例が間違ってる。
恥ずかしい。orz >>890 ありがどうございます。 しかし、ItemsのIndexOfはTListItemを探すものらしいです。 ListView1.FindCaption(0,stringData,False,True,False) = nil こっちでいいみたいです。
- 893 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 10:24:06 ]
- VirtualListViewでやれば好きなように出来る。
- 894 名前:765 mailto:sage [2010/06/29(火) 11:14:01 ]
- >>881
当初Live HTTP headersで確認したところ、login.plのあとにcheck.pl?n=/home.plにアクセス していることがわかりましたので、 IdHTTP1.Get('mixi.jp/check.pl?n=home.pl'); や IdHTTP1.Get('mixi.jp/check.pl'); を試した事もありました が、双方ともに302 Foundがでるので(ブラウザからはアクセスできる)、それ以上の調査はして おりませんでした。 アップロードにうpしているファイルは、上の方でログインに成功されている方の例をそのまま 使って作り直したものです。 >>881さんはcheck.plにアクセスした際に、302 Foundエラーはでませんでしたか? もしでている場合、どのように回避されましたか? 実はIndyのバージョンを2009梱包版のものではなく、最新にあげてしまっているので、そのあた りが影響していないか心配です。
- 895 名前:765 mailto:sage [2010/06/29(火) 11:27:51 ]
- 追加
POSTから返ってきた文字列に関しては>>768で触れております。 が、この時点でこのアドレスはクッキーが無効であるという失敗を表すものだという勘違いをして しまい(>>784さんも同意見だったため)、しばらく迷走しておりました。 で、その後再度Live HTTP headersを追ってみたところ、「mixi.jp/check.pl?n=%2Fhome.pl」 へのGETを発見しました。 今改めてみてみましたが、ブラウザでもcheck.plへのアクセスのあと、一度「HTTP/1.1 302 Found」 がでていますね・・・。
- 896 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 16:33:24 ]
- D3のSQLエクスプローラーで二つのInterbaseファイル間のテーブルの比較って出来ますか?
片方で削除されたレコードを抽出したいのです。
- 897 名前:デフォルトの名無しさん [2010/06/29(火) 23:44:12 ]
- win7でターボデルフィは動かせますか?
- 898 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 01:18:54 ]
- 302がエラーだとしか思わない人がネットツール作れるのかよ・・・・・・
- 899 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 03:07:49 ]
- >>895
もう続きはチラ裏でいいと思うよ
- 900 名前:765 [2010/06/30(水) 09:49:43 ]
- >>898
超初心者ですので、勉強のつもりでやってます・・・。 用語もそれほど知らないので、どう皆さんにうまく説明していいかわからず、エラーと表現して しまい申し訳ございません。 >>881さんがどのように302 Foundを回避されているのか、アドバイスいただければ幸いです。 >>899 自分自身Delphiはおろかプログラミングもはじめたばかりですので、このスレに来たのですが、 もっと初心者向けのスレがあるという事でしょうか? ここでも場違いなようでしたら、どちらかのスレに誘導していただければ嬉しいです。
- 901 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 10:25:11 ]
- Delphi7+Firebird+IBXで開発したものをDelphi2009で再構築しています。
データベースのテーブル一覧を取得するために下記SQLを発行していますが、 テーブル名が10文字分しか返ってきません。何か対処法ご存じでしたらご教授願います。 select rdb$relation_name from rdb$relations where (rdb$view_source is null) and (rdb$system_flag=0)
- 902 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 10:32:54 ]
- 本当に勉強したいなら、匿名無料掲示板で相談するのではなく経験を持っている人に教わった方が
速いです。身近に相談できるような人はいませんか? >もっと初心者向けのスレが 「知らないこと」には限界が無いので、初心者とひとくくりにすることができないのですよ あなたがどこまで何を知っているか。によって答え(や参考資料の出し方など)は変わっていくのです。 どこかにもっと初心者向けのスレがあるかもしれませんが、それは誰にもわかりません。 多くの回答者は暇なときにしか対応できませんからどうしても時間がかかります。だから「出直してこい」「ちょっとは 自分で調べろ」と言うしか無いのですよ。 今回の件では、プログラムする前に何が正しい動作、期待する動作なのかを知る必要が有るでしょう。 まずブラウザとサーバーの会話を分析、理解するべきだと思います。 簡単にはパケットキャプチャ。Safari や Chrome などのブラウザ組み込み開発ツールも役に立つでしょう。 ここから先は、まずはネットワーク関連のスレに移動した方が、より専門的な解説、説明、罵倒が待っていると おもいます。行ってらっしゃい
- 903 名前:765 mailto:sage [2010/06/30(水) 11:46:21 ]
- >>902
このスレですでに二人ほど、ログインに成功している方がいるので、できればその方たちから のヒントを聞かせていただければなと思っておりました。(´・ω・`) もちろんヒマな時の回答でも、すごく嬉しいです! DelphiでIndyを使用してMIXIにログインする例が見あたらなかったので、今後トライしようと する人の為にも成功例がコードと共にあった方がいいかなと思って質問を続けてきましたが、 他のスレに行った方がよさげですね・・・。 とりあえずネットワーク関連のスレの方をみてみます。 こちらでも何かヒント等ありましたら、引き続きアドバイスいただければ幸いです。 ありがとうございました。
- 904 名前:765 mailto:sage [2010/06/30(水) 12:28:13 ]
- XRayさんのところに302回避の良いサンプルがありました。 Redirectを使って処理すればいいようです。
ちら裏になりますが、現在の状況です。 まだ解決にはほど通りので、引き続きがんばります。 ログイン情報をPOST ↓ Cookieとmixi.jp/check.plへ行けとの指示ゲット ↓ 302Found ↓ Redirectで処理し、mixi.jp/home.plが返ってくる ↓ mixi.jp/home.plへ移動 ↓ ログイン前のホームが依然表示される
- 905 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 12:40:52 ]
- だからブラウザだって302を受け取って処理してんの。それと同じにやればいいんだよ
- 906 名前:765 [2010/06/30(水) 12:55:21 ]
- >>905
>>904のRedirect処理部分で、同じように処理いたしました(XRayさんのサイト参照)。 (Live HTTP Headersで確認したところ)正しい動きとしてはhome.plで無事ログイン済みになり あらたにemidというCookieをもらえるはずですが、上記の通りでやはりログイン前の画面に なってしまうので、引き続き調査中です。
- 907 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 14:00:32 ]
- そもそも認証は面倒だからIEでいいならIEコンポ(WebBrowser)でやったほうが早くて確実だけど
INDYにこだわる必要があるのかな WebBrowserで自動ログインする部分が多少面倒だけどそれさえクリアすれば後は簡単
- 908 名前:765 mailto:sage [2010/06/30(水) 14:13:21 ]
- >>907
WebBrowserは別の練習アプリで使ったので(その時にIndyでも認証ができると知りました)今回は Indyに挑戦してみようと思いまして。 だが、資料が少なすぎて、今の俺のスキルでは無茶すぎた・・・! と後悔しつつも、せっかくだか ら最後までやりたいと思っております。
- 909 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 14:41:41 ]
- 302回避とか書いている時点でなにも理解できてない。
Delphiとは関係ない知識が足りてない。
- 910 名前:765 mailto:sage [2010/06/30(水) 15:13:50 ]
- >>909
知識不足というのは、自分でも痛感しています。 なにぶんプログラムを勉強し始めたばかりで すのでご容赦ください。 現在の時点では、ググった結果さえ理解できない事も多く、このスレの回答者の皆さんみた いになるには、かなりの時間が必要そうです。 回避というのは、302が返ってくるのでどのように処理すればいいのかという意味のつもり だったのですが、適切な言い方ではなかったようで、申し訳ないです。 Live HTTP Headersでの確認では、check.plにアクセスしたあと、「HTTP/1.1 302 Found」が返っ てきており、その後home.plにアクセスしているので(おそらく>>905さんがおっしゃる通り、ブラウ ザが302をこの時点で処理している)、やり方としては今Delphiでやっている事と同じような気も するのですが。 今日は一日休みですので、もう少しLive HTTP Headersを確認しつつがんばってみます。 上で、すでにログインに成功している人がいるし、見落としている部分に答えがありそうです。
- 911 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 16:12:08 ]
- なぜDelphiなんだろうC#のがいいのに
- 912 名前:765 mailto:sage [2010/06/30(水) 16:40:50 ]
- >>911
ちら裏になりますが、会社の自分の前任者(元プログラマ、退職済)が2009を購入してもらって、 ちょこちょこ便利ツールを作ってたみたいで、後任の自分も使ってみたら?と渡された。 もともとプログラムできる奴カッケー!!と思っていたので、仕事の合間や自宅にノートPC持っ て帰ってに勉強しています(セキュリティが緩いので・・・)。 職種はまったくPCと関係ない上、社内でその手の知識がある奴も皆無なのがつらいところ。
- 913 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 19:17:26 ]
- なぜDelphiなんだろう
- 914 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 21:23:52 ]
- Webアプリ作りたいんならまずRFC2616くらいは読んどいたほうがいい。
とりあえず、「HTTP/1.1 302 Found」は必ずしもエラーを意味しない。それによりリダイレクト させることが目的である場合もあるから。 Indyのバージョンによるのかもしれないけど、プロパティで302を自動でリダイレクトさせる ことができるし、実際自分はそれを使ってる。
- 915 名前:765 mailto:sage [2010/06/30(水) 22:33:34 ]
- >>914
実はRFC2616を説明しているサイトで302 Foundについてすでに調べたのですが・・・・ さっぱり意味わかんねえええええw orz 他も色々みてみて、どうやら一時的なページの移動か、CGIが返す場合があるという事 として今は理解しています(検討外れだったらすいません・・・)。 Indyのバージョンは最新のはずなので、もしかしたら自動でリダイレクトさせるプロパティ があったのかもしれないですが、とりあえず現在はRedirectイベントで処理いたしました。 今日は力つきたので、ここまででw
- 916 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 23:06:41 ]
- Delphiと関係ないことは理解できましたか?
- 917 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 04:20:03 ]
- BDEでODBC経由でSQL Serverに接続しています。(TDateBaseクラスを使用)
複数のプロセスでDB接続している際、その中の1つのプロセスを強制終了 (クラッシュ)しては再起動ということを繰り返していると、何度かいったところで 「この操作に必要なメモリがありません」と出て、DB接続できなくなります。 DB接続しているプロセスをいったん全て終了させると、正常に戻ります。 見たところではリソースのリークのようなのですが、改善することはできますで しょうか。
- 918 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 04:28:35 ]
- プロセスの強制終了が直接の原因でしょ
BDE は共有メモリモデルで動いているから異なるプロセス間で共有しているメモリブロックが解放されず 不足したのでしょう。 強制終了しないように直し、仮に例外が発生しても正しくアプリケーションを終了させるようにするのが正道。
- 919 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 04:42:57 ]
- BDE 使い続けている人は多いなぁ
- 920 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 09:41:07 ]
- BDE経由だとoracleでもそんな感じだし。
- 921 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 09:55:45 ]
- >>765
C++Builder2010だけど、>>814 のコードでログインできた。 >>814 のコードの IdHTTP1.Post('mixi.jp/login.pl?from=login1',PostData,Req); で、Reqにサーバーからのレスポンスが入っている。 とりあえずReqのデータをSaveToFileでファイルに保存してファイルの内容を教えろ。 ログインできていれば、あとは >>814 の次のコードでログイン後のページが表示される。 IdHTTP1.Request.ContentType:=''; Buf:=IdHTTP1.Get('mixi.jp/home.pl'); 302 Foundとかで躓く理由がない。
- 922 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 11:36:04 ]
- Indyってnegotiate認証に対応しているのでしょうか?NTLS認証は対応してるっぽい
ですけど、Kerberos認証は対応してます?
- 923 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 12:03:02 ]
- Delphi2010(Rad Studio)の
逆アセンブル/レジスタなどのペイン(メニューだと表示→デバッグ→CPUウィンドウ以下) のフォントサイズが6?7?なのか不明ですが、文字が小さすぎて見えません CPU全体というものを選べばフォントサイズはでかくて見易いのですが、この項目はエディタウィンドウと重なってしまい、使い勝手が悪いです 特にこれらの項目のフォントサイズを変更する項目が見あたらないのですが、文字を大きくすることは不可能なのでしょうか…
- 924 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 13:04:34 ]
- 日付の比較がしたいのですが、
2010年1月1日,aaa,bbb,ccc 2010年1月2日,ddd,eee,fff ・ ・ ・ 2010年7月1日,111,222,333 の様なリストがあって、ユーザーからは「2010年2月1日から2010年5月6日まで」みたいに指定されます。 今考えているのは、年月日の漢字を消して 201021 と言う数字にして比較しようと思っているのですが、 もっと良い方法があれば教えて欲しいです。 よろしくお願いします。
- 925 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 13:07:09 ]
- TDateTime型に変換する
- 926 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 18:50:02 ]
- >>924
> 今考えているのは、年月日の漢字を消して 201021 と言う数字にして比較しようと思っているのですが、 それだと2010年1月11日と2010年11月1日の区別ができないのでは。
- 927 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 19:25:17 ]
- StrToDateTimeでTDateTimeにして比較する
- 928 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 19:26:19 ]
- ごめん、こっちの方
VarToDateTime
- 929 名前:924 mailto:sage [2010/07/01(木) 23:06:28 ]
- 皆さん、ありがとうございました。
VarToDateTimeを使って、上手くできました。 また、よろしくお願いします。
- 930 名前:765 mailto:sage [2010/07/02(金) 10:16:26 ]
- >>921
Reqのデータですが、こちらでは <html><head><meta http-equiv="refresh" content="0;url=/check.pl?n=home.pl"></head></html> となっています。 >>921さんはどのようなデータを取得できましたか?
- 931 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 13:17:35 ]
- あれだけ言われてまだここでやるんだ
- 932 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 14:46:08 ]
- >>930
そのレスポンスなら、mixiの認証は通っている。 ここまでは正しい動作だ。 では次に >>815 の次の部分を下のコードのように変更してほしい。 これを Buf:=IdHTTP1.Get('mixi.jp/home.pl'); こうする Req.Clear(); IdHTTP1.Get('mixi.jp/home.pl', Req); Reqにサーバーからのレスポンスが入っている。 これをSaveToFileでファイルに保存して内容を確認してほしい。 なお文字コードはeuc-jpなので、euc-jpに対応しているエディタで開く必要がある。
- 933 名前:765 mailto:sage [2010/07/02(金) 16:49:20 ]
- >>932
Reqの中身はログイン前の画面でした。 「すでに登録済みの方は、 こちらからログインしてください」 と共にログインメールアドレスとパスワードの入力を施す画面です。 >>932さんや>>814さんはこれでログインできているようですので、もしや、Indyのアップデータを 行ったのが問題なのか? 週末にでも一度削除し、インスロールを一からやり直してみます。
- 934 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 17:45:30 ]
- >>933
これ使え。 yuukiremix.s33.xrea.com/chirashi/
- 935 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 19:01:55 ]
- ここまでやってパスかメアド間違えてるとかだったら殺意すら湧く
- 936 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 20:26:11 ]
- var
X: Cardinal; としておいて、 X:=32768*32768; X:=X*2; とか、 X:=2147483648; だと問題ないのですが、 X:=32768*65536; では、コンパイル時に「[エラー] 〜: 数値演算のオーバーフロー」となってしまいます どうしてなのでしょうか
- 937 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 20:41:12 ]
- 0..4294967295
- 938 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 21:00:16 ]
- >>937
4294967295 ? 32768*65536は 2147483648 ですから、あふれてないように思うのですが
- 939 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 21:26:45 ]
- ヘルプの「真の定数」によると、定数式が整数の場合はその値によって型が決まり
32768〜65535 ⇒ WORD 65536〜2147483647 ⇒ 0..2147483647 となる。この場合 (WORD)*(0..2147483647) の演算だから 式全体の型は 0..2147483647 となり、結果がこの範囲に収まらないとエラー という理屈になるのかな。何だか納得いかないけど、とりあえず X := 32768*Cardinal(655356) とでもすればコンパイルは通るだろ。
- 940 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 22:26:25 ]
- >>939
「真の定数」読みました なるほど、65536..2147483647は、ほぼInteger(Longint)ですね X:=Cardinal(32768)*65536; でもOkでしたので、その解釈は当たりだと思います 分かりましたー、と言いたいところですが、それなら X:=32768*32768; でもオーバーフローになるはずでは??? やっぱりなんか変ですよね
- 941 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 23:09:09 ]
- >>940
あとは、整数型同士の演算の場合 どちらかがInt64なら結果もInt64、そうでなければ結果はInteger という規則があるから、これにひっかかるのかな。(ヘルプだと「算術演算子」のところ) Cardinalが入った場合の規則が書かれていないからよくわからないけど、 Integerの範囲には収まらないはずだからInt64扱いになるのかもしれない。
- 942 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 00:29:21 ]
- >もしや、Indyのアップデータを行ったのが問題なのか?
>週末にでも一度削除し、インスロールを一からやり直してみます。 ワロタwww アップデータをインスロールしてくださいね(笑)
- 943 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 01:39:16 ]
- 定数の型を指定したい場合はこうすればいい
const foo = Cardinal(1);
- 944 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 08:46:20 ]
- 計算時に
i := Cardinal(1) * 10; でいいやん。
|

|