AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Zugriffsverletzung in Modul 'designide70.bpl'
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung in Modul 'designide70.bpl'

Ein Thema von Delfiano · begonnen am 20. Sep 2020 · letzter Beitrag vom 24. Sep 2020
Antwort Antwort
Seite 1 von 2  1 2      
Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#1

Zugriffsverletzung in Modul 'designide70.bpl'

  Alt 20. Sep 2020, 06:15
Ich habe ein Problem mit visuellen Eigenkomponenten, die auf die Units DesignEditors und DesignIntf angewiesen sind. Mit Delphi 5 funktionierte noch alles, aber wenn ich bei Delphi 7 versehentlich im Editor auf die jeweilige Komponente klicke, kommt die Fehlermeldung Zugriffsverletzung bei Adresse xxx in Modul 'designide70.bpl' Lesen von Adresse 00000000 und Delphi 7 hängt. Man kann es nur noch über den Taskmanager beenden.

Ich vermute einen Zusammenhang mit der nicht vorhandenen Originalunit Proxies für die ich diesen Ersatz benutze
Delphi-Quellcode:
unit Proxies;

interface

uses
Classes;

{ if Delphi6.0 then TComponentClass }

function IsProxyClass(ComponentClass: TClass): Boolean;

implementation

function IsProxyClass(ComponentClass: TClass): Boolean;
begin
Result := False;
end;

end.
Wenn der in der BPL benutzte Originalsource nicht mit dem Ersatz übereinstimmt, kommt es immer zu Problemen. Ich hab das früher schon mal gemerkt, hatte aber nun mehrere Jahre nicht mehr mit Delphi programmiert und weiss im Moment nicht weiter. Für die designide70.bpl (und andere) existiert kein Source.

Kann mir irgendjemand einen Rat geben?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Zugriffsverletzung in Modul 'designide70.bpl'

  Alt 20. Sep 2020, 06:43
Nimm die IDE, starte damit eine zweite Instanz im Debugger
Menü > Start > Prozess laden / oder Prozess verbinden (ich glaub das hieß damals, in diesem uralten Delphi, auch schon so)
bei einer eigenen Komponente, bzw. bei welchen mit Quellcode
Menü > Start > Parameter und dort die Delphi.exe (neuer bds.exe) als Host, für das zu debuggende Komponenten-Package.

Dann in der zweiten Instanz auf die Komponente klicken
und schauen was der Debugger (der ersten Instanz) im Stacktrace ausgibt.


https://www.embarcadero.com/de/products/delphi/starter



[edit]
OK, den Fehler hat Bernhard nun gefunden.

Dennoch ist "Zugriffsverletzung bei Adresse xxx in Modul 'designide70.bpl' Lesen von Adresse 00000000" die letzte Stelle wo es knallt, aber nicht von wo der Fehler kommt.
Darum kann/sollte man Fehlersuche hier genaus machen, wie in einem "normalen" Programm, denn auch die IDE ist nur ein Programm.

Und dann versuchen über die von Bernhard erwähnten Quellen das Problem zu beseitigen.

PS: Eine eigene Komponente oder eine Fremde?
Bei Letzteres wäre es bestimmt einfacherer etwas Neueres oder Ähnliches zu suchen.
$2B or not $2B

Geändert von himitsu (20. Sep 2020 um 11:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Zugriffsverletzung in Modul 'designide70.bpl'

  Alt 20. Sep 2020, 11:05
proxies.pas. Mmhhhh. Da war doch was.

Du musst deine Komponenten umschreiben um den Runtime von dem IDE-Teil zu trennen

https://edn.embarcadero.com/article/27717

Ansonsten suche nach "proxies pas delphi 7". Dort gibt es noch zig andere Beiträge (u.a. auch hier auf der Delphi-Praxis), welche sich mit der Änderung zwischen den beiden antiken Versionen D5 -> D6 ergeben hatte.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#4

AW: Zugriffsverletzung in Modul 'designide70.bpl'

  Alt 20. Sep 2020, 13:26
Danke erstmal für eure Antworten.

Natürlich hatte ich vorher schon ausführlich bzgl. Proxies gesucht und habe auch den von mir ersatzweise benutzten Quelltext daher.

Was embarcadero angeht, so kann ich nicht genug englisch, um das alles zu verstehen.

Eine zweite Instanz i m Debugger starten, verstehe ich jetzt leider auch nicht. Ich habe wirklich sehr lange nichts mehr mit Delphi gemacht, weiss nur, dass ich gerne den integrierter Debugger komplett abschalten würde, weil er mir die Fehlersuche eher erschwert statt erleichtert.

Zu den Komponenten selbst: Es handelt sich um Eigenkomponenten, die ich aus Quellen für TPW erstellt habe. Leider war mir TPW immer zu kompliziert, so dass ich wahrscheinlich vieles nicht korrekt konvertieren konnte. Allerdings gab es wie erwähnt mit Delphi 5 keine funkionellen Probleme.

Ich will euch auch nicht vorenthalten, um was es geht.

Woher ich das TPW-Programm damals hatte, weiss ich nicht mehr. Es handelt sich um MIDIPlay von einem Peter Horn (Dezember 1994) der als Quelle das C-Programm DRUM aus dem Jahr 1992 von Charles Petzold heranzog.

Trotz sehr intensiver Suche über mehrere Wochen habe ich keinerlei Aktualisierungen gefunden und auch keine brauchbaren Quellen eines anderen simplen Drumsequenzers.

Aber okay, der Absturz in der IDE ist die letzte Stufe. Also werde ich damit beginnen, die Komponenten zu entschlacken und aufzusplitten.

Danke nochmal für eure Mühe.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#5

AW: Zugriffsverletzung in Modul 'designide70.bpl'

  Alt 20. Sep 2020, 13:49
Schau mal bitte in den Quelltext Deiner Komponente.

Unter Uses findest du (vermutlich) eine DsgnIntf Wenn dem so ist, ersetzt Du bitte diese durch DesignIntf, DesignEditors .

Meist reicht das schon.
  Mit Zitat antworten Zitat
Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#6

AW: Zugriffsverletzung in Modul 'designide70.bpl'

  Alt 22. Sep 2020, 03:12
Danke, aber das ist es leider nicht.

Vielleicht muss ich noch etwas weiter ausholen:

Wie schon erwähnt, entstammt das ursprüngliche Programm einer Konvertierung von C nach TPW durch einen Peter Horn.

Meine erste Konvertierung zu Delphi erfolgte sogar noch für Delphi 1, womit dann aber manches nicht realisierbar war. Zuerst hatte ich das ohne Komponente, aber ich fand es lästig, wenn alles erst dynamisch zur Laufzeit erzeugt wurde.

Bei der Umsetzung klappte auch alles soweit mit Delphi 5, aber als ich dann das eigentiche Programm unter Delphi 7 starten wollte, fiel auf, dass es "typisierte Konstanten" enthielt. Anscheinend sind auch in der Komponentenunit noch welche, aber dann hätte die eigentlich unter Delphi 7 garnicht compiliert werden dürfen.

Ich häng hier erstmal nur die Originalquellen (C und TPW) als ZIP-Datei an, falls sich jemand dafür interessiert.

Mir schwebt vor, dass man daraus vielleicht ein Gemeinschaftprojekt machen könnte. Aber bevor ich meine Manipulationen für Delphi auch noch vorstelle, will ich erstmal weiter selbst nach Fehlern suchen.
Angehängte Dateien
Dateityp: zip DRUMS.ZIP (177,0 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#7

AW: Zugriffsverletzung in Modul 'designide70.bpl'

  Alt 22. Sep 2020, 19:51
Typisieren Konstanten gehen auch in neueren Delphi Versionen, wenn man den richtigen Compilerschalter setzt. Ich glaube J+ war das...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Zugriffsverletzung in Modul 'designide70.bpl'

  Alt 22. Sep 2020, 20:22
Typisierte Konstanten gehen immer.

Beschreibbare typisierte Konstanten sind da was Anderes, aber das nennt sich sowieso "Variable".
{$J-} aka {$WRITEABLECONST OFF} ist der Standard
$2B or not $2B
  Mit Zitat antworten Zitat
Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#9

AW: Zugriffsverletzung in Modul 'designide70.bpl'

  Alt 22. Sep 2020, 20:47
Oh, das wusste ich gar nicht. Danke für den Hinweis. Ich hab einfach viel zu lange nichts mehr mit Delphi gemacht. Die Probleme liegen tatsächlich tiefer.

Darum hab ich nochmal komplett neu begonnen, alle TPW-Units einzeln durchzusehen und versucht, sie zu Delphi zu konvertieren. Die Hauptprobleme, an denen ich scheitere, sind z.B. das dynamische Erzeugen eines Formulars und eines Timers.

Wie ich z.B. aus
Delphi-Quellcode:
  PDRUMWindow = ^TDRUMWindow;
  TDRUMWindow = Object (TWindow)

                    {DatenFelder}
                    Vertical, Horizontal : PScrollbar;

                    {Methods}
                    CONSTRUCTOR Init (AParent: PWindowsObject;
                    zTitel: PChar);
usw. Delphicode erzeuge.

Wahrscheinlich werde ich ein neues Thema aufmachen oder suchen, ob es das schon gibt, nämlich Konvertierung von TPW/BPW zu Delphi.

Wie schon von anderer Seite korrekt festgestellt wurde, ist der Absturz der IDE beim Anklicken der Komponente nur der letzte Schritt und die Fehlerquellen sitzen tiefer - völlig ungeachtet dessen, dass alles funktioniert, wenn man eben nicht versehentlich im Formular auf die Komponente klickt. Denn im Objektinspektor lässt sich alles wie gewünscht einstellen.

Aber ehe ich hier andere anrege, Lösungen für allein mein Problem zu suchen, will ich mich erstmal weiter rantasten und mache dann zur gegebenen Zeit ein neues Thema dazu auf.

Nochmal meinen Dank an alle, die sich bisher hierzu gemeldet haben.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Zugriffsverletzung in Modul 'designide70.bpl'

  Alt 23. Sep 2020, 08:41
Ich habe gestern mal probiert dieses Borland Pascal für Windows Projekt "Drums" in die jetzt-Zeit zu befördern.
Es tut mir leid einzugestehen, mir war es nicht möglich.
Den verwendeten Code (von 1994) kann ich zwar gut lesen aber die verwendeten Methoden (alles basiert auf 16bit?) lassen sich nicht so ohne weiteres nachbauen.
Spätestens wenn man versucht die Resourcen-Datei einzubinden komme ich nicht weiter.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 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