Hallo zusammen,
wenn ich beim FormShow-Ereignis des Haupt-Formulars eine bestimmte Bedingung auftritt, möchte ich für einige Objekte in einem Unterformular bestimmte Eigenschaften setzen (z. B. den Text für ein Label).
Sobald ich das mache, bekomme ich eine
Access-Violation, weil das Unterformular anscheinend noch nicht existiert (habe ich mit Screen.Forms[P].Name überprüft). Ein Aufruf mit Unterform.ShowModal ist dann natürlich auch nicht möglich.
Das seltsame ist, dass es nicht knallt, wenn ich der Unterform.Caption etwas zuweise.
Und was noch viel seltsamer ist: Dieses Projekt habe ich per Kopieren aus einem anderen Projekt 'geklont'. Dort ist der Zufriff ohne Probleme möglich. Auch in anderen Projekten mit ähnlicher Mimik tritt das Projekt nicht auf. Dort existiert das Unterformular zu diesem Zeitpunkt also immer schon.
Hat jemand eine Idee hierzu?
Delphi-Quellcode:
program ArtDB;
uses
SysUtils,
WinTypes,
Vcl.Forms,
ArtDBMain
in '
ArtDBMain.pas'
{dlgArtDB},
ShowMessage
in '
ShowMessage.pas'
{dlgShowMsg},
SetSortMode
in '
SetSortMode.pas'
{dlgSetSortMode},
FitImage
in '
FitImage.pas',
PicShow
in '
PicShow.pas'
{dlgPictureShow};
{$R *.res}
var
hSemaphore: tHandle;
hThisWindow: hWnd;
SemName:
Array[0..256]
of Char;
WinTitle:
Array[0..256]
of Char;
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TdlgArtDB, dlgArtDB);
Application.CreateForm(TdlgShowMsg, dlgShowMsg);
Application.CreateForm(TdlgSetSortMode, dlgSetSortMode);
Application.CreateForm(TdlgPictureShow, dlgPictureShow);
Application.Run;
end.