Einzelnen Beitrag anzeigen

guidobrose
(Gast)

n/a Beiträge
 
#1

Zur LZ erzeugter ToolBar wird nicht angezeigt

  Alt 8. Jun 2007, 10:38
Hallo, ich hätte da gern mal ein Problem...

Ich bastele mir ein Panel, auf dem die untergeordneten Element per Laufzeit erzeugt werden. Soweit sogut, hat auch funktioniert, aber jetzt möchte ich noch einen ToolBar einfügen und der wird NICHT angezeigt. But why?

Delphi-Quellcode:
unit UEinstellungen;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ToolWin, ComCtrls, StdCtrls, ExtCtrls, XTCtrls, ImgList, UDM;

type
  TEinstellungen = class(TPanel)
  private
    { Private-Deklarationen }
    TlBr: TToolBar;

    Information: TXTPanel;
    InfBenutzer: TXTEdit;
    InfComputer: TXTEdit;

    Datenbank: TXTPanel;
    DtbTreiber: TXTEdit;
    DtbServer: TXTEdit;
    DtbName: TXTEdit;

    Peripherie: TXTPanel;
    PerAmpelIP: TXTEdit;
    PerAmpelPort: TXTEdit;
    PerAnzeigeIP: TXTEdit;
    PerAnzeigePort: TXTEdit;
    procedure Enter(Sender: TObject);
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent; AParent: TWinControl);
  end;

implementation

constructor TEinstellungen.Create(AOwner: TComponent; AParent: TWinControl);
begin
  inherited Create(AOwner);
//Allgemeine Parameter vorbesetzen
  Parent:=AParent;
  BevelInner:=bvNone;
  BevelKind:=bkFlat;
  BevelOuter:=bvNone;
  ParentColor:=True;
  Top:=50; //Beliebiger Wert, der unterhalb von Toolbar liegt
  Align:=alClient;
  AlignWithMargins:=True;
  Visible:=False;
  OnEnter:=Enter;
//Untergeordnete Elemente erzeugen
  TlBr:=TToolBar.Create(self);
  TlBr.Parent:=self;
  TlBr.AlignWithMargins:=True;
  TlBr.DrawingStyle:=dsGradient;

  Information:=TXTPanel.Create(self,self);
  Information.Caption:='Information';
  Information.Top:=30;
  Information.Height:=80;
  Information.Width:=260;
  Information.Enabled:=False;//Nur Information, keine Eingaben
  InfBenutzer:=TXTEdit.Create(self,Information,30);
  InfBenutzer.Caption:='Benutzer';
  InfComputer:=TXTEdit.Create(self,Information,55);
  InfComputer.Caption:='Computer';

  Datenbank:=TXTPanel.Create(self,self);
  Datenbank.Caption:='Datenbank';
  Datenbank.Top:=120;
  Datenbank.Height:=105;
  Datenbank.Width:=260;
  DtbTreiber:=TXTEdit.Create(self,Datenbank,30);
  DtbTreiber.Caption:='Treiber';
  DtbServer:=TXTEdit.Create(self,Datenbank,55);
  DtbServer.Caption:='Server';
  DtbName:=TXTEdit.Create(self,Datenbank,80);
  DtbName.Caption:='Name';

  Peripherie:=TXTPanel.Create(self,self);
  Peripherie.Caption:='Peripherie';
  Peripherie.Top:=230;
  Peripherie.Height:=130;
  Peripherie.Width:=260;
  PerAmpelIP:=TXTEdit.Create(self,Peripherie,30);
  PerAmpelIP.Caption:='Ampel - IP';
  PerAmpelPort:=TXTEdit.Create(self,Peripherie,55);
  PerAmpelPort.Caption:='Ampel - Port';
  PerAnzeigeIP:=TXTEdit.Create(self,Peripherie,80);
  PerAnzeigeIP.Caption:='Anzeigetafel - IP';
  PerAnzeigePort:=TXTEdit.Create(self,Peripherie,105);
  PerAnzeigePort.Caption:='Anzeigetafel - Port';
end;


procedure TEinstellungen.Enter(Sender: TObject);
begin
  InfBenutzer.Text:=DM.Benutzer;
  InfComputer.Text:=DM.Computer;
  DtbTreiber.Text:=DM.Datenbank.Treiber;
  DtbServer.Text:=DM.Datenbank.Server;
  DtbName.Text:=DM.Datenbank.Name;
end;

end.
Das Panel selbst wird auf dem Hauptformular zur Laufzeit erzeugt, das funktioniert auch soweit.

Mein zweites Problem im Zusammenhang mit dem ToolBar ist, dass die Zuweisung
  TlBr.DrawingStyle:=dsGradient; ebenfalls nicht funktioniert, da "dsGradient" einmal in ExtCtrls als
TBandDrawingStyle = (dsNormal, dsGradient)
und einmal in ComCtrls als
TTBDrawingStyle = (dsNormal, dsGradient)
deklariert wird. Was für ein Scheiß!
  Mit Zitat antworten Zitat