Autor Beitrag
Neidhard von Reuental
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: Mo 09.01.06 11:30 
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.
ausblenden 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 user profile iconChristian S.: Highlight- durch Delphi-Tags ersetzt
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 09.01.06 11:56 
Mit CSharp klappt es. Das heißt, die beiden Eigenschaften sind abgreifbar:
ausblenden 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:
ausblenden 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:
ausblenden C#-Quelltext
1:
pictureBox1.Dock = DockStyle.Fill;					

Das kannst du auch im Objektinspektor machen.
Neidhard von Reuental Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 09.01.06 12:17 
Du rufst die Breite von TWinForm ab. Das ist die Klasse, nicht die Instanz. Das kann nicht gehen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Neidhard von Reuental Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Neidhard von Reuental Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: 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.
Einloggen, um Attachments anzusehen!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 09.01.06 14:09 
Ah, Du hast Recht. Eine Instanz wird trotzdem angelegt (irgendwie muss ich mich ja retten :mrgreen:):
ausblenden Delphi-Quelltext
1:
Application.Run(TWinForm.Create);					

Sie wird nur nicht mehr in eine globale Variable gestopft, was ich sehr gut finde!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 09.01.06 14:11 
user profile iconNeidhard von Reuental hat folgendes geschrieben:
Den Bezeichner "this" gibt es in Delphi.Net nicht

Ach? :roll: Na ja, nicht dass ich dir das in meinem Beitrag nicht auch schon gesagt hätte, aber okay.
Neidhard von Reuental Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: Mo 09.01.06 16:13 
upps, das hab ich wohl überlesen.