Design Changes

26. Februar 2008 20:26

Vor ein paar Tagen hatte ich ein wenig über den kommenden Dialog zum sortieren von Objekten geschrieben. Kurz darauf stellte sich aber heraus, das die Sache so wie ursprünglich gedacht doch nicht so besonders hilfreich ist. Darum funktioniert das ganze nun anders: Zum einen operiert das Umsortieren nur noch auf der Auswahl - die Typen-Auswahl auf dem Dialog ist nur noch dafür da, aus allen ausgewählten Objekten diejenigen mit dem passenden Typ rauszupicken.

Außerdem kann man beim neuen bennen der Objekte nun auch einen Präfix angeben: Damit beginnt der Name dann immer, eine Zahl wird hinten automatisch drangehangen.

War ja klar ...

26. Februar 2008 18:03

Donnerstag gehts zum Wärme tanken in den Urlaub - heute bekomme ich eine fette Erkältung :-(

Neue Updates verfügbar

26. Februar 2008 17:49

Ab sofort sind zwei Updates für die Programm Xfun (Fundamentberechnungen) und Xbem (Beton-Querschnittsbemessungs) verfügbar. Details dazu stehen wie immer im Update-Protokoll und im Blog meines Bruders.

Interessantes bei Uninformed

23. Februar 2008 16:52

Interessanter Artikel (besonders für Fans von McAfee und Kaspersky) beim Uninformed Magazin: Anti-Virus Software Gone Wrong

Unterhaltung fürs Wochenende

22. Februar 2008 10:36

Diesmal ein wenig Musik: Von Kyte aus Leicestershire.

Helden der Nacht

22. Februar 2008 00:40

Grad im Kino gesehen: Helden der Nacht

Hätte nicht geschadet, wenn man da ein paar "Strecken" rausgeschnitten hätte. So ungefähr 1.5 Stunden zum Beispiel....

Kommende Attraktionen

20. Februar 2008 18:05

Beim Ausdruck der Eingabedaten (und auch in der Dokumenten-Ansicht) werden die Objekte zur Zeit in der Reihenfolge berücksichtigt, in der sie erzeugt wurden. Wenn man dann hin- und wieder Objekte löscht und neue erzeugt, dann kommen die Objekte dem Namen nach "durcheinander". Besonders wenn man viele Objekte erzeugt hat, verliert die Sache stark an Übersichtlichkeit.

Ab der nächsten Version kann man da zwei Dinge gegen unternehmen: Es gibt dann nämlich einen neuen Befehl, mit dem man verschiedene Objekte anhand diverser Eigenschaften neu sortieren kann: Damit kann man zum Beispiel die Knoten in aufsteigender X-Richtung sortieren. Außerdem kann man damit auch neue Namen für die Objekte vergeben - dann haben die Elemente "aufsteigende" Namen...

Windows Vista: Mein Lieblingsfeature

20. Februar 2008 17:55

Mein absolutes Lieblingsfeature von Windows Vista: Das Media-Center (das leider nicht bei allen Versionen von Vista dabei ist.)

Um genau zu sein: Das Media-Center hat eine ganze Menge Funktionen, und die, die ich so mag, ist der digitale Videorekorder. Man steckt eine TV-Karte an (ich habe eine Cinergy DT von TerraTec) und schon hat man einen Videorekorder und einen Fernseher. Das Fernsehprogramm holt sich das Media-Center selbstständig aus dem Internet: Komplett mit Liste der Schauspieler, Beschreibung der Sendung, und allem was man sonst so von einem Fernsehprogramm will.

Man kann dann "ganz normal" Fernsehen - aber im laufenden Programm auch einfach auf "Pause" drücken, wenn man zum Beispiel kurz telefonieren muss. Aufnehmen tut das ganze natürlich auch: Dabei gibt es mehrere Geschmacksrichtungen. Zum einen kann man ähnlich wie bei einem Videorekorder einen Sender, eine Uhrzeit und einen Aufnahmezeitraum angeben.

Man kann aber auch im Fernsehprogramm einfach auf die Sendung klicken und den Befehl "aufnehmen" auswählen. Am besten finde ich aber eigentlich die Aufnahme per Suchbegriff. Dabei gibt man einfach einen (oder mehrere Suchbegriffe) ein - und das Media-Center nimmt dann alle Sendungen auf, in deren Titel, Beschreibung oder Schauspieler-Liste der Begriff auftaucht. Mit dem Begriff "Bruce Willis" wird zum Beispiel alles rund um den guten Mann aufgenommen: Egal auf welchem Sender und zu welcher Uhrzeit.

Must read ...

19. Februar 2008 14:10

Objekte anhand von Eigenschaften auswählen

19. Februar 2008 12:57

Mit dem Befehl Bearbeiten -> Objektauswahl kann man Objekte im Faltwerksprogramm anhand von 2 unterschiedlichen Möglichkeiten auswählen: Auf dem ersten Reiter des zugehörigen Dialoges geht das über ihre Position im Raum, auf dem zweiten besteht die Möglichkeit, Objekte anhand ihrer Eigenschaften auszuwählen. Damit kann man dann zum Beispiel alle Stäbe auswählen, die einen bestimmten Querschnitt verwenden.

In diesem Zusammenhang gibt es aber noch eine "Spezialfunktion", die ein bisschen schwer zu finden ist: Wenn es sich bei der Eigenschaft um einen numerischen Wert handelt, dann kann man ein bisschen Unschärfe einbauen: Dazu gibt man einen Wertebereich vor.

Will man zum Beispiel alle Knoten die eine X-Koordinate im Bereich von -1 bis +1 haben auswählen, dann gibt man für "X" folgendes ein: 0.0:1.0.

Dadurch wird ein Bereich um den Wert "0" definiert, der einen Ausdehnung von "1" hat - also von -1 bis +1 geht. Drückt man dann auf "Zur Auswahl hinzufügen", dann werden alle Knoten mit X-Koordinaten innerhalb dieses Bereiches ausgewählt.

Neue Updates verfügbar

13. Februar 2008 10:56

Ab sofort gibt es ein Update für Xlist (das Programm für Stahl- und Mattenlisten). Details zum Update wie immer im Update-Protokoll und im Blog meines Bruders.

Anwenderseminar in Hamburg

12. Februar 2008 12:33

Für die Schulung in Hamburg, die am 18.04. stattfindet gibt es noch ein paar freie Plätze: Wir haben den Anmeldeschluss für die Veranstaltung daher auf den 28.2.2008 ausgedehnt. Mehr Informationen zum Seminar gibts hier.

Symptom: Visual Studio 2005 stürzt schlagartig ab

8. Februar 2008 15:09

Sowas kann man ganz leicht produzieren, nur wenn es dann passiert, kann man sich natürlich nicht mehr dran erinnern. Ich zumindest nicht.

Folgende Situation: Man hat eine Solution mit 2 Windows.Forms Projekten. Im einem Projekt baut man ein UserControl, im anderen ist eine Form, die das UserControl verwendet. Man wechselt in das Projekt mit dem User Control, weil man zum Beispiel ein zusätzliches Label, das das Control enthält, herausführen will. Dazu baut man folgenden Code ein:

private Label label;
public Label Label
{
   get { return this.Label; }
}

Das übersetzt sich ganz prima. Jetzt geht man zurück in das andere Projekt, und öffnet die Form, die das UserControl verwendet, um dort den Text des Labels zu setzen. Resultat: Visual Studio verabschiedet sich direkt und vollständig aus dem Speicher.

Grund: Der Property-Getter fürs Label wird vom Forms-Designer aufgerufen - und verursacht dann einen Stack-Überlauf, mit dem Visual Studio nicht klarkommt. Es müsste halt "return this.label" heissen...

Unterhaltung fürs Wochenende

8. Februar 2008 11:08

Diesmal: Cloverfield (läuft schon), Devil Sheep, und Nice.

Die Sache mit dem TypeDescriptionProvider

7. Februar 2008 18:19

Seit .Net 2.0 gibt es mehr als eine Methode, einen CustomTypeDescriptor an eine Klasse zu hängen: Vorher gab es nur die Möglichkeite ICustomTypeDescriptor zu implementieren - seitdem gibt es auch eine weitere Methode, und die basiert auf dem TypeDescriptionProvider.

Die Dokumentation dazu ist allerdings, gelinde gesagt, nicht besonders aussagekräftig. Was man zunächst wissen muss ist die Tatsache, das man einen TypeDescriptionProvider über zwei Methoden mit einem Typ verknüpfen kann.

  1. Per Attribut an der Klassen und
  2. Dynamisch zur Laufzeit

Für den 2. Fall gibt es bei Partho eine ganz gute Beschreibung. Will man die Sache aber als Attribut benutzen, wird es unübersichtlich. (Ich habe jedenfalls heute relativ lange damit gekämpft.). Folgendes ist zu tun:

1. Die Klasse wird per TypeDescriptionProvider-Attribut mit dem Provider verknüpft.

[TypeDescriptionProvider(typeof(MyTypeDescriptionProvider))]
public class MyClass
{

2. Jetzt braucht man den Provider. Um den zu bauen ist es wichtig zu wissen, das die Provider als Stack vorliegen - man kann also mehrer Schichten von Providern übereinander lagern. Beim erzeugen des Providers muss der "Parent" Provider angegeben werden - sonst endet man hinterher ganz ohne Metadaten. Ist man in der ersten Schicht, dann ist der "Parent" Provider der ursprüngliche des behandelten Typs. Die Basisklasse des eigenen Providers ist einfach TypeDescriptionProvider. Die Klasse muss mindestens eine Methode überladen, und zwar die, die den eigentlichen CustomTypeDescriptor liefert:

public sealed class MyTypeDescriptionProvider : TypeDescriptionProvider
{
   public MyTypeDescriptionProvider()
   :
base(TypeDescriptor.GetProvider(typeof(MyClass)))
   {}

   public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
   {
      return new MyTypeDescriptor(base.GetTypeDescriptor(objectType, instance));
   }
}

3. Jetzt braucht es nur noch den Provider selbst. Wenn der zum Beispiel GetProperties() überladen soll, dann ist es dafür nur wichtig, die "ursprünglichen" Properties nicht per TypeDescriptor.GetProperties() zu erfragen (sonst gibts logischerweise einen Stack-Überlauf (logischerweise: Ist wirklich logisch, hat mich aber trotzdem mindestens eine Stunde gekostet :-)), sondern die passende Methode der Basisklasse. Ach ja: Auch der eigene CustomTypeDescriptor hat ein "Parent". Das ganze sieht dann so aus:

    public sealed class MyTypeDescriptor : CustomTypeDescriptor
    {
        public MyTypeDescriptor(ICustomTypeDescriptor parent)
            : base(parent)
        {
        }

        public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
        {
            PropertyDescriptorCollection result = base.GetProperties(attributes);
            // hier wäre eine gute stelle, an den props rumzufummeln
            return result;
        }

    }

Neue Methode: Qualität von Quellcode messen

5. Februar 2008 17:14

Neue Updates verfügbar

4. Februar 2008 12:37

Ab sofort sind neue Updates für den Durchlaufträger, das Fundamentprogramm, das Mattenlistenproramm und den Spannbetonbinder verfügbar. Alle Details finden sich wie immer im Update-Protokoll und im Blog meines Bruders.

Schöne Struktur mit dem Faltwerk

1. Februar 2008 16:09

Nur weil ich schon so lange kein Bild mehr vom Faltwerk hatte...

Hochschulabsolventen Bau auf Allzeit-Tief

1. Februar 2008 09:22

Mehr beim Hauptverband der "Deutschen Bauindustrie".

Unterhaltung fürs Wochenende

1. Februar 2008 09:21

Kalender

<<  Februar 2012  >>
MoDiMiDoFrSaSo
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

View posts in large calendar