1 名前: ◆XcB18Bks.Y mailto:sage [2008/06/24(火) 16:24:25 ] Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を 勇気を持って書き込むスレッドです。 Delphi使いが優しくコメントを返しますが お礼はDelphiの布教と初心者の救済をお願いします。 <前スレ> くだすれDelphi(超初心者用)その46 pc11.2ch.net/test/read.cgi/tech/1205323779/ <過去スレ> 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
562 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 02:56:02 ] >>561 CreateProcess, CreatePipeのサンプルがMLにあったはず。 中村氏だか戸田氏のコード。 それをサブスレッドで動かしてやれば標準出力を一行ごとに取れるだろう。 標準入力も受け付けるようなコンポーネントもあったな T*Dos*だかなんだか。かなり大昔の話だけど。 delphi component pipeあたりで探してれば見つかるんじゃねーの。知らんけど。 にしてもコマンドラインもパイプもネットワークもまるで興味なさそうだったのに 猫も進化するもんだなw
563 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 07:33:05 ] フサギコは犬だよ
564 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 08:35:50 ] Ω ΩΩ ナ、ナンダッテー!!
565 名前:Delフサギコ ◆A6VzDeLphI mailto:sage [2008/09/07(日) 00:56:56 ] わ・・・わん・・・・・・・ ∧.,,∧ >>562 さん ミ.,,゚Д゚彡 ミ つ目(ミ . 相変わらずですね。 〜ミ,,O,,,,,,つ まあ、いいけど。 Autch.netさんところや、 [プロセスコミュニケートコンポーネント(適当w)]さんのところで かかれているような応用すれば > こんどは、ping -t 192.168.0.1 というずっと続く > コマンドを、Memo1コントロールあたりに > DOSプロンプトと同じ風に、1行つづ、出力したかったりするんですが こういうのできるのかなあ。 んーー、ちょっとコーディングの感覚を取り戻す必要があるなあ。
566 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 05:12:03 ] TMemIniFileのUNICODE対応版(WideString)はどこかにありませんでしょうか?
567 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 09:56:55 ] INIファイル自体MS非推奨だからPrivate〜W系APIはない。 ついでに言えばUNICODE≠WideStringな。 MemInifileのソース抜いて頭にtype String = WideString;入れて再コンパイルしたら。
568 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 11:14:50 ] TMemIniFileはAPI非依存だから、改造すればいけそうだね
569 名前: ◆XcB18Bks.Y mailto:sage [2008/09/07(日) 15:32:45 ] >>566 ワイド文字列の値を保存するだけなら UTF8Encode関数でUTF-8に変換すればよいと思います ワイド文字列のファイル名だと大変そうですね。 >>545 アクションリストは基本的にメインフォームに置いています。 データモジュールはユーザーインターフェース(U/I。表示や編集)と無関係な 内部情報や内部処理を置く場所に徹するべきだと思います。 フォームを複数使うプログラムでは サブフォームやフレームがメインフォームを参照しないようにしています。
570 名前:545 mailto:sage [2008/09/07(日) 15:56:17 ] >>569 UIに関するものはメインフォームに置く、ということですが、その場合 サブフォームやフレームがメインフォームを参照しないようにできるんでしょうか?
571 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:56:06 ] Frame側でFileExecuteなんてpublicメソッドを用意して メインフォーム側のFileExecuteイベントハンドラから呼び出せば依存関係がなくなる。 publicをpublishedにしてSender.Name + 'Execute'を検索すれば少し楽になる。
572 名前:545 mailto:sage [2008/09/07(日) 20:04:55 ] いやそうでなく、フレーム側からメインフォームを参照するって話なのですが・・・ 動的にメソッド呼ぶのはなんか違くないですか?
573 名前:571 mailto:sage [2008/09/07(日) 20:31:26 ] (その逆はともかく)どうしてもフレーム、サブフォーム側からフォームを参照したくなければしなくてすむという話をしたつもりだったんだが。 動的かどうかはあまり本質的ではないと思うが。
574 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 23:22:24 ] Delphi2007にUpdate3を当てると、System.pasが見つかりませんという DCCエラーが出るのですがどうすればいいんでしょうか? 他のUpdateも必要なのかと思い、 December2007 UpdateとApril08 Hotfixも当ててみましたが改善されません。 誰かご存知でしたら、教えてください
575 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:29:46 ] System.pasが見つからないは大抵コンパイラ起動する引数が多かったりするだけ ライブラリパスとか減らせば直ると思うよ こっちはd6per(笑)だから参考になるか分からんけども
576 名前: ◆XcB18Bks.Y mailto:sage [2008/09/08(月) 15:35:41 ] >>570 ・内部情報と内部処理は全てデータモジュールに置く ・内部処理クラスや汎用関数は別のユニットに書く とやるようにしたらメインフォームを参照することはなくなりました。 ただ、メインフォームにデータの保持とUIが一体化しているコンポを置く場合は 難しいかもしれません。
577 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:53:44 ] >574 この件はローカライズの不具合で対応パッチがあったと思うけど。これか。 ttp://hiderin.air-nifty.com/delphi/2007/09/index.html#entry-20740562
578 名前:574 mailto:sage [2008/09/08(月) 22:19:48 ] >575 アドバイスありがとうございます。 手動でライブラリパスを変更して、Delphiを再起動するとうまくいきました >577 あ、問題はたぶんそれです でも、それ今はアップデートリストに出てこなくなってるようです。 一応手動ではありますが、解決しました ありがとうございました
579 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 07:57:56 ] Delphi最新版の予約語一覧をネットから見られるとこないですかね。
580 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:02:45 ] イメージ上でMouseDownしたときの処理A 同じくDlClickしたときの処理B 処理B実行後に時折Aが発動するんですが回避方法あります? Bの端末にReleaseCapture入れてみたがダメだった。
581 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:45:56 ] マウス操作ミスじゃないのか? ダブルクリック後一定時間以内ならMouseDownを無視してはどうでしょう?
582 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 17:26:47 ] マウスがチャタリング起こしてたりしない?
583 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:00:44 ] >579 つ ttp://docs.codegear.com/docs/radstudio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/devcommon/fundamentalsyntacticelementsov_xml.html
584 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:30:02 ] 出勤前、帰宅後で自作自演、ご苦労さん
585 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 08:24:08 ] >>580 処理Aで↓ if not (ssDouble in Shift) then
586 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:59:09 ] >>581 >>582 >>585 どもです。 操作ミスではないようです。チャタリング?は調べてみたところ大丈夫みたい。 >>585 で問題なく動作しました。ありがとうございます。 ssDubleについてはこれから調べてみます。
587 名前:デフォルトの名無しさん [2008/09/12(金) 19:13:43 ] 少し相談にのっていただけないでしょうか? TFrameをつくり、 フレームを使ってみる - DelWiki delwiki.info/?%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B こちらの方法で動的生成しているのですが、 実行時に以下のようなエラーが出てしまいます。 .dfmを見ると、ClientHeightが確かにあるのですが、削除しても フレームを表示すると、ClientHeightが再生成されてしまいます。 (ClientHeightを一時的に削除しても、同様に PixelsPerInch、OldCreateOrderプロパティでも同じようにエラーがでます) どのような対処したらよいものでしょうか? --------------------------- mogemage --------------------------- PropertyToolFrame.ClientHeight の読み込み中のエラー : プロパティ ClientHeight は存在しません. --------------------------- OK ---------------------------
588 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:16:04 ] 環境を書き忘れていました。 BDS2006 OS: Vista SP1 です。
589 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:38:52 ] >>587 おまいら、教えろ! まで読んだ。
590 名前:587 mailto:sage [2008/09/12(金) 20:08:04 ] >>587 です。 実は、Frameにこちらの TSpTBXFrame を、 Web interface to jrsoftware.org newsgroups - Re: Does SpTBXLib support TFrame ? news.jrsoftware.org/read/article.php?id=15119&group=jrsoftware.toolbar2000.thirdparty#15119 使っておりまして、どうも TSpTBXFrame にしたときに ClientHeight が published property にないのになぜか.dfmに保存されてしまうタイミングがあるようです。 (Forms.pasの property ClientHeight write SetClientHeight stored IsClientSizeStored が原因あるんでしょうか?) そこでアドホックですが、 ・「エディタで表示」(Alt + F12)でいったんIDE内でテキストで表示する ・エディタでエラーになる該当部分を消す。(ClientHeightなど) ・「フォームとして表示」(Alt + F12)で再表示する ・フレームのサイズを変更してみる ・コンパイル、実行 で修正OKでした。 結果的にエスパー必要としてスイマセン…… その後、「エディタで表示」で再度いじろうと思ったら、 --------------------------- 情報 --------------------------- モジュール '(パス)hoge.pas' は継承またはリンクされたモジュールで使われています。.閉じること はできません。 --------------------------- OK --------------------------- とかでで「エディタで表示」できなくなりました orz これはどうしたもんでしょうか?
591 名前:587 mailto:sage [2008/09/12(金) 20:31:37 ] > モジュール '(パス)hoge.pas' は継承またはリンクされたモジュールで使われています。.閉じること はできません。 の件は、どうやら フレーム名とフレームの型が .dfm と.pasで異なっていた(入力ミス?) のための影響でした。整合性をたもちましたら、解消されました。
592 名前:587 mailto:sage [2008/09/12(金) 20:41:59 ] 何度もすいません。原因がわかってきました(´д`;) こちらの TSpTBXFrame、 Web interface to jrsoftware.org newsgroups - Re: Does SpTBXLib support TFrame ? news.jrsoftware.org/read/article.php?id=15119&group=jrsoftware.toolbar2000.thirdparty#15119 つまり、これなのですが、 gist: 8945 ? GitHub gist.github.com/8945 デザイン時にTFrameを新規作成から生成し、 THogeMyFrame = class(TSpTBXFrame) という風に書き換えて、コンパイルし、いったん閉じて再度ひらいたところ デザイン画面がTFormのものになっており(TFrameの場合、枠がないはずなのに枠がある)、 .dfmの保存時もあたかもTFormのように振舞ってしまい、ClientHeight以下、 その他もろもろが保存されてしまうようです。 (ちなみに、TTnTFrameに置き換えた際は大丈夫でした) これは一体どのような現象なのでしょうか?
593 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:39:56 ] もう日記にでも買いたら。そんな一般性のない自問自答はしらんがな
594 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:56:07 ] >>592 おそらくIDEのバグ 回避方法はもう忘れた 発生のタイミングはフレーム上のコンポを弄って保存した時。なのであまり弄るなw
595 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 09:08:18 ] TMainmenuのソース眺めてたらコンストラクタがなかったんだけど こいつを弄りたいときはドコ見れば良いんでしょ? 複数のペインがあるソフトでToolBarとかじゃなく個々にメインメニューを 置けないもんかとふと思ってね。縦置きとか下段置きとかやれんもんかと。
596 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 10:07:57 ] 継承して弄りたいなら TMyMainMenu = class(TMainMenu) public constructor Create(AOwner: TComponent); override; でいいんじゃないの。TMainMenuになければその親〜TComponentのコンストラクタがそのまま使われる。
597 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 10:38:08 ] メニューそのものはウィンドウズのメニューだよ。ウィンドウズのメニュー そのものの振るまいをかえることはできない。
598 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:08:49 ] ToolBarのMenuBar := Trueにする方法がなかったけ?
599 名前:デフォルトの名無しさん [2008/09/14(日) 02:42:51 ] フォーム画面での「パネル」コンポーネントについて質問です。 すでにフォーム上に置いてあるコンポーネントを、 新たに配置したパネルの上に乗せたいのですが、 どうすればいいでしょうか? 画面左上の「構造」ウィンドウでドラッグしても、 駐車禁止マークみたいなものが出て、ドラッグできません。 (出来る時もあったように思うのですが・・・・)
600 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 02:50:45 ] カット&ペースト
601 名前:599 mailto:sage [2008/09/14(日) 03:08:38 ] できました!ありがとうございます。
602 名前:デフォルトの名無しさん [2008/09/14(日) 07:46:48 ] コンポーネントからParentのFormのイベントに対して反応することや、メソッドをフックするようなことは可能でしょうか? 具体的には、あるコンポーネントをFormに置くと、 CreateParamsを上書きして設定を書き換える、といったようなことです。 普通は、TMyForm.CreateParamsを定義して、 コンポーネントで定義したUpdateCreateParamsみたいなのを呼ぶものと思います。 ただ、もっと簡単にコンポーネントを利用できるようにならないかと思った次第です。
603 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 18:33:57 ] 継承のメカニズムに外部から干渉できるとすると大問題。 コンポーネントはポトペタができるクラスに過ぎない。 過大視するのは危険。 イベント横取りやメッセージフックは簡単にできる。あらかじめ外部から 干渉可能なメカニズムはコンポーネント化が有効かもね
604 名前:602 mailto:sage [2008/09/14(日) 18:50:09 ] >>603 サンクス。 >>602 には書いていなかったのですが一部やりたかった、 ウインドウメッセージの横取りは MakeObjectInstance でいけました。 調べたらサブクラス化といってDelphiでは定番の方法みたいですね。 CreateParamsはさすがにprotectedだし、というか普通のメソッドの横取りは無理だよなあ・・・ CreateParams時に、コンポーネントから呼び出してとドキュメントに書くしかないか。 どっかでアセンブラ使ってフックするような方法をみたんだけどあれはどこだったかなあ? 単なるWin32API呼び出しのフックだったかもしれない・・・。
605 名前:602 mailto:sage [2008/09/14(日) 18:53:18 ] ありました。 madshi.net - madCodeHook description www.madshi.net/madCodeHookDescription.htm 前にQuality CentralでVCLのバグを修正するのに利用されているのをみました。
606 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:18:53 ] Delphi8あたりから導入された class helper ですが、 2つのhelperが同時に使えないのが痛いと感じています。 これって、改善の要望みたいなのってどこかに出ていないのでしょうか?
607 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 21:43:14 ] すいません質問なのですが、Delphiには、任意の単語を登録して自動的にハイライトしてくれる機能を持ったテキストコントロールクラスがあると聞きました。 それってTRichEditというやつでしょうか?? 教えて頂けると幸いです。
608 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 21:51:43 ] >606 そういう積極的な使い方は非推奨だから…QCに出しても相手にされないと思う。 つかInterfaceとか使うべきなんじゃね? >607 少なくともTRichEditではない。TRichEditはWindowsのWordPad相当のrtfエディタ。 TEditorとかSynEditとかかなぁ?
609 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 22:21:25 ] RichEditも指定した単語をハイライトしたりというのは出来るけど 全部自分でコード書いてやらないといけないんだよな。
610 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 22:49:15 ] DelphiIDEに使われてる16x16のツールバーのビットマップってどっかにないですか? C:\Program Files\Common Files\Borland Shared\Images のは数が少なかったり古臭かったりで微妙なんで
611 名前:607 mailto:sage [2008/09/15(月) 23:39:52 ] ありがとうございます。 >>TEditorとかSynEditとかかなぁ? ああ、調べてみるとどうやらTEditorのことだったようです。ありがとうございました。 >> RichEditも指定した単語をハイライトしたりというのは出来るけど 全部自分でコード書いてやらないといけないんだよな。 そなんですよね!なのでTEditorのようなのがあるといいんのですが、DelphiじゃなくてC++(MinGW)で使いたいんですよね。 TEditorみたいののC++版みたいのがあればいいんですが・・ってDelphiスレで聞くことではないですね。。
612 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 23:42:11 ] C++BuilderならTEditorとか使えるがな
613 名前:607 mailto:sage [2008/09/15(月) 23:43:50 ] www.kanazawa-net.ne.jp/~pmansato/Components.htm#teditor ここにBCBでも使えるって書いてありますね。MinGWじゃだめなのかしら。。
614 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 23:45:30 ] BCB(CCB?ECB?)だとDelphiのコードがコンパイルできる なので他のコンパイラじゃ無理ぽ
615 名前:607 mailto:sage [2008/09/15(月) 23:46:25 ] >>614 ああ、そうなのですか・・知りませんでした。ありがとうございますm(_ _)m
616 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 14:41:18 ] C++Builderは、コンパイラがC++クラスとDelphiクラス両方のクラス扱えるようになってたりと、結構特殊な環境。
617 名前:デフォルトの名無しさん [2008/09/16(火) 14:56:54 ] 質問です。 htmlの<form>〜</form>のデータを Indyのpostで送信するプログラムを作成したいのですが <input タグの name="hoge" value="hogehoge" 等のデータを解釈して読み込み、post用にURLエンコードする必要がありますが <input name="hoge value="hogehoge"> この name="文字列" 形式の、"文字列"部分を効率良く取得する方法がいまいちわかりません。 泥縄式に文字列を操作して書けばなんとかなりそうではあるのですが スパっと取得できるワザはないでしょうか。 xxxx="xxxxx"形式を一発で取得する方法とか よろしくおねがいします。
618 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 16:28:33 ] >>617 TWebBrowserからIHTMLDocument2取ってきてDOMで操作するのは?
619 名前:587 mailto:sage [2008/09/16(火) 16:37:51 ] TFrameの継承クラスが、デザインして保存後にTFormに化ける問題ですが、 TTnTFrameのソース見て、原因がわかってきました。 設計時のコンポーネントとして、Delphiに登録しないといけないようです。 登録していないと>>587 のようにTFormとして認識され、おかしなことになります。 TTnTFrameはインスコ時にちゃんとDelphiに登録しているので大丈夫のようでした。 TTnTFrameの設計時インスコ用ライブラリのソースを真似て解決できそうです。
620 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 16:54:42 ] >>618 他の処理もIndyなので、postするときだけIEコンポだと ログインしている状態とかが引き継がれないので、 それは無理っぽいです。 <form>〜</form>を解釈してpostデータにしてくれるコンポがあれば一番いいのですが。 それか、name="hoge" value="hogehoge"を簡単に取得できる文字操作はないでしょうか。
621 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 17:02:47 ] xhtmlならXMLパーサでなんとかできないっけ?
622 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 17:04:03 ] 普通はPosかwhileで探すんじゃね?
623 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 17:07:30 ] Posとかだと変態チックなhtml投げられると詰まね?
624 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 17:14:40 ] MBCSにも対応してないしな
625 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 17:20:06 ] お前らなんで例にマジレスしてんの?
626 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 17:30:46 ] こんなの投げられたら困るじゃない(`・ω・´) pc11.2ch.net/test/read.cgi/tech/1198971515/46
627 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 19:13:24 ] >>620 正規表現は?
628 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 22:08:33 ] Tmemoから右クリックでメニューを出したいんですが TPopupMenuとTPopupActionBarの違いがよくわかりません
629 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 23:20:30 ] 計氏のMP3Playerコンポを使っていますが VolumeプロパティがVistaで機能しません 中の人はMMSystem.WaveOutSetVolumeとかしてるようですが
630 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 23:29:26 ] 作者に言え
631 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:10:05 ] >>620 Indyで取得したソースを書き込んでパーサ機能だけ利用すればいいじゃん、ってことじゃないの? ま、実際はWebBrowser使わずに直接パーサだけ利用できるんだけど
632 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:15:11 ] >>631 おすすめのパーサは?
633 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:26:31 ] おすすめも何もTWebBrowserが使ってるパーサが取替え可能とでも?
634 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 01:05:30 ] >>620 2chのCookie程度で効率とか考えなくても
635 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 08:45:02 ] スクリプト言語だとスクレイピング用のパーサーなんて一杯あるのにねえ マイナー言語だとこの辺が面倒なんだよなあ・・・
636 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 12:34:23 ] パーサーもろくにかけないのにプログラマー気取りか
637 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 13:14:13 ] んでDelphi2009の体験版使ったやついないの?
638 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 14:02:09 ] いくつかブログがヒットするな
639 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 15:38:48 ] >>637 使ったよ
640 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 20:11:24 ] MLで中村先生が少しだけレビューしてくれてるじゃないか
641 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 20:16:17 ] DBすっぱり削っていいからソースつき&基本機能の制限なしのTurbo出してくれよ〜
642 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 22:33:59 ] 637 以降はオッチャネタだね。あっちへどうぞ。
643 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 22:46:17 ] Delphi2009ってドトネトインスコ必須?
644 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:28:39 ] >>643 必須
645 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 02:38:44 ] >>636 そういうあおりでは釣れないよ〜 ただでさえDelphiは車輪の再発明ばかりで、うんざりしてるんだから 愚痴ぐらい言ってもよかろう
646 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 09:51:57 ] 拾ってきたソースで楽ばっかしようとばっかで 己の才能のないことをDelphiのせいにするなよ
647 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 10:22:55 ] そんなこと言う奴はVCL使うの禁止だなw まあパーサぐらい正規表現使ってぱっぱとやるべきだろうけど。
648 名前:デフォルトの名無しさん [2008/09/18(木) 13:33:36 ] Delphiで改行はさせないけど、ボックスいっぱいになったら 次の行に表示させるようにしたいんだけど 普通のEditだとそもそも一行しか表示できないっぽいから RichEdit使ってみたんだけど、今度はMaxLengthに問題がでた。 EditではMaxLengthはバイト数なのにRichだと文字数になるらしい どうすりゃいいんだろう;
649 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 13:41:08 ] >>648 TMemoを使えばいいと思うよ。 ScrollBarsプロパティを ssNone か ssVertical にすれば勝手に折り返して表示してくれる
650 名前:デフォルトの名無しさん mailto:>>649 [2008/09/18(木) 14:00:24 ] できました!! ありがとうございます!
651 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 14:50:01 ] Delphi2006だけど、TADOTable.Refresh を実行すると、激しくメモリリークしないか?
652 名前:デフォルトの名無しさん [2008/09/18(木) 19:09:39 ] UNICODE文字列をANSI文字列方に変換したいから WideCharToString関数を使ってみたがString型だったため 使えませんでした。 他にStringをANSI文字列方に変換する方法ってありませんかね?
653 名前:デフォルトの名無しさん [2008/09/18(木) 19:11:32 ] >>>652 ちなみにDelphi5です。
654 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 19:20:48 ] StringはUnicode格納できないぜ?
655 名前:デフォルトの名無しさん [2008/09/18(木) 19:31:47 ] >>654 そうなんすか; ありがとうございます じゃぁ問題は他のとこか…;
656 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 19:40:57 ] どんなことをしたら文字化け(だよな?)したんだ?
657 名前:デフォルトの名無しさん [2008/09/18(木) 19:49:04 ] 文字化けっていうかBDEからADOに変えたら DBに入力した文字数ではいらないんすよ; 必ず何文字かなくなる上に、消える文字数に規則性がみつからないんです;
658 名前:デフォルトの名無しさん [2008/09/18(木) 20:39:33 ] >>657 全く同じ症状です。 どうすればよいのでしょうか。 情報お願いします。
659 名前:デフォルトの名無しさん [2008/09/18(木) 21:32:27 ] Parameters.ParamByName('W_NAME').SIZE:= 40; サイズ指定したら直りましたよ!
660 名前:デフォルトの名無しさん [2008/09/19(金) 06:19:21 ] 2009どこに売ってるの? 昨日秋葉回ったけど無かった
661 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 07:10:43 ] >>651 ReportsMemoryReaks := True だったかで確認した?
662 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 07:11:42 ] >>660 @nifty seshop.com
663 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:58:30 ] バージョンアップも店で買うようになったんだな。 ハガキが来ないからどうなったことだと思った。
664 名前:デフォルトの名無しさん [2008/09/19(金) 11:39:56 ] >>659 ありがとうございます!
665 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 12:01:46 ] UnicodeStringにCRLFを挿入するときって#13#10でOK?
666 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 12:13:32 ] Asciiと同じで#0が必要
667 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 17:40:52 ] >Asciiと同じで#0が必要 ハツミミです。
668 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 17:50:01 ] ネコミミでつ。
669 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:32:21 ] 文字コードの判定は何が良いでしょうか? UTF-8なども判定したいのでjconvertは使えません
670 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 22:44:09 ] 好きな方法でどうぞ。ちなみに完全に正しく判別する方法はありません。 詳しくは文字コードスレあたりで。
671 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 07:11:29 ] rubyのkconvみたいに適当でいいから判定してよライブラリがほしいのだろうと思う
672 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 07:50:41 ] 性格出るよねこういうときって
673 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 09:51:04 ] たくさんの文字を調べれば遅くなるし 少しの文字しか調べないと甘くなるしな
674 名前: ◆XcB18Bks.Y [2008/09/21(日) 11:57:09 ] >>652 var s: string; ws: widestring; begin ws := 'くだすれ'; s := ws; end; …こういうことではなくて?
675 名前:669 mailto:sage [2008/09/21(日) 21:41:47 ] 皆さんありがとうございます nkf32.dllを使おうと思ったのですがWideStringを渡す方法が分からなかったので使えませんでした とりあえず自動判定は諦めるとして、文字コードの変換だけは実装しておきたいのですが、 WideStringのまま変換する例が無いのですが、何か良い方法はないでしょうか?
676 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 22:43:01 ] エクスプローラのツリービューはフォルダをマウスダウン→アップで選択すると リストビューにファイルが表示されますが、DelphiのTreeViewとListViewで同様の処理をする場合 どのイベントで記述すれば良いのでしょうか?TreeViewのOnChangeイベントだと マウスダウンの段階でイベントが発生します。OnClickイベントならダウン→アップで イベントが派生するので都合が良いのですが、OnClickはノード選択処理に使うのは不便です。 何か良い方法はありませんか?
677 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 13:05:09 ] >>663 おいらもびっくりしたよ。いつも来ているバージョンアップ版の案内がこないからさー。 SEShop.comで買って大丈夫なんだよね?
678 名前:676 mailto:sage [2008/09/22(月) 16:14:42 ] 自己解決しました><
679 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 23:17:20 ] Delphiで作られたランチャで、オープンソースのものってありまふか? 参考にしたいんですが。
680 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 23:45:13 ] ランチャってただ起動処理を外部アプリに飛ばすだけなんじゃね? あとはUIの秀逸さだけが勝負かと。
681 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 00:51:30 ] どうやら久しぶりに会社でDELPHIにかかわることになりそうなんだけど 操作が全然覚えていない・・・ 3.0の頃の書籍とか全部処分しちゃってるし 最近のお勧めってなんですか?
682 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 00:57:06 ] >>681 なんですかって?お勧めの本?
683 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 01:02:42 ] はい
684 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 02:42:34 ] ない
685 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 03:52:11 ] これなんかどう。 中身も読めるし。 books.google.co.jp/books?id=PbIgHHqhrIcC&printsec=frontcover&dq=delphi&as_brr=3&ei=_ASeSLCeHJvWtAP70pCeBQ&sig=ACfU3U2MzwQQwffFY1wl4CKhwNC1iwg0Dw#PPP1,M1 2005以降はMarco Cantuさんの洋書がお勧め。
686 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 04:22:00 ] ああ、世界中で1000部やっと、ってやつね。
687 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 04:48:38 ] >>685 なにこれww売る気無いのか?ww
688 名前:デフォルトの名無しさん [2008/09/24(水) 20:39:01 ] くだらない質問失礼 TFormのonShowってのはFormのVisible弄らない限り起動時にのみ呼び出されるの?
689 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:09:57 ] >>688 いえす。
690 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 22:49:24 ] Delphiの本スレってどこ?実質ここ? 別に超初心者じゃないんだけど。
691 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 22:53:14 ] >>688 メインフォームならYES。メインフォーム以外ならケースバイケース。 「Visibleいじらない限り」というのがShowやShowModalも含むのなら それ以外で呼び出されるってことはないんじゃないかな。
692 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 22:59:48 ] 質問スレはここだけみたいな気がする。
693 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:31:04 ] 昔はあったよね。本スレっぽい(雑談だったっけ?)スレが。
694 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:35:00 ] 寺子屋もあるぜよ
695 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 01:56:45 ] Delphi2から使ってるんで、超初心者でも初心者でもないんだが 2009どうよ、とかそういう話題はどこですればいいんかなー。
696 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 02:17:31 ] 2chのDelphiスレは終わってるからMLでおk
697 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 05:00:58 ] >>693 こっちでもやってるよ。 【Embarcadero】CodeGearオッチャ その12 pc11.2ch.net/test/read.cgi/tech/1221142134/l50
698 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 11:42:49 ] >>690 質問スレここしかない。 超初心者じゃない俺も質問しているからOK
699 名前:デフォルトの名無しさん [2008/09/25(木) 16:04:17 ] TMemoの改行を不可にしたいからこういう処理書いてみたが、 BackSpace使うと即行Tmemo内の文字の最後尾に移動してしまうんですが。 Tmemo.Text := StringReplace(Tmemo.Text,#13#10,'',[rfReplaceAll]); Tmemo.SelStart := Length(Tmemo.Text); 本来はどう書くのが正解?
700 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 16:11:53 ] >>699 普通にonKeyPressで#13殺したらいいんじゃね?
701 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 16:12:20 ] WantRetuensをFalseにするだけじゃダメなの?
702 名前:デフォルトの名無しさん [2008/09/25(木) 16:37:18 ] >>700 >>701 できました!!ありがとうございます!!!
703 名前:688 mailto:sage [2008/09/25(木) 22:05:42 ] ありがとうございます
704 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 05:22:48 ] 指定した位置から、指定したバイト分の文字列を抜き出す関数ってありますか?
705 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 05:23:52 ] Copyのまんまやん
706 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 08:31:34 ] Toolbar2000のD2009対応バージョンでたよー ttp://www.jrsoftware.org/tb2k.php
707 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 08:37:04 ] Toolbar2000よりTurboDelphi2009はまだかー
708 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 08:58:09 ] CodeGearは出す気はあるらしいけどね 学習用として出すらしいから機能は減るけど
709 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 09:35:23 ] 作ったソフトを配布できないとか意味不明な事はやめて欲しいのう
710 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 09:38:29 ] >>709 経済のお勉強しような。
711 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 09:41:01 ] (経済)笑い
712 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 10:05:47 ] 他人に上げるソフトなんて1部だけだし俺はそれでも構わんけどね
713 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 16:27:13 ] >>705 Copyの引数ってバイト数じゃなくて文字数じゃないの?
714 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 16:38:33 ] Copyはバイト数だよ。逆に文字数にしたかったらWideStringにキャスト Copy('へべれけ', 2, 2) ==> '??' Copy(WideString('へべれけ'), 2, 2) ==> 'べれ'
715 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 20:53:50 ] >>711 カッコ逆w
716 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 20:56:24 ] )経済(笑い
717 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 22:07:34 ] >>716 そうそう、次からは間違えんなよ
718 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 00:49:31 ] Turbo Explorerのことは、あきらめな。おそらくDelphi/C++Builderではなく、 Object Pascal/C++学習用環境、ということに…。
719 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 13:13:53 ] Delphi 6 で仮想リストビュー使ってます。 チェックボックスも表示したいのですが、OnData イベントで StateIndex にセットしないと表示しないようなので、 どうせならマウスカーソルのポイントの有無で色を分けようと、イメージリストに4種類の絵を用意しました。 インデックスは 0: チェックなし、1: チェックなしポイントあり、2: チェックあり、3: チェックありポイントありです。 リストアイテムの上でカーソルを動かすと OnData イベントが発生するようなので、WM_MOSEMOVE を処理して カーソルの位置からポイントしているアイテムを割り出して、OnData イベントでセットしわけようとしました。 WM_MOSEMOVE メッセージは Application.OnMessage イベントハンドラで処理しています。 コードの抜粋です。 【Application.OnMessage イベントハンドラ】 procedure TForm1.AppMessage(var Mesg: TMsg; var Handled: Boolean); var Point: TPoint; idr: TRect; begin if Mesg.message = WM_MOUSEMOVE then if Mesg.hwnd = ListView1.Handle then begin if ListView1.Items.Count > 0 then begin idr := ListView1.Items[0].DisplayRect(drBounds); if FListView1ItemHeght <> (idr.Bottom - idr.Top) then FListView1ItemHeght := (idr.Bottom - idr.Top); end; Point := ListView1.ScreenToClient(Mouse.CursorPos); FListView1MouseX := Point.X; FListView1MouseY := Point.Y; FListView1ItemIndex := (FListView1MouseY - ListView1.Top) div FListView1ItemHeght - 1; end; end;
720 名前:719 mailto:sage [2008/09/27(土) 13:15:17 ] (つづき) 【OnData イベント】 procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem); var ColumnWidth: Integer; begin ColumnWidth := ListView1.StringWidth(Format('Item%d', [Item.Index])); Item.Caption := Format('Item%d', [Item.Index]); if (FListView1ItemIndex = Item.Index) and (FListView1MouseX < 16) then Item.StateIndex := 1 else Item.StateIndex := 0; if ListView1.Columns[0].Width < ColumnWidth + 30 then ListView1.Columns[0].Width := ColumnWidth + 30; end; しかしこれだとマウスカーソルをチェックボックスにポイントしても変化しません。 ポイントアイテムの特定がめちゃくちゃなのはわかってますが、ズレてても変化ぐらいはしてもいいと思うのですが…。 アイテムの特定に無理やりな計算をしているのは、GetItemAt メソッドの使用が原因かどうか切り分けたかった からです。 ttp://mackerel205.ddo.jp/data/program/test/VirtualListViewCheckBox.zip 一応ここにプロジェクト一式置いておきますんで、興味があったら見てみてください。
721 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 23:32:31 ] そんなもん使わないでぶあーちゃるつりーびゅぅーを使おうぜ!
722 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 00:48:13 ] TListViewにファイル一覧を表示して、ドラッグ&ドロップで並び順を変更できるようにしています。 これにさらにOLE Drag and Dropの機能を追加して、ファイルを他のアプリケーションへドロップできるようにしようとしています。 この場合、どうすればOLE Drag and Dropと並び順の変更機能を共存させられるでしょうか? 並び順の変更もOLE Dropを受けて行うしかないのでしょうか。
723 名前:722 mailto:sage [2008/09/28(日) 21:33:39 ] やっぱりOLE Dropの処理と統合するしかなさそうですね。 素直にそう実装することにします…。
724 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:56:08 ] SpTBXLib 2.3 released. Installation and requirements: TNT is not used on Delphi/C++Builder 2009 club.telepolis.com/silverpointdev/sptbxlib/support.htm#installation Web interface to jrsoftware.org newsgroups - ANN: SpTBXLib 2.3 news.jrsoftware.org/read/article.php?id=15223&group=jrsoftware.toolbar2000.thirdparty#15223 SpTBXLib のDelphi2009版はついに TNT 要らずになった
725 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 08:55:23 ] 自作のアプリのUIはMainMenu+Coolbar+ToolbarなXPのExplorer風からまったく進歩してないな・・・ ActionManagerとかって最新の環境だと普通に使われるくらい安定してるの?
726 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:10:14 ] >>724 すごい。
727 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:35:11 ] 質問です。 TStringGridを使ってます。 例えば、Rowを削除したいのですが、簡単なメソッドがありません。 そこで、OnSelectCell内でRowの内容をずらして行って、最後に RowCountを-1使用と試みても、 OnSelectCell内でCellsの内容をいじると再帰で呼ばれて、オーバフローに なってしまいます。 簡単にRowを削除する方法ありますか?
728 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:38:23 ] >>727 DelRow:=StringGRid1.Row; for N=0 to StringGrid1.ColCount-1 do StringGrid1.Cols[N].Delete(DelRow); StrinGgrid1.RowCount:=StringGrid1.RowCount;
729 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:59:26 ] >>728 さん ありがとうございます。 頂いたコードを試したりしたのですが、 ”グリッドの行を追加/削除することは出来ません” というエラーが出てしまうんです。 簡単にTValueListEditorのように空のRowを削除できないものでしょうか・・・ あ、すみません。環境はD6+XP SP3です。 よろしくお願いします。
730 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 14:10:07 ] >>729 ごめん、なんか勘違いしてるわ。今は↓こんなんしか思いつかん。 for N:=StringGRid1.Row to StringGrid1.RowCount-2 do StringGrid1.Rows[N].Text:=StringGrid1.Rows[N+1].Text; StrinGgrid1.RowCount:=StringGrid1.RowCount-1;
731 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 14:22:21 ] 730さん 何回もすみません。 ですよね。文字列を詰めて、最後にRowCountを調整するって簡単に考えていたのですが それをOnSelectCell内で行うとスタックオーバーフローになるし、 どうしたもんかと思っていたんですよ・・・ ちょっと、ググったら、ビンゴかなと思われるページがありました。 delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/samples/00488.html まだ、解読及び検証中ですが・・・ なにはともあれ、ありがとうございます。