Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 10x das gleiche -Wie löst man das am besten? (https://www.delphipraxis.net/136964-10x-das-gleiche-wie-loest-man-das-am-besten.html)

Kralle 11. Jul 2009 09:29


10x das gleiche -Wie löst man das am besten?
 
Moin,

ich habe (bzw werde haben) auf einem Form 10x folgendes:

ein TBevel auf dem ein TImage, darunter zwei Button und drüber Label.

Der eine Button öffnet einen Dateidialog und fügt den Dateinamen in eine Daba.
Der zweite Button löscht den Daba-Eintrag.
Im TImage wird das Bild angezeigt, dessen Pfad in der Daba steht.
Bei einen Klick auf das Timage wird ein Form als Volbild aufgerufen.

Einmal klappt alles schon, aber bevor ich jetzt 10x das gleiche plaziere und 10x die gleichen
Ereignisroutinen habe, frage ich doch mal lieber, wie man das vereinfachen kann.

Kann man?

MfG
Heiko

jaenicke 11. Jul 2009 09:33

Re: 10x das gleiche -Wie löst man das am besten?
 
Wie wäre es mit Frames? ;-)
Also unter Datei --> Neu einen TFrame erstellen, entsprechend einrichten und dann einfach das ganze mehrfach aufs Formular legen (der erste Eintrag in der Komponentenpalette).

cherry 11. Jul 2009 10:35

Re: 10x das gleiche -Wie löst man das am besten?
 
Du kannst dein Formular auch dynamisch im Code erstellen.

jaenicke 11. Jul 2009 10:37

Re: 10x das gleiche -Wie löst man das am besten?
 
Das kann man ja dann mit den Frames machen, wenn man das möchte. Aber die Gruppierung ist mit Frames trotzdem am sinnvollsten. ;-)

Kralle 11. Jul 2009 11:01

Re: 10x das gleiche -Wie löst man das am besten?
 
Moin,

Zitat:

Zitat von jaenicke
Wie wäre es mit Frames? ;-)
Also unter Datei --> Neu einen TFrame erstellen, entsprechend einrichten und dann einfach das ganze mehrfach aufs Formular legen (der erste Eintrag in der Komponentenpalette).

Mit Frames habe ich noch nie gearbeitet.
Ich habe jetzt ein Frame erstellt und die benötigten Komponenten darauf plaziert.
Soweit kein Problem.

Aber, ich kann zwar auch in dem Frame die Behandlungsroutinen für die OnClick-Ereignise plazieren,
aber wie bekomme ich das Frame an Position x dazu, das es seine Daten in der Daba unter dem Namen x speichert
und das Frame an pos y in der Daba unter dem Namen y.

Wenn ich mehrmal das Frame "Eingabe" auf einem Formular plaziere, dann haben alle die gleiche OnClick-Routine.

Wie ermittel ich, ob der Button 1 in Frame 1 oder in Frame 2 betätigt wurde und wie schreibe ich Informationen
in Frame 1 und andere in Frame 2?

MfG
Heiko

jaenicke 11. Jul 2009 11:05

Re: 10x das gleiche -Wie löst man das am besten?
 
Ich würde dem Frame ein eigenes Ereignis spendieren. Darin bekommst du dann den Frame übergeben und kannst schauen, welcher es ist. Entweder über die Tag-Eigenschaft oder eine eigene (neue) Eigenschaft des Frames.

Kralle 11. Jul 2009 11:10

Re: 10x das gleiche -Wie löst man das am besten?
 
Moin,

Zitat:

Zitat von cherry
Du kannst dein Formular auch dynamisch im Code erstellen.

dann bräuchte ich aber kein Delphi mit einem Designer, sondern würde das in Pascal machen - oder?
(Außerdem bin ich zu bequem, mir das mit den Koordinaten ermitteln anzutun)

MfG
Heiko

jaenicke 11. Jul 2009 11:13

Re: 10x das gleiche -Wie löst man das am besten?
 
Wenn du Frames nutzt, dann sind das ja nur die y-Koordinaten, die du berechnen musst, da ist ja keine aufwendige Berechnung nötig. ;-)

Aber das lohnt sich natürlich nur, wenn eine variable Anzahl von Komponenten da sein sollten (auch zum Scrollen oder so), was hier ja wohl nicht der Fall sein soll.

Kralle 11. Jul 2009 11:22

Re: 10x das gleiche -Wie löst man das am besten?
 
Moin,

Zitat:

Zitat von jaenicke
Wenn du Frames nutzt, dann sind das ja nur die y-Koordinaten, die du berechnen musst, da ist ja keine aufwendige Berechnung nötig. ;-)

Warum meinst Du nur Y? Es werden mehrere Frames nebeneinander und untereinander angeordnet.
Wobei 10 dann eine dumme Anzahl ist.

Zitat:

Zitat von jaenicke
Aber das lohnt sich natürlich nur, wenn eine variable Anzahl von Komponenten da sein sollten (auch zum Scrollen oder so), was hier ja wohl nicht der Fall sein soll.

Nee, statisch 9x (nach reichlich überlegung :gruebel: ) das gleiche.

Sendet das Frame in dem ich auf einen Button klicke eigentlich seinen Namen "Framexx" mit?

Edit: HAbe mir die Frage grade selber beantwortet. Ein label.caption:=name lieferte die Antwort.

Gruss Heiko

jaenicke 11. Jul 2009 11:27

Re: 10x das gleiche -Wie löst man das am besten?
 
Zitat:

Zitat von Kralle
Warum meinst Du nur Y?

Ja sicher, x und y, aber ich meinte damit: nur die Position des Frames. Die Komponenten darin sind ja dann schon positioniert.

Zitat:

Zitat von Kralle
Sendet das Frame in dem ich auf einen Button klicke eigentlich seinen Namen "Framexx" mit?

Direkt nein, aber es lässt sich ja leicht herausfinden:
Delphi-Quellcode:
 ((Sender as TButton).Parent as TMyFrame).MyLabel.Caption := 'aaa';
So als Beispiel, wenn man hier z.B. auf einen Label darauf ansprechen will.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Seite 1 von 2  1 2      

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