Einzelnen Beitrag anzeigen

Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#1

pointer auf TButton - verständtnis problem

  Alt 26. Feb 2009, 14:17
hallo

ich habe folgenden code:

Delphi-Quellcode:

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;
Habe die Zeile markiert wo ich die "Zugriffsverletzung" erhalte. Irgendwas ist mir noch nicht ganz klar mit pointern...
Kann mit jmd helfen? Warum kriege ich da eine Zugriffsverletzung?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat