私は現在、Delphi7のBlackJackアプリケーションで作業しており、後でカードの値を表示するためにエディットボックスのテキストを中央に配置しようとしています。私はこの文書(http://delphidabbler.com/tips/85)を見つけましたが、今は正しく実装することができません。私はリンクからのコードを "Unit2"に入れ、 "Unit1"の編集ボックスで両方の関数を呼び出してテキストを整列しようとしています。両方の関数のどちらかを呼び出そうとすると、渡されたパラメータは同じではないことがわかります。 もしあなたが私を助けることができるなら、それは非常に高く評価されるでしょう。ここでDelphi7でエディットボックスのテキストを中央に揃える方法は?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Unit2;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button10: TButton;
Button4: TButton;
Edit2: TEdit;
Edit3: TEdit;
[...]
Unit2ののコード:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyEdit = Class(TEdit)
public
FAlignment: TAlignment;
procedure SetAlignment(Value: TAlignment);
procedure CreateParams(var Params: TCreateParams); override;
property Alignment: TAlignment read FAlignment write SetAlignment;
end;
implementation
procedure TMyEdit.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
case Alignment of
taLeftJustify:
Params.Style := Params.Style or ES_LEFT and not ES_MULTILINE;
taRightJustify:
Params.Style := Params.Style or ES_RIGHT and not ES_MULTILINE;
taCenter:
Params.Style := Params.Style or ES_CENTER and not ES_MULTILINE;
end;
end;
procedure TMyEdit.SetAlignment(Value: TAlignment);
begin
if FAlignment <> Value then
begin
FAlignment := Value;
RecreateWnd;
end;
end;
end.
我々は本当にボタン宣言の叙事詩リストを表示する必要はありません。私たちが望むのは、エラーの原因となるコード行とそのエラーを特定することです。エラーの内容を説明しないでください。それをそのまま引用してください。あなたの虚偽のタグを削除しました。これはターボパスカルではありません。 –
@ David Heffernanたとえば、編集4でUnit2の機能をどのように呼び出すことさえも考えていないので、今は失敗する部分はありません。私が試してみると、どちらかというと:宣言されていない識別子か、または同じパラメータではない。私の質問では、私はその機能を一般的にどのように使うかを求めていました。タグのご協力ありがとうございました! – Nikolas
'Unit2'の機能は何ですか?それはあなたが使用するように見えないクラスを公開します。おそらくあなたが探しているのはインターポーザークラスです。コンポーネントを登録しないのはなぜですか? –