Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Komponenten freigeben - Invalid pointer operation (https://www.delphipraxis.net/78863-komponenten-freigeben-invalid-pointer-operation.html)

roth 12. Okt 2006 11:01


Komponenten freigeben - Invalid pointer operation
 
Guten Tag!

Ich mache per laufzeit ein paar TComboBox - Komponenten. Diese möchte ich wenn die Anwendung geschossen wird freigeben. Und zwar so:

Delphi-Quellcode:
for i := 1  to anz_bedingungen do
  begin
    mybox1[i][1].Free;
    mybox1[i][2].Free;
    mybox1[i][3].Free;
  end;

  for i := 1  to anz_links do
  begin
    mybox2[i][1].Free;
    mybox2[i][2].Free;

  end;
Folgender Fehler kommt dann:
Zitat:

Project DBExplorer.exe raised exception class EInvalidPointer with message 'Invalid pointer operation'. Process stopped. Use Step or Run to continue.

könnt ihr mir helfen!?

vielen dank! mroth

mkinzler 12. Okt 2006 11:12

Re: Komponenten freigeben - Invalid pointer operation
 
Könnte es sein, daß es eher
Delphi-Quellcode:
for i := 0  to anz_links-1 do
heißen müßte?

dizzy 12. Okt 2006 11:15

Re: Komponenten freigeben - Invalid pointer operation
 
Setzt du die Owner (oder Parent - weiss nicht mehr 100%ig welcher der 2 fürs Freigeben relevant war) der Comboboxes auf dein Formular? Wenn ja, dann gibt dieses die bereits frei, so dass entweder du oder das Formular (je nach dem wo das inherited steht) auf ungültige Adressen stößt.

Luckie 12. Okt 2006 11:16

Re: Komponenten freigeben - Invalid pointer operation
 
Haben die Comboboxen einen Owner, der beim Beenden automatisch freigegebn wird? Dann brauchst du sie nicht freigeben.

roth 12. Okt 2006 11:22

Re: Komponenten freigeben - Invalid pointer operation
 
Vielen Dank für die raschen Antworten!


Zitat:

Zitat von mkinzler
Könnte es sein, daß es eher
Delphi-Quellcode:
for i := 0  to anz_links-1 do
heißen müßte?

Nein habe bei 1 angefangen reinzuschreiben!


Zitat:

Zitat von dizzy
Setzt du die Owner (oder Parent - weiss nicht mehr 100%ig welcher der 2 fürs Freigeben relevant war) der Comboboxes auf dein Formular? Wenn ja, dann gibt dieses die bereits frei, so dass entweder du oder das Formular (je nach dem wo das inherited steht) auf ungültige Adressen stößt.

Setze den .parent auf mybox1[i][countCombobox].Parent := Form1.PageControl1.ActivePage;



Zitat:

Zitat von Luckie
Haben die Comboboxen einen Owner, der beim Beenden automatisch freigegebn wird? Dann brauchst du sie nicht freigeben.

Das weis ich nicht! Habe gerade bemerkt das der Fehler auch auftritt wenn ich die Anwendung sonst einfach schliesse....

????

Luckie 12. Okt 2006 11:25

Re: Komponenten freigeben - Invalid pointer operation
 
Zitat:

Zitat von roth
Zitat:

Zitat von Luckie
Haben die Comboboxen einen Owner, der beim Beenden automatisch freigegebn wird? Dann brauchst du sie nicht freigeben.

Das weis ich nicht!

Dann zeig uns dochmal, wie du die Comboboxen erstellst. :?

roth 12. Okt 2006 11:31

Re: Komponenten freigeben - Invalid pointer operation
 
Delphi-Quellcode:
 if countCombobox = 0 then
          countCombobox := 1;
        i := anz_bedingungen;
        SetLength(mybox1, i+1);
        SetLength(mybox1[i],3);
        mybox1[i][countCombobox] := TComboBox.Create(Self);
        mybox1[i][countCombobox].Parent := Form1.PageControl1.ActivePage;
        mybox1[i][countCombobox].Text := titel;
        mybox1[i][countCombobox].Left := left;
        mybox1[i][countCombobox].Top := 38+(mybox1[i][countCombobox].Height+10)*i;
        mybox1[i][countCombobox].Width := breite;
        mybox1[i][countCombobox].Items := inhalt;

        countCombobox := countCombobox +1;

        if countCombobox > 3 then
          countCombobox := 1;
anz_bedingungen wird natürlich raufgezählt

Luckie 12. Okt 2006 11:36

Re: Komponenten freigeben - Invalid pointer operation
 
Delphi-Quellcode:
mybox1[i][countCombobox] := TComboBox.Create(Self);
Frage an roth: Haben die Comboboxen nun einen Besitzer oder nicht?

roth 12. Okt 2006 11:39

Re: Komponenten freigeben - Invalid pointer operation
 
Wie nur einen Besitzer!? Habe das erste mal so gearbeitet!

Luckie 12. Okt 2006 11:40

Re: Komponenten freigeben - Invalid pointer operation
 
Frage an roth: was ist das für ein Parameter den du bei Create übergibst?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr.
Seite 1 von 4  1 23     Letzte »    

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 by Thomas Breitkreuz