Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: Sichtbarkeit von TFrame Bestandteilen

  Alt 18. Feb 2011, 15:00
Das ist leider nicht möglich.
Alle Komponenten (Buttons, Edits,..) auf dem Frame müssen in dem Bereich vor dem Private Abschnitt liegen.
Dieser Bereich wird von der IDE kontrolliert und darf nicht vom Programmierer verändert werden.

Gerade bei Frames sollte man darauf achten nicht direkt vom Formular auf die Komponenten zuzugreifen.
Stattdessen sollte man zusätzliche Properties verwenden:
Delphi-Quellcode:
TLoginFrame = class(TFrame)
 { Bereich von IDE kontrolliert }
 EditUser : TEdit
 EditPasswort : TEdit;
 { bis hier }
private
{...}
public
  property Username:string read GetUserName write SetUserName;
  property Password:string read GetPassword write SetPassword;
Leider wird manchmal versehentlich ein Control auf dem Frame verschoben und diese Änderung wird natürlich in der DFM des Formulars gespeichert.

Um diese Änderungen rückgängig zu machen, Formular anzeigen, ALT-F12 drücken
und nach dem Namen des Frame suchen:
Delphi-Quellcode:
inline LoginFrame1: TLoginFrame
  Top = 503
  Width = 797
  HelpContext = 17000
  Align = alBottom
  Anchors = []
  TabOrder = 3
  inherited EditUser: TEdit
      Width = 797
      OnClick = StatusGridClick
Dann die eingebetten Objekte (hier inherited EditUser) löschen.
Möglich, dass es für höhere Delphi Versionen einen Änderungsschutz gibt.
(habe hier leider nur D5)
Andreas
  Mit Zitat antworten Zitat