Announcement

Collapse
No announcement yet.

Handhabung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Handhabung

    Hallo @all,
    und hier auch schon wieder eine Frage von mir.
    Also ich möchte eine Anwendung programmieren wo Funktionen mehrmals verwendet werden und die Oberfläche für diesen Teil auch gleich ist.
    Beispiel ich habe eine Einstellmöglichkeit (Besteht aus Panel, Button und Label) auf Formular 1 und diese möchte ich auch auf Formular 2 verwenden.
    Die Komponenten und die Funktion die ausgeführt wird soll also auf beiden Formularen gleich sein.
    Wie geht man da am besten vor ohne alles doppelt zu machen?
    Ich hoffe ich habe meine Frage verständlich gestellt.

    Ich hoffe es kann mir jemand einen tip geben :-)
    Vielen Dank

  • #2
    Das nennt sich Komponentenentwicklung. Damit kannst du Elemente entwerfen die dann auch - genau wie die Editfelder Comboboxen u.a. Elemente - in der Komponetenpalette erscheinen
    Christian

    Comment


    • #3
      Hey Christian,
      erstmal vielen Dank für deine Antwort.
      Ok angenommen ich mache aus meinem Panel, Button und Edit eine Komponente wie immer das auch geht :-).
      Ich verwende dann aber den selben code auf zwei Formularen gibt es da noch eine andere möglichkeit?
      Also angenommen ich habe ein insider Formular wo ich Parameter für ein Spiel setzen kann z.B. MaxZahl = 100
      Der Anwender kann aber die MaxZahl auch im MainFenster auf 100 setzen.
      Ist doch alles doppelt, wie würdest du das lösen?
      Danke

      Comment


      • #4
        Warum gibt es dann überhaupt zwei Formulare und nicht nur eines für die Einstellungen
        Christian

        Comment


        • #5
          Originally posted by Christian Marquardt View Post
          Warum gibt es dann überhaupt zwei Formulare und nicht nur eines für die Einstellungen
          Ja, ggf. ist es am einfachsten, das gleiche Formular parametrisert aufzurufen.
          Der Parameter steuert dann, wie die Werte gespeichtert werden und ggf. welche Optionen verfügbar sind.

          Viel Spaß!
          Tino
          Ich habs gleich!
          ... sagte der Programmierer.

          Comment


          • #6
            Also ich brauche diese Einstellung halt zweimal, einmal für den Benutzer und einmal für den Admin.
            Ok was bedeutet parametrisert?
            Wie macht man das?

            Comment


            • #7
              Naja, ungefähr so - sinngemäß

              [highlight=pascal]
              Interface

              Class
              TEinstellungen = Class(TForm)
              ....
              fAdminModus : Boolean
              Procedure SetAdminModus (value:Boolean)

              Public
              ....
              Property AdminModus:Boolean Read fAdminModus Write SetAdminModus;
              End;

              Implementation

              Procedure TEinstellungen.SetAdminModus(Value:Boolean);
              Begin
              fAdminModus:=value;
              if fAdminModus then
              begin
              caption:='Einstellungen - Admin';
              {Felder ein- / ausblenden für den Admin }
              end
              else
              begin
              caption:='Einstellungen - User';
              {Felder ein- / ausblenden für den User }
              end
              End;

              [/highlight]

              Beim Aufruf / der Anzeige des Formulars setzt du dann

              Einstellungen.Adminmodus:=[true|false], also z.B.

              [highlight=pascal]
              Procedure EinstellungenDlg(Admin : Boolean);
              Var Einstellungen:TEinstellungen;
              begin
              Einstellungen:=TEinstellungen.Create(Application);
              try
              Einstellungen.AdminModus:=Admin;
              Einstellungen.ShowModal;
              finally
              Einstellungen.Release;
              end;
              end;
              [/highlight]

              Grüße
              Tino
              Ich habs gleich!
              ... sagte der Programmierer.

              Comment


              • #8
                Ah Prima,
                ok vielen Dank :-)

                Comment

                Working...
                X