![]() |
Re: Erstellen eines Eingabeformulars
Evtl. Assembler? Naja, ich glaube das führt hier zu weit.
|
Re: Erstellen eines Eingabeformulars
|
Re: Erstellen eines Eingabeformulars
Zitat:
Ich habe die Zeile mal geändert in
Delphi-Quellcode:
aber dann kommt weiter unten in den Zeilen
a: array [1..10] of TCheckBox;
Delphi-Quellcode:
bei "a[I,J]"
a[I,J]:=TCheckBox.Create(Self);
a[I,J].parent:=self; a[I,J].width:=16; a[I,J].height:=16; a[I,J].left:=8+I*24; a[I,J].top:=8+J*24; a[I,J].visible:=True; a[I,J].enabled:=True; die Fehlermeldung "Array-Typ erforderlich." |
Re: Erstellen eines Eingabeformulars
Du hast a ja nur als eindimesnionalen Array definiert, verwendest aber 2 Dimensionen!
Delphi-Quellcode:
a: array[1..10,1..10] of TCheckBox;
|
Re: Erstellen eines Eingabeformulars
Zitat:
Aber die Meldungen wollen nicht aufhören.. :( Jetzt bekomm ich beim Beenden die Fehlermeldung "Runtime Error 216 at 00002AD0".... |
Re: Erstellen eines Eingabeformulars
Ich hab mal das obige Programm angeschaut, du solltest den Array so definieren:
Delphi-Quellcode:
weil ja die Grenzen so verwendet werden (Scheife).
a: array[0..10,0..10] of TCheckBox;
|
Re: Erstellen eines Eingabeformulars
Wo genau? Wenn dir keine genaue Zeile angezeigt wird, setze bei jeder Anweisung nen Haltepunkt.
|
Re: Erstellen eines Eingabeformulars
Zitat:
MfG davar |
Re: Erstellen eines Eingabeformulars
Variabel ist das ganze dann natürlich nicht mehr... Leg dir mal ne Delphi 7 Personal oder so zu... auf Englisch am besten, da haste gleich ne Lizenz für Weitergabe von Anwendungen dabei.
|
Re: Erstellen eines Eingabeformulars
Warum überhaupt Verweise auf die Checkboxen in einem Array speichern? Wenn man beim Erzeugen einer Checkbox einen Owner übergibt, übernimmt der doch die komplette Verwaltung. Durch einen geschickte Benennung der Komponenten kann man sie bei Bedarf über die Methode FindComponent des Owners suchen.
Wir benötigen zunächst eine Routine zum Erzeugen eines Namens für die Checkbox in Reihe aRow, Spalte aCol:
Delphi-Quellcode:
Die folgende Routine liefert einen Zeiger auf die Checkbox in Reihe aRow, Spalte aCol:
function TForm1.GetCheckboxName (aRow, aCol: Integer): string;
begin Result := Format('cxR%.3dC%.3d', [aRow, aCol]); end;
Delphi-Quellcode:
Nun kann man die Checkboxen erzeugen:
function TForm1.FindCheckbox (aRow, aCol: Integer): TCheckBox;
begin Result := FindComponent(GetCheckboxName(aRow, aCol)) AS TCheckBox; end;
Delphi-Quellcode:
Der Zugriff auf die Checkbox in Zeile row, Spalte col erfolgt dann z. B. so:
var row, col : Integer;
box : TCheckBox; begin for row := 0 to 9 do for col := 0 to 9 do begin box := TCheckBox.Create(Self); box.Parent := Self; box.Name := GetCheckboxName(row, col); box.SetBounds (8 + 16 * col, 8 + 16 * row, 14, 14); box.Caption := ''; end; end;
Delphi-Quellcode:
Zusätzlich könnte man die Funktion FindCheckbox noch als Getter-Methode für ein Array-Property benutzen.
FindCheckbox(row, col).Checked := True;
Für den produktiven Einsatz sollte natürlich noch eine Überprüfung der Parameter in FindCheckbox eingebaut werden. Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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