DockPanel Suite

Im Visual Studio gibt es eine wunderbare Funktionalität zum docken von Fenstern. Möchte man so etwas nachbauen kann man natürlich sein Geld in eine Komponentensammlung investieren. Die andere Variante ist es die DockPanel Suite zu benutzen welche unter der MIT Lizenz steht. Sie bietet dabei eine sehr große Flexibilität was das Fenstermanagement angeht und ist erstaunlich robust gebaut. Zu finden ist die Suite unter http://sourceforge.net/projects/dockpanelsuite/.

Das Ding hat auch ein kleines Problem mit dem Rahmen im Fullscreenmodus. Dazu kommentiert man einfach ein paar Zeilen in der DockWindow.cs aus:

		public virtual Rectangle DisplayingRectangle
		{
			get
			{
				Rectangle rect = ClientRectangle;
				// if DockWindow is document, exclude the border
				if (DockState == DockState.Document)
				{
					//rect.X += 1;
					//rect.Y += 1;
					//rect.Width -= 2;
					//rect.Height -= 2;
				}

                                ...

Danach ist das Problem Geschichte und das Control angenehm rahmenlos :)

Weitere Informationen gibt es unter:
https://sourceforge.net/projects/dockpanelsuite/forums/forum/402316/topic/2011982/index/page/1

Interessanter C++ Blog

Nach der Umstellung auf Visual Studio 2010 hatte ich einige Probleme mit einigen C/C++ Projekten. Einfach weil Microsoft bei manchen Sachen standardkonformer geworden ist. Dadurch funktionierten einige Dinge nicht mehr. Sehr geholfen bei solchen Problemen hat mit der Blog von Martin Richter welcher unter http://blog.m-ri.de/ zu finden ist. Reinschauen lohnt sich ;)

Garbage Collector für C/C++

In C bzw. C++ muss man den Speicher welchen man alloziert auch irgendwann wieder freigeben. Macht man dies nicht entstehen sogenannte Memory Leaks, der Speicher füllt sich so immer weiter. Es wäre doch schön wenn es auch unter C/C++ einen Garbage Collector gäbe welcher am Ende (und zwischendurch) einfach den Speicher von Objekten bereinigt welche nicht mehr benötigt werden. C wäre nicht C wenn nicht schon irgendjemand so etwas implementiert hat. Und so findet man unter http://www.hpl.hp.com/personal/Hans_Boehm/gc/ eine Implementation desselben. Ausprobieren lohnt sich, denn es schont die Nerven ;)

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Memory_leak
http://de.wikipedia.org/wiki/Garbage_Collection

MonoDevelop und der Designer

Ich wollte unter MonoDevelop ein Projekt weiterentwickeln welches ursprünglich für .NET in Visual Studio geschrieben wurde. In diesem Projekt wollte ich dann ein Formular bearbeiten. Mein Problem war das ich nicht in den Designer kam. Aber warum nur? MonoDevelop besaß doch einen Designer…

Nach einigem stöbern in der Dokumentation dämmerte es mir. Der GTK# Designer welcher Mono Develop beiliegt ist nicht für WinForms gedacht. Dazu benötigt man den WinForms Designer welcher nicht Bestandteil des Paketes ist. Eine interessante Seite mit Informationen rund um den WinForms Designer gibt es unter http://www.mono-project.com/WinForms_Designer.

Kontexthilfe Button in Qt Fenstern ausblenden

Möchte man den Button für die Kontexthilfe in Qt Fenstern ausblenden so reicht für das entsprechende Fenster im Konstruktor folgendes zu schreiben:

FormProgress::FormProgress(QWidget *parent) : QDialog(parent)
{
  setupUi(this);

  //WindowsFlags
  setWindowFlags(windowFlags() & (~(Qt::WindowContextHelpButtonHint)));
}

Und schon ist der entsprechende Button in der Titelleiste weg :)