Delphi-PRAXiS

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 Was passiert beim kopieren eines Controls in der IDE? (https://www.delphipraxis.net/164013-passiert-beim-kopieren-eines-controls-der-ide.html)

Andreas L. 25. Okt 2011 14:14

Was passiert beim kopieren eines Controls in der IDE?
 
Hallo,

ich habe mir von TCustomPanel eine Komponente abgeleitet der ein anderes TWinControl zugewiesen werden kann (z. B. ein TEdit). Das zugewiesene Control wird dann mittels Parent := Self auf dem Panel platziert. Die Komponente funktioniert einwandfrei wenn ich sie aus der Tool-Palette auf die Form ziehe. Wähle ich dieses Panel aus, drücke STRG + C, klicke aufs Form und drücke STRG + V wird das Objekt eingefügt und sieht genau so aus wie sein Bruder. Sobald ich nun eine Eigenschaft im OI ändere oder auf ein anderen Control klicke erhalte ich mehrere Zugriffsverletzungen 000002D, 000002A (immer andere Werte). Die IDE lässt sich dann nur noch mit ALT + F4 beenden. Ich kann leider keinen Fehler im Code finden, deshalb wollte ich fragen ob jemand weiß was genau in der IDE passiert wenn ein Objekt kopiert wird. Wird es neu angelegt und dann Eigenschaft für Eigenschaft auf die Werte des Originals gesetzt oder werden die Eigenschaften mit .Assign kopiert? Sollte es letzteres sein sollte sich das problem lösen lassen in dem ich eine Assign-Prozedur implementiere. Sonst noch Vorschläge?

Bummi 25. Okt 2011 14:19

AW: Was passiert beim kopieren eines Controls in der IDE?
 
was kopiert wird siehst Du wenn Du den Inhalt z.B. in Notepad einfügst
Beim Einfügen dürfte die IDE die Namen gegf. anpassen anpassen und das ganze ins DFM an der Stelle des Zielcontrols eintragen, ich vermute Deine IDE hat sich einfach verhaspelt ....

himitsu 25. Okt 2011 14:38

AW: Was passiert beim kopieren eines Controls in der IDE?
 
Zitat:

Zugiffsverletzung $00000xxx
Sagt dir schonmal den Grund:
Da wird auf irgendwas zugegriffen, welches nicht existiert. ( $00000xxx = NIL + Offset)

Oftmals sieht es so aus > Vermutlich dein eigener Fehler ;)



Tipp: Bevor du deine Koponente einfügst, starte Delphi nocheinmal und debugge das erste Delphi.

Gab es im D2009 schon Menü > Start > Mit Prozess verbinden?
Wenn ja, dann einfach mit einem anderen Delphi das Erste debuggen.
- verbinden (vorher dein Komponentenpackage laden)
- F9 (den ersteres Delphi wurde dabei angehalten)
- drüben die Komponente einfügen
- und wenn es knallt, siehst du wo

Oder zu deiner BPL die BDS.exe (die Delphi-IDE) als Hostanwendung angeben (Menü > Start > Parameter) und mit F9 starten.

Andreas L. 27. Okt 2011 10:34

AW: Was passiert beim kopieren eines Controls in der IDE?
 
Konnte den Fehler beheben. In der überschriebenen Notification-Prozedur hatte sich ein Fehler eingeschlichen. Trotzdem Danke an alle :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz