くだすれDelphi(超初心者用)その47at TECH
くだすれDelphi(超初心者用)その47 - 暇つぶし2ch600:デフォルトの名無しさん
08/09/14 02:50:45
カット&ペースト

601:599
08/09/14 03:08:38
できました!ありがとうございます。

602:デフォルトの名無しさん
08/09/14 07:46:48
コンポーネントからParentのFormのイベントに対して反応することや、メソッドをフックするようなことは可能でしょうか?
具体的には、あるコンポーネントをFormに置くと、
CreateParamsを上書きして設定を書き換える、といったようなことです。

普通は、TMyForm.CreateParamsを定義して、
コンポーネントで定義したUpdateCreateParamsみたいなのを呼ぶものと思います。
ただ、もっと簡単にコンポーネントを利用できるようにならないかと思った次第です。

603:デフォルトの名無しさん
08/09/14 18:33:57
継承のメカニズムに外部から干渉できるとすると大問題。
コンポーネントはポトペタができるクラスに過ぎない。
過大視するのは危険。

イベント横取りやメッセージフックは簡単にできる。あらかじめ外部から
干渉可能なメカニズムはコンポーネント化が有効かもね

604:602
08/09/14 18:50:09
>>603
サンクス。
>>602には書いていなかったのですが一部やりたかった、
ウインドウメッセージの横取りは MakeObjectInstance でいけました。
調べたらサブクラス化といってDelphiでは定番の方法みたいですね。

CreateParamsはさすがにprotectedだし、というか普通のメソッドの横取りは無理だよなあ・・・
CreateParams時に、コンポーネントから呼び出してとドキュメントに書くしかないか。


どっかでアセンブラ使ってフックするような方法をみたんだけどあれはどこだったかなあ?
単なるWin32API呼び出しのフックだったかもしれない・・・。


605:602
08/09/14 18:53:18
ありました。

madshi.net - madCodeHook description
URLリンク(www.madshi.net)

前にQuality CentralでVCLのバグを修正するのに利用されているのをみました。

606:デフォルトの名無しさん
08/09/14 20:18:53
Delphi8あたりから導入された class helper ですが、
2つのhelperが同時に使えないのが痛いと感じています。
これって、改善の要望みたいなのってどこかに出ていないのでしょうか?

607:デフォルトの名無しさん
08/09/15 21:43:14
すいません質問なのですが、Delphiには、任意の単語を登録して自動的にハイライトしてくれる機能を持ったテキストコントロールクラスがあると聞きました。
それってTRichEditというやつでしょうか??
教えて頂けると幸いです。

608:デフォルトの名無しさん
08/09/15 21:51:43
>606
そういう積極的な使い方は非推奨だから…QCに出しても相手にされないと思う。
つかInterfaceとか使うべきなんじゃね?

>607
少なくともTRichEditではない。TRichEditはWindowsのWordPad相当のrtfエディタ。
TEditorとかSynEditとかかなぁ?

609:デフォルトの名無しさん
08/09/15 22:21:25
RichEditも指定した単語をハイライトしたりというのは出来るけど
全部自分でコード書いてやらないといけないんだよな。

610:デフォルトの名無しさん
08/09/15 22:49:15
DelphiIDEに使われてる16x16のツールバーのビットマップってどっかにないですか?
C:\Program Files\Common Files\Borland Shared\Images
のは数が少なかったり古臭かったりで微妙なんで

611:607
08/09/15 23:39:52
ありがとうございます。

>>TEditorとかSynEditとかかなぁ?
ああ、調べてみるとどうやらTEditorのことだったようです。ありがとうございました。

>> RichEditも指定した単語をハイライトしたりというのは出来るけど
全部自分でコード書いてやらないといけないんだよな。
そなんですよね!なのでTEditorのようなのがあるといいんのですが、DelphiじゃなくてC++(MinGW)で使いたいんですよね。
TEditorみたいののC++版みたいのがあればいいんですが・・ってDelphiスレで聞くことではないですね。。

612:デフォルトの名無しさん
08/09/15 23:42:11
C++BuilderならTEditorとか使えるがな

613:607
08/09/15 23:43:50
URLリンク(www.kanazawa-net.ne.jp)
ここにBCBでも使えるって書いてありますね。MinGWじゃだめなのかしら。。

614:デフォルトの名無しさん
08/09/15 23:45:30
BCB(CCB?ECB?)だとDelphiのコードがコンパイルできる
なので他のコンパイラじゃ無理ぽ

615:607
08/09/15 23:46:25
>>614
ああ、そうなのですか・・知りませんでした。ありがとうございますm(_ _)m

616:デフォルトの名無しさん
08/09/16 14:41:18
C++Builderは、コンパイラがC++クラスとDelphiクラス両方のクラス扱えるようになってたりと、結構特殊な環境。

617:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/16 16:28:33
>>617
TWebBrowserからIHTMLDocument2取ってきてDOMで操作するのは?

619:587
08/09/16 16:37:51
TFrameの継承クラスが、デザインして保存後にTFormに化ける問題ですが、
TTnTFrameのソース見て、原因がわかってきました。

設計時のコンポーネントとして、Delphiに登録しないといけないようです。
登録していないと>>587のようにTFormとして認識され、おかしなことになります。
TTnTFrameはインスコ時にちゃんとDelphiに登録しているので大丈夫のようでした。

TTnTFrameの設計時インスコ用ライブラリのソースを真似て解決できそうです。

620:デフォルトの名無しさん
08/09/16 16:54:42
>>618
他の処理もIndyなので、postするときだけIEコンポだと
ログインしている状態とかが引き継がれないので、
それは無理っぽいです。
<form>~</form>を解釈してpostデータにしてくれるコンポがあれば一番いいのですが。
それか、name="hoge" value="hogehoge"を簡単に取得できる文字操作はないでしょうか。


621:デフォルトの名無しさん
08/09/16 17:02:47
xhtmlならXMLパーサでなんとかできないっけ?

622:デフォルトの名無しさん
08/09/16 17:04:03
普通はPosかwhileで探すんじゃね?

623:デフォルトの名無しさん
08/09/16 17:07:30
Posとかだと変態チックなhtml投げられると詰まね?

624:デフォルトの名無しさん
08/09/16 17:14:40
MBCSにも対応してないしな

625:デフォルトの名無しさん
08/09/16 17:20:06
お前らなんで例にマジレスしてんの?

626:デフォルトの名無しさん
08/09/16 17:30:46
こんなの投げられたら困るじゃない(`・ω・´)
スレリンク(tech板:46番)


627:デフォルトの名無しさん
08/09/16 19:13:24
>>620
正規表現は?

628:デフォルトの名無しさん
08/09/16 22:08:33
Tmemoから右クリックでメニューを出したいんですが
TPopupMenuとTPopupActionBarの違いがよくわかりません

629:デフォルトの名無しさん
08/09/16 23:20:30
計氏のMP3Playerコンポを使っていますが
VolumeプロパティがVistaで機能しません
中の人はMMSystem.WaveOutSetVolumeとかしてるようですが

630:デフォルトの名無しさん
08/09/16 23:29:26
作者に言え

631:デフォルトの名無しさん
08/09/17 00:10:05
>>620
Indyで取得したソースを書き込んでパーサ機能だけ利用すればいいじゃん、ってことじゃないの?
ま、実際はWebBrowser使わずに直接パーサだけ利用できるんだけど

632:デフォルトの名無しさん
08/09/17 00:15:11
>>631
おすすめのパーサは?

633:デフォルトの名無しさん
08/09/17 00:26:31
おすすめも何もTWebBrowserが使ってるパーサが取替え可能とでも?

634:デフォルトの名無しさん
08/09/17 01:05:30
>>620
2chのCookie程度で効率とか考えなくても

635:デフォルトの名無しさん
08/09/17 08:45:02
スクリプト言語だとスクレイピング用のパーサーなんて一杯あるのにねえ
マイナー言語だとこの辺が面倒なんだよなあ・・・

636:デフォルトの名無しさん
08/09/17 12:34:23
パーサーもろくにかけないのにプログラマー気取りか

637:デフォルトの名無しさん
08/09/17 13:14:13
んでDelphi2009の体験版使ったやついないの?

638:デフォルトの名無しさん
08/09/17 14:02:09
いくつかブログがヒットするな

639:デフォルトの名無しさん
08/09/17 15:38:48
>>637
使ったよ

640:デフォルトの名無しさん
08/09/17 20:11:24
MLで中村先生が少しだけレビューしてくれてるじゃないか

641:デフォルトの名無しさん
08/09/17 20:16:17
DBすっぱり削っていいからソースつき&基本機能の制限なしのTurbo出してくれよ~

642:デフォルトの名無しさん
08/09/17 22:33:59
637 以降はオッチャネタだね。あっちへどうぞ。

643:デフォルトの名無しさん
08/09/17 22:46:17
Delphi2009ってドトネトインスコ必須?

644:デフォルトの名無しさん
08/09/17 23:28:39
>>643
必須

645:デフォルトの名無しさん
08/09/18 02:38:44
>>636
そういうあおりでは釣れないよ~
ただでさえDelphiは車輪の再発明ばかりで、うんざりしてるんだから
愚痴ぐらい言ってもよかろう

646:デフォルトの名無しさん
08/09/18 09:51:57
拾ってきたソースで楽ばっかしようとばっかで
己の才能のないことをDelphiのせいにするなよ

647:デフォルトの名無しさん
08/09/18 10:22:55
そんなこと言う奴はVCL使うの禁止だなw


まあパーサぐらい正規表現使ってぱっぱとやるべきだろうけど。

648:デフォルトの名無しさん
08/09/18 13:33:36
Delphiで改行はさせないけど、ボックスいっぱいになったら
次の行に表示させるようにしたいんだけど

普通のEditだとそもそも一行しか表示できないっぽいから
RichEdit使ってみたんだけど、今度はMaxLengthに問題がでた。

EditではMaxLengthはバイト数なのにRichだと文字数になるらしい
どうすりゃいいんだろう;


649:デフォルトの名無しさん
08/09/18 13:41:08
>>648
TMemoを使えばいいと思うよ。
ScrollBarsプロパティを ssNone か ssVertical にすれば勝手に折り返して表示してくれる

650:デフォルトの名無しさん
08/09/18 14:00:24
できました!!
ありがとうございます!

651:デフォルトの名無しさん
08/09/18 14:50:01
Delphi2006だけど、TADOTable.Refresh を実行すると、激しくメモリリークしないか?

652:デフォルトの名無しさん
08/09/18 19:09:39
UNICODE文字列をANSI文字列方に変換したいから
WideCharToString関数を使ってみたがString型だったため
使えませんでした。

他にStringをANSI文字列方に変換する方法ってありませんかね?

653:デフォルトの名無しさん
08/09/18 19:11:32
>>>652

ちなみにDelphi5です。

654:デフォルトの名無しさん
08/09/18 19:20:48
StringはUnicode格納できないぜ?

655:デフォルトの名無しさん
08/09/18 19:31:47
>>654

そうなんすか;
ありがとうございます

じゃぁ問題は他のとこか…;

656:デフォルトの名無しさん
08/09/18 19:40:57
どんなことをしたら文字化け(だよな?)したんだ?

657:デフォルトの名無しさん
08/09/18 19:49:04
文字化けっていうかBDEからADOに変えたら
DBに入力した文字数ではいらないんすよ;

必ず何文字かなくなる上に、消える文字数に規則性がみつからないんです;

658:デフォルトの名無しさん
08/09/18 20:39:33
>>657

全く同じ症状です。
どうすればよいのでしょうか。
情報お願いします。

659:デフォルトの名無しさん
08/09/18 21:32:27
Parameters.ParamByName('W_NAME').SIZE:= 40;

サイズ指定したら直りましたよ!


660:デフォルトの名無しさん
08/09/19 06:19:21
2009どこに売ってるの?
昨日秋葉回ったけど無かった

661:デフォルトの名無しさん
08/09/19 07:10:43
>>651
ReportsMemoryReaks := True
だったかで確認した?

662:デフォルトの名無しさん
08/09/19 07:11:42
>>660
@nifty
seshop.com

663:デフォルトの名無しさん
08/09/19 09:58:30
バージョンアップも店で買うようになったんだな。
ハガキが来ないからどうなったことだと思った。

664:デフォルトの名無しさん
08/09/19 11:39:56
>>659

ありがとうございます!

665:デフォルトの名無しさん
08/09/19 12:01:46
UnicodeStringにCRLFを挿入するときって#13#10でOK?

666:デフォルトの名無しさん
08/09/19 12:13:32
Asciiと同じで#0が必要

667:デフォルトの名無しさん
08/09/19 17:40:52
>Asciiと同じで#0が必要

ハツミミです。

668:デフォルトの名無しさん
08/09/19 17:50:01
ネコミミでつ。

669:デフォルトの名無しさん
08/09/19 19:32:21
文字コードの判定は何が良いでしょうか?
UTF-8なども判定したいのでjconvertは使えません

670:デフォルトの名無しさん
08/09/19 22:44:09
好きな方法でどうぞ。ちなみに完全に正しく判別する方法はありません。
詳しくは文字コードスレあたりで。

671:デフォルトの名無しさん
08/09/20 07:11:29
rubyのkconvみたいに適当でいいから判定してよライブラリがほしいのだろうと思う

672:デフォルトの名無しさん
08/09/20 07:50:41
性格出るよねこういうときって

673:デフォルトの名無しさん
08/09/20 09:51:04
たくさんの文字を調べれば遅くなるし
少しの文字しか調べないと甘くなるしな

674: ◆XcB18Bks.Y
08/09/21 11:57:09
>>652
var
 s: string;
 ws: widestring;
begin
 ws := 'くだすれ';
 s := ws;
end;

…こういうことではなくて?


675:669
08/09/21 21:41:47
皆さんありがとうございます
nkf32.dllを使おうと思ったのですがWideStringを渡す方法が分からなかったので使えませんでした
とりあえず自動判定は諦めるとして、文字コードの変換だけは実装しておきたいのですが、
WideStringのまま変換する例が無いのですが、何か良い方法はないでしょうか?

676:デフォルトの名無しさん
08/09/21 22:43:01
エクスプローラのツリービューはフォルダをマウスダウン→アップで選択すると
リストビューにファイルが表示されますが、DelphiのTreeViewとListViewで同様の処理をする場合
どのイベントで記述すれば良いのでしょうか?TreeViewのOnChangeイベントだと
マウスダウンの段階でイベントが発生します。OnClickイベントならダウン→アップで
イベントが派生するので都合が良いのですが、OnClickはノード選択処理に使うのは不便です。
何か良い方法はありませんか?

677:デフォルトの名無しさん
08/09/22 13:05:09
>>663

おいらもびっくりしたよ。いつも来ているバージョンアップ版の案内がこないからさー。
SEShop.comで買って大丈夫なんだよね?

678:676
08/09/22 16:14:42
自己解決しました><

679:デフォルトの名無しさん
08/09/22 23:17:20
Delphiで作られたランチャで、オープンソースのものってありまふか?
参考にしたいんですが。

680:デフォルトの名無しさん
08/09/22 23:45:13
ランチャってただ起動処理を外部アプリに飛ばすだけなんじゃね?

あとはUIの秀逸さだけが勝負かと。

681:デフォルトの名無しさん
08/09/23 00:51:30
どうやら久しぶりに会社でDELPHIにかかわることになりそうなんだけど
操作が全然覚えていない・・・
3.0の頃の書籍とか全部処分しちゃってるし

最近のお勧めってなんですか?

682:デフォルトの名無しさん
08/09/23 00:57:06
>>681
なんですかって?お勧めの本?

683:デフォルトの名無しさん
08/09/23 01:02:42
はい

684:デフォルトの名無しさん
08/09/23 02:42:34
ない

685:デフォルトの名無しさん
08/09/23 03:52:11
これなんかどう。
中身も読めるし。
URLリンク(books.google.co.jp)

2005以降はMarco Cantuさんの洋書がお勧め。

686:デフォルトの名無しさん
08/09/23 04:22:00
ああ、世界中で1000部やっと、ってやつね。

687:デフォルトの名無しさん
08/09/23 04:48:38
>>685
なにこれww売る気無いのか?ww

688:デフォルトの名無しさん
08/09/24 20:39:01
くだらない質問失礼
TFormのonShowってのはFormのVisible弄らない限り起動時にのみ呼び出されるの?

689:デフォルトの名無しさん
08/09/24 21:09:57
>>688
いえす。

690:デフォルトの名無しさん
08/09/24 22:49:24
Delphiの本スレってどこ?実質ここ?
別に超初心者じゃないんだけど。

691:デフォルトの名無しさん
08/09/24 22:53:14
>>688
メインフォームならYES。メインフォーム以外ならケースバイケース。
「Visibleいじらない限り」というのがShowやShowModalも含むのなら
それ以外で呼び出されるってことはないんじゃないかな。


692:デフォルトの名無しさん
08/09/24 22:59:48
質問スレはここだけみたいな気がする。

693:デフォルトの名無しさん
08/09/24 23:31:04
昔はあったよね。本スレっぽい(雑談だったっけ?)スレが。

694:デフォルトの名無しさん
08/09/24 23:35:00
寺子屋もあるぜよ

695:デフォルトの名無しさん
08/09/25 01:56:45
Delphi2から使ってるんで、超初心者でも初心者でもないんだが
2009どうよ、とかそういう話題はどこですればいいんかなー。

696:デフォルトの名無しさん
08/09/25 02:17:31
2chのDelphiスレは終わってるからMLでおk

697:デフォルトの名無しさん
08/09/25 05:00:58
>>693
こっちでもやってるよ。

【Embarcadero】CodeGearオッチャ その12
スレリンク(tech板)l50

698:デフォルトの名無しさん
08/09/25 11:42:49
>>690
質問スレここしかない。
超初心者じゃない俺も質問しているからOK

699:デフォルトの名無しさん
08/09/25 16:04:17
TMemoの改行を不可にしたいからこういう処理書いてみたが、
BackSpace使うと即行Tmemo内の文字の最後尾に移動してしまうんですが。

Tmemo.Text := StringReplace(Tmemo.Text,#13#10,'',[rfReplaceAll]);
Tmemo.SelStart := Length(Tmemo.Text);

本来はどう書くのが正解?

700:デフォルトの名無しさん
08/09/25 16:11:53
>>699
普通にonKeyPressで#13殺したらいいんじゃね?

701:デフォルトの名無しさん
08/09/25 16:12:20
WantRetuensをFalseにするだけじゃダメなの?


702:デフォルトの名無しさん
08/09/25 16:37:18
>>700
>>701

できました!!ありがとうございます!!!

703:688
08/09/25 22:05:42
ありがとうございます


704:デフォルトの名無しさん
08/09/26 05:22:48
指定した位置から、指定したバイト分の文字列を抜き出す関数ってありますか?

705:デフォルトの名無しさん
08/09/26 05:23:52
Copyのまんまやん

706:デフォルトの名無しさん
08/09/26 08:31:34
Toolbar2000のD2009対応バージョンでたよー
URLリンク(www.jrsoftware.org)

707:デフォルトの名無しさん
08/09/26 08:37:04
Toolbar2000よりTurboDelphi2009はまだかー

708:デフォルトの名無しさん
08/09/26 08:58:09
CodeGearは出す気はあるらしいけどね
学習用として出すらしいから機能は減るけど

709:デフォルトの名無しさん
08/09/26 09:35:23
作ったソフトを配布できないとか意味不明な事はやめて欲しいのう

710:デフォルトの名無しさん
08/09/26 09:38:29
>>709
経済のお勉強しような。

711:デフォルトの名無しさん
08/09/26 09:41:01
(経済)笑い

712:デフォルトの名無しさん
08/09/26 10:05:47
他人に上げるソフトなんて1部だけだし俺はそれでも構わんけどね

713:デフォルトの名無しさん
08/09/26 16:27:13
>>705
Copyの引数ってバイト数じゃなくて文字数じゃないの?

714:デフォルトの名無しさん
08/09/26 16:38:33
Copyはバイト数だよ。逆に文字数にしたかったらWideStringにキャスト

Copy('へべれけ', 2, 2) ==> '??'
Copy(WideString('へべれけ'), 2, 2) ==> 'べれ'

715:デフォルトの名無しさん
08/09/26 20:53:50
>>711
カッコ逆w

716:デフォルトの名無しさん
08/09/26 20:56:24
)経済(笑い

717:デフォルトの名無しさん
08/09/26 22:07:34
>>716
そうそう、次からは間違えんなよ

718:デフォルトの名無しさん
08/09/27 00:49:31
Turbo Explorerのことは、あきらめな。おそらくDelphi/C++Builderではなく、
Object Pascal/C++学習用環境、ということに…。

719:デフォルトの名無しさん
08/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
08/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 メソッドの使用が原因かどうか切り分けたかった
からです。

URLリンク(mackerel205.ddo.jp)

一応ここにプロジェクト一式置いておきますんで、興味があったら見てみてください。

721:デフォルトの名無しさん
08/09/27 23:32:31
そんなもん使わないでぶあーちゃるつりーびゅぅーを使おうぜ!

722:デフォルトの名無しさん
08/09/28 00:48:13
TListViewにファイル一覧を表示して、ドラッグ&ドロップで並び順を変更できるようにしています。
これにさらにOLE Drag and Dropの機能を追加して、ファイルを他のアプリケーションへドロップできるようにしようとしています。
この場合、どうすればOLE Drag and Dropと並び順の変更機能を共存させられるでしょうか?
並び順の変更もOLE Dropを受けて行うしかないのでしょうか。

723:722
08/09/28 21:33:39
やっぱりOLE Dropの処理と統合するしかなさそうですね。
素直にそう実装することにします…。

724:デフォルトの名無しさん
08/10/01 22:56:08
SpTBXLib 2.3 released.

Installation and requirements:
TNT is not used on Delphi/C++Builder 2009
URLリンク(club.telepolis.com)

Web interface to jrsoftware.org newsgroups - ANN: SpTBXLib 2.3
URLリンク(news.jrsoftware.org)

SpTBXLib のDelphi2009版はついに TNT 要らずになった

725:デフォルトの名無しさん
08/10/02 08:55:23
自作のアプリのUIはMainMenu+Coolbar+ToolbarなXPのExplorer風からまったく進歩してないな・・・
ActionManagerとかって最新の環境だと普通に使われるくらい安定してるの?

726:デフォルトの名無しさん
08/10/03 13:10:14
>>724
すごい。

727:デフォルトの名無しさん
08/10/03 13:35:11
質問です。

TStringGridを使ってます。
例えば、Rowを削除したいのですが、簡単なメソッドがありません。
そこで、OnSelectCell内でRowの内容をずらして行って、最後に
RowCountを-1使用と試みても、
OnSelectCell内でCellsの内容をいじると再帰で呼ばれて、オーバフローに
なってしまいます。

簡単にRowを削除する方法ありますか?


728:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/10/03 13:59:26
>>728さん
ありがとうございます。
頂いたコードを試したりしたのですが、
”グリッドの行を追加/削除することは出来ません”
というエラーが出てしまうんです。

簡単にTValueListEditorのように空のRowを削除できないものでしょうか・・・

あ、すみません。環境はD6+XP SP3です。
よろしくお願いします。


730:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/10/03 14:22:21
730さん
何回もすみません。
ですよね。文字列を詰めて、最後にRowCountを調整するって簡単に考えていたのですが
それをOnSelectCell内で行うとスタックオーバーフローになるし、
どうしたもんかと思っていたんですよ・・・

ちょっと、ググったら、ビンゴかなと思われるページがありました。
URLリンク(delfusa.main.jp)
まだ、解読及び検証中ですが・・・

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



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch