AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zugriffsverletzung bei umgebogen Parent des Fensters
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung bei umgebogen Parent des Fensters

Ein Thema von Piethan · begonnen am 24. Mär 2011 · letzter Beitrag vom 25. Mär 2011
 
Piethan

Registriert seit: 2. Jun 2008
Ort: Köln
43 Beiträge
 
Delphi XE Architect
 
#1

Zugriffsverletzung bei umgebogen Parent des Fensters

  Alt 24. Mär 2011, 23:04
Delphi-Version: XE
Hallo Zusammen,

ich erstelle z.Z. eine Anwendung, wo ich bei einem TForm ein TabSheet als Parent angegeben habe. So erhalte ich ein
Fenster welches sich innerhalb des TabSheet bewegen lässt.

Greife ich nun aber vom diesem Fenster auf ein Controll innerhalb des Tabsheets, welches eben falls aus einen TFrom besteht
zu, so erhalte ich eine Zugriffsverletzung, die Showmessage wird aber noch ausgeführt.

Code:
Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 007569C4 in Modul 'client.exe'
Hier binde ich das erste TForm in das erste TabSheet ein.

Delphi-Quellcode:
unit mainfrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBXDataSnap, DBXCommon, DB, SqlExpr, DBClient, DSConnect, Grids,
  DBGrids, midas, ExtCtrls, NxCollection, ComCtrls, Menus, VirtualTrees,
  frmgetGastroOrder, NxPageControl;

[...]

var
  Form14: TForm14;
  pagesArry: array of THandle;
implementation
uses dm_user, frmtest, dbselectfrm;

[...]

procedure TForm14.Btn1Click(Sender: TObject);
var
  frmmeintest: Tfrm_Test;
begin
  frmmeintest:= Tfrm_Test.Create(sheet1);
  frmmeintest.Parent:= sheet1;
  sheet1.Glyph.Assign(frmmeintest.Icon);
  sheet1.Caption:=frmmeintest.Caption;
  frmmeintest.Height:=sheet1.Height;
  frmmeintest.Width:= sheet1.Width;
  frmmeintest.Show;
  SetLength(pagesArry, pgcMain.PageCount);
  pagesArry[0]:=frmmeintest.Handle; // Wollte dort die Handle der Forms sammeln, um diese über das wm_close zu informieren
  pgcMain.ActivePageIndex:=0;
end;
Hier erstelle ich das zweite TForm, welches auch angezeigt wird

Delphi-Quellcode:
procedure Tfrm_Test.btnStartClick(Sender: TObject);
var
  dbselectevent: Tfrmdbselect;
begin
  inc(iw); //Zum zählen der vorhandenen Fenster
  dbselectevent:= Tfrmdbselect.Create(frm_Test);
  dbselectevent.Visible:=True;
  //dbselectevent.name := 'Select' +IntToStr(iw);
  dbselectevent.nxflpnl1.Caption:= 'Select (' + IntToStr(iw) + ')';
  dbselectevent.Parent:= sheetGetParams; //Ein Tabsheet
  dbselectevent.Left:=0;
  dbselectevent.Top:=200;
  dbselectevent.Show;
end;


function Tfrm_Test.addRow(NAME :string; EVNO: Integer; AKTIV: Boolean): Boolean;
begin

  ShowMessage(VANAME); //dient mir zur Kontrolle ob das zweite Fenster es bis hierhin schaft!
  with mtblSelVA do //TkbmMemTable
            begin
              Append;
              FieldByName('VAID').AsInteger:=EVNO;
              FieldByName('VANAME').AsString:= NAME;
              FieldByName('AKTIVE').AsBoolean:= AKTIV;
              Post;
            end;
end;
Der Zugriff auf das Parent Form
Delphi-Quellcode:
procedure Tfrmdbselect.btn1Click(Sender: TObject);
var
 intevno, I : Integer;
 ievbname: string;
begin
  if dbgrdEvents.SelectedCount > 0 then
      for I := 0 to dbgrdEvents.RowCount -1 do
       if dbgrdEvents.Selected[i] then
        begin
           frm_Test.addRow(dbgrdEvents.CellField[1,i].AsString,
                  dbgrdEvents.CellField[0,i].AsInteger, TRUE);
        end;

end;
Ich verstehe ehrlich gesagt gerade nicht wo mein Fehler liegt! Hat einer von euch einen Tipp!

Danke
Dirk
Angehängte Grafiken
Dateityp: jpg Unbenannt-3.jpg (42,8 KB, 17x aufgerufen)
  Mit Zitat antworten Zitat
 


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 23:12 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