[表示 : 全て 最新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


528 名前:526 mailto:sage [2008/09/03(水) 20:45:28 ]
>>527
全体に合わせてしまうと立体感がなくなってしまうし
表面だけに会わせると、周りの色との違いがでてしまいます。
立体感含むボタンそのものの画像を作るしかないんでしょうか?
それだと大きさによって変わるからたいへんですね^^;

529 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:20:26 ]
>>528
WM_ERASEBKGNDを捕まえて適当に塗る

530 名前:デフォルトの名無しさん [2008/09/03(水) 21:29:20 ]
>>528
ちょっと大きいPanelに乗せれば立体的に

531 名前:526 mailto:sage [2008/09/03(水) 21:41:50 ]
>>529、530
それは実行時にボタンを押したときに
ちゃんと凹みますか??

532 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:44:19 ]
やってみればいいじゃない

533 名前:デフォルトの名無しさん [2008/09/03(水) 22:11:47 ]
>>526
TButtonの色変えは、かなーり昔からのFAQくさいw

色変更が可能なボタン
rakasaka.fc2web.com/delphi/odbtn.html

534 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:15:04 ]
その手の小細工を効かせたアプリは
大抵センスがよろしくないものになってしまうという

535 名前:526 mailto:sage [2008/09/03(水) 22:17:04 ]
>>533
おお!
これはいけそうですね!!
どうもありがとうございます♪

536 名前:デフォルトの名無しさん [2008/09/04(木) 13:51:28 ]
ここで質問する内容ではなさそうなので躊躇したのですが、他で該当するような
活発なスレが見付からないのでお許しください。

Delphi2009が発表されるので購入を考えているのですが、非常に高いですね・・・。
バージョンアップ版をと思ったのですが、私が以前に購入したのが10年くらい前の
初期バージョンの時代で、その後は会社購入版を使用していたため、私個人の
IDを紛失してしまっています。
会社では業務の都合上Delphiの必要性がなくなったので今後のバージョンアップは
見込めない状態です。

そこで質問ですが、Delphiのバージョンアップ版を使用するにあたって過去製品で個人が
登録したIDが必要になると思うのですが、その必要性はどれくらいありますか?
というのも、Microsoftのバージョンアップ版ではインストール時に過去の製品での
ID等を聞かれないものですから、Delphiも大丈夫かと思いましたので質問させていただきました。

変な質問で申し訳ありませんが、私個人の出費としてはあまりにも大きな差があるもの
ですから質問させていただきました。もしお分かりなられる方がいらっしゃいましたなら
よろしくお願いいたします。





537 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 13:58:45 ]
某時代はそもそもユーザー登録してないとバージョンアップ版買えなかったから誰も知らないと思うぞ
おそらくアクティベーション時に登録するCDNのアカウントで判断するんだろうけど。

538 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 18:13:40 ]
会社に電話して事情を説明して購入可能か聞くしかない。
正規ユーザーの条件はIDを持っていることであり
バージョンアップ版は正規ユーザーであることが条件である。
ゆえにバージョンアップは不可能。とか適当なレスはつけられるが
実際に購入可能かどうかとは何の関係もないしな。

539 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 18:35:34 ]
会社で購入したことを根拠に個人でバージョンアップはどう見ても変でしょ。

540 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 18:45:09 ]
>>539
初期バージョンの頃に個人で買ったって書いてあるじゃん!

541 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:25:07 ]
それを証明できないから問題なんでしょ。
これが通るなら、新規バージョンの購入者はいなくなる。

542 名前:デフォルトの名無しさん [2008/09/04(木) 19:30:42 ]
てか、Delphi2009の販促の封筒かはがきがこないんですけど、
皆さんのところには着ましたか?

プレスリリースだけで後は店で買ってねってことなのかな・・・

543 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:31:58 ]
仕事でつかえないなら、趣味としてつかうの?
Turbo Explorer でいいんじゃないの。

544 名前:デフォルトの名無しさん [2008/09/04(木) 19:40:57 ]
仕事で使う人がこんなとこで質問するの?

545 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:56:51 ]
ActionListはどこにおくのがよいものでしょうか?

FrameなどでコードやUIを分離してデザインする場合にユニットがそれぞれ分散しますよね?
それぞれ、DataModuleにActionListおいておいて、
それぞれFrameなどから、
中央集権的にアクセスする感じでよいのかなあ?


それと Frame を使った場合やFormがたくさんある場合に、
ほかのFormを含むユニットの依存関係ってどう処理したものなんでしょうか?
ほかのFormやFrameをそのまま依存(つまり、uses)させてしまうと、分離している意味が少ない気がします。
DataModuleを介すれば、依存ユニットをusesする必要はあまりないですが、
解決になってない気もします。

546 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:03:26 ]
>>545
自分もいろいろ試行錯誤したけど
メインフォームに置くのが最適と判断した。
各フレームに対するアクションをそのフレームに委譲していくと
アプリにとって本質的な状態の管理やらの制御のコードがフォームに残る。
データモジュールだとそのメインフォームに対する処理も冗長になるからちょっと面倒で無駄な感じ。
フォームユニットをスカスカにしても得るものがないしね。



547 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:55:40 ]
デルピィ

548 名前:Delフサギコ ◆A6VzDeLphI mailto:sage [2008/09/04(木) 23:41:51 ]
           _________
   ∧,,∧∩  / 
  ミ,,゚Д゚彡 <  日本がんがれ!
   ミつ旦.ミ   \ 
 @ミ   ミ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪

やあ、元気っすか?

さて、いきなり、質問っす。
コマンドラインの出力をクリップボードにとりこむような
exeを作りたいんだよ。

dir > clip.exe

みたいな実行ができるexeをつくりたいっす。

誰かおしえてくださいな。

BlueLeaf1336-PROBLEMS-2004_0013
www.geocities.jp/fjtkt/problems/2004_0013.html
これを使うといいのかな?


549 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:01:17 ]
それやるとclip.exeが死亡するんだが…
dir|clipだよね?


まあ標準入力をTStringListに放り込んでいって
最後にClipBoard.Text = Strlist.Textでいけると思う。

550 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:56:51 ]
ゴミは消しとけよ>Delフサ

551 名前:Delフサギコ ◆A6VzDeLphI mailto:sage [2008/09/05(金) 00:57:10 ]
  ∧,,∧  どもー
  ミ,,゚ 3 ゚彡 
  ミ つ旦)~~
〜と,,,~),,~) 
んーーー、こんなの書いてみて動きましたが

標準入力は、どうやって受け取るんでしょう?

program ToClip;
{$APPTYPE CONSOLE}
uses
 SysUtils,
 Classes,
 Clipbrd,
 GrabConsole in 'GrabConsole.pas';
var
 SL: TStringList;
begin
 SL := TStringList.Create; try
 PipeConsole('ipconfig', SL, nil);
 Clipboard.AsText := SL.Text;
 finally SL.Free; end;
end.


552 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:25:24 ]
APIのGetStdHandleで得てReadFileで読む

RTLのRead関数はCのstdinなんかに比べて貧弱だから使わない方が良い

553 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 03:32:42 ]
Delphi2009のバージョンアップは、今までより1〜2万高そう。

554 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 04:52:23 ]
dir > clip.exe
ワロタ

555 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 07:14:12 ]
program cbin;

uses
Windows, Classes, SysUtils, Clipbrd;

{$R *.res}

var
    s, line: String;
    n: Integer;
begin
    line := '';
    n := 0;
    while not Eof(Input) do
    begin
        Readln(s);
        if n = 0 then
            line := line + s
        else if n = 1 then
            line := line + sLineBreak + s + sLineBreak
        else
            line := line + s + sLineBreak;
        Inc(n);
    end;

    Clipboard.AsText := line;
end.

556 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 07:16:26 ]
program cbout;

uses
Windows, Classes, SysUtils, Clipbrd;

{$R *.res}

begin
    Write(Clipboard.AsText);
end.

これで
dir | cbin # クリップボードに取り込み
cbout # クリップボードを出力

cbout | sort | cbin # クリップボードをソート
な感じで使える



557 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:09:41 ]
このへんのはC++Builderのほうが楽だと思うよー
#include<vcl.h>
#pragma link "rtl.lib"
#pragma link "vcl.lib"
だけしとけば何も考えずにVCL使えるし

558 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:42:07 ]
パイプで繋ぐのはシェルの役目であって
プログラム自体はただの標準入出力するだけのコンソールアプリだろ。
言語選ぶようなもんでもない。

559 名前:Delフサギコ ◆A6VzDeLphI mailto:sage [2008/09/06(土) 00:44:14 ]
  ∧,,∧  ♪
 ミ,,゚∀゚彡   ♪
 ミつ[|lllll]).
@ミ   ミ   ♪
  ∪''∪ 

すっげー、
ありがとう。

でも、cbinだと、こういうエラーが出るんだ。なんでかな?

---------------------------
デバッガ例外が発生
---------------------------
プロジェクト ClipboardIn.exe が EInOutError クラスの例外を生成しました。
'I/O エラー (6)'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。
---------------------------
OK ヘルプ(H)
---------------------------


560 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 00:48:23 ]
{$apptype console}が抜けてるんじゃね

561 名前:Delフサギコ ◆A6VzDeLphI mailto:sage [2008/09/06(土) 00:56:59 ]
んん?ちゃんと動きました。>>560さん。原因、そうかも。

    ∧,,∧   ありがとう
    ミ゚Д゚*彡  ございます。
   ミ(旦⊂ ミ  
    (~,,(~,,,ミ〜   

こんどは、ping -t 192.168.0.1 というずっと続く
コマンドを、Memo1コントロールあたりに
DOSプロンプトと同じ風に、1行つづ、出力したかったりするんですが

こういうのはどのようにしたらよろしかりけり?

それにしても、cbin、かっこいいな。

こういう実装もあるようです。どぞどそ。

File Area
www.slis.keio.ac.jp/~anakata/filearea/filearea.html


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の違いがよくわかりません






[ 続きを読む ] / [ 携帯版 ]

前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