Ich kann aber nirgends ein Ereignis wie onDockNewForm
finden.
Wieso ein Ereignis? Das ist eine Methode, die ich geschrieben habe ... die allerdings besser die Form-Instanz zurückliefert
Delphi-Quellcode:
procedure TMyForm.DockNewForm( APageControl : TPageControl; ADockFormClass : TDockFormClass ) : TDockForm;
var
LForm : TDockForm;
begin
LForm := TDockFormClass.Create( APageControl );
try
LForm.ManualDock( APgeControl, nil, alClient );
LForm.Visible := True;
Result := LForm;
LForm := nil;
finally
LForm.Free;
end;
end;
Und dann habe ich noch das Problem wo bzw. wie ist TDockFormClass
definiert?
steht doch in dem CodeSchnipsel
Delphi-Quellcode:
type
TDockForm = class( TForm )
protected
// Ich könnte auch den Event OnClose nehmen, da ich aber von dieser Form
// weitere ableiten möchte, ist dieser Weg etwas robuster :o)
procedure DoClose( var Action: TCloseAction ); override;
end;
TDockFormClass = class of TDockForm; // <--- DA
[edit]
Und noch ein Problem fällt mir ein:
Wie greife ich auf die einzelnen Komponenten (TImage etc.) nach dem Erstellen des angedockten Forms zu?
Der Benutzer soll die Bilder erst scannen. Dann mit dem Button Bilder, die er nicht haben will, löschen können und schließlich über einen zentralen Save-Button alle Bilder nacheinander abspeichern.
Letzteres soll dann über einen Thread vom Hauptformular erfolgen. Ich muss also irgendwie rankommen...
[/edit]
Was interessiert es dich, was in dem
TImage
drin ist? Das wird für die
Anzeige benötigt ... aus und Ende.
Erstelle dir ein Daten-Objekt, was alle Informationen beinhaltet und merke dir dort alle Informationen zu jedem gescannten Bild und organisiere diese in einer Liste. Zu jedem Daten-Objekt gibt es dann eine Form (der du das zugehörige Daten-Objekt an die Hand gibts), die die Inhalte aus dem Daten-Objekt
anzeigen und auch die Eingaben des Benutzers dort ablegen kann.
Wenn der Benutzer fertig ist, dann gehts du einfach durch deine Liste und arbeitest die einzelnen Bilder ab. Die einzelnen Forms interessieren nicht mehr