Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - [VisualCLX] Problem = TWinControl-Eigenschaften in Instanzvariablen
Pepp3r - Di 22.03.11 12:24
Titel: Problem = TWinControl-Eigenschaften in Instanzvariablen
hallo :)
schon wieder ein Problem. Ich bin von allen Wolken gefallen und kann mir nicht erklären warum folgendes nicht funktioniert:
rufe
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Start1Click(Sender: TObject); begin Tetris := TTetris.Create(Form1); end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| TTetris = class private sizeStein: Integer; sizeFeldX: Integer; sizeFeldY: Integer; public end;
constructor TTetris.Create(owner: TWinControl); begin Tetris.PaintSpielfeld(owner); end; procedure TTetris.PaintSpielfeld(eltern: TWinControl); begin sizeStein := (eltern.Height) div 24; sizeFeldX := sizeStein*10+1+sizeStein; sizeFeldY := sizeStein*20+1+sizeStein; end; |
auf.
Bekomme einen runtimefehler "Access voilation" :shock:
jaenicke - Di 22.03.11 12:32
Wo auch immer das deklariert ist, Tetris ist im Konstruktor noch nicht zugewiesen. Du meinst sicher Self, außerdem kannst du das weglassen.
Horschdware - Di 22.03.11 12:34
Pepp3r hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| TTetris = class private sizeStein: Integer; sizeFeldX: Integer; sizeFeldY: Integer; public end;
constructor TTetris.Create(owner: TWinControl); begin Tetris.PaintSpielfeld(owner); end; |
|
Den markierten Teil entfernen und schon gehts :-)
Du referenzierst ja auf "this" und nicht auf "Tetris"...
edit: Ach, in Delphi heisst das ja "self" ^^
jaenicke - Di 22.03.11 12:37
Davon abgesehen ist das auch ein wenig ein Fehler im Konzept. Das erzeugte Objekt wird vom Formular benutzt, deshalb gehört die Referenz auch unter private dort hin.
Dann hätte der Fehler gar nicht passieren können.
Pepp3r - Di 22.03.11 12:38
jap danke. Ist natürlich doof die eigene Klasse beim createn aufzu rufen. :lol:
man hat gelernt... :D
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!