![]() |
Programm führt "falschen" Code aus
Hey..
ich hatte vorhin gefragt, ob man Records freigeben muss. Nachdem das geklärt war, stehe ich nun vor einem größerem Rätsel. Diese Frage hatte natürlich Hintergrund. Und zwar: Ich habe mehrere Prozeduren in Form20. Wenn ich Form20 zum ersten Mal aufrufe geht alles, wie es soll. Rufe ich es nochmal auf und klicke auf einen Button oder auf die ListView oder sonst wohin, wird erst der Code ausgeführt, der auf Button1 ausgeführt wird (egal ob da jetzt ShowMessage('xyz') oder DeleteWindows ;-) drinsteht). Darauf folgt eine Access-Violation. Danach geht alles normal weiter. Rufe ich diese Form später noch einmal auf, funzt alles wie gewohnt und als ob nix gewesen wäre... Was bitte sehr ist da los?!? |
Re: Programm führt "falschen" Code aus
Zeig doch mal den "falschen" und dann auch den "richtigen" Code, der ausgeführt werden soll, wenn man auf den Button oder wohin auch immer klickt.
Und dann wäre es auch noch gut zu wissen, an welcher Stelle dann die Zugriffsverletzung kommt. MfG Binärbaum |
Re: Programm führt "falschen" Code aus
einen Moment bitte...
|
Re: Programm führt "falschen" Code aus
Liste der Anhänge anzeigen (Anzahl: 1)
Schau in die Anlage. Ich habe es makiert, was ausgeührt wird..
|
Re: Programm führt "falschen" Code aus
Hmm... ich kann erstmal so auf die Schnelle keinen Fehler entdecken.
Liegt vielleicht aber auch daran, dass ich hier vor meinem PC bald vom Stuhl kippe, weil es schon so spät (bzw. früh) ist :stupid: Vielleicht wird das Button1Click ja auch noch von einer anderen Prozedur oder einem anderem Formular aufgerufen, und nicht durch den klick auf den Button ausgelöst. KA woran es liegt. MfG Binärbaum |
Re: Programm führt "falschen" Code aus
Ja... es ist schon recht spät. ICh würde vorschlagen wir gehen erstmal ein wenig HAIA machen.
ABer eins kann ich dir versichern. Es wird nirgends Button1.Click aufgerufen. Nur auf Button1.Click selbst... Ich verstehe das ja eben auch nicht. OK, Gute Nacht!!! |
Re: Programm führt "falschen" Code aus
Ähm...
Ich weiß nicht ob das geht da ich es noch nie gemacht habe, aber mir fällt auf das Du nach der type Definition deines Form20 nochmal type definierst und da dein Record erklärst. Ich würde das oben hinter type und vor Form20 schreiben... Kannst ja mal probieren ob das was ändert... Manchmal is komisch! ;) |
Re: Programm führt "falschen" Code aus
Hm,
so habe ich es gelernt, dass es richtig ist... Kann ich ja mal testen. Danke |
Re: Programm führt "falschen" Code aus
Nur mal so am Rande: Bei 20 Forms wundert mich da eigentlich gar nichts mehr. Du wirst irgendwo den Überblick verloren haben. Wozu brauchst du 20 Forms? Ich würde mir mal über ein Redesign Gedanken machen.
|
Re: Programm führt "falschen" Code aus
Das mit den 20 Forms hat seinen Grund. Erinnerst du dich an den einen Mann, für den das Programm sein soll? Kleine Übersichtliche Fenster. In jedem wenig Code... Und nirgends wird Button1.Click extern aufgerufen...
|
Re: Programm führt "falschen" Code aus
Hast du eventuell irgendein Ereignis im OI noch mit der ButtonClick Prozedur verknüpft?
|
Re: Programm führt "falschen" Code aus
Ich hatte damals Probleme mit dem Ereignis OnActivate, du kannst das ja testweise einmal wo anders hingeben.
|
Re: Programm führt "falschen" Code aus
Hallo Luckie,
Zitat:
|
Re: Programm führt "falschen" Code aus
moin
abgesehen jetzt mal vom codestil... könntest du mal probieren eine variable zu deklarieren als boolschen wert ( also wahr und falsch ) und die dan nan entsprechender stelle zu übergeben bzw zu setzen damit gewisse codestücke echt nur zu einem gewissen zeitpunkt ausgeführt werden hat mir schon ab und an mal geholfen auch wenn es vielleicht nicht immer der eleganteste weg ist oder die beste lösung ( bin auch noch nicht so der delphi crack ;) ) so long... mfg stoni |
Re: Programm führt "falschen" Code aus
Okay,
der Tipp mit dem OI war garnicht übel... Ich hatte (warum auch immer) in mehreren OnExit Prozeduren Button1.Click stehen. Hammerhart. Da wäre ich nie drauf gekommen... Habt Dank! |
Re: Programm führt "falschen" Code aus
Hi,
20 Forms sind umständlich 5 sind schon zu viel, du könntest es aber bei diesem Code in einer machen, musst dich halt mit dem Design rumschlagen. |
Re: Programm führt "falschen" Code aus
Naja,
ich denke, es kommt drauf an, was das Programm alles können soll. Je nach dem kann man schon genug Forms erstellen. Man könnte aber die Prozeduren in DLLs auslagern. Das wäre doch schon mal ein Anfang, oder? |
Re: Programm führt "falschen" Code aus
Zitat:
|
Re: Programm führt "falschen" Code aus
Hm... Schon gute Idee. Doch wenn du ein Update machen willst, brauchst du ggf. nur die DLL austauschen, oder?
|
Re: Programm führt "falschen" Code aus
Zitat:
Die eigene Unit ist eigentlich nur der Übersicht halber gedacht, und damit man es vermeidet, für mehrere der 20 Formulare die selbe Prozedur mehrmals schreiben zu müssen. Ist letztlich deine Entscheidung, ob DLL oder nur eine neue Unit. MfG Binärbaum |
Re: Programm führt "falschen" Code aus
Super Idee.
Ich denke ich werde mir das Programm nochmal genauer vornehmen. Allerdings werde ich die aktuelle Version an den besagten Mann überreichen und dann ein "kleines" Update rausbringen... |
Re: Programm führt "falschen" Code aus
Zitat:
Zitat:
|
Re: Programm führt "falschen" Code aus
Was soll ich dazu sagen :-D
Okay, ich geb's zu. Ein wenig Recht hast du da schon, Luckie... Aber es steht auf meiner Liste... *g* |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr. |
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-2025 by Thomas Breitkreuz