AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls C# Controls zur laufzeit einem userControl unterordnen
Thema durchsuchen
Ansicht
Themen-Optionen

Controls zur laufzeit einem userControl unterordnen

Ein Thema von maximov · begonnen am 8. Mär 2005 · letzter Beitrag vom 8. Mär 2005
Antwort Antwort
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#1

Controls zur laufzeit einem userControl unterordnen

  Alt 8. Mär 2005, 00:25
Hallo,

ich hab ein kleines problem, welches normalerweise keins wäre, wenn ich es nicht mit den WinForms zu tun hätte

Also eine Control klasse

Code:
    public class DoaViewProperty : Control
    {
        private DaoViewCore daoViewCore;
        private PropertyInfo propertyInfo;

        public DoaViewProperty(DaoViewCore aDaoViewCore, PropertyInfo aPropertyInfo)
            :base()        
        {
            daoViewCore = aDaoViewCore;
            propertyInfo = aPropertyInfo;        

            this.Text = propertyInfo.Name;

            //this.Parent = daoViewCore;
            //daoViewCore.Controls.Add(this);
            daoViewCore.ResumeLayout(false);
            daoViewCore.PerformLayout();
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            e.Graphics.DrawString(propertyInfo.Name, Font, Brushes.Black, new Point(2, 2));
        }
    }
jetzt will ich diese zur laufzeit in ein userControl hängen:

Code:
  // im userControl
   foreach (PropertyInfo pi in modelType.GetProperties())
                { 
                 
                    using(DoaViewProperty dvp = new DoaViewProperty(this, pi))
                    {
                        dvp.AutoSize = false;
                        dvp.BackColor = System.Drawing.SystemColors.ControlDark;
                        dvp.Location = new System.Drawing.Point(0, 0);
                        dvp.Name = "mu";
                        dvp.Size = new System.Drawing.Size(100, 16);
                        dvp.TabIndex = 0;

                        Controls.Add(dvp);                   }
                }

                Update();
So, die schleife läuft er prima durch. Er übergibt alle nötigen daten, ohne fehler. ABER es erscheint kein Control!

Wie geht der trick, die WinForms zu überreden dies zu tun? (kann auch delphi code sein) (benutze VS 2005, sollte aber hier nix zur sache tun).

mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Controls zur laufzeit einem userControl unterordnen

  Alt 8. Mär 2005, 01:04
Code:
using(Type instance = new Type())
{
   ...
}
ist das gleiche wie
Code:
Type instance = new Type();
try
{
   ...
}
finally
{
   instance.Dispose();
}
Du hast also das Control (also das WinAPI Control, dass hinter JEDEM Winforms control steckt) direkt nach dem Add(dvp) zerstört.
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Controls zur laufzeit einem userControl unterordnen

  Alt 8. Mär 2005, 10:31
Oooooh, arg...danke für den hinweis!

Und ich dachte, das wäre das with-do--konstrukt. Gibt es in C# denn ein normales with?
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Controls zur laufzeit einem userControl unterordnen

  Alt 8. Mär 2005, 10:53
Gibt es nicht.
Mittlerweile bin ich auch ganz froh drüber.
Versuche mal fremden Code mit 5 Ebenen verschachtelten with-Blöcken zu entziffern.
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Controls zur laufzeit einem userControl unterordnen

  Alt 8. Mär 2005, 12:28
Zitat von Robert_G:
Gibt es nicht.
Mittlerweile bin ich auch ganz froh drüber.
Versuche mal fremden Code mit 5 Ebenen verschachtelten with-Blöcken zu entziffern.
Ja, stimmt...ist der horror. Danke für die hilfe!
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 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