Umzug von Artikeln

Posted in C#, Java Script, Programmieren on May 16th, 2012 by Michel

Alle Artikel zum Thema Programmierung ziehen um nach
All coding related articles are moving to 
projects.mich3l.de

Horizontal Gauge

Posted in C#, Programmieren on May 9th, 2012 by Michel

Eine einfache horizontale Anzeige. Zwei Typen stehen zur Wahl: Bar und Line. Es können drei Bereiche der Anzeige in unterschiedlichen Farben angezeigt werden. Maxima (peaks) können separat angezeigt werden.

Just a horizontal gauge with two gauge types (bar and line). There are three ranges that  can be configured in different colors and a maximum (peak) indicator.

==> projects.mich3l.de

Tags:

Neue Bilder von Herrn Schmidt

Posted in Uncategorized on August 28th, 2011 by admin

Herr Schmidt und der Gartenschlauch…

have fun

Tags:

Der Herr Schmidt ist da :-)

Posted in Uncategorized on June 17th, 2011 by admin

Hier geht’s zu Herrn Schmidt’s Webseite

Tags:

Ein ContextMenu für viele Controls

Posted in C#, Programmieren on April 10th, 2011 by admin

Oft ist es sinnvoll, ein ContextMenu für mehrere controls zu verwenden. Typische Beispiel sind hier der TreeView oder der ListView. Beide haben viele Nodes/Items, auf welche über ein ContexMenu die gleichen Aktionen ausgeführt werden.

Doch von welchem Control kam jetzt der Klick? Folgendes Snippet gibt die Antwort:


private void testToolStripMenuItem_Click(object sender, EventArgs e)
{
   ToolStripMenuItem menuItem = (ToolStripMenuItem)sender;
   ContextMenuStrip cms = (ContextMenuStrip)menuItem.Owner;
   Control sourceControl = cms.SourceControl;
   MessageBox.Show(sourceControl.Name);
}
Tags: ,

Mehr als eine “default route” ?

Posted in Linux, Netzwerk on May 12th, 2010 by Michel

Warum eigentlich? Ein Netz-Interface (etho),  eine IP, ein default GW. Netzwerk kann so einfach sein…
Bei zwei Netzwerkkarten wird es dann aber schon etwas schwieriger. Mit einer default route über eth0 ergibt sich z.B. folgendes Problem. Ein Ping auf die Adresse von eth1 wird über eth0 beantwortet. Auch Anfragen an einen Webserver, der an eth1 lauscht, würden in’s falsche Netz (eth0) beantwortet werden.

Die Lösung für dieses Problem findet mann in iproute2. In seinem Artikel Configuring Multiple Default Routes in Linux erkärt Darian Kindlund sehr gut, wie man mehrere default routs konfiguriert.

Tags:

Sofwarepatente

Posted in Uncategorized on April 20th, 2010 by admin

Eine interessante englischsprachige Dokumentation zur Patentierbarkeit von Software.
Patent Absurdity

Zitat Heise:
“Als besonders anschaulich könnten viele Zuschauer die optische und akustische Umsetzung einer von Richard Stallman angeführten Analogie empfinden. Am Beispiel einer Beethoven-Symphonie zeigt Patent Absurdity, wie sich hypothetische Schutzrechte musikalischer Konzepte auf zukünftige Kompositionen ausgewirkt hätten. Vom eindrucksvollen Werk des Musikgenies wäre wenig übrig geblieben.”

Tags:

Viewport mit ExtJS und PHP

Posted in Java Script, Programmieren on March 18th, 2010 by Michel

Die neue Page Viewport mit ExtJS und PHP zeigt, wie ein Viewport mit allen “regions” erstellt wird. Das ganze wird in einem modularen PHP-Gerüst erstellt, welches es recht einfach macht, neue Funktionen zu integrieren.

Dieses Grundgerüst soll dazu dienen, weitere ExtJS Beispiele darzustellen. Im Zusammenspiel mit einer größeren “Applikation” sind ExtJS Snippets oft verständlicher darzustellen.

Neben dem o.g. Screen-Shot wird die Seite demnächst auch live zu sehen sein. ==>   extjs_samples.mich3l.de

Tags:

ExtJS + TinyMCE = Ext.ux.TinyMCE [update]

Posted in Uncategorized on February 28th, 2010 by admin

Nach Meinung des Programmierers von Ext.ux.TinyMCE, macht es keinen Sinn diese zusätzliche Funtion in den Code aufzunehmen.

Michael! I only not sure that we should extract this function to the outer surface of the control. See, we have actually the very complex TinyMCE component inside our control. It has lot of features and if we’ll make special method for every one of them, it will result in a load of methods that actually have no value – they are not more than wrappers around underlying functionality.

So I would suggest to use withEd() method from outside – it is more straightforward.

Und damit hat er Recht!

Ein Beispiel, wie man an Stelle der neuen Funktion withEd() verwendet:

//
// eine Instanz von Ext.ux.TinyMCE erzeugen
//
var tMCE = new Ext.ux.TinyMCE({
               id     : 'tMCE'
              ,name  : 'textbody'
              /*
               *  Config Options
              */
              ,tinymceSettings: {
                                    /*
                                     *  noch mehr Config...
                                     */
                                }
               });

// Mit dieser Funktion wird dann an der Cursorposition
// Text eingfügt
function insertAtCursor(text)
{
  var editor = Ext.getCmp('tMCE');
  editor.withEd(function()
                {
                  this.ed.execCommand('mceInsertContent',false,text);
                  this.validate();
                });
}

Die Doku zu tinyMCE.execCommand findet man unter wiki.moxiecode.com/index.php/TinyMCE:Commands

ExtJS + TinyMCE = Ext.ux.TinyMCE

Posted in Java Script, Programmieren on February 23rd, 2010 by Michel

Wer mit ExtJS arbeitet wird früher oder später auch dessen Editor Ext.form.HtmlEditor verwenden.
Wenn man zuvor schon mit anderen Editoren – wie z.B. TinyMCE – gearbeitet hat, kann man mit HtmlEditor nicht zufrieden sein.
Auf der Suche nach Ext-Plugins und TinyMCE stößt man schnell auf das Angebot von Andrew Mayorov.
Sein ExtJS Plugin Ext.ux.TinyMCE v0.6 bietet Andrew in seinem Blog zum download an.
Die aktuelle Version 0.6 läuft stabil und ist einfach zu handhaben. Andrew’s Blog zeigt anhand zweier Beispiele wie’s funktioniert.

Eine wichtige Funktion fehlt der V0.6 allerdings noch. Es gibt keine Möglichkeit, Text an einer beliebigen Cursor-Position einzufügen.
Die Methoden setValue() und getValue() von Ext.ux.TinyMCE lassen es nur zu, den gesamten Inhalt des Editors zu behandeln.
Um dieses Manko zu beheben habe ich den u.a. Code in das Modul eingebaut. Die Funktion insertValueAtCursor() fügt Text an der aktuellen Cursor-Position oder der aktuellen Auswahl ein.

/** ----------------------------------------------------------
 */
 setValue : function( v ){

 // Andrew's code

 },

 /** ----------------------------------------------------------
 */

 // ******* New function *******

 insertValueAtCursor : function( v ){
 this.value = v;
 if( this.rendered )
 this.withEd( function(){
 this.ed.execCommand('mceInsertContent',false,v);
 this.validate();
 });
 },

 /** ----------------------------------------------------------
 */
 isDirty : function() {
 // Andrew's  code
 },

//
//
Tags: ,
Better Tag Cloud