![]() |
AW: Nicht-visuelle Komponenten dauerhaft ausblenden?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe folgende Verbesserungen in TNonVisualArea eingefügt:
1. Damit der "nutzbare" Bereich der Form gleichbleibt, habe ich folgenden Code im constructor eingefügt:
Delphi-Quellcode:
Damit wird die Höhe der Form automatisch angepasst, wenn die TNonVisualArea-Komponente eingefügt wird.
if Owner is TForm then
TForm(Owner).Height := TForm(Owner).Height + Height; 2. Sollte sich der Nutzer entschließen, die TNonVisualArea-Komponente wieder zu entfernen (nicht empfohlen), wird die Höhe der Form automatisch zurückgesetzt:
Delphi-Quellcode:
Bitte um konstruktive Kritik!
destructor TNonVisualArea.Destroy;
begin if csDesigning in ComponentState then begin if Assigned(Parent) then begin if FRight then Self.Parent.Width := Self.Parent.Width - Self.Width else Self.Parent.Height := Self.Parent.Height - Self.Height; end; end; inherited; end; |
AW: Nicht-visuelle Komponenten dauerhaft ausblenden?
1. darf nur gemacht werden, wenn sich die Form im Designmodus und nicht im Ladevorgang befindet.
|
AW: Nicht-visuelle Komponenten dauerhaft ausblenden?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Gut, hab ich nun gemacht:
Delphi-Quellcode:
Ich habe jetzt auch Code hinzugefügt, damit die "nutzbare" Fläche der Form gleich bleibt, wenn der Nutzer von Unten nach Rechts oder zurück umschaltet:
constructor TNonVisualArea.Create(Owner: TComponent);
begin inherited; Align := alBottom; Height := 100; if csDesigning in ComponentState then begin if Owner is TForm then TForm(Owner).Height := TForm(Owner).Height + Height; end; end;
Delphi-Quellcode:
procedure TNonVisualArea.SetRight(Value: Boolean);
begin FRight := Value; if FRight then begin Self.Parent.Height := Self.Parent.Height - Self.Height; Align := alRight; Self.Parent.Width := Self.Parent.Width + Self.Width; end else begin Self.Parent.Width := Self.Parent.Width - Self.Width; Align := alBottom; Self.Parent.Height := Self.Parent.Height + Self.Height; end; end; |
AW: Nicht-visuelle Komponenten dauerhaft ausblenden?
Zitat:
BTW: Im Zip aus Posting 23 hast du
Delphi-Quellcode:
geschrieben. Mein D2007 installiert dann die Kompo nicht. Mit
procedure register;
Delphi-Quellcode:
(großes R!) geht's.
procedure Register;
|
AW: Nicht-visuelle Komponenten dauerhaft ausblenden?
Zitat:
Zitat:
|
AW: Nicht-visuelle Komponenten dauerhaft ausblenden?
Das mit dem Verschieben ist eben noch ein Problem. Hab jetzt in dem "Hinweis" noch nicht nachgesehn, aber die Stelle, wo ich weiß, daß dort die Position der Komponente gespeichert wird, die kann man zwar setzen, aber der FormEditor bekommt das nicht mit.
So, fertig mit Arbeit ... nun erstmal heimfahren. |
AW: Nicht-visuelle Komponenten dauerhaft ausblenden?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich hab selber vor Jahren mal versucht, einen GExperten zu schreiben, der NV-Kompos per Menü versteckt. Da ist aber nie was Fertiges draus geworden. Mal sehen, ob ich den noch finde. Edit: Hier isser: Anhang 37958 Sicher nur mit einer uralten GExperts-Version zu kompilieren. Ich schau mal, was geht. Zitat:
|
AW: Nicht-visuelle Komponenten dauerhaft ausblenden?
Zitat:
Edit: Habe jetzt erst gemerkt, dass du das Verschieben der Komponenten meintest. |
AW: Nicht-visuelle Komponenten dauerhaft ausblenden?
Liste der Anhänge anzeigen (Anzahl: 1)
So, nun kann man auch die Größe der NonVisualArea verändern (im Inspektor sowie durch Ziehen am oberen bzw. linken Anfassfeld), wobei die Größe der Form ohne Änderung der Nutzfläche geändert wird!
Jetzt fehlt nur noch das automatische Verschieben der NV-Komponenten. |
AW: Nicht-visuelle Komponenten dauerhaft ausblenden?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz