Thomas Wölfers Baustatik-Blog

Thomas Wölfers Baustatik Blog

Neue Updates verfügbar


Diesmal für: Xmau (Mauerwerksberechnungen) und Xdur (Durchlaufträger). Alle Details wie immer im Update-Log und im Blog meines Bruders.


Was ich gestern abend gelernt habe: Martini-Cocktails


Die Herstellung von Martini-Cocktails ist interessanter, als man meinen möchte. Das ganze geht so:

Man nimmt ein wenig Martini (~ 1 cl) und tut es in den Cocktailmixer, und zwar zusammen mit Eiswürfeln. Das ganze rührt man dann ordentlich durch.

Jetzt kommt der interessante Teil: Nachdem man genug gerührt hat, kippt man den Martini wieder weg. Und zwar nicht in sich rein, sondern z.B. in den Ausguss. Als Resultat hat man etwas das sich offenbar "parfümierte Eiswürfel" nennt. (Den an dieser Stelle anbringbaren Witz über bestimmte weibliche Menschen lasse ich mal weg. :-))

Zugegebenermassen wird es nun weniger interessant: Man tut die Eiswürfel in ein Cocktail-Glas, in das man vorher eine Olive getan hat. Dann kommt Gin drüber. Fertig.


Outlook Express und die Fehlernummer 0x800C0133


Was ist zu tun, wenn Outlook Express keine eMails mehr abholt, und statt dessen nach einer langen Wartezeit eine Fehlermeldung mit der Fehlernummer 0X800C133 anzeigt?

Outlook Express speichert eingegangene, gelöschte und sonstwie verarbeitete Mails in Dateien mit der Dateierweiterung "dbx". Für jeden Ordner den OE anzeigt, gibt es eine solche Datei. Diese Dateien haben ein Limit bei der Dateigröße von 2 GB. Wird diese Größe überschritten, können keine weiteren Inhalte mehr darin abgelegt werden - und das abholen von Mails schlägt dann mit der angegebenen Fehlernummer fehl.

Wenn der Fehler auftritt kann man die eigene Festplatte einfach nach diesen *.dbx-Dateien durchsuchen, und diejenigen die zu groß geworden sind, umbenennen: Danach geht auch das abholen von Mails wieder.

Outlook aus Office, der große Bruder von Outlook Express, macht das übrigens deutlich besser und hat eine eingebaute Archivfunktion, die sich selbstständig darum kümmert, das die Datenbankdateien nicht zu groß werden.

 


Ein UITypeEditor und ein anonymes Delegate


Angenommen, man braucht einen ganz einfach UITypeEditor, zum Beispiel einen, der in einer Listbox eine Auswahl an Möglichkeiten anbietet. Das ist verhältnismäßig einfach zu haben: Die Kurzform von so einem Ding sieht so aus:

public class StyleFilenameEditor : UITypeEditor
{
   public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
   {
      ListBox listBox = new ListBox();
      listBox.Items.Add("Text 1"); // usw.
      IWindowsFormsEditorService editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
editorService.DropDownControl(listBox);
   

      return listBox.SelectedItem;
   }

   public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
   {   
      return UITypeEditorEditStyle.DropDown;
   }
}

Feine Sache, allerdings mit einem kleinen Haken: Man bekommt die Listbox nicht mehr zu, wenn man den Code so verwendet, wie ich ihn im Beispiel hingeschrieben habe. Grund: Der EditorService erwartet, das man ihm mitteilt, wenn er das zugehörige Drop-Down schliessen soll. Die offensichtliche Art ist dabei die folgende. Dabei merkt man sich den editorServive in einer privaten Variable, und hängt einen Event-Handler an das SelectedIndexChanged-Event der Listbox. In diesem Handler benutzt man dann die private Variable und ruf CloseDropdown auf:

      this.editorSerivce = ...

      listBox.SelectedIndexChanged +=new EventHandler(listBox_SelectedIndexChanged);

      void listBox_SelectedIndexChanged(object sender, EventArgs e)
      {
         this.editorService.CloseDrowDown();
      }

Mit einem anonymen Delegate geht das aber viel schöner. Man braucht keinen separaten Event-Handler und auch keine private Variable:

         listBox.SelectedIndexChanged += delegate(object sender, EventArgs e) { editorService.CloseDropDown(); };


Ein kurzer Tipp für unsichtbare Fenster


Das passiert mir manchmal: Ich verwende Programme die sich ihre "letzte" Fenster-Position merken. Dann verändere ich etwas an der Bildschirmkonfiguration - um beim nächsten Start eines solchen Programmes, ist dessen Fenster nicht mehr sichtbar. Grund: Wegen der veränderten Bildschirmkonfiguration liegt die "letzte" Startposition des Programms nun links oder rechts vom Bildschirm, also "außerhalb" der sichtbaren Fläche.

Jetzt kann man zwei Dinge tun. Erstens: Man sucht in der Registry nach Einträgen des betroffenen Programmes, hofft diejenigen zu finden, die sich mit der Fensterposition beschäftigen, und bastelt daran herum. Bis das Programm wieder an einer sichtbaren Stelle auftaucht - oder irgendwann einfach gar nicht mehr startet, weil seine Registry-Einträge verbastelt sind.

Besser (und viel einfacher) ist folgendes: Man startet das Programm. Dann klickt man in der Taskbar (dort ist das Programm-Icon nämlich auch dann sichtbar, wenn das Fenster unsichtbar ist) mit der rechten Maustaste auf das Programm-Icon und wählt den Befehl "Move" (verschieben). Dann drückt man einfach so lange auf die Cursor-rechts (oder -links) Taste, bis das Fenster zumindest teilweise sichtbar ist. Dann drückt man einmal Return (Enter). Fertig - jetzt kann man das Fenster einfach wieder mit der Maus an die gewünschte Stelle bewegen.


MaxiVista: Neue Version


Ich hatte schonmal drüber geschrieben: MaxiVista, ein Tool, mit dem man seine Arbeitsfläche am Bildschirm prima "aufbessern" kann. Jetzt gibt es eine neue Version davon - was alles neues drin ist, steht hier.

(Hinweis: Die Jungs von MaxiVista haben mich um diesen Hinweis gebeten, und mir dafür eine Voll-Lizenz für die neue Version geschenkt. Allerdings benutze ich MaxiVista momentan selbst nicht, da ich auf dem Desktop bereits mit 3 Bildschirmen ausgestattet bin.)


Killerspiele


Immer wenn solche Tragödien stattfinden, werden kurz danach die Rufe nach einem Verbot von "Killerspielen" laut. Dazu mag man stehen wie man will. Ich finde es aber interessant, das dabei eine simple Tatsache immer gern unter den Tisch fällt: Die Opfer werden meistens nicht mit Killerspiel-Kartons beworfen und dadurch verletzt oder gar getötet, sondern gängigerweise mit Schusswaffen beschossen.

Das scheint aber irgendwie kein Problem zu sein: Liegt vermutlich daran, das Schützenvereine und sonstige Veranstaltungen, mit denen man an derlei Waffen kommt, den verantwortungsvollen Umgang damit hochhalten.