Entwickler-Ecke
Andere .NET-Sprachen - Fenstergröße aus TWinForm auslesen?
Neidhard von Reuental - Mo 09.01.06 11:30
Titel: Fenstergröße aus TWinForm auslesen?
Hi, ich hab gestern Abend mein neues Delphi2006 installiert und wollt mir gleich mal die .NET entwicklung ansehen. Habe vorher immer mit Delphi7 gearbeitet und hab schon ein Problem beim auslesen der aktuellen Fenstergröße :/
Ich möchte die Größe einer PictureBox der des Fensters anpassen. Das sollte doch nicht so ein Problem sein.
Mit folgendem Code habe ich es versucht.
Delphi-Quelltext
1: 2:
| PictureBox1.Width:=TWinForm.Width; PictureBox1.Height:=TWinForm.Height; |
Die Eigenschaften Width und Height gibt es aber bei TWinForm nicht also bekomme ich einen Fehler. Laut Hilfe sollten diese aber Vorhanden sein.
TWinForm ist abgeleitet von System.Windows.Forms.Form
Wie kann ich nun die Fenstergröße ermitteln?
Schon mal danke für Eure Hilfe
Moderiert von
Christian S.: Highlight- durch Delphi-Tags ersetzt
Delete - Mo 09.01.06 11:56
Mit CSharp klappt es. Das heißt, die beiden Eigenschaften sind abgreifbar:
C#-Quelltext
1:
| MessageBox.Show(String.Format("{0}, {1}", this.Width, this.Height)); |
this ist vergleichbar mit dem
self von Delphi und bezieht sich in dem Fall auf das aktuelle Formular.
Alternativ dazu gäbe es auch noch:
C#-Quelltext
1:
| MessageBox.Show(String.Format("{0}, {1}", this.Size.Width, this.Size.Height)); |
Oder die einfachste Variante zum Anpassen der Größe deiner PictureBox an das Fenster:
C#-Quelltext
1:
| pictureBox1.Dock = DockStyle.Fill; |
Das kannst du auch im Objektinspektor machen.
Neidhard von Reuental - Mo 09.01.06 12:06
Den Bezeichner "this" gibt es in Delphi.Net nicht
Die Dock-Eigenschaft auf Fill stezen geht :) Würde aber trotzdem gern noch wissen wound wie ich die Breiten- und Höheneigenschaft auslesen kann.
Christian S. - Mo 09.01.06 12:17
Du rufst die Breite von TWinForm ab. Das ist die Klasse, nicht die Instanz. Das kann nicht gehen.
Neidhard von Reuental - Mo 09.01.06 12:47
das ist schon richtig, TWinForm ist aber auch der eingetragene Name im Onjektinspektor.
Ok, hab nun den Zugriff auf die Werte durch "Self" bekommen. Thx :)
Christian S. - Mo 09.01.06 13:30
Ja, natürlich ist das der Name im OI, aber für die Klasse. Trotzdem wird da sicherlich eine Instanz mit Namen WinForm1 oder so erstellt.
Neidhard von Reuental - Mo 09.01.06 13:56
Nee, im Code habe ich nichts derartiges gefunden. WinForm1 etc. hab ich alles probiert und immer "Unbekannter Bezeichner" zurück bekommen.
Christian S. - Mo 09.01.06 14:09
Ah, Du hast Recht. Eine Instanz wird trotzdem angelegt (irgendwie muss ich mich ja retten :mrgreen:):
Delphi-Quelltext
1:
| Application.Run(TWinForm.Create); |
Sie wird nur nicht mehr in eine globale Variable gestopft, was ich sehr gut finde!
Delete - Mo 09.01.06 14:11
Ach? :roll: Na ja, nicht dass ich dir das in meinem Beitrag nicht auch schon gesagt hätte, aber okay.
Neidhard von Reuental - Mo 09.01.06 16:13
upps, das hab ich wohl überlesen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!