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
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 まだ、解読及び検証中ですが・・・ なにはともあれ、ありがとうございます。