Umzug von Artikeln
Posted in C#, Java Script, Programmieren on May 16th, 2012 by MichelAlle Artikel zum Thema Programmierung ziehen um nach
All coding related articles are moving to projects.mich3l.de
Alle Artikel zum Thema Programmierung ziehen um nach
All coding related articles are moving to projects.mich3l.de
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.
Hier geht’s zu Herrn Schmidt’s Webseite
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);
}
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.
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.”
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
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
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
},
//
//