![]() |
pointer auf TButton - verständtnis problem
hallo
ich habe folgenden code:
Delphi-Quellcode:
Habe die Zeile markiert wo ich die "Zugriffsverletzung" erhalte. Irgendwas ist mir noch nicht ganz klar mit pointern...type Tabulator = record hwnd: THandle; // contains handle of a window P: ^TEButton; // contains pointer of the tabulator button end; ... var Tabs: array of Tabulator; procedure TForm1.AddTab(name: String; hwnd: THandle; FormCount: Integer); var Current: Integer; NewButton: TEButton; begin // increase pointer array SetLength(Tabs, Length(Tabs) + 1); Current := Length(Tabs)-1; // create button, positionize button NewButton := TEButton.Create(Form1); NewButton.Parent := ToolBar1; NewButton.OnClick := OnTabButtonClick; Tabs[current].P := @NewButton; Tabs[current].hwnd := hwnd; end; function TForm1.RemoveTab(hwnd: Cardinal): Boolean; var I: Integer; begin result := false; for I := 0 to Length(Tabs) -1 do begin if Tabs[i].hwnd = hwnd then begin Tabs[i].P^.Caption := 'homo'; <--- Zugriffsverletzung !!! // Tabs[i].hwnd := 0; // Tabs[i].P := nil; result := True; break; end; end; end; Kann mit jmd helfen? Warum kriege ich da eine Zugriffsverletzung? |
Re: pointer auf TButton - verständtnis problem
TButton ist im Prinzip schon ein Pointer ... nimm einfach direkt TEButton.
Delphi-Quellcode:
Tabulator = record
hwnd: THandle; // contains handle of a window P: TEButton; // contains pointer of the tabulator button end;
Delphi-Quellcode:
PS: @NewButton zeigt auf die Variable NewButton und nicht auf den Button selbst und diese Variable gibt es nicht mehr, nachdem die Prozedur dazu beendet wurde.
Tabs[current].P := NewButton;
Tabs[i].P.Caption := 'homo'; |
Re: pointer auf TButton - verständtnis problem
Ein TButton ist schon eine Referenz (Zeiger)
|
Re: pointer auf TButton - verständtnis problem
Zitat:
|
Re: pointer auf TButton - verständtnis problem
Eine Objektinstanz ist sozusagen ein Zeiger auf die Daten des Objektes.
[info] hatte oben etwas dazueditiert :zwinker: |
Re: pointer auf TButton - verständtnis problem
Zitat:
|
Re: pointer auf TButton - verständtnis problem
Für Klassen nicht.
|
Re: pointer auf TButton - verständtnis problem
Zitat:
|
Re: pointer auf TButton - verständtnis problem
Für elementare Datentypen und für Records brauch man sie ggf.
|
Re: pointer auf TButton - verständtnis problem
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 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