Einzelnen Beitrag anzeigen

sintronic86

Registriert seit: 7. Dez 2009
Ort: Barsinghausen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

TScrollBox BUG????

  Alt 3. Apr 2014, 12:53
Hallo an alle, ich schon wieder.

Ich habe ein Problem mit einer TScrollBox.

Folgendes Umfeld:
-Ich erstelle zur Laufzeit ein TPageControl
-darin zur Laufzeit TabSheets (Wobei ich TMyTabSheet verwende -> hat nur ein paar Eigenschaften mehr)
-darin erstelle ich die TScrollBox, welche (scheinbar) meine Probleme verursacht
-die ScrollBox wird mit eigenen Komponenten (Align:=alTop) befüllt, bis sie soweit befüllt ist, das die ScrollBar erscheint

-> Es gibt nun zwei Scenarien die auftreten können, wenn ich einzelne dieser Komponenten wieder löschen:

1. Ich lösche nur soviele Komponenten, dass die ScrollBar noch immer sichtbar ist
-> wenn ich nun neue Komponenten erstelle, funktioniert alles super. Sie werde wie erwartet an die bereits vorhanden angehängt (alTop)

2. Ich lösche soviele Komponenten, das der Clientbereich der Scrollbox nicht ganz ausgefüllt ist und somit die ScrollBar verschwindet
-> wenn ich nun neue Komponenten erstellen möchte, bekomme ich eine Exception:
"Im Projekt Test.exe ist eine Exception der Klasse $C0000005 mit der Meldung 'access violation at 0x004a1060: read of address 0x00000050' aufgetreten."

-> komischerweise tritt diese Exception innerhalb meiner Komponente auf:
-die Komponente hat eine private Eigenschaft (eBezeichnung: TEdit), welche im constructor erstellt wird


an folgender Stelle tritt die Exception (laut durchsteppen im Debugger) auf:
Delphi-Quellcode:
// BEZEICHNUNG ---------------------------------------------------------------
  eBezeichnung := TEdit.Create(Self);
  with eBezeichnung do begin
    Parent := Self; <--------------------------------------------------
    Left := 50;
    Top := (Self.Height div 2) - (Height div 2);
    Width := 450;

    Text := FBezeichnung;

    OnChange := MyComponentOnDataChange;
    OnEnter := MyComponentOnEnter;
    OnMouseLeave := MyMouseLeave;
  end;

Ich kann es mir nicht erklären, dass das nur dann passiert, wenn die Scrollbar der ScrollBox nicht mehr sichtbar ist. Zufall???
Björn
  Mit Zitat antworten Zitat