Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi StatusBar zur Laufzeit erstellen (https://www.delphipraxis.net/112287-statusbar-zur-laufzeit-erstellen.html)

djpaull 18. Apr 2008 08:37


StatusBar zur Laufzeit erstellen
 
Servus!

Ich wollte ne StatusBar mit 2 Panels/Bereichen (wie auch immer) erstellen. StausBar alleine zu erstellen geht ohne Probleme
Delphi-Quellcode:
StatusBar1:= TStatusBar.Create(Form1);
form1.InsertControl(StatusBar1);
Aber ich kriegs ums Verreken nicht hin, darein zwei panels einzubauen. Wenn möglich, Code posten. Habe halbe Nacht mit dem Sch...s verbracht. :kotz:

Danke im Voraus.

Nuclear-Ping 18. Apr 2008 08:43

Re: StatusBar zur Laufzeit erstellen
 
StatusBar.SimplePanel auf False und dann per StatusBar.Panels.Add oder so. :gruebel:

djpaull 18. Apr 2008 08:52

Re: StatusBar zur Laufzeit erstellen
 
Hmm.. Das mit "StatusBar.SimplePanel auf False setzen" ist schon ne gute Idee. Aber bei "StatusBar.Panels.Add" tut sich nix. Bei "StatusBar1.Panels.AddItem(nil,2)" sagt er: "Listenindex überschreitet das Maximum (2)". Hab schon viele Kombinationen ausprobiert, aber fast immer kommt diese Fehlermeldung.

EDIT
Bei folgenden Zeilen kommt es zu diesem Fehler:
[delphi]
StatusBar1.CreatePanels.Insert(2); oder
StatusBar1.Panels.AddItem(nil,2);

Nuclear-Ping 18. Apr 2008 09:10

Re: StatusBar zur Laufzeit erstellen
 
Wenn du im OI das Panel doppelklickst, geht ein kleines Fenster auf, wo du Panels einfügen kannst.

Ergo muß es dazu im Code irgendeine Implementation geben, womit du das auch zur Laufzeit machen kannst. Schau halt mal, was die OH dazu sagt. ;)

djpaull 18. Apr 2008 09:19

Re: StatusBar zur Laufzeit erstellen
 
Ich dachte im Moment an sowas wie
Delphi-Quellcode:
      begin
        for I := 0 to StatusBar1.Panels.Count - 1 do
        StatusBar1.Panels.Insert(2)
      end;
nur da tut sich auch nix. Hm... :gruebel:

Nuclear-Ping 18. Apr 2008 09:21

Re: StatusBar zur Laufzeit erstellen
 
Schau doch einfach, was die Online-Hilfe (F1) an Hilfen für die Methoden zur StatusBar anbietet.

djpaull 18. Apr 2008 09:31

Re: StatusBar zur Laufzeit erstellen
 
Einfach genial diese DH. Spuckt mir alle Beispiele für VB, C#, C++ und JScript aus aber Nicht FÜR DELPHI. :wall:

EDIT Hier - DH Ergebnis:

Ruft die im Steuerelement enthaltene Auflistung von StatusBar-Bereichen ab.

[Visual Basic]
Public ReadOnly Property Panels As _
StatusBar.StatusBarPanelCollection

[C#]
public StatusBar.StatusBarPanelCollection Panels {get;}

[C++]
public: __property StatusBar.StatusBarPanelCollection* get_Panels();

[JScript]
public function get Panels() : StatusBar.StatusBarPanelCollection;
:gruebel:

Nuclear-Ping 18. Apr 2008 09:36

Re: StatusBar zur Laufzeit erstellen
 
Zitat:

Zitat von Delphi Hilfe
TStatusPanels.Add
Die Methode erzeugt eine neue Instanz von TStatusPanel und fügt diese dem Array Items hinzu.

function Add: TStatusPanel;

Beschreibung

Die Methode Add gibt die neue Tafel zurück. Zur Entwurfszeit wird der zugehörige Editor verwendet, um der Statusleiste weitere Tafeln hinzuzufügen.

Beispiel - BeginUpdate, EndUpdate, Add, Count, Items
Im folgenden Beispiel wird eine Tafel (Panel) mit Beschriftung in die Statusleiste eingefügt, wenn der Benutzer auf eine Schaltfläche klickt. Die Methoden BeginUpdate und EndUpdate dienen dazu, einen Neuaufbau der Darstellung so lange zu verhindern, bis die Operation abgeschlossen ist. Ein try...finally- Block sorgt dafür, daß im Fall einer Exception die Methode EndUpdate aufgerufen wird.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var
  PanelIndex : Integer;
begin
  with StatusBar1 do
  begin
    Panels.BeginUpdate;
    PanelIndex := StatusBar1.Panels.Count - 1;
    try
      Panels.Add;
      Inc(PanelIndex);
      Panels.Items[PanelIndex].Text := 'Panel' + IntToStr(PanelIndex);
    finally
      Panels.EndUpdate;
    end;
  end;
end;


djpaull 18. Apr 2008 09:43

Re: StatusBar zur Laufzeit erstellen
 
Hey, danke :-D . Sorry für meine sture Dumheit. War die ganze Nacht wach - keine Konzentration mehr. :freak:
THX a lot again!

EDIT1

Will nicht unfähig zu programmieren zu erscheinen, aber.. Wie kann man daraus 2 Panels z.B. beim FormCreate machen? :oops:

Nuclear-Ping 18. Apr 2008 09:57

Re: StatusBar zur Laufzeit erstellen
 
Geh ins Bett, nachm aufstehen weißt du's. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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 by Thomas Breitkreuz