Autor Beitrag
mr.eddy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23



BeitragVerfasst: So 13.01.08 23:32 
ist es möglich
ausblenden C#-Quelltext
1:
mylabel.Tag = new Point(x, y);					

von point wieder in z.B. int zu konvertieren sodaß man diesen wert in einem 2 dimensionalen array nutzen 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: So 13.01.08 23:39 
In einem 2d-Array kannst Du doch einfach x und y verwenden :gruebel:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
mr.eddy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23



BeitragVerfasst: So 13.01.08 23:59 
ja aber wenn ich mehere labels auf einmal erstelle kann ich die koordinate ja nur im tag mitgeben und via normale variable geht da nur eine mit
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 14.01.08 00:18 
Tag ist vom Typ Object, da kannst Du jeden beliebigen Datentyp drin speichern, auch einen Punkt.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 14.01.08 14:52 
@mr.eddy: Tag-Lösungen klingen immer nicht gerade optimal ;) . Leite doch von Label ab und füge eine neue Eigenschaft hinzu, sind nur ein paar Zeilen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
class MyLabel : Label
{
  public Point ArrayPosition { get; set; } // auto-implemented properties, ab C# 3.0 / VS 2008
  // sonst eben über den herkömmlichen Weg:
  // Point arrayPosition;
  // public Point ArrayPosition {
  //   get { return arrayPosition; }
  //  set { arrayPosition = value; }
  // }
}
mr.eddy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23



BeitragVerfasst: Mo 14.01.08 15:44 
was bewirkt den get und set ?
sry bin noch einsteiger
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 14.01.08 15:48 
user profile iconKhabarakh hat folgendes geschrieben:
@mr.eddy: Tag-Lösungen klingen immer nicht gerade optimal ;) .
"immer" ist ein großes Wort ;-) Das sollte man von Fall zu Fall entscheiden und für ein einfaches 4-gewinnt dürfte das IMHO vollkommen ausreichen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
mr.eddy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23



BeitragVerfasst: Mo 14.01.08 15:54 
IMHO ? xD (k hat sich erledigt)
golgol
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 58

Win XP Prof. / Linux
C# (VS 2005)
BeitragVerfasst: Mo 14.01.08 16:00 
user profile iconmr.eddy hat folgendes geschrieben:
was bewirkt den get und set ?
sry bin noch einsteiger


Das kommt aus der Objektorientierten Programmierung (OOP): Variablen einer Klasse sind für gwöhnlich von aussen nicht zugreifbar (weder zum Lesen noch zum Schreiben). Du musst also für jede Klassenvariable eine Methode schreiben, die dir den Lese- (sog. getter-Methoden(get)) oder den Schreibzugriff (sog. setter-Methoden (set)) ermöglichen. Bei C# wird das normalerweise über Properies gemacht, die da vieles vereinfachen und eine echt nette Sache sind.
Du solltest dir vieleicht zunächst was über die OOP durchlesen bevor du mit C# weiter machst, sonst stößt du früher oder später auf immer mehr Begriffe die du nicht kennst, und das kann echt hinderlich sein. Schau dir z.B. das mal bei Wikipedia an.



P.S.: IMHO = In my humble opinion
mr.eddy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23



BeitragVerfasst: Mo 14.01.08 16:18 
ah danke mach ich
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 14.01.08 20:50 
user profile iconChristian S. hat folgendes geschrieben:
Das sollte man von Fall zu Fall entscheiden und für ein einfaches 4-gewinnt dürfte das IMHO vollkommen ausreichen.
Das Argument, dass es für einen Anfänger vlt. leichter ist, hätte ich noch verstanden (wobei er es natürlich eher früher als später sowieso lernen muss), aber vom Verfahrens-Optimum bin ich immer noch überzeugt ;) . Ich schreibe doch wirklich lieber zwei Zeilen mehr, anstatt eine Property mit einem nichtsaussagenden Namen, der ich einfach vertraue, dass sie das Richtige enthält[meta]Ein 3rd-Party-Control, das intern Tag benutzt... DAS wäre mal etwas Lustiges *g*[/meta], ständig zu casten. Sonst kann ich ja gleich zu den untypisierten Pointern zurück ;) . Eine Definition des Optimums wäre ja das Ziel, dass eine zweite Person (z.B. der Herr Lehrer ^^ ) beim Überfliegen des Codes seinen Sinn erfassen kann, und das trifft bei solchen "kleinen Schweinereien" wie Tag keinenfalls mehr zu.
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 14.01.08 21:07 
user profile iconKhabarakh hat folgendes geschrieben:
Ich schreibe doch wirklich lieber zwei Zeilen mehr, anstatt eine Property mit einem nichtsaussagenden Namen, der ich einfach vertraue, dass sie das Richtige enthält[meta]Ein 3rd-Party-Control, das intern Tag benutzt... DAS wäre mal etwas Lustiges *g*[/meta], ständig zu casten.
Es handelt sich ja nicht um ein 3rd-Parte-Control, sondern um das Standard-Label. Und ein 4gewinnt ist doch irgendwie so übersichtlich, dass man sicher sein kann, was in der Eigenschaft steht. Und wieso "ständig casten"? In diesem Fall reicht einmal. :nixweiss:

Klar, wenn das ein "richtiges" Projekt wäre, würde man das nicht über die Tag-Eigenschaft machen. Aber dann würde man sicherlich auch eine Klasse einführen, welche die ganze Spiellogik implementiert, eine Komponente, welche das Spielfeld darstellt (und damit es hübsch aussieht vielleicht gar keine Labels verwendet), etc.

Es ist aber nun mal ein "Schreib's mal eben runter"-Projekt und da benutz ich die Tag-Eigenschaft, die in diesem Fall gar nicht so schlimm ist (siehe oben).

user profile iconKhabarakh hat folgendes geschrieben:
Sonst kann ich ja gleich zu den untypisierten Pointern zurück ;) .
Wir wollen mal nicht übertreiben.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 15.01.08 12:18 
user profile iconChristian S. hat folgendes geschrieben:
user profile iconKhabarakh hat folgendes geschrieben:
Sonst kann ich ja gleich zu den untypisierten Pointern zurück ;) .
Wir wollen mal nicht übertreiben.
Was stellt dann deiner Meinung nach TComponent.Tag dar :? ?
Naja... in einem eigenen Projekt, egal wie klein, würde ich auf jeden Fall die Property einfügen, wenn noch eine zweite Person den Quelltext zu sehen bekommt. Bevor aber selbst der Lehrer den Quelltext nicht mehr versteht, bleiben wir wohl wirklich lieber bei Tag.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 15.01.08 15:13 
user profile iconKhabarakh hat folgendes geschrieben:
user profile iconChristian S. hat folgendes geschrieben:
user profile iconKhabarakh hat folgendes geschrieben:
Sonst kann ich ja gleich zu den untypisierten Pointern zurück ;) .
Wir wollen mal nicht übertreiben.
Was stellt dann deiner Meinung nach TComponent.Tag dar :? ?
Zumindest mal keine Pointer, den ich beliebig manipulieren und in einen beliebigen Speicherbereich zeigen lassen kann. Es ist immer noch managed.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".