![]() |
AW: Panel mit vielen Buttons baut sich langsam auf
Zitat:
Wirklich wichtig ist gerade auf den langsamen Atom Rechnern, dass man unter keinen Umständen die Themes deaktiviert. Sofern die Hardware diese unterstützt, wird dabei die Grafikkarte für vieles benutzt, das ohne Themes die CPU machen muss. Deshalb wird so Leistung frei, die dann dem Programm zur Verfügung stehen. Wir hatten dabei schon extreme Unterschiede in der Richtung. |
AW: Panel mit vielen Buttons baut sich langsam auf
Zitat:
Ich habe mir die Optionen der Windows Themes angeschaut und offenbar kann man dort (mit entsprechend gepatchten Windowsdateien) ähnlich viel erreichen wie bei Delphi, allerdings ohne den Performanceverlust. Außerdem kann man die Optik direkt in Delphi sehen, was ich bei VCL Styles bisher nur zur Laufzeit konnte, man benötigt aber ein zusätzliches Tool, um die msstyles Dateien komfortabel bearbeiten zu können. |
AW: Panel mit vielen Buttons baut sich langsam auf
Nein, ich meine die Windows Themes. Ich habe aber schon oft gesehen, dass die auf solchen schwachen Systemen im Businessumfeld deaktiviert waren, was dann extra noch langsamer ist.
|
AW: Panel mit vielen Buttons baut sich langsam auf
Zitat:
Sherlock |
AW: Panel mit vielen Buttons baut sich langsam auf
Zitat:
Alter Schwede, ist das'n cooles Formular. Ganz offensichtlich darf man dafür auch etwas bezahlen wenn man möchte!!! @NielsB: Hast du mal darüber nachgedacht mit allen Verantwortlichen zusammen zu überlegen, ob es nicht besser ist das Schrottprogramm in die Tonne zu hauen und lieber ein neues Programm zu schreiben? Jeder schreibt genau auf was er von dem Programm erwartet und was es können muß und dann baut man ein sauberes, intelligentes Programm, daß für alle zukünftigen Dinge auch ausgerüstet und vorbereitet ist. Ich würde keine Sekunde in so ein Programm stecken... Also die Beschreibung und die vielen durchnumerierten Buttons sprechen eine deutliche Sprache... Davon mal abgesehen: Ich hab' z. B. Windows 7 (32bit Sp1) schon auf Rechnern installiert die weniger als 500 MB RAM hatten. Nach der Installation war Null MB RAM übrig. Dann hab' ich die klassische Oberfläche eingestellt und die Aufgabenplanung und die Dienste komplett entrümpelt und danach hatte der Rechner wieder 200 MB freien RAM. Das Ding lief danach total stabil. Entscheidend ist, dass man den kleinen Rechner für einfache Aufgaben problemlos einsetzen konnte und das war keine HighEnd-Installation. 2/3 der Dienste sind für normale Aufgaben und Benutzer völlig wertlos und nur für Systemadministratoren interessant. Systemadmins werden allerdings wohl kaum einen Server mit 'ner normalen Windows-Version bestücken, falls sie überhaupt Windows einsetzen würden... Weiterhin viel Spass und gute Nerven... |
AW: Panel mit vielen Buttons baut sich langsam auf
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
wenn du keine Angst vor fremden Echsen hast, dann kannst du ja mal diese hier ausprobieren.. Die hab' ich mit D7 gebaut und sie erzeugt bei mir 171 Buttons bis der Bildschirm voll ist. Das sind bei mir (W7 Sp1 x64) nur 1 MB im RAM und auf dem ältesten Rechner (P4 FirstVersion) mit XP x86 ungefähr 2,3 MB im RAM (96 Buttons).... (bei einem Klick auf den Button...) Das ist ja fast nichts... drollig... hatte bis jetzt noch nie viele Buttons in Gebrauch... Alles baut sich sauber auf so wie es in der For-Schleife angedacht ist....
Delphi-Quellcode:
Vielleicht bringt der Vergleich ja was, vielleicht auch nicht.... probieren geht über studieren...
Unit uFullScreenButton;
Interface Uses Windows, SysUtils, Classes, Controls, Forms, StdCtrls, ExtCtrls; Type TForm1 = class(TForm) Panel1 : TPanel; Label1 : TLabel; Button1: TButton; Procedure FormCreate (Sender: TObject); Procedure Button1Click (Sender: TObject); End; VAR Form1: TForm1; Implementation {$R *.dfm} Procedure TForm1.FormCreate(Sender: TObject); Begin Self.DoubleBuffered := True; Panel1.DoubleBuffered:= True; Self.SetBounds(0, 0, Screen.WorkAreaWidth, Screen.WorkAreaHeight); Panel1.SetBounds(0, 85, (Self.ClientWidth), (Self.ClientHeight-85)); Label1.Caption:= 'LOADING...'; End; Procedure TForm1.Button1Click(Sender: TObject); Var I: Integer; B: TButton; myTop, myLeft, countLeft, countTop, btnWidth, btnHeight, maxLeft, panMaxH, panMaxW: Integer; Begin btnWidth := 100; btnHeight := 100; countLeft := 0; countTop := 0; myTop := 0; myLeft :=-100; Label1.Show; Form1.Update; panMaxH:= (Panel1.ClientHeight Div btnHeight); panMaxW:= (Panel1.ClientWidth Div btnWidth); For I:= 1 To (panMaxH*panMaxW) Do Begin myLeft:= myLeft +btnWidth; If (Panel1.ClientWidth-(countLeft*btnWidth)) < btnWidth Then Begin myLeft := 0; myTop := myTop +btnHeight; maxLeft := countLeft; countLeft:= 0; countTop := countTop +1; End; B:= TButton.Create(Self); B.SetBounds(myLeft, myTop, btnWidth, btnHeight); B.Parent:= Panel1; countLeft:= countLeft +1; End; Label1.Hide; Panel1.Show; End; End. Bis dann... |
AW: Panel mit vielen Buttons baut sich langsam auf
Ich bin ja immer noch der Meinung, dass eine CheckListbox oder ein CheckListview das Kontrol der Wahl wäre, wenn mehrere Buttons ausgewählt werden können für eine Operation. Eventuell sollte sich der Threaderstelle sich diese Controls mal angucken. Obwohl ein Klick auf eine Schaltfläche löst eine Aktion aus, da würde sich eher eine normale Listbox anbieten. Leider habe ich immer noch nicht verstanden, warum das nicht möglich ist. Auch eine Listbox kann man dynamisch befüllen.
|
AW: Panel mit vielen Buttons baut sich langsam auf
Zitat:
Wenn im System (Server 2008/2012) das Theming abgeschaltet ist, dann sind auch die neuen CommonControls v6.0 deaktiviert. (zumindestens im Delphi) Sowas wie den TTaskDialog kann man dann vergessen (die gehen einfach nicht auf und es gibt auch keine Fehlermeldung) und auch die "neuen" FileOpenDialoge fallen auf die alte API zurück. |
AW: Panel mit vielen Buttons baut sich langsam auf
Zitat:
|
AW: Panel mit vielen Buttons baut sich langsam auf
Zitat:
Zitat:
Das ist vollkommen richtig und führt vermutlich auch zum Ziel. Allerdings gibt es die Probleme, die in diesem Beispiel durch die große Anzahl an Komponenten besonders sichtbar ist, auch in den anderen Formularen und wie oben gezeigt, auch auf moderner Hardware. Ich habe bisher noch keine definitive Antwort gefunden, ob das aufgrund von Delphi/Windows/Hardware-Limitierungen nicht möglich ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 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