Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Panele duplizieren (https://www.delphipraxis.net/129400-panele-duplizieren.html)

Hansa 18. Feb 2009 12:54


Panele duplizieren
 
Hi,

Habe hier ein Panel mit mehreren Edits drauf. Alles auf dem Panel repräsentiert einen Datensatz. Davon gibt es allerdings eine anfangs unbekannte Anzahl. Es geht um ein Adressbuch. Man stelle sich also mal vor, pro Bildschirm / DIN A 4-Seite sollen 4 bzw. 8 Adressen angezeigt / gedruckt werden. Dabei sind die Panele mit den Controls drauf quasi identisch. Das erste Panel fängt dann oben links an und das nächste ist rechts dasneben. Nr. 3 und 4 sind sollen dann in 2. "Zeile" sein usw. Wie mache ich das nun, ohne alles von Hand zu Fuss ausrechnen und erzeugen zu müssen ? Es muss sich auch nicht unbedingt um Panele handeln, nur die Felder der Datensätze müssen eben zusammen dargestellt werden.

Florian Hämmerle 18. Feb 2009 12:56

Re: Panele duplizieren
 
TFrame mal angucken.

sirius 18. Feb 2009 12:57

Re: Panele duplizieren
 
Du erstellst am besten ein Frame (anstatt Panel) und dann folgt ein bisschen Mathematik ;)

Hansa 18. Feb 2009 18:00

Re: Panele duplizieren
 
Frames, wozu, wie was ? :shock: Sieht so aus, als ob die dafür gut sind, wenn man nicht weiß, wozu die Objektablage gut ist. Sonst keiner eine Idee ? Das Stichwort "Frame" nützt mir jedenfalls so nichts.

Florian Hämmerle 18. Feb 2009 18:02

Re: Panele duplizieren
 
Was für ein Delphi hast du denn??

Florian Hämmerle 18. Feb 2009 18:04

Re: Panele duplizieren
 
Zitat:

Zitat von Delphi-OH
Beschreibung
Wenn Sie Frame-Objekte erstellen, werden diese als Nachkommen von TFrame implementiert.

Frames sind wie Formulare Container für andere Komponenten. Auch sie verwenden Hierarchiebeziehungen (übergeordnet/untergeordnet) zum Synchronisieren der Komponenteneigenschaften und einen Eigentümer-Mechanismus zum automatischen Instantiieren und Freigeben ihrer Komponenten. Frames können aber in Formulare und andere Frame-Objekte eingefügt und zur einfachen Wiederverwendung in der Komponentenpalette gespeichert werden. Nachdem ein Frame erstellt und gespei*chert worden ist, funktioniert er weiterhin als Unit und vererbt Änderungen weiter*hin an die Komponenten, die er beinhaltet (einschließlich anderer Frames). Außerdem erbt ein eingebettetes Frame-Objekt alle Änderungen, die an der Komponente vorgenommen werden, von der es abgeleitet ist.

mfg Flö

DeddyH 18. Feb 2009 18:07

Re: Panele duplizieren
 
Wenn man es gleich als Komponente brauchen kann, käme das hier auch noch in Betracht.

Hansa 18. Feb 2009 18:13

Re: Panele duplizieren
 
Ich bin durchaus in der Lage, die OH selber zu lesen. :mrgreen: Nur : was soll ich für den Fall hier konkret damit anfangen ?

WoGe 18. Feb 2009 20:02

Re: Panele duplizieren
 
Zitat:

Zitat von Hansa
Es muss sich auch nicht unbedingt um Panele handeln, nur die Felder der Datensätze müssen eben zusammen dargestellt werden.

DBCtrlGrid? Kann doch mehrere Spalten.

Gruss
wo

Hansa 18. Feb 2009 20:12

Re: Panele duplizieren
 
Stimmt. DAS dürfte gehen. :thumb: Was sollen nur die Frames ? :gruebel:

sirius 18. Feb 2009 21:30

Re: Panele duplizieren
 
Zitat:

Zitat von Hansa
Was sollen nur die Frames ? :gruebel:

Du hast wohl Dein Problem zu ungenau beschrieben :zwinker:

Hansa 18. Feb 2009 23:21

Re: Panele duplizieren
 
Zitat:

Zitat von Hansa
...Panel repräsentiert einen Datensatz... Man stelle sich also mal vor, pro Bildschirm / DIN A 4-Seite sollen 4 bzw. 8 Adressen angezeigt / gedruckt werden. Dabei sind die Panele mit den Controls drauf quasi identisch. Das erste Panel fängt dann oben links an und das nächste ist rechts daneben. Nr. 3 und 4 sind sollen dann in 2. "Zeile" sein usw....

Und das ist noch zu ungenau, um zumindest konkret nachzufragen ? :roll: Anscheinend hat es zumindest gereicht das Wort Frame in den Raum zu schmeißen, ohne zu sagen wozu. :mrgreen:

ULIK 19. Feb 2009 04:49

Re: Panele duplizieren
 
Zitat:

Zitat von Hansa
Zitat:

Zitat von Hansa
...Panel repräsentiert einen Datensatz... Man stelle sich also mal vor, pro Bildschirm / DIN A 4-Seite sollen 4 bzw. 8 Adressen angezeigt / gedruckt werden. Dabei sind die Panele mit den Controls drauf quasi identisch. Das erste Panel fängt dann oben links an und das nächste ist rechts daneben. Nr. 3 und 4 sind sollen dann in 2. "Zeile" sein usw....

Und das ist noch zu ungenau, um zumindest konkret nachzufragen ? :roll: Anscheinend hat es zumindest gereicht das Wort Frame in den Raum zu schmeißen, ohne zu sagen wozu. :mrgreen:

Na ja, Du kannst Dir in einem TFrame halt einmal alle Edits für die Eingabemaske erstellen. Dann brauchst Du für die einzelnen Datensätze theoretisch nur noch eine neue Instanz des Frames erzeugen und diesen mit dem Datenrecord verbinden.
Als Alternative: hast Du vom DevExpress das QuantumGrid in der 5/6 er Version? Dort gibt es dann einen View-Typ der genau das macht, was Du haben willst. Ich glaub, in den Demos kann man das auch testen.

Gruß,
Uli

mschaefer 19. Feb 2009 07:35

Re: Panele duplizieren
 
Ja es ist tatsächlich nicht so genau wie man meinen kann:

Wenn es um eine direkte Datenbankanbindung geht ist DBCtrlGrid sicher genau das was Du suchst.
Nun gibt es aber immmer mal wieder Kandidaten die datensensitive Controls nicht mögen und Daten
über mehrre Datensätze einlesen von Hand auf die Controls verteilen und zum Schluss mehrere
Datensätze in einem Rutsch wieder in die Datenbank speichern. In dem Fall kommen Frames oder
Multipanels zum Einsatz, da es kein CtrlGrid gibt. Na denn, das Hauptproblem ist ja nun gelöst.

Grüße aus dem Norden // Martin

himitsu 19. Feb 2009 12:12

Re: Panele duplizieren
 
Dieses grad aktuelle Hier im Forum suchenComposite Control könnte doch auch was für dich sein?

siehe Video in Beitrag #2

DeddyH 19. Feb 2009 12:20

Re: Panele duplizieren
 
@himitsu: Siehe #7 :zwinker:

himitsu 19. Feb 2009 12:25

Re: Panele duplizieren
 
Oh, deinen Link hatte ich jetzt glatt übersehn :tongue:

Nee, mal im Ernst *tschuldschung*, aber das kommt davon,
wenn man nur nach Hier im Forum suchencomposite control sucht und Hier im Forum suchencomposite controls ganz übersieht. :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 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