[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 07/01 16:18 / Filesize : 177 KB / Number-of Response : 732
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれDelphi(超初心者用)その47



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
まだ、解読及び検証中ですが・・・

なにはともあれ、ありがとうございます。







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<177KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef