Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [c#] Panel via OOP auf dem Formular anzeigen (https://www.delphipraxis.net/141652-%5Bc-%5D-panel-via-oop-auf-dem-formular-anzeigen.html)

Forlan 13. Okt 2009 11:28


[c#] Panel via OOP auf dem Formular anzeigen
 
Hallo zusammen...

Wie ist es möglich ein Panel oder egal eigentlich welche Komponente auf dem Formular anzuzeigen? In Delphi geht es doch so einfach via Instanz bilden und den Parent setzen. Nur reicht das c# wohl nicht? :gruebel:

Ich hoffe ihr könnt mir helfen ;)

Dax 13. Okt 2009 11:39

Re: [c#] Panel via OOP auf dem Formular anzeigen
 
Ein
Delphi-Quellcode:
a.Parent := b;
ist ein
Code:
b.Controls.Add(a);
;)

Forlan 13. Okt 2009 11:41

Re: [c#] Panel via OOP auf dem Formular anzeigen
 
Klingt an sich super, nur leider funktioniert auch das nicht. Hab das vorher schon probiert, da dies der erste Treffer meiner google-Suche war :mrgreen:

Hier mal mein Code..

Code:
        public void CreateBlock(String aName, int xpos, int ypos)
        {
            Panel p = new Panel();
            p.Left = xpos;
            p.Dock = DockStyle.Fill;
            p.Top = ypos;
            p.Width = 120;
            p.Height = 20;
            p.Parent = this;
            p.Visible = true;
            p.Show;
            p.BackColor = Color.Red;
            p.Name = aName;
            this.Controls.Add(p);
        }

Chris.R 13. Okt 2009 12:10

Re: [c#] Panel via OOP auf dem Formular anzeigen
 
Hallo,

ich hab grad deinen Code bei mir ausprobiert und er funktioniert bis auf zwei Punkte:


Code:
public void CreateBlock(String aName, int xpos, int ypos)
        {
            Panel p = new Panel();
            p.Left = xpos; // <-- macht bei DockStyle.Fill wenig Sinn, oder?
            p.Dock = DockStyle.Fill;
            p.Top = ypos; // <-- macht bei DockStyle.Fill wenig Sinn, oder?
            p.Width = 120;
            p.Height = 20;
            p.Parent = this;
            p.Visible = true;
            p.Show(); // <-- hier fehlten die Klammern ()
            p.BackColor = Color.Red;
            p.Name = aName;
            this.Controls.Add(p);
        }
Was mir aufgefallen ist, das Control wird unter allen bestehenden Controls erzeugt, erst ein Aufruf von
p.BringtoFront() bringt es in den Vordergrund.

Ciao Chris

Forlan 13. Okt 2009 12:18

Re: [c#] Panel via OOP auf dem Formular anzeigen
 
Hat sich nun erledigt, war ein ganz anderer Fehler von meiner Seite aus ;)
Und ja, das Fill war überflüssig =D


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