Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   alternative zu waitforevent (https://www.delphipraxis.net/135195-alternative-zu-waitforevent.html)

Maltimore 6. Jun 2009 17:05

Re: alternative zu waitforevent
 
oh ja die hatte ich vergessen. Sie sagt mir aber auch gar nichts:

Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 0045C6FB' in Modul Project1.exe. Lesen von Adresse 000000000. Prozess wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen.

mkinzler 6. Jun 2009 17:06

Re: alternative zu waitforevent
 
Weist meistens auf ein nicht instantiiertes objekt hin

Maltimore 6. Jun 2009 17:20

Re: alternative zu waitforevent
 
Ähhhm ja. Nicht instanziiertes Objekt. :D Ich bin kompletter Neuling beim Programmieren. Naja nicht soo komplett aber schon ziemlich :)
Hab ich natürlich erstmal gegoogelt: http://www.delphi-treff.de/sprachen/...torientierung/

meinst du, dass ich eine Klasse habe, und einfach ein Objekt benutzt habe, das ich aber gar nicht als Objekt dieser Klasse deklariert habe?
Ich bin verwirrt :?:

Grüße,

Maltimore

mkinzler 6. Jun 2009 17:24

Re: alternative zu waitforevent
 
Nein. Aber Variablen eines Klassentyps sind Zeiger die anfänglich auf Nil zeigen. Man muss erst ein Instanz erzeugen um mit ihnen arbeiten zu können.

Maltimore 6. Jun 2009 17:34

Re: alternative zu waitforevent
 
ok, habe ich glaub ich verstanden. ich hätte dann noch mal ne untertänigste bitte: könnte jemand es hier hinschreiben, oder einen Link posten, um mir die komplette struktur von showmodal und modalresult etc. klarzumachen? ich hab irgendwie das gefühl, dass der fehler da liegt, da ich das einfach mal so ins blaue hinein benutzt habe. Ich bin hier auch schon am googeln aber ne vernünftige erklärung find ich einfach nicht :(

Grüße,
Maltimore

Apollonius 6. Jun 2009 17:36

Re: alternative zu waitforevent
 
ShowModal zeigt ein Formular an und kehrt erst dann zum Aufrufer zurück, wenn im aufgerufen Formular ModalResult gesetzt wurde. Wo kommt überhaupt die AV?

quendolineDD 6. Jun 2009 18:49

Re: alternative zu waitforevent
 
Schau mal in deiner Delphihilfe unter diesen Begriffen nach ;-)

Maltimore 6. Jun 2009 19:01

Re: alternative zu waitforevent
 
@ quendoline: ja das mit der delphi hilfe hätte ich schon längst gemacht, aber die funktioniert unter vista nicht -.-

ähm ja die accessviolation geschieht genau bei form2.showmodal da kommt die sofort. aber bei form2.show nicht. :( oh man..

Liebe Grüße,

Maltimore

quendolineDD 6. Jun 2009 19:07

Re: alternative zu waitforevent
 
Zitat:

@ quendoline: ja das mit der delphi hilfe hätte ich schon längst gemacht, aber die funktioniert unter vista nicht -.-
Ich nutze selber Vista und bei mir geht die Hilfe in TDE, Delphi 2007 und Delphi 2009.

Zitat:

ähm ja die accessviolation geschieht genau bei form2.showmodal da kommt die sofort. aber bei form2.show nicht. Sad oh man..
Und zwar wird bei dir die Erstellungsreihenfolge wie folgt sein: 1. Form 1; 2. Form2

Nun rufst du im OnCreate-Ereignis der Form1 loadstringfromfile auf, welches in sich wiederum createuserprofile und anschließend dort form2.Showmodal aufruft.
Die AV kommt daher, das nun Form2 als Objekt noch nicht existiert, d.h. wird auf einen inkonsistenten Bereich (nil) im Speicher verwießen und das geht natürlich schief. Abhilfe wäre nun, das ganze in das OnShow von Form1 auszulagern anstatt OnCreate, da nun auch Form2.OnCreate durchlaufen wurde, oder du änderst die Erstellungsreihenfolge und lässt Form2 vor Form1 erstellen.

Maltimore 6. Jun 2009 19:15

Re: alternative zu waitforevent
 
Zitat:

Zitat von quendolineDD
Zitat:

@ quendoline: ja das mit der delphi hilfe hätte ich schon längst gemacht, aber die funktioniert unter vista nicht -.-
Ich nutze selber Vista und bei mir geht die Hilfe in TDE, Delphi 2007 und Delphi 2009.

also hier geht es wirklcih nicht, ich kann auch gerne n screenshot schicken, hier erstmal der text, der kommt wenn ich die hilfe zu starten versuche:
Zitat:

Warum kann ich keine Hilfe von diesem Programm erhalten?

Die Hilfe für dieses Programm wurde in einem Windows-Hilfeformat erstellt, das in früheren Versionen von Windows verwendet wurde. Es wird in Windows Vista nicht unterstützt.

Weitere Informationen erhalten Sie unter Die Windows-Hilfeanwendung (WinHelp32.exe) wird in Windows nicht mehr unterstützt. (möglicherweise in englischer Sprache) auf der Microsoft-Supportwebsite.
so, nun zu deinem sehr guten ratschlag:
Zitat:


Zitat:

ähm ja die accessviolation geschieht genau bei form2.showmodal da kommt die sofort. aber bei form2.show nicht. Sad oh man..
Und zwar wird bei dir die Erstellungsreihenfolge wie folgt sein: 1. Form 1; 2. Form2

Nun rufst du im OnCreate-Ereignis der Form1 loadstringfromfile auf, welches in sich wiederum createuserprofile und anschließend dort form2.Showmodal aufruft.
Die AV kommt daher, das nun Form2 als Objekt noch nicht existiert, d.h. wird auf einen inkonsistenten Bereich (nil) im Speicher verwießen und das geht natürlich schief. Abhilfe wäre nun, das ganze in das OnShow von Form1 auszulagern anstatt OnCreate, da nun auch Form2.OnCreate durchlaufen wurde, oder du änderst die Erstellungsreihenfolge und lässt Form2 vor Form1 erstellen.
oh, das ist ein genialer zufall: ich war auch grad wie wild am googlen was es sein könnte, und was finde ich fast zeitgleich mit deinem schreiben:
http://www.wer-weiss-was.de/theme159/article496618.html daraus geht das auch hervor und ich wollte euch grade fragen, ob das bei mir auch der fall sein könnte :)

ok, ich merke, ich bin ganz kurz vorm ziel. Nur eine Frage noch: Wie ändere ich denn die Entstehungsreihenfolge der Formulare? O.o ok könnt ich jetzt auch noch googeln, mach ich gleich auch, könnte ja aber trotzdem jemand netterweise hier reinschreiben, eventuell für andere die gleiche Probleme haben :) Also ich will euch hier aber wirklich keine unnötige Last aufbürden, wenn ihr nicht wollt, lasst es :P

Vielen, vielen Dank erstmal allen Helfern!

Grüße,

Maltimore


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.
Seite 2 von 3     12 3      

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