AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zur LZ erzeugter ToolBar wird nicht angezeigt

Ein Thema von guidobrose · begonnen am 8. Jun 2007 · letzter Beitrag vom 8. Jun 2007
Antwort Antwort
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
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: Zur LZ erzeugter ToolBar wird nicht angezeigt

  Alt 8. Jun 2007, 10:52
Ein TPanel ist eine TWinControl und muss daher einen gesetzten Parent haben damit es sichtbar ist.
Bei dsGradient musst du halt den richtigen Unit-Qualifier nehmen, also ExtCtrls.dsGradient oder ComCtrls.dsGradient.
  Mit Zitat antworten Zitat
guidobrose
(Gast)

n/a Beiträge
 
#3

Re: Zur LZ erzeugter ToolBar wird nicht angezeigt

  Alt 8. Jun 2007, 10:56
Zitat:
Bei dsGradient musst du halt den richtigen Unit-Qualifier nehmen, also ExtCtrls.dsGradient oder ComCtrls.dsGradient.
Aaaaah, wusste ich gar nicht, dass das so geht. Jetzt wird übrigens auch der ToolBar angezeigt. Der Parent wird natürlich im Hauptformular angegeben, welches das Panel erzeugt.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Zur LZ erzeugter ToolBar wird nicht angezeigt

  Alt 8. Jun 2007, 10:59
Ja, der Punkt ist in Delphi definitiv ueberbelegt. In C++ hat man "->", "::" und ".".
  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 09:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz