Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - [VisualCLX] exception bei dynamischer PageControl Erstellung
schuetzejanett - So 24.12.06 12:19
Titel: exception bei dynamischer PageControl Erstellung
Hallo,
ich möchte ein spielfeld generieren.
Für jedem spieler soll auf dem formular ein panel mit einem labelededit feld einerm button und einer pagecontrol komponente mit 2 registerkarten sein.
Die panels mit den labeledit feld und dem Button funktionieren will ich allerdings die pagecontrol komponente erzeugen wirft er eine exception
Hier der Quellcode
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72:
| procedure TForm_Game.FormShow(Sender: TObject); var i,j : integer; const TabTitles: array[0..1] of ShortString = ('Punkte', 'Feld');
begin form1.Visible := false; form1.WindowState := wsMaximized; if erzeugt = false then begin setlength(apanel, start.Anz); setlength(alabel, start.anz); setlength(abitbtn, start.anz); for i := 0 to high(apanel) do begin apanel[i] := Tpanel.Create(self); with apanel[i] do begin parent := self; Bevelouter := bvNone; autosize := true; Caption := ''; height := 50; Width := 115; if ((i mod 2) = 0 )then left := 25 else left := 175; top := 85 +(100* (i div 2)); visible := true;
end; alabel[i] := TLabeledEdit.Create(self); with alabel[i] do begin parent := apanel[i]; text := inttostr(aplayer[i].stand); height := 25; Width := 75; left := 0; top := 25; autosize := false; with EditLabel do begin caption := aplayer[i].name; height := 20; width := 75; end; end; abitbtn[i] := TBitBtn.Create(self); with abitbtn[i] do begin
Caption := 'P'; height := 50; Width := 45; left := 75; top := 0; end;
aPageControl[i] := TPageControl.Create(self); with aPageControl[i] do begin parent := apanel[i]; for j := Low(TabTitles) to High(TabTitles) do with TTabSheet.Create(aPageControl[i]) do begin PageControl := aPageControl[i]; Name := 'ts' + TabTitles[j]; Caption := TabTitles[j]; end; end; end; erzeugt := true; end; end; |
Wäre schön wenn mir jemand helfen könnte
Frohe Weihnachten
Moderiert von
matze: Code- durch Delphi-Tags ersetzt
mkinzler - So 24.12.06 12:23
Wie groß hast du aPageControl dimensioniert?
schuetzejanett - So 24.12.06 12:34
apagecotrol ist ein dynamisches Array was am anfang auf die anzahl der spieler dimensionniert wird also eine zahl zwischen 1 und 10
Lannes - So 24.12.06 12:43
Hallo,
welche Exeption wird denn geworfen?
Mein Delphi 3 hat nur Probleme mit den Setzen der Visible-Eigenschaften in OnShow. Deaktiviert man die Zeilen funktioniert es soweit.
schuetzejanett - So 24.12.06 12:50
hallo,
es ist eine exception der klasse EAccessViolation Zugriffsverletzung bei Adresse ...
Ich verwende delphi 7 , wenn das bei ber problemlösung vielleicht hilft
Lannes - So 24.12.06 13:05
Hallo,
in Deinem Code wird folgendes dimensioniert:
Delphi-Quelltext
1: 2: 3:
| setlength(apanel, start.Anz); setlength(alabel, start.anz); setlength(abitbtn, start.anz); |
Wo wird die Dimensionierung von aPageControl ausgeführt?
Siehe auch Bemerkung von
mkinzler
schuetzejanett - So 24.12.06 13:10
Danke das war der Fehler.
Das hatte ich vergessen.
bin ja froh das es nur so ein kleiner fehler war.
danke dir vielmals und frohe weihnachten.
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!