-
Forum: Die Delphi-IDE
by PeterPanino,
5. Nov 2012
Hallo Leute! Hier ist Version 1.4, in der ein wichtiger Fehler behoben wurde: "Sub-Komponenten" wie TMenuItem oder TAction wurden auch als nicht-visuelle Konponenten gezählt. Dadurch ergaben sich oft unschöne Löcher in der sonst sauber geordneten Reihe der nicht-visuellen Komponenten auf der NVA.
-
Forum: Die Delphi-IDE
by PeterPanino,
5. Nov 2012
So, jetzt ist die Version 1.3 fertig!
Der Fehler mit DesignIntf ist behoben - Programme, die diese Komponente verwenden, lassen sich wieder kompilieren.
Neue Property SortType (stClassname, stName, stNone): Sortierung der nicht-visuellen Komponenten auf der NVA nach Klassennamen, Komponentennamen und unsortiert.
Verschiedene andere Optimierungen.
Bitte um konstruktive Kritik!
-
Forum: Die Delphi-IDE
by PeterPanino,
3. Nov 2012
Hier ist die neueste Version. Folgendes wurde hinzugefügt:
Property AutoArrange: Wenn True dann NV-Icons automatisch in NVA anordnen
Doppelklick auf NVA: Nicht-visuelle Komponenten in NVA anordnen
NVA-Kontextmenü "Rearrange non-visual icons in non-visual area": Nicht-visuelle Komponenten in NVA anordnen
-
Forum: Die Delphi-IDE
by PeterPanino,
3. Nov 2012
Hier ist die neue Version, die folgendes kann:
Die nicht-visuellen Komponenten auf der Form automatisch in die NVA einordnen! (Wenn eine Eigenschaft der NVA verändert wird, z.B. Höhe, Breite, Offset, Iconabstände)
Published Properties: HDistance, VDistance, TopOffset, LeftOffset (mit diesen Eigenschaften kann man bestimmen, wie die Icons angeordnet werden)
-
Forum: Die Delphi-IDE
by PeterPanino,
2. Nov 2012
Hier ist es. Bitte untersucht es auf Herz und Nieren und meldet mir alle Fehler und Unzulänglichkeiten!
Cut/Paste funktioniert jetzt problemlos. Man kann auch 2 Stück einfügen (unten und rechts, oder auch 2 unten oder zwei rechts!). Bin selber erstaunt, dass das funktioniert.
Ich habe das Ding umbenannt, so kann man es auch parallel zu himitsus Version verwenden. ;-) (Aber bitte nicht...
-
Forum: Die Delphi-IDE
by PeterPanino,
1. Nov 2012
Es ist mir jetzt gelungen, den Paste-Vorgang zu isolieren - ist ziemlich komplex. Damit sollten alle Probleme gelöst sein. Ich werde das Zeug gleich mal hochladen.
-
Forum: Die Delphi-IDE
by PeterPanino,
1. Nov 2012
Das einzige Problem ist jetzt noch: Wenn man NonVisualArea ausschneidet und wieder einfügt, wird die Form-Breite auf 124 verkleinert. Ich habe bis jetzt noch nicht herausgefunden warum und wo die Form verkleinert wird. Hast du eine Idee?
-
Forum: Die Delphi-IDE
by PeterPanino,
1. Nov 2012
Habe ich jetzt nach Klassenvariablen geändert. Aber warum sollte jemand mehrere Instanzen von TNonVisualArea erzeugen? Analoge Frage: Wieso sollte jemand mehrere Instanzen von z.B. TApplicationEvents erzeugen?
-
Forum: Die Delphi-IDE
by PeterPanino,
1. Nov 2012
Das ist keine "blöde Idee", sondern hilfreich für den Benutzer.
Ich habe in keinem der oben angeführten Fälle ein Problem gesehen, außer bei "ausgeschnittene/kopierte Komponente einfügen". Aber für diesen in der Praxis unwahrscheinlichen Fall kann man auch eine Lösung finden. Konstruktive Frage: Wie kann man einen Einfügen-Eventhandler schreiben?
-
Forum: Die Delphi-IDE
by PeterPanino,
1. Nov 2012
Wieso sind die im implementation-Teil deklarierten Variablen global?
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
@ himitsu
Sehr nett! Aber das ist ja ein ganz anderer Code!
1. Bei TNonVisualHidden funktioniert die Interface-Synchronisierung noch nicht.
2. Bei der Vergrößerung von NonVisualArea wird die Fenstergröße nicht angepasst. Wäre aber sinnvoll, da der Anwender seine "Nutzfläche" ja nicht verkleinern will, wenn er die NonVisualArea vergrößert.
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
Das CnWizard Tool "Arrange the non-visual Components" verschiebt die NV-Komponenten ja auch, und zwar dauerhaft. Leider ist es mir noch nicht gelungen, den Source-Code dafür zu finden.
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
Inzwischen habe ich herausgefunden, wie man die Positionen der nicht-visuellen Komponenten erhält:
for i := 0 to TForm(Owner).ComponentCount - 1 do
begin
if not (TForm(Owner).Components is TControl) then
begin
CodeSite.Send('Left', TForm(Owner).Components.Name + ': ' +
IntToStr(LongRec(TForm(Owner).Components.DesignInfo).Lo));
end;
end;
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
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.
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
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.
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
Werde ich versuchen.
Seltsam! Aber gut, habe ich geändert. Aber die Original-Komponente stammt von himitsu. Ich habe lediglich Änderungen hinzugefügt.
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
Gut, hab ich nun gemacht:
constructor TNonVisualArea.Create(Owner: TComponent);
begin
inherited;
Align := alBottom;
Height := 100;
if csDesigning in ComponentState then
begin
if Owner is TForm then
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
Ich habe folgende Verbesserungen in TNonVisualArea eingefügt:
1. Damit der "nutzbare" Bereich der Form gleichbleibt, habe ich folgenden Code im constructor eingefügt:
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...
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
Der Open Source CnPack Wizard enthält ein Tool "Arrangiere nicht sichtbare Komponenten". Hier könnte man sich also abschauen, wie man "nicht sichtbare Komponenten" unterscheidet sowie verschiebt.
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
Die Panel-Lösung ist zwar nicht sehr elegant, würde aber ihre Funktion erfüllen. Sie würde aber an Eleganz gewinnen, wenn:
1. TNonVisualArea beim Einfügen der Komponente selbständig automatisch die Form vergrößern würde
2. Bei jeder Änderung von NonVisualArea.Height im Inspektor die Höhe der Form (und auch die vertikale Position der nichtvisuellen Komponenten) angepasst würde, damit die...
-
Forum: Die Delphi-IDE
by PeterPanino,
30. Okt 2012
Ist sehr nett und wäre evtl. eine brauchbare Lösung. Der NonVisual-Bereich sollte aber UNTER dem Formular eingefügt werden und nicht IM Formular. Und derzeit sieht man den Bereich noch, wenn das Programm läuft.
-
Forum: Die Delphi-IDE
by PeterPanino,
28. Okt 2012
Das wäre IDEAL! :thumb: Ein mit einem Splitter veränderbarer Bereich!
-
Forum: Die Delphi-IDE
by PeterPanino,
28. Okt 2012
S. auch QC Report #2730: Hier werden auch noch ausführlicher die Argumente angeführt, die gegen die Verwendung von TDataModule sprechen.
-
Forum: Die Delphi-IDE
by PeterPanino,
28. Okt 2012
Schon wieder so ein Workaround! :(
Dieser Vorschlag gefällt mir schon besser! 8-)
-
Forum: Die Delphi-IDE
by PeterPanino,
28. Okt 2012
Damit werden die nicht-visuellen Komponenten zusammen mit dem DataModul - also zu einem anderen Zeitpunkt - erzeugt als das Formular, in dem sie verwendet werden, was manchmal Probleme ergibt. Komm bitte nicht mit diesen Workarounds - richtige Lösungen sind besser! :stupid: :stupid: