AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Nicht-visuelle Komponenten dauerhaft ausblenden?
Thema durchsuchen
Ansicht
Themen-Optionen

Nicht-visuelle Komponenten dauerhaft ausblenden?

Ein Thema von PeterPanino · begonnen am 28. Okt 2012 · letzter Beitrag vom 5. Nov 2012
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#21

AW: Nicht-visuelle Komponenten dauerhaft ausblenden?

  Alt 30. Okt 2012, 16:45
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:
if Owner is TForm then
  TForm(Owner).Height := TForm(Owner).Height + Height;
Damit wird die Höhe der Form automatisch angepasst, wenn die TNonVisualArea-Komponente eingefügt wird.

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:
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;
Bitte um konstruktive Kritik!
Angehängte Dateien
Dateityp: zip HideComps.zip (1,7 KB, 0x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#22

AW: Nicht-visuelle Komponenten dauerhaft ausblenden?

  Alt 30. Okt 2012, 16:56
1. darf nur gemacht werden, wenn sich die Form im Designmodus und nicht im Ladevorgang befindet.
$2B or not $2B
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#23

AW: Nicht-visuelle Komponenten dauerhaft ausblenden?

  Alt 30. Okt 2012, 17:11
1. darf nur gemacht werden, wenn sich die Form im Designmodus und nicht im Ladevorgang befindet.

Gut, hab ich nun gemacht:
Delphi-Quellcode:
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;
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:
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;
Angehängte Dateien
Dateityp: zip HideComps.zip (1,7 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#24

AW: Nicht-visuelle Komponenten dauerhaft ausblenden?

  Alt 30. Okt 2012, 17:41
2. Sollte sich der Nutzer entschließen, die TNonVisualArea-Komponente wieder zu entfernen (nicht empfohlen), wird die Höhe der Form automatisch zurückgesetzt:
Hier wäre es vielleicht günstig, wenn alle "auf" der TNonVisualArea-Komponente liegenden nichtvisuellen Komponenten um deren Höhe nach oben verschoben würden - sonst "verschwinden" sie ja.

BTW: Im Zip aus Posting 23 hast du procedure register; geschrieben. Mein D2007 installiert dann die Kompo nicht. Mit procedure Register; (großes R!) geht's.
Uli Gerhardt
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#25

AW: Nicht-visuelle Komponenten dauerhaft ausblenden?

  Alt 30. Okt 2012, 17:51
2. Sollte sich der Nutzer entschließen, die TNonVisualArea-Komponente wieder zu entfernen (nicht empfohlen), wird die Höhe der Form automatisch zurückgesetzt:
Hier wäre es vielleicht günstig, wenn alle "auf" der TNonVisualArea-Komponente liegenden nichtvisuellen Komponenten um deren Höhe nach oben verschoben würden - sonst "verschwinden" sie ja.
Werde ich versuchen.

BTW: Im Zip aus Posting 23 hast du procedure register; geschrieben. Mein D2007 installiert dann die Kompo nicht. Mit procedure Register; (großes R!) geht's.
Seltsam! Aber gut, habe ich geändert. Aber die Original-Komponente stammt von himitsu. Ich habe lediglich Änderungen hinzugefügt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#26

AW: Nicht-visuelle Komponenten dauerhaft ausblenden?

  Alt 30. Okt 2012, 18:08
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#27

AW: Nicht-visuelle Komponenten dauerhaft ausblenden?

  Alt 30. Okt 2012, 18:18
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.
Soweit hab ich wieder gar nicht gedacht.
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: NonVisExperts_Again.zip
Sicher nur mit einer uralten GExperts-Version zu kompilieren. Ich schau mal, was geht.

So, fertig mit Arbeit ... nun erstmal heimfahren.
Schönen Feierabend!
Uli Gerhardt

Geändert von uligerhardt (30. Okt 2012 um 18:26 Uhr)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#28

AW: Nicht-visuelle Komponenten dauerhaft ausblenden?

  Alt 30. Okt 2012, 18:44
Das mit dem Verschieben ist eben noch ein Problem.
Was meinst du mit Verschieben? Das Umschalten von Unten nach Rechts und zurück funktioniert bei mir ohne Probleme.

Edit: Habe jetzt erst gemerkt, dass du das Verschieben der Komponenten meintest.

Geändert von PeterPanino (30. Okt 2012 um 19:34 Uhr)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#29

AW: Nicht-visuelle Komponenten dauerhaft ausblenden?

  Alt 30. Okt 2012, 19:24
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.
Angehängte Dateien
Dateityp: zip HideComponents.zip (1,9 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#30

AW: Nicht-visuelle Komponenten dauerhaft ausblenden?

  Alt 30. Okt 2012, 19:57
Zitat:
NonVisExperts_Again.zip
Damit läßt sich was anfangen.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz