| Autor |
Beitrag |
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: 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 
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: 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
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: 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 
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: 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
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: 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
      
Beiträge: 896
Win XP, Suse 8.1
Delphi 4/7/8 alles prof
|
Verfasst: 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 
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: 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
      
Beiträge: 896
Win XP, Suse 8.1
Delphi 4/7/8 alles prof
|
Verfasst: 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
Du musst lediglich abfragen ob designtime ist und die imagelist dann nicht instanzieren:
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 
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: 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
      
Beiträge: 896
Win XP, Suse 8.1
Delphi 4/7/8 alles prof
|
Verfasst: 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
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: 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..!  )
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 
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: 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.
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
|
|