Announcement

Collapse
No announcement yet.

Panel aus dll laden

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

  • Panel aus dll laden

    hy.

    hab jetzt einige diskussionen dazu gefunden, teilweise jedoch zu spezifisch...

    mein problem: ich wuerd gerne panels in eine dll auslagern. die frage ist nur, wie kann ich diese panels dann aus der dll laden und anzeigen lassen, sodass diese aber ihre arbeit erfuellen, als waeren sie hardcoded drinnen?

    gibt es da eine moeglichkeit? wenn nicht: alternativen?

    und ne kleine frage am rande: warum kann man keine panels designen mit dem *designer* (weder borland noch vs) ist irgendwie deprimierend. wie loest ihr dieses problem? meine loesung ist sehr umstaendlich, und auf die dauer muehsam...

    ich danke im voraus fuer jeden denkanstosz...

    ciao david

  • #2
    sry. keine ahnung warum der artikel so oft gepostet wurde. ich bitte um verzeichung

    Comment


    • #3
      Hallo,

      >warum kann man keine panels designen mit dem *designer*..

      was ist damit gemeint

      Comment


      • #4
        Hallo.

        >>warum kann man keine panels designen mit dem *designer*..

        >was ist damit gemeint?

        wenn ich eine neue *Form* erzeuge, dann kann ich darauf die Buttons-Labels ... ziehen und sie so anordnen wie und wo ich sie haben will.

        das geht, wenn ich eine Klasse von Panel ableite nicht. dh ich muss die Buttons per Hand erzeugen und selber sagen wo sie sein sollen...

        ciao davi

        Comment


        • #5
          Hallo,

          könnte es hier Missverständnisse geben? <u>Normal</u> ist, dass ein Panel auf ein Formular gezogen wird; darauf können beliebig Buttons gezogen werden usw.

          Wenn Du <u>public class PanelEx : Panel</u> als Ausgangspunkt verwenden willst, steht der Designer eben nicht zur Verfügung, weil der von WinForm ausgeht.

          Wenn das das Problem ist, könntest Du ein Panel als Bestandteil eines Formulars erzeugen, definieren und abschließend manuell in eine eigene Klasse kopieren. Außerdem komme ich so langsam zu der Überzeugung, dass 'von Hand erzeugen' in vielen Fällen schneller geht (nur das Positionieren ist noch etwas umständlich).

          Jürge

          Comment


          • #6
            danke fuer die antworten.

            genau. da bin ich auch schon dabei, diesen Weg zu gehen. ist jedoch etwas muehsehlig...bei einer großen Anzahl an Panels.

            danke

            Comment


            • #7
              Hallo David,

              hast Du schonmal über die Verwendung von UserControls nachgedacht?

              Ich würde ein UserControl mit einem Panel bauen. Davon kann man dann weitere "Panels" ableiten und im Designer bearbeiten. Diese können problemlos in einer beliebigen Assembly "geparkt" und zur Laufzeit per

              MyUserControl uc = new MyUserControl();
              AForm.Controls.Add(pb);

              in eine Form gedockt werden.

              Gruß
              Pete

              Comment


              • #8
                Hallo Peter,

                ja, probier das gerade aus bzw. hab gesehn, dass man die auch designen kann...

                funktioniert auch im großen und ganzen, nur zeigt er mir die texte nicht an (labels in der UserControl).

                habs schon mit properties probiert. jedoch setzt er die nicht

                das ganze sollte doch mit properties gehen...dass ich danach den wert hole und somit auch weiterverwenden kann, falls benoetigt.

                des weiteren habe ich die befuerchtung, dass das ganze beim i18n/l10n probleme bringen wird - oder doch nicht?

                ciao davi

                Comment


                • #9
                  Hallo Peter, noch eine Frage dazu.

                  ich hab jez eine TestApp und eine Samples.dll. referenziert und so ist das ganze...

                  in TestApp hab ich nen button mit nem onClick Event. der sagt folgendes:

                  Sample ucSample = new Sample(); //Sample ist ein UserControl
                  this.Controls.Add(ucSample); // --> Fehler *

                  -- wenn ich pSample (so heißt das Panel) hinzufuegen will sagt er, dass er das nicht kennt - was ja auch verstaendnlich ist.

                  sonst mach ich nichts mit ucSample.

                  >MyUserControl uc = new MyUserControl();
                  >AForm.Controls.Add(pb);
                  pb ist doch das panel, oder meintest du was anderes damit?

                  vorschlaege?

                  ciao david

                  * Projekt TestApp.exe traf auf die unbehandelte Exception-Klasse System.IO.FileNotFoundException mit der Meldung 'Datei- oder Assemblyname 'Samples' oder eine Abhängigkeit davon wurde nicht gefunden.'.

                  die markierte Zeile ist in der Main() von TestAp

                  Comment


                  • #10
                    Hallo David,

                    oh sorry, mein Code sollte natürlich heißen

                    MyUserControl uc = new MyUserControl();
                    AForm.Controls.Add(uc);

                    Aber das hast Du in Deinem Button-Event ja schon richtig gemacht.

                    Die Sample.Dll muss natürlich zur Laufziet zugreifbar sein, zum Beispiel im selben Verzeichnis wie die Exe liegen.

                    Wenn Du beide Projekte (exe und dll) in einer Solution (Projektmappe) hast, handelt das Studio das eigentlich von selbst!?

                    >> dass das ganze beim i18n/l10n probleme bringen wird
                    Diesen Satz verstehe ich nicht.

                    Gruß
                    Pete

                    Comment


                    • #11
                      hallo.

                      k. jetzt funktioniert es. hab die referenzen *nicht* lokal kopiert, da gab es probleme. jetzt lass ich ihn lokal kopieren, und nun funktioniert es.
                      (verwende zur zeit noch borland dev studio 2006...vielleicht darf ich auf Visual studio 2005 umsteigen....muss ich erst erfragen...)

                      >> dass das ganze beim i18n/l10n probleme bringen wird

                      i18n - internationalization
                      l10n - localization

                      nja. wenn ich usercontrols in dlls hab usw... dann weiß ich noch nicht, ob das so toll funktioniert wie visual studio es unterstuetzt... sodass auch anwender der oberflaeche eine neue sprache geben koennen.
                      (ich hab mir dazu den webcast angesehn ...)

                      <EDIT>auch userControls sind lokalisierbar. also wird das denke ich kein problem sein.</EDIT>

                      danke fuer die gute hilfe!

                      ciao davi

                      Comment


                      • #12
                        Hallo David,

                        >> i18n - internationalization l10n - localization

                        Oh klar, hätte ich wissen sollen. Aber ich glaube, mein RAM weigert sich diese Abkürzungen zu speichern. Wer denkt sich sowas aus?

                        >>danke fuer die gute hilfe!

                        Bitte schön.
                        Pete

                        Comment

                        Working...
                        X