1read 100read
2012年07月プログラム86: くだすれDelphi(超初心者用)その54 (912)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
【QBASIC互換!?】FreeBasic【GPL】 (512)
懐かしきベーマガの面白かった投稿プログラムを語る (760)
動的言語で大規模開発 (284)
★★ Java の宿題ここで答えます Part 72 ★★ (433)
Vim vs Emacs Part2 (422)
Visual Studio 2012 Part4 (431)
くだすれDelphi(超初心者用)その54
1 :2011/12/28 〜 最終レス :2012/11/08 Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を 勇気を持って書き込むスレッドです。 Delphi使いが優しくコメントを返しますが お礼はDelphiの布教と初心者の救済をお願いします。 <前スレ> くだすれDelphi(超初心者用)その53 http://toro.2ch.net/test/read.cgi/tech/1309101455/ <過去スレ> DelWiki避難所(Delphi 関連の過去スレッド) http://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
2 : <関連スレ> delphiで作った有名ソフトって何があるの? http://hibari.2ch.net/test/read.cgi/tech/1135654787/ 【Delphi互換!?】FreePascal/Lazarus その2【GPL】 http://hibari.2ch.net/test/read.cgi/tech/1261676778/ ネットワークゲーム作成のお勉強(Delphi専用スレ) http://hibari.2ch.net/test/read.cgi/gamedev/1028278884/ Delphiでアクションゲームが作りたい!! Part2 http://hibari.2ch.net/test/read.cgi/gamedev/1027482533/ delphiでMMO http://hibari.2ch.net/test/read.cgi/gamedev/1072515100/ では質問どうぞ。
3 : 完走?落ちた?
4 : 984で落ちたような
5 : もう人いなんだからスレ立てる必要ねぇよ
6 : 時代はLazarus
7 : delphi7なんだけど、CombBoxって文字の右寄せって出来ない? ググったらEditコントロールは出来るみたいだけど。
8 : Delphiじゃなくて WindowsのCOMBOBOXには右寄せというのは無いからね オーナードローで描画すれば右寄せ表示も出来るけど、文字入力もしたいんだよね? Editコントロールで入力して ListBoxを動的に表示させるとか
9 : CreateWndした後だとprotectedなメンバのEditHandleにエディット部分のhwndが入っているようなので、 こいつを使ってStyleを書き換えればできそう。
10 : とりあえずコンポーネントを作らないやりかた。まずフォームのinterface部の先頭に type TComboBox = class(StdCtrls.TComboBox) private FAlignment: TAlignment; procedure SetAlignment(const Value: TAlignment); public constructor Create(AOwner: TComponent); override; procedure CreateWnd; override; property Alignment: TAlignment read FAlignment write SetAlignment; end; とする。
11 : んでもって実装はこんな感じ。 constructor TComboBox.Create(AOwner: TComponent); begin inherited; FAlignment := taLeftJustify; end; procedure TComboBox.CreateWnd; const Alignments: array[TAlignment] of DWord = (ES_LEFT, ES_RIGHT, ES_CENTER); begin inherited; SetWindowLong(EditHandle,GWL_STYLE, (GetWindowLong(EditHandle,GWL_STYLE) and $FFFFFFFC) or Alignments[FAlignment]); end; procedure TComboBox.SetAlignment(const Value: TAlignment); begin if FAlignment <> Value then begin FAlignment := Value; RecreateWnd; end; end;
12 : でフォームに3つTComboBoxを置いて procedure TForm1.FormShow(Sender: TObject); begin ComboBox1.Alignment := taLeftJustify; ComboBox2.Alignment := taRightJustify; ComboBox3.Alignment := taCenter; end; でもこれだと設計時にAlignmentを指定できないので、それがいやならTComboBoxから派生したコンポーネントを 作ってインストールする。注意事項としてはWindows NT4では複数行ではないEDITにES_RIGHT/ES_CENTERを 指定できないためこれだけではうまくいかないということと、ひょっとしたらStyleにES_AUTOHSCROLLも入れたほうが いいかも、ということくらいかな。
13 : うおおおおおおお 皆さん、ありがとうございます。 10さん、まだ試してないですが使わせていただきます。 本当にありがとうございました。
14 : DELPHIの既存システムに無線ハンディ売上システムを アドオンしようとしてるんだけど、 ハンディサーバーは既存でVB.NETでいい感じのシステムがあるんだよね 俺はどの戦略をとるべきかな ちなみにDELPHI7だけど、俺の職歴はDEL3.1CSで止まってる 1.DELPHIでハンディサーバーシステムを新規構築 (マルチスレッドなTCPサーバーを作るの面倒) 2.VB.NETサーバー側にDELPHI後方処理を移植 (既存システムの後方処理を使い回しできない) 3.VB.NETサーバーを利用し、DELPHI後方処理をDLLパックしてコール (変数の受け渡し等でシリアライズとか問題発生しないかな) 燃料だとでも思ってなんか意見ください
15 : 手間が少ないのは3だろ
16 : >>15 最近の異言語間のマーシャリングとか得意じゃないんだけど VB.NETとDEL7ってあんまり気を使わないで済むのかな
17 : COMで呼べばいいじゃん
18 : 俺だったら全部Delphiでやるけどね。 既存設計の良い所真似してより便利にしてやれば喜んでくれるだろう。 下手に既存との両立とかしたらアレは向こうの問題だとか 問題の切り分けで面倒な事になる。 でも、久しぶりのDelphiだと慣れてないって事もあるだろうからお勧めは出来ないな。 自作のコンポ大量にある場合向けだな。 で、VB.NETとの共存なら、コールバックとかややこしい事しなくても、DelphiからVB.NETのサーバーにアクセスすりゃいいんじゃないの? プロトコルが判ってるんならだけどさ。 何かデータ加工してもらわないといけないのなら、VB.NET側で加工してファイル渡しで作ればいいじゃない。
19 : Delphi1〜4まで持ってたんだけど 今再開するとしたら有利なアップグレードパスはありますか? フリー版ってもうないんですよね
20 : >>15 ,17,18 ご意見ありがとうございます TThreadやSocketの経験はあるのですが、 今日実際に通信サーバーを作ろうとしたらApplication.ExeName すらぐぐらないと思い出せない始末 この分では2週間ぐらいかかってしまうので VB通信サーバー −> FireBirdトランかきこ −> Delphi監視サーバー −> 伝票自動発行 の流れで行こうと思います。(監視サーバーは定期監視か可能ならSocket通知)
21 : >>19 とりあえずStarter SKU(Delphi XE2 Starter)でいいのでは?これで足りないようなら今年の9月頃にXE3が出ると思うんで、 そのときにジャンプアップキャンペーンがあればこれでPro以上のSKUにするのがオヌヌメ。
22 : mainmenuを使って メニューを作っています。 コンパイルすると メニューの文字の左側に(アルファベット1文字)が追加されています。 例)ファイル(X) 開く(Y) 閉じる(Z) カッコとアルファベットを消す方法を教えて下さい。
23 : つAutoHotkeys
24 : maManualにしたらできました。 ありがとうございます。
25 : delphi3の頃から見かける質問だがいまだにこれが出るって事は新規がまだいるんだなぁ
26 : ホットキーがついてないのって出来損ないのクロスプラットフォームアプリでしか見かけないな
27 : ツールボタンしか用意してないものとかもあるもんな
28 : Delphi6使ってるんですが、Indy9はHTTP1.1に対応していますか? ヘルプには IdHTTP1->ProtocolVersion のデフォルトは pv1_1 と書いてありますけど。 Transfer-Encoding: chunked だと途中でファイルが途切れることがあるみたいなのですが・・・
29 : それはDelphiじゃなくてIndy側の問題。どうせオープンソースだから自分で直せ
30 : >>28 chunkedなデータって元々サイズ指定がなかったりするから 途切れてるんじゃなくてそれで正常って可能性もあるんじゃね?
31 : RFC嫁
32 : ネットモニタで見てみたら、ちゃんとデータは鯖から送信されていました。 なので、Indyがchunkedに対応していない、あるいはバグのようです。 >>30 ちなみに、chunkedはブロックごとにサイズ指定して送信してくる方式ですよ。 いろいろ試行錯誤してみた結果、 ProtocolVersion:=pv1_0 にするとchunked形式ではなく普通の形式で送信される ので、とりあえずはそれで回避しましたが、なんか鯖の反応が遅くなるみたいです。 Indyのソースは見てみましたが、膨大で挫折しました。 どこを見ればいいんでしょうか。
33 : Delphi初心者です
34 : Delphi初心者です マルチクライアントなTCPサーバーを作ろうと思うのですが、 TTcpServerというのを使えばいいんでしょうか? バグとか機能的に使えんとかいうご意見があれば教えてくさい あと、それよりこっちがいいよっていうコンポーネントなんか あったら教えてくさい
35 : Ararat Synapse にマルチクライアントなTCPサーバーのサンプルがついてるよ
36 : >>35 34です。ありがとうございます。調べてみます。 TTcpServerは使い物にならないってことですかね?
37 : 特に理由がなければC#とかの方がいいよ
38 : ほんとだったら.Net Frameworkでやりたいんですが、今回はDelphi言語指定です
39 : まぁ、TTcpServerぐらいなら元のWinSockラップしてるだけだし。 バグとか大丈夫なんじゃ。ソースも簡単に追える程度でしょ。
40 : >>39 34です。とにかく情報が少なすぎて不安ですが、チャレンジしてみます ありがとうございました
41 : つ ttp://docwiki.embarcadero.com/CodeExamples/XE2/en/TTcpServer_%28Delphi%29
42 : はい、そこは見てます。これぐらいしかないんですw
43 : >>32 サイズって全体のサイズな 細切れ毎のサイズだけでは全体がいくつか分かんないでしょ
44 : >>42 古いものだけど、TServerSocketの方が情報はあるかもしれない 簡単に言えばTTcpServerの旧世代版みたいなもの 標準ではインストールされてなかったと思うけど、一応最新のDelphiにも入ってたはず 導入方法はググれ
45 : >>32 Content-LengthとTransfer-Encoding: chunked が同時に指定されている場合に 鯖によって問題出る事があって昔Janeでバグ修正してるけど関係あるかな? TIdCustomHTTP.ReadResultの判定順序変えてるけど
46 : >>37 C#でサーバーとな。気は確かか?
47 : .NETはWinForm,WPFなどのクライアントよりASP.NETなどのサーバー分野の方が強いんだけど
48 : いや、別に止めないけど
49 : Delphi+Indyに比べれば何でもましだろ
50 : だな
51 : というかArarat Synapse のサンプルはマルチスレッドだから実用に耐えるよ。 Indyは確かに糞だよ。
52 : パッケージ・インストールの質問です。 TMS SoftwareのTAdvListViewをインストールしようとしていますが、 次のようなエラーが出ます。 パッケージ C:\Users\Public\Documents\RAD Studio\9.0\Bpl\alvPkgDXE2.bplは 異なる Delphi または CBuilder で作成されたためインストールできません。 コンパイルはエラー無く終了します。上記のalvPkgDXE2.bplは、 正常にコンパイルした結果でファイルの更新日付は新しくなっています。 TMS Softwareのサポートにもメールで問い合わせましたが、解決の 糸口がつかめません。bplのファイルを生成するときに、バージョンを 指定するオプションがあるのかと探していますが、 手詰まりになってきました。 '異なるDelphiまたはCBuilderで作成'というキーワードから、点検のポイント がわかればご教授ください。
53 : 私教授じゃないから教示はできても教授はできないわ
54 : この際Lazarusに移行しちゃえば?
55 : _alvPkgDXE2.bpl にでもリネームしてみる
56 : 52です。 この件クローズです。 直接の原因はTAdvStringGridがインストールされているためでした。 そもそも、TAdvListViewと共存できるのかTMS Softwareに確認しています。 お騒がせしました。
57 : Turbo Delphiのテキスト選択に関する質問です。 普段はテキスト選択のあとにキャレットを移動させると テキスト選択が解除されますが 使っているうちに何か変なキー操作をしてしまったのか テキスト選択モードが変わってしまったようで キャレットを移動してもテキスト選択が解除されません。 これはどうやったら元に戻る(切り替えられる)のでしょうか。 ヘルプを見たのですが分かりませんでした。
58 : その質問をするためにはどうしてもトリップを付ける必要があったのでしょうか?
59 : うぜえよ 答えられないならレスすんな、カス
60 : キーボードにコーヒーこぼしてShiftキーが押しっばなし状態になったことはあった
61 : 今のデルファイで232c扱うコンポーネントある?
62 : CommPortとかTurboPower Asyncあたり
63 : ドラッグアンドドロップで、画像を配置して表示させるフォーム をつくるには どうすればいいでしょうか。
64 : まずドラッグアンドドロップの処理をフォームに実装します
65 : >>63 「フォームをつくる」の意味が曖昧だけど usesにShellAPI WM_DROPFILES DragQueryPoint を検索してみたらよろしいかと
66 : ファイルをとは一言も言ってません
67 : はい、次の方
68 : Del2010です。コンパイルオプションの範囲チェックを有効にしたプロジェクトを読み込むと、 var a : UInt64; begin a := $f000f000; a := a shl 32; showmessage(inttohex(a,16)); こういうコードの場合、shlの行でaの上位4バイトに対して負の数だったら、@BoundErrとなるように範囲チェック処理が働きます。 UInt64の場合これはおかしいように思いますが、なぜなんでしょう。実は暗黙的にUInt64もInt64として扱われるんでしょうか。
69 : >>68 この際だから Lazarus に移行しちゃえば?
70 : >>68 IntToHexの引数の型を見たことはある?
71 : こんにちは。 Delphi7でmdbをTADOQueryで読み込んでDBGridに表示しています。 そのADOQueryにはCalcFieldがあり、OnCalcFieldsイベントで データをセットしています。 で、このクエリをDBGridに表示し終わった時に、そのCalcFieldの 値の全レコードの合計をTEditか何かに表示させたいと思って、 OnCalcFieldsイベントプロシジャの中で、 Ruikei := Ruikei + CalcFieldの値; みたいに累計を求める式を書いてるのですが、 OnCalcFieldsイベントはDBGridに表示されているレコードしか 呼び出されないようで、全レコードの合計になってくれません。 CalcFieldの値の全レコード合計を出すにはどうすればよいでしょうか?
72 : >>71 逆に mdb にクエリー投げたくない理由教えて。 なんでわざわざDBGrid 解して計算したいの?
73 : >>72 DBGridには表示してるだけです。 TADOQueryでmdbにSQLを投げてます。
74 : >>72 mdb - TADOConnection - TADOQuery - TDataSource - TDBGrid
75 : >> 70 はい、あります。Integerですよね。IntToHex自体はaの中身を表示する処理ですが、 それはあくまで、その時点でaにセットされている内容を表示する処理ですよね。 したがってaの中身が$8000000000000000であればそれが表示されるでしょう。 私が思うのは、その前のshlの段階。 shlは符号に無関係な"論理左シフト"である以上、1 shl 63は$8000000000000000と セットされるべきで、ここに符号ありチェックが入るのは、おかしいのではないか? という趣旨です。 参考までに、下記のようなコードでもやはり同様の現象が起きます。 var a : UInt64; begin a := 1; a := a shl 63; pcardinal( pbyte( @a ) + 4 )^ := $f; // とりあえずaを使用するためのダミー処理
76 : >>75 逆アセして貼ってくれ
77 : >>75 DXEで逆アセのコードを見てみたけど、まずshl 32はシフト命令を使用していない。64bitデータの 左32bitシフトは下位32bitを上位に移動して、下位32bitを0にする、という形に最適化されている。 その上でaがInt64なら範囲チェックなし、UInt64なら範囲チェックあり、というコードが生成されている。 逆じゃね?という指摘はまぁそのとおりのような気もする。
78 : >>73 >>74 よくわからんがどうしてもDBGridを仲介させたいなら DBGridを全スクロールさせるとかしかないわな。 俺なら別のクエリで計算させるけど。
79 : Delphi6 で質問です。 データの簡易エディタ表示部分を作ろうとしているのですが、 Index | txt | −1− | −2− | −3− |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ☑ฺ 1 | data1txt | −1-1txt− | −1-2txt− | −1-3txt− |▲| ☑ฺ 2 | data2txt | −2-1txt− | −2-2txt− | −2-3txt− | | ☑ฺ 3 | data3txt | −3-1txt− | −3-2txt− | −3-3txt− | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ [←]_____________________[→] 表示は別ボタンなどで計算結果などを表示するだけ。 項目内で直接書き換えはしません。 行数はデータによって1000行ぐらいまで変動します。 チェックボックス付きの項目(有効/無効)用を入れるには ListView でいけますか? 他にあります? ScrollBox → ListView (ViewStyle vsReport) ?
80 : そういうリストビューコンポーネントを作れば?
81 : >>79 Checkboxes
82 : ListViewでいいだろ。
83 : >>79 すぐできるからやってみろ
84 : ドモドモ Checkboxes というコンポーネントかと思って探しまくってました orz ListView の プロパティCheckboxes を True にするのですね。 これを探してました、ありがとう!
85 : 教えてください。 TProgressBarで、カウントする数字が未確定の場合などに 左右にバーが揺れながら移動するのを見かけたのですが どのように実現するのでしょうか。 調べたら、TProgressBarには、pbstMarqueeという形式がありますが pbstMarqueeだと、左から右にブロックが移動しますが 実現したいのは、左右に移動する形式です。
86 : 自前で描画
87 : gifアニメでいいんじゃないの?
88 : >>85 ProgressBar1.Position := 0; 〜 を ProgressBar1.Max までの範囲で直接増減させたらダメなの?
89 : 読解力に少々問題があるようですね
90 : 脳も左右に揺れております
91 : むかし、 Knight2000というコンポーネンがあってだな
92 : XE2 Starterって買ってメリットある? ジャンプアップで1万引きでproが買えるって話なら、結局払ってる金同じじゃん それなら、VS2010のProを5万そこそこで買ってる方が得だと思うけど。 もっと安かったら飛びつくのだけどなdelphi。残念。
93 : 貧乏人は麦を食え
94 : 今は麦飯にすると高くつくけどな
95 : XE/XE2で tmyclass=class published procedure foo; procedure bar; procedure baz; end; でpublishedなメソッドfoo,bar,bazの一覧を得る方法あったら教えて下さい。 なるべくならRTTIを使った安全な方法でおねがいします。
96 : Rtti.pas
97 : TRRIContext.Create GetTypes(tmyclass) GetMethods ToString こんな流れ
98 : うまくいきました。ありがとうございます。 publishedかどうかの判定はTRttiMethodのメソッド、プロパティに見当たらなかったので TMyClass.MethodAddress(Method.Name) <> nil で判定しました。
99 : TRttiMemberにVisibilityプロパティあるじゃんかよ。
100read 1read 1read 100read TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
【糞.NET】裏切り者には死を【アンチゲイツ】 (338)
「コンパイラ・スクリプトエンジン」相談室15 (595)
Excel VBA 質問スレ Part26 (752)
sizeof(char)が必ず1でも、省略すべきではない (585)
くだすれC++/CLI(初心者用)part2 (614)
ExcelVBAで勤務表を作ろう (358)
--log9.info------------------
安全上の観点から挙手は全面禁止へ (308)
【バスオタ】守亮太郎を語れ【連載中止?】 (702)
【ディズニー】京王バス南のスレ【御用組合】 (309)
西武バスぅ〜乗務員専用スレ (641)
昔の東京の路線バス (320)
敬老パス・障害者運賃無料制度を廃止すべきか? (201)
昔の東武バスを語ろうよ!2 (387)
【新京成・関東】トロピカル連合スレ2【臨港・京都市】 (769)
【あすか】千葉県のバス会社3【シーサイド etc】 (448)
☆★都営バス運転手採用試験★☆3台目 (456)
都営バス車両運用情報スレ 22 (903)
【房総直結】東京湾アクアラインバス【海ほたる】 (907)
北海道中央バス19 (280)
【赤バス】長崎県営・県央バス 1台目【青バス】 (833)
JR高速バス「ドリーム」関連スレ 30号車 (462)
北海道中央バス石狩営業所2 (773)
--log55.com------------------
【Yahoo!】 LOHACO ロハコ 【ASKUL】 Part14
Amazonクラッシュセール
平和堂石山店
【靴・バッグ・財布・小物】LOCONDO.jpスレ Part1
NTTグループの安心オンラインストア - NTT-X Store
【3COINS】スリーコインズ【315円均一】
■★■ショップチャンネルの通販544■★■
【札幌】産直生鮮市場・ジェイ・アール生鮮市場