![]() |
Zugriffsverletzung in Procedure
also ich hab mir mal ne procedure gebastelt, die ein memo mit zufälligen zeichen füllen soll. keine sorge, 100 zeilen dieses codes sind eine case of anweisung! aber die zeile
Delphi-Quellcode:
verursacht eine zugriffsverletzung. hier nun das ganze script:
Buffer.Lines[i] := zeile
Delphi-Quellcode:
wieso funzt das nich?
procedure create_mem(Memo: TMemo);
var i, zeilen, zeilenlen, x, zeichenr: integer; zeichen, zeile : string; Buffer: TMemo; begin randomize; zeilen := random(80); for i := 1 to zeilen do begin zeilenlen := random(50); for x := 0 to zeilenlen do begin zeichenr := random(98); case zeichenr of 0: zeichen := ' '; 1: zeichen := ' '; 2: zeichen := 'a'; 3: zeichen := 'b'; 4: zeichen := 'c'; 5: zeichen := 'd'; 6: zeichen := 'e'; 7: zeichen := 'f'; 8: zeichen := 'g'; 9: zeichen := 'h'; 10:zeichen := 'i'; 11:zeichen := 'j'; 12:zeichen := 'k'; 13:zeichen := 'l'; 14:zeichen := 'm'; 15:zeichen := 'n'; 16:zeichen := 'o'; 17:zeichen := 'p'; 18:zeichen := 'q'; 19:zeichen := 'r'; 20:zeichen := 's'; 21:zeichen := 't'; 22:zeichen := 'u'; 23:zeichen := 'v'; 24:zeichen := 'w'; 25:zeichen := 'x'; 26:zeichen := 'y'; 27:zeichen := 'z'; 28:zeichen := '1'; 29:zeichen := '2'; 30:zeichen := '3'; 31:zeichen := '4'; 32:zeichen := '5'; 33:zeichen := '6'; 34:zeichen := '7'; 35:zeichen := '8'; 36:zeichen := '9'; 37:zeichen := '0'; 38:zeichen := '+'; 39:zeichen := '*'; 40:zeichen := '#'; 41:zeichen := '~'; 42:zeichen := ''''; 43:zeichen := '-'; 44:zeichen := '.'; 45:zeichen := ':'; 46:zeichen := ';'; 47:zeichen := ':'; 48:zeichen := '_'; 49:zeichen := '!'; 50:zeichen := '"'; 51:zeichen := '§'; 52:zeichen := '$'; 53:zeichen := '%'; 54:zeichen := '&'; 55:zeichen := '/'; 56:zeichen := '('; 57:zeichen := ')'; 58:zeichen := '='; 59:zeichen := '?'; 60:zeichen := '@'; 61:zeichen := '€'; 62:zeichen := '²'; 63:zeichen := '³'; 64:zeichen := '['; 65:zeichen := ']'; 66:zeichen := '{'; 67:zeichen := '}'; 68:zeichen := 'ß'; 69:zeichen := '\'; 70:zeichen := '<'; 71:zeichen := '>'; 72:zeichen := '|'; 73:zeichen := 'A'; 74:zeichen := 'B'; 75:zeichen := 'C'; 76:zeichen := 'D'; 77:zeichen := 'E'; 78:zeichen := 'F'; 79:zeichen := 'G'; 80:zeichen := 'H'; 81:zeichen := 'I'; 82:zeichen := 'J'; 83:zeichen := 'K'; 84:zeichen := 'L'; 85:zeichen := 'M'; 86:zeichen := 'N'; 87:zeichen := 'O'; 88:zeichen := 'P'; 89:zeichen := 'Q'; 90:zeichen := 'R'; 91:zeichen := 'S'; 92:zeichen := 'T'; 93:zeichen := 'U'; 94:zeichen := 'V'; 95:zeichen := 'W'; 96:zeichen := 'X'; 97:zeichen := 'Y'; 98:zeichen := 'Z'; end; zeile := zeile + zeichen; end; Buffer.Lines[i] := zeile; end; Memo.Text := Buffer.Text; end; *MFG & THX* |
Re: Zugriffsverletzung in Procedure
Nimm anstelle Buffer.Lines[i] := zeile am besten ein Buffer.Lines.Add(zeile);
Und initialisier zeile am Anfang am besten noch mit einem leeren String. |
Re: Zugriffsverletzung in Procedure
ne... hat nix genützt!
|
Re: Zugriffsverletzung in Procedure
Die Zugriffs Verletzung entsteht da es an der i-ten Position noch keine Zeile gibt.
Und BITTE überdenke dein case n of 0..26: zeichen := char(zeichenr) Und BITTE nutze ungarische notationen var i, iZeilen, iZeilenLen, x, iZeichen : integer; sZeichen, sZeile : string; kann man wesentlich besser lesen. :wink: dann find ich den Fehler auch besse :wink: |
Re: Zugriffsverletzung in Procedure
ich würde das memo auch vorher erstellen
Delphi-Quellcode:
so solltes gehn
Buffer := TMemo.Create(nil);
mfG mirage228 |
Re: Zugriffsverletzung in Procedure
@ mirage hab ich jetzt gemacht, jetzt krieg ich nen fehler
Delphi-Quellcode:
...
Element " hat kein übvergeordnetes Fenster
:coder: |
Re: Zugriffsverletzung in Procedure
Jetzt seh ich's
Du brauchst kein Memo erstellen sondern es reicht wenn du ein TStringList-Object erstellst... |
Re: Zugriffsverletzung in Procedure
jetzt krieg ich nen fehler
Delphi-Quellcode:
Listenindex überschreitet das maximum!
|
Re: Zugriffsverletzung in Procedure
dann würde ich anstatt
Delphi-Quellcode:
schreiben:
Buffer := TMemo.Create(nil);
Delphi-Quellcode:
und dann "Buffer.Name := 'Buffer'";
Buffer := TMemo.Create(Application.MainForm);
mfG mirage228 |
Re: Zugriffsverletzung in Procedure
Delphi-Quellcode:
...
Element Buffer hat kein übergeordnetes Fenster
:freak: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz