AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Access Violation bei Unitübergreifenden Schreiben/Lesen
Thema durchsuchen
Ansicht
Themen-Optionen

Access Violation bei Unitübergreifenden Schreiben/Lesen

Ein Thema von tomate007 · begonnen am 14. Nov 2007 · letzter Beitrag vom 14. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
tomate007

Registriert seit: 1. Apr 2007
46 Beiträge
 
#1

Access Violation bei Unitübergreifenden Schreiben/Lesen

  Alt 14. Nov 2007, 10:00
GUTEN MORGEN,

da bin ich wieder ^^ nachdem Ihr mir sooo nett geholfen habt bei meinem anderen Problem muss ich doch jetzt nochmal auf eure Hilfe zurückgreifen.

Problem:
Ich hab ne Access Violation wenn ich Unitübergreifend was lesen bzw. schreiben möchte.

Im Detail:

Im Restframe welcher in der Unit REST_Unit befindet gibt es eine ScrollBox1.
Dieser Restframe ist in TForm1.

Nun möchte ich von TForm2 auf die Scrollbox zugreifen und Edits/Labels createn.

Also habe ich in TForm2 in den uses folgendes eingetragen:
uses REST_Unit; ok... super klappt auch ^^
also möchte ich nun in der Scrollbox1 vom Restframe ein Label erstellen:
Beschr := TLabel.Create(REST_Unit.Restframe.ScrollBox1); wobei Beschr natürlich in Form2 deklariert ist mit Beschr : TLabel;

Nun gut, dabei zeigt er mir eine Acces Violation in Adresse blablabla... naja das typische halt...
Ok dachte ich... vllt kannst du nicht "schreiben" aber lesen sollte doch gehen
Also hab ich mal versucht mir die Anzahl der Spalten des Stringgrids im Restframe auslesen zu lassen mit:

     AnzahlSpalten := REST_Unit.Restframe.StringGrid1.ColCount; Und... wie soll es anders sein ^^ geht natürlich auch nicht und auch da bekomme ich eine Access Violation.
Diese Fehlermeldungen sagen mir natürlich sehr sehr viel ^^ .... ne eigentlich nur... da is nen Fehler

Deswegen muss ich nochmal eure Hilfe in Anspruch nehmen

Danke schonmal

Ach vllt ist folgendes noch intressant, vllt ist da der Fehler?! Und zwar habe ich in REST_Unit eine globale Variable vom Typ TFrame_REST angelegt, da ich sonst nicht zu den Componenten auf dem Frame gekommen wäre.


MFG
Andre
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Access Violation bei Unitübergreifenden Schreiben/Lesen

  Alt 14. Nov 2007, 10:04
Von einem Frame wird nicht wie bei einer Form von Delphi standardmäßig eine Instanz erzeugt! Du musst eine Instanz das Frames entweder manuell erzeugen oder das Frame auf eine Form packen. Somit ist deine Variable von deinem Frame nil und logisch gibt es so Exceptions ...



Zitat von tomate007:
also möchte ich nun in der Scrollbox1 vom Restframe ein Label erstellen:
Beschr := TLabel.Create(REST_Unit.Restframe.ScrollBox1);
Außerdem: Beim erzeugen eines Controls gibst du als Parameter an Create den Owner ... der sollte lieber die Form bzw. das Frame sein und nicht der spätere Parent ...
Chris
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Access Violation bei Unitübergreifenden Schreiben/Lesen

  Alt 14. Nov 2007, 10:04
Der Fehler wird sein das Restframe einfach noch nicht erzeugt ist und auf nil zeigt.

Und was du machen willst halte ich für sehr schlechtes SW-Design wenn man kreuz und quer von einem Form auf andere Form Elemente erzeugt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
tomate007

Registriert seit: 1. Apr 2007
46 Beiträge
 
#4

Re: Access Violation bei Unitübergreifenden Schreiben/Lesen

  Alt 14. Nov 2007, 10:19
Zitat von Deep-Sea:
Von einem Frame wird nicht wie bei einer Form von Delphi standardmäßig eine Instanz erzeugt! Du musst eine Instanz das Frames entweder manuell erzeugen oder das Frame auf eine Form packen. Somit ist deine Variable von deinem Frame nil und logisch gibt es so Exceptions ...
Also der Frame ist auf der TForm1. Auf der Form1 ist ein TreeView als "Menü" wenn man darauf klickt wird dann halt geprüft welche Sache selected ist und dementsprechend der Frame angezeigt durch Visible True oder halt Visible false wenn ein anderer angeklickt wird.

Diese "Einbettung" der Frames habe ich über die IDE gemacht also denke ich doch mal das Delphi die Instanz selber gemacht hat oder?


Zitat von Bernhard Geyer:
Der Fehler wird sein das Restframe einfach noch nicht erzeugt ist und auf nil zeigt.

Und was du machen willst halte ich für sehr schlechtes SW-Design wenn man kreuz und quer von einem Form auf andere Form Elemente erzeugt.
Die Variable Restframe welche auf TREST_Frame zeigt müsste aber erzeugt worden sein, da ich erst zur Form2 komme nachdem auf Form1 der REST_Frame angezeigt wird. Oder liege ich da falsch???

Zu dem SW-Design... also dieses Kreuz und Quer wäre nur 1mal in dieser Beziehung. Ansonsten ist halt alles mit Frames realisiert... dazu muss ich ja sagen das ich in der Ausbildung bin und von dahher ^^... hab ich denk ich mal noch die License zum Fehler machen ^^
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Access Violation bei Unitübergreifenden Schreiben/Lesen

  Alt 14. Nov 2007, 10:23
Zitat von tomate007:
[...] und dementsprechend der Frame angezeigt durch Visible True oder halt Visible false wenn ein anderer angeklickt wird.
Tipp: TPageControl.


Zitat von tomate007:
Die Variable Restframe welche auf TREST_Frame zeigt müsste aber erzeugt worden sein, da ich erst zur Form2 komme nachdem auf Form1 der REST_Frame angezeigt wird. Oder liege ich da falsch???
Nein. Es gibt dann wohl zwar eine Instanz, aber die Variable zeigt trotzdem auf nil, denn es setzt sie ja keiner. Greife über die Form auf das Frame zu: Form123.Frame123. Denn das Frame wirkt hier nicht anders als jede andere Komponente auch ...
Chris
  Mit Zitat antworten Zitat
tomate007

Registriert seit: 1. Apr 2007
46 Beiträge
 
#6

Re: Access Violation bei Unitübergreifenden Schreiben/Lesen

  Alt 14. Nov 2007, 10:28
Zitat von Deep-Sea:
Tipp: TPageControl.
Danke ^^

Zitat von Deep-Sea:
Nein. Es gibt dann wohl zwar eine Instanz, aber die Variable zeigt trotzdem auf nil, denn es setzt sie ja keiner. Greife über die Form auf das Frame zu: Form123.Frame123. Denn das Frame wirkt hier nicht anders als jede andere Komponente auch ...
[/quote]

Über... TForm1.TREST_Frame... komme ich nicht bis zum Scrollbox1.... es geht nicht... aus diesem Grunde habe ich ja die Variable Restframe eingerichtet welche dann auf dem TREST_Frame zeigt.

Warum das nicht so geht?! KEINE AHNUNG ^^

Deep-Sea... ich habe mich gerade mal getraut dich im ICQ anzuschreiben... aber schreinst nicht online zu sein
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Access Violation bei Unitübergreifenden Schreiben/Lesen

  Alt 14. Nov 2007, 10:30
Zitat von tomate007:
Über... TForm1.TREST_Frame... komme ich nicht bis zum Scrollbox1.... es geht nicht... aus diesem Grunde habe ich ja die Variable Restframe eingerichtet welche dann auf dem TREST_Frame zeigt.

Warum das nicht so geht?! KEINE AHNUNG ^^
Da machst du wohl irgendwas falsch ...


Zitat von tomate007:
Deep-Sea... ich habe mich gerade mal getraut dich im ICQ anzuschreiben... aber schreinst nicht online zu sein
Yap, ich bin "hier" nur mit MSN, AIM und Yahoo on ... warum auch immer
Chris
  Mit Zitat antworten Zitat
tomate007

Registriert seit: 1. Apr 2007
46 Beiträge
 
#8

Re: Access Violation bei Unitübergreifenden Schreiben/Lesen

  Alt 14. Nov 2007, 10:33
Zitat von Deep-Sea:
Zitat von tomate007:
Über... TForm1.TREST_Frame... komme ich nicht bis zum Scrollbox1.... es geht nicht... aus diesem Grunde habe ich ja die Variable Restframe eingerichtet welche dann auf dem TREST_Frame zeigt.

Warum das nicht so geht?! KEINE AHNUNG ^^
Da machst du wohl irgendwas falsch ...


Zitat von tomate007:
Deep-Sea... ich habe mich gerade mal getraut dich im ICQ anzuschreiben... aber schreinst nicht online zu sein
Yap, ich bin "hier" nur mit MSN, AIM und Yahoo on ... warum auch immer
Bekomme ich die erlaubnis dich in msn zu adden dann müssen wa nicht das forum vollspammen auch wenn es deinen stats und meinen gut tut ^^
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Access Violation bei Unitübergreifenden Schreiben/Lesen

  Alt 14. Nov 2007, 10:36
Zitat von tomate007:
Bekomme ich die erlaubnis dich in msn zu adden dann müssen wa nicht das forum vollspammen auch wenn es deinen stats und meinen gut tut ^^
Mach halt - aber dafür ist das Forum doch da ...
Chris
  Mit Zitat antworten Zitat
tomate007

Registriert seit: 1. Apr 2007
46 Beiträge
 
#10

Re: Access Violation bei Unitübergreifenden Schreiben/Lesen

  Alt 14. Nov 2007, 10:43
Zitat von Deep-Sea:
Zitat von tomate007:
Bekomme ich die erlaubnis dich in msn zu adden dann müssen wa nicht das forum vollspammen auch wenn es deinen stats und meinen gut tut ^^
Mach halt - aber dafür ist das Forum doch da ...
Hab ich.... also für alle...

Ich kann komischerweise auf die Scrollbox NICHT so zugreifen:

Form1.Frame.Scrollbox.... das klappt komischerweise nicht und deswegen habe ich mir in dem Frame eine Variable gemacht mit einem Zeiger auf den Frame und siehe da... nun kann ich halt per
Form1.Variable die auf Frame zeigt.Scrollbox zugreifen, wobei ich nicht lesen oder schreiben kann.

das ist das aktuelle Prob ^^

Danke für die Hilffeeee
  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 15:23 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