Ich verwende Lazarus, aber da es keine gescheiten Lazarus-Foren gibt, und Lazarus und Delphi ja sehr ähnlich sind, frage ich einfach mal hier nach...
Ich erstelle zur Laufzeit ein Edit-Feld:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| my_edit := TEdit.create(Form1); with my_edit do begin Top := 20; Left := 20; Width := 20; Name := 'Edit'+IntToStr(i+5); end; |
so... und in einer anderen Prozedur versuche ich diese Edit-Felder aufzurufen:
Delphi-Quelltext
1:
| (FindComponent('Edit'+IntToStr(i+5) as TEdit).Text := 'Hallo'; |
so, während der Laufzeit erstelle ich jetzt ein Edit(1+5), und da i im ersten Durchlauf 1 ist, habe ich also ein Edit6. (es erscheint übrigens auch auf dem Formblatt). Dieses will ich dann über die findcomponent-methode aufrufen. Sinnvollerweise heißt das dann sozusagen (FindComponent('Edit6' as TEdit).Text := 'Hallo';
Aber er bricht mir mit einer exception class "External: SIGSEGV" ab und spring im Quelltext der control.inc zur Zeile
Delphi-Quelltext
1:
| if TMethod(@Self.GetTextBuf).Code = Pointer(@TControl.GetTextBuf) |
und markiert diese grau... Was tun?
Moderiert von
Narses: Topic aus Dateizugriff verschoben am Mi 03.02.2010 um 22:27