![]() |
Gibt es die Möglichkeit diesen Code zu optimieren...?
Hi,
ich würde gern wissen, ob hier noch Optimierung (wegen Codewiederholung) betrieben werden kann:
Delphi-Quellcode:
Ich dachte an so etwas wie eine Schleife über ein Array in dem die Komponenten (Panels) stehen.
...
with Panel_Login do begin Left:= Pleft; top:= Ptop; Width:= Pwidth; height:= Pheight; end; with Panel_Home do begin Left:= Pleft; top:= Ptop; Width:= Pwidth; height:= Pheight; end; with Panel_Dataview do begin Left:= Pleft; top:= Ptop; Width:= Pwidth; Height:= Pheight; end; Ist das möglich. Wenn ja, wie lautet der Ansatz? |
Re: Gibt es die Möglichkeit diesen Code zu optimieren...?
Hai barnti,
in deinem Code würden die 3 Panels ja direckt übereinander liegen. Ist das so gewünscht? |
Re: Gibt es die Möglichkeit diesen Code zu optimieren...?
@sharky
Genau. Auf der rechten Seite mainer Anwendung befindet sich die Navigation, mit der man jeweils eines der Panels sichbar machen kann. Funktioniert so praktisch wie ein 'Tabsheet'. |
Re: Gibt es die Möglichkeit diesen Code zu optimieren...?
Wenn es gewünscht ist, dann Ja: Ein Array mit den Namen der Panels wäre möglich, und dann schau dir "FindComponent" an.
|
Re: Gibt es die Möglichkeit diesen Code zu optimieren...?
Einfach eine Procedue verwenden:
Delphi-Quellcode:
procedure TForm1.SetPannel (value : TPanel);
begin with value do begin Left:= Pleft; top:= Ptop; Width:= Pwidth; height:= Pheight; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Pleft := 100; Ptop := 100; Pwidth := 200; Pheight := 200; SetPannel(Panel1); SetPannel(Panel2); SetPannel(Panel3); end; |
Re: Gibt es die Möglichkeit diesen Code zu optimieren...?
schau Dir auch mal
Panel1.SetBounds(); an. Das ist ein Befehl, und damit geht das setzen ausserdem schneller. |
Re: Gibt es die Möglichkeit diesen Code zu optimieren...?
Hallo Leute,
danke für die rege Beteiligung. Ich fasse mal zusammen. Dann hätte ich die folgenden Möglichkeiten: 1. Array, in dem die Komponentennamen stehen. Darüber iterieren 2. Prozeduraufruf mit der Kompotente und deren Maße 3. SetBounds Wie sieht es mit der Performance aus? Wie wenn sich die Zahl der zu setzenden Komponenten erhöht. Wie kann ich das richtig einschätzen? Mein Tip: Methode 3... |
Re: Gibt es die Möglichkeit diesen Code zu optimieren...?
Setbounds wird die geschwindigkeit erhöhen, da du nicht für jedes panel 4x das WIndowRect veränderst.
Iterieren wird die geschwindigkeit verlangsamen, da Schleifen unweigerlich sprünge enthalten. Die Geschwindigkeitsunterschiede dürften aber als unrelevant angesehen werden. Es sei denn du führst beim Panelresize noch aktionen aus etc. |
Re: Gibt es die Möglichkeit diesen Code zu optimieren...?
Hai barnti,
.SetBounds setzt intern auch "nur" die Parameter für die Position. |
Re: Gibt es die Möglichkeit diesen Code zu optimieren...?
Zitat:
gesetzt werden wird das Panel (bzw. jede visuelle Komponente) 4-mal gezeichnet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 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