Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit Komponente

  Alt 12. Okt 2008, 09:07
Hi,

du hast verschiedene Möglichkeiten.
Ich würde anstatt dem Namen des Formulares das Formular selbst abspeichern.

Also:

Delphi-Quellcode:
Var
  ActiveNote: TZettel;
  ActiveNoteName: String;
...
//Deine Methode dann halt
procedure TNotiz.ZettelMerken(Sender: TObject);
begin
  if Screen.ActiveForm is TZettel then
  begin
    ActiveNote := Screen.ActiveForm;
    ActiveNoteName := ActiveNote.Name;
    Notiz.Caption :='Aktiver Zettel: ' + ActiveNoteName;
  end;
end;
Oder du iterierst über Screen.Forms und wenn Screen.Forms[i].Name = AktiverZettel dann Screen.Forms[i].Free.
Dass man nicht Destroy aufrufen soll, ist auch schon oft erwähnt wurden.

Aber, wenn du TForm für Zettel nimmst, dann würde ich einfach auf dem Zettel irgendwo ein Kreuz zum Löschen platzieren und den Zettel über Close löschen (Action im OnClose auf caClose).

Frank

[DEIT]und zum Abspeichern in der Listbox nur 2 Hinweise:
Formular mit speichern: Zettelliste.AddItem(Screen.ActiveForm.Caption, Screen.ActiveForm);
Formular referenzieren: TForm(Zettelliste.Items.Objects[i]).Free;
[/EDIT]
Frank Reim
  Mit Zitat antworten Zitat