![]() |
mehrere Buttons erstellen
Ich möchte mehrere Buttons erstellen. Dabei will ich aber auf jeden Button einen Pointer haben. Des weiterem will ich alle Buttons als Array verwalten. Also möchte ich quasi ein Array Pointer. Doch dabei bin ich auf Probleme gestoßen.
Folgende Lösungsansatz habe ich bereits. Doch beim ersten Create eines Buttons kommt eine Schutzverletztung. Aber warum? In diesem Source ist auch noch nicht realisiert das ich auf alle Buttons einen Pointer habe. Oder ist die Variable pbTemp dann als Zeiger "an zu sehn"!?
Code:
const
MAX_BUTTONS = 500; var pbTemp: Array of TButton; . . . SetLength(pbTemp,MAX_BUTTONS); for i:=0 to MAX_BUTTONS-1 do pbTemp := nil; for i:=0 to MAX_BUTTONS do begin pbTemp[i] := TButton.Create(nil); pbTemp[i].Name := 'ButtonNr' + IntToStr(i); pbTemp[i].Parent := Form1; pbTemp[i].Top := 16 + 1; pbTemp[i].Left := 300; end; |
Öhm.
Delphi-Quellcode:
Nach
pTemp := nil;
Delphi-Quellcode:
Macht das dein Array nicht wieder zu nichte?
setlength(ptemp, MAXBUTTONS);
|
Re: mehrere Buttons erstellen
Delphi-Quellcode:
Mit diesem Code setzt Du das Array als solches 500 mal auf NIL. Was Du beabsichtigt hast, was folgendes:
for i:=0 to MAX_BUTTONS-1 do
pbTemp := nil;
Delphi-Quellcode:
Da Du danach aber so oder so gleich 500 Einträge in das Array schreibst, kannst Du Dir diese Initialisierung hier auch sparen und gleich die Buttons erzeugen:
for i:=0 to MAX_BUTTONS-1 do
pbTemp[i] := nil;
Delphi-Quellcode:
Die "-1" hinter der Konstanten nicht vergessen... :wink: Der Rest müsste aber klappen.
for i:=0 to MAX_BUTTONS-1 do
begin pbTemp[i] := TButton.Create(nil); pbTemp[i].Name := 'ButtonNr' + IntToStr(i); pbTemp[i].Parent := Form1; pbTemp[i].Top := 16 + 1; pbTemp[i].Left := 300; end; |
Noch ein Tipp: Überdenk mal diese Zeile
Delphi-Quellcode:
Wenn das ein großes i ist dann liegen alle Buttons um ein Pixel verschoben aufeinander. Mach aus + mal ein *.
pbTemp[i].Top := 16 + 1;
|
Danke für eure Tipps.
Zitat:
Zitat:
|
Zitat:
|
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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