AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Prism Problem mit eigener .NET Componente
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit eigener .NET Componente

Ein Thema von Master_BB · begonnen am 27. Nov 2005 · letzter Beitrag vom 27. Nov 2005
Antwort Antwort
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#1

Re: Problem mit eigener .NET Componente

  Alt 27. Nov 2005, 11:56
Die Componente
Delphi-Quellcode:
unit ButtonBarU;

interface

uses
  BarButtonsU,
  System.ComponentModel,
  System.Windows.Forms;

const
  WM_Size = 5;

type
  TBarButtonClickEvent = procedure(sender : TButtonItem) of Object;


  TButtonBar = class(Panel)
  strict protected
    procedure WndProc(var AMessage : System.Windows.Forms.Message); override;
  protected
    FButtons : TButtonList;
    FOnBarButtonClick : TBarButtonClickEvent;
  protected
    procedure InitializeObject;
  public
    constructor Create;

    property Buttons : TButtonList read FButtons;
  published
    [Category('Buttons'), Description('Raised while a button was clicked')]
    property OnBarButtonClick : TBarButtonClickEvent read FOnBarButtonClick write FOnBarButtonClick;
  end;

implementation

uses
  System.Security.Permissions;

{$REGION TButtonBar}

{ TButtonBar }

constructor TButtonBar.Create;
begin
  inherited;
  InitializeObject;

  FButtons := TButtonList.Create(Self);
end;

procedure TButtonBar.InitializeObject;
begin
  FButtons := nil;
  FOnBarButtonClick := nil;
end;

{$ENDREGION}

//[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name='FullTrust')]
procedure TButtonBar.WndProc(var AMessage : System.Windows.Forms.Message);
begin
  if AMessage.Msg = WM_SIZE then
    MessageBox.Show(Width.ToString);
    
  Inherited WndProc(AMessage);
end;

end.
ein teil der ButtonsListe
Delphi-Quellcode:

  TButtonList = class(ArrayList)
  protected
    function get_ButtonsWidth : Int32;


function TButtonList.get_ButtonsWidth: Int32;
begin
  if (FParent <> nil) then
    Result := FParent.Width - (2 * FButtonConst.ButtonSpaceLeftRight)
  else
    Result := 0;
end;
FParent ist die Control und wird beim erstellen der Buttonliste
gefillt also vor dem ersten aufruf von get ButtonsWidth
Wenn das Meer unruhig ist und der Wind die Wellen treibt, erfreut es, vom Strand aus die Mühen eines Anderen zu beobachten.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz