2011年10月1期プログラムくだすれDelphi(超初心者用)その54
TOP カテ一覧 スレ一覧 削除依頼 ▼
・ 次のスレ
【超高速】C/C++に代わる低級言語を開発したい 7 【早稲田】カブロボコンテスト Part2【ホリエモン】 【マック】Macintoshプログラミング質問箱 C++によるDICOMファイル解析
くだすれDelphi(超初心者用)その54
1 :11/12/28 〜 最終レス :12/01/06 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 :12/01/06 うおおおおおおお 皆さん、ありがとうございます。 10さん、まだ試してないですが使わせていただきます。 本当にありがとうございました。
TOP カテ一覧 スレ一覧 削除依頼 ▲
・ 次のスレ
【超高速】C/C++に代わる低級言語を開発したい 7 【早稲田】カブロボコンテスト Part2【ホリエモン】 【マック】Macintoshプログラミング質問箱 C++によるDICOMファイル解析