Autor Beitrag
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 01.04.04 23:15 
Tja, Du müsstest genauer sagen, in welchen Zeilen die Fehler vorkommen. Aber beim Destruktor ruft man den inherited am Ende auf.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Horschdware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Do 01.04.04 23:21 
wenn ich den writer als komponente auf ein formular gezogen habe und dieses programm dann in delphi starte und wieder beende stürzt das programm mit einer EAccessViolation ab.
Wenn ich dann Delphi beenden will oder das aktuelle Projekt schliessen will stürzt mir delphi mit den verschiedensten meldungen ab, hauptsächlich aber coride50.bpl & vcl50.bpl

das mit dem inherited am ende macht sinn. sehe ich ein.
aber: wenn ich das so rum machen, dann ist bei jedem mal, wenn ich das projekt (in dem ich den writer eingebaut habe) neu öffne, eine neue unbenannte leere dximagelist auf dem formular. da stimmt was nicht! ich vermute mal ganz stark, dass das daran liegt

_________________
Delphi: XE - OS: Windows 7 Professional x64
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Do 01.04.04 23:27 
In welcher Zeile (genau) tritt die EAccessViolation Exception auf..?

Wichtig: Kompilierst du das Package mit der Komponente nach jeder Änderung auch neu? Sonst übernimmt die IDE die Änderungen nicht..! Ich entwickle meine Komponenten immer so, dass ich sie zu Anfangs immer nur dynamisch zur Laufzeit erzeuge damit ich mir genau das erspare und erst im späteren Stadium in die IDE integriere und schau wie weit sich die Komponente mit der IDE vertragt...!

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
Horschdware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Do 01.04.04 23:42 
jo, ich compiliere nach jeder änderung neu. das selbtsame an der sache ist ja, dass wenn ich den writer zur laufzeit erstelle das alles ganz anders ausschaut. das problem mit der imagelist tritt da zum beispiel nicht auf.

_________________
Delphi: XE - OS: Windows 7 Professional x64
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Do 01.04.04 23:44 
Schick mir die Kompo mal per mail.. ich schau sie mir mal an...

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: Do 01.04.04 23:46 
Motzi hat folgendes geschrieben:
maximus hat folgendes geschrieben:
Na klar!...wusste garnicht das delphi TWriter registriert. Warum eigentlich? Ist doch keine komponente.

TWriter und TReader werden intern vom Streaming-System verwendet und sind ein wesentlicher Bestandteil davon..!


Das is mir schon klar...ich benutze es viel und gerne, war aber nicht die frage...egal :)

_________________
mfg.
mâximôv
Horschdware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Do 01.04.04 23:48 
@motzi
klar, kann ich dir schicken. aber wir müssten das dann noch heute abend zusammenkriegen, da ich ab morgen weg bin ^^

_________________
Delphi: XE - OS: Windows 7 Professional x64
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: Do 01.04.04 23:54 
Horschdware hat folgendes geschrieben:
...aber: wenn ich das so rum machen, dann ist bei jedem mal, wenn ich das projekt (in dem ich den writer eingebaut habe) neu öffne, eine neue unbenannte leere dximagelist auf dem formular. da stimmt was nicht! ich vermute mal ganz stark, dass das daran liegt


Das liegt daran, das zur designtime ein instanz deiner komponente erzeugt wird, die wiederum ein imageList erzeugt, die sich dann lustig in der form-hierarchie registriert und mit in deine DFM-datei gestreamt wird :wink:

Du musst lediglich abfragen ob designtime ist und die imagelist dann nicht instanzieren:
ausblenden Delphi-Quelltext
1:
if not (csDesigning in self.componentState) then insta.bla;					


hoffe das schaft das problem aus der welt?

_________________
mfg.
mâximôv
Horschdware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Do 01.04.04 23:56 
fast, das ist aber schon mal ein guter anfang. jetzt müsste ich nur noch

a) den absturz beim beenden entfernen
b) es schaffen, dass beim programmstart die klasse tdximagelist gefunden wird

edit: moment, ich darf mich verbessern
nur a)
b hat sich durch die umsetzung des letzten beitrags erledigt.

_________________
Delphi: XE - OS: Windows 7 Professional x64


Zuletzt bearbeitet von Horschdware am Fr 02.04.04 00:01, insgesamt 1-mal bearbeitet
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: Do 01.04.04 23:59 
Horschdware hat folgendes geschrieben:

b) es schaffen, dass beim programmstart die klasse tdximagelist gefunden wird


registerClass(tdximagelist );

_________________
mfg.
mâximôv
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Fr 02.04.04 00:00 
@maximus: danke für den kleinen Anstoß! ;) Die Überprüfung ob csDesigning oder nicht kannst du dir sparen..! Wichtig ist nur, dass du dem Konstruktor der dximagelist nicht AOwner, sondern Self übergibst..! Sonst landet dieses Objekt, wie maximus bereits gesagt hat, ebenfalls in der DFM-Datei..! (warum bin ich da nicht selbst schon früher draufgekommen..! :autsch: ;))

Edit:
maximus hat folgendes geschrieben:
Horschdware hat folgendes geschrieben:

b) es schaffen, dass beim programmstart die klasse tdximagelist gefunden wird


registerClass(tdximagelist );

Das ist dann gar nicht mehr nötig wenn die VCL nicht mehr versucht die versehentlich in der DFM gespeicherte DXImageList zu laden..!

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!


Zuletzt bearbeitet von Motzi am Fr 02.04.04 00:04, insgesamt 1-mal bearbeitet
Horschdware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Fr 02.04.04 00:02 
habs mal über csDesigning gemacht und das tut auch wunderbär.
ich machs jetzt mal über ower:=self.

finde ich, hört sich besser an. :wink:

edit:
gesagt, getan. und alles funktioniert!
mal ein ganz großes Lob an euch alle! ihr seid echt klasse! respeckt!

_________________
Delphi: XE - OS: Windows 7 Professional x64