Autor Beitrag
Mike19
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Sa 19.09.09 10:54 
Hallo,

mal eine Frage:

Ich erstelle in einer Procedure mehrere Objecte zur Laufzeit, was auch Problemlos funktioniert. Die Labels werden schnell dargestellt aber die ComboBoxen und Editfelder sehr langsam. Kann man das optimieren ?

Danke im Voraus

Micha
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 19.09.09 19:18 
Wenn es so viele sind, dass es zu langsam wird, solltest du vielleicht dein Konzept überdenken. ;-)

Grundsätzlich kann man das versuchen zu beschleunigen indem man z.B. das Neuzeichnen usw. verhindert, aber für größere Anzahlen sind solche Komponenten eben nicht gedacht. :nixweiss:
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Sa 19.09.09 19:38 
Danke für Deine Antwort,

das Problem ist, dass je nach Monat 56 - 62 Felder werden. Gibt es evtl. noch eine bessere Lösung. Die Felder müssen aber Eingabefelder sein und die ComboBoxen werden mit Daten zur Laufzeit gefüllt.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 19.09.09 19:41 
Eine ganz kleine und wenig optimierte Lösung findest du im Anhang. Das habe ich noch weiter gemacht (läuft so aber grad nicht :mrgreen:), so dauert auch die Anzeige von hunderten Feldern nur Millisekunden...

Ach ja: Einfach auf die Texte klicken.
Einloggen, um Attachments anzusehen!
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Sa 19.09.09 19:49 
Danke Sebastian, ich werde versuchen das Morgen mal auf mein Prog umzusetzen
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 19.09.09 19:54 
Ein etwas größeres auf einer PaintBox basierendes Programm von mir findest du hier:
Periodensystem Xtreme: www.delphi-forum.de/viewtopic.php?p=557541
Dort ist die angezeigte Datenmenge deutlich größer als bei dem kleinen Beispiel, aber es klappt reibungslos.

Vielleicht gibt dir das noch Ideen für dein Projekt, auch wenn ich zugeben muss, dass der Quelltext zwar objektorientiert und modular geschrieben ist, aber vielleicht doch nicht ganz einfach nachzuvollziehen ist. ;-)
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Sa 19.09.09 20:19 
Danke,

Ziel meines Projektes ist, einen Dienstplan für geteilte Tagesdienste zu erstellen und auch auszudrucken. Die ComboBoxen verwende ich zur Auswahl der festgelegten Schichten, diese sind in einer Tabelle gespeichert und können vom Benutzer angepasst werden. Deshalb muss die aktuellen Daten immer neu einlesen. An diesen Daten hängen dann die jeweiligen anfallenden Stunden, die aber vom Benutzer noch geändert werden können (Überzeit und andere Abweichungen). Deshalb mein Konzept mit den ComboBoxen und den Editfeldern. Zum Schluss werden die Werte dann in einer weiteren Tabelle gespeichert und zu anderen Funktionen genutzt.