lab111

Journal

HTML Renderer

Geschrieben am 24. Juli 2009, Keine Kommentare

Für den Fall, wenn ein normales Label nichts kann, ein RichTextBox zu wenig kann und ein WebBrowser viel zu viel Unnötiges kann: Wie wär’s mit HTML Renderer? Die perfekte Zwischenlösung, um ein paar Formatierungen und Links in einem Text unterzubringen.

RichTextBox wäre schon fast ausreichend… Man könnte ReadOnly auf true setzen und den Text trotzdem markieren und kopieren. Aber das einzige, was es nicht kann, sind Hyperlinks darstellen. (Genaugenommen können sie’s, haben aber entweder als Text die URL oder man muss auf komplizierte Win32 APIs zugreifen)

Wieso dann kein WebBrowser Control verwenden? Mal eine Gegenfrage: Hat man Lust eine ganze Kopie von Internet Explorer in seine eigene Anwendung einzubetten? Sicherlich nicht! Falsche Darstellung/Interpretation vom Boxmodell, CSS und andere Großigkeiten. Außerdem stört das Kontextmenü und die immervorhandene, vertikale Scrollbar.

HTML Renderer in Aktion

HTML Renderer tut was der Name sagt: HTML darstellen. Ohne Schnickschnack. Es besteht aus 3 Controls: HtmlPanel, HtmlLabel und HtmlTooltip. Diese können sogar CSS interpretieren und darstellen. Allerdings ist sie nicht vollständig: background-image, float, height und CSS Selektoren werden gar nicht unterstützt, aber dafür kann es ein paar zusätzliche Kleinigkeiten wie z.B. corner-radius und background-gradient. Tabellen kann es auch perfekt darstellen.

.NET Programme komprimieren

Geschrieben am 25. Mai 2009, Keine Kommentare

Wenn man eine 3rd Party Library mit in seiner Anwendung einbezieht, muss man die dazugehörige .dll Datei immer mitnehmen, außer man erstellt eine Installationsroutine, die das Ganze in den GAC kopiert. Das ist sehr lästig und bei solchen kleinen Programmen, die ich entwickle hat das ganze auch keinen Sinn.

Glücklicherweise gibt es ein tolles kleines Kommandozeilenprogramm namens .NETZ, das alle dazugehörigen .dlls komprimiert und sie zusammen in die .exe Datei einbindet. Die Anwendung ist sehr einfach:

netz -s -z anwendung.exe bibliothek1.dll bibliothek2.dll

Einfach in der Kommandozeile ausführen und man bekommt eine einzige ausführbare Datei… Die Parameter -s und -z nicht vergessen, sonst komprimiert es nur die einzelnen Dateien. Hab das mal mit Homeworks gemacht.

MySQL Datenbankverwaltung unter Mac

Geschrieben am 16. März 2009, Keine Kommentare

Sequel Pro Dock Icon

Sequel Pro ist eine kostenlose MySQL Datenbankverwaltungsanwendung für den Mac. Sehr elegant natürlich (Welche Software ist auf dem Mac denn nicht elegant, mal abgesehen von javabasierte Anwendungen?)

Sequel Pro kann fast alles, was man sich wünschen kann. Favoriten, Bearbeitung, Import/Export und sogar eine Erstellung von einem MySQL CREATE TABLE Code ist möglich. Und alles unter einer schönen Oberfläche.

Sequel Pro

Das Einzige, was mir fehlt, ist eine MySQL Anfragengenerator, mit der man ganz einfach per Mausklick Regeln erstellen kann wie bei einer intelligenten Wiedergabeliste in iTunes. Natürlich kann man auch selbst MySQL Queries schreiben, aber das ist eben nicht so elegant. ;)

Savant

Geschrieben am 5. März 2009, 1 Kommentar

Ich bin kürzlich auf dieses kleine PHP Template Engine gestoßen: Savant. Und ein Blick in die Dokumentation hat gezeigt, dass sie sehr simpel und kompakt (chrm Smarty) aufgebaut ist, ist aber trotzdem erweiter- und anpassbar.

Savant

Savant benutzt keine Pseudo-PHP Tags, um Templates zu rendern (chrm Smarty), sondern normales PHP. Außerdem beinhaltet es ein paar nützliche Filter-Funktionen, die XSS (Cross Site Scripting) verhindern soll, usw.

Ein einziger Nachteil darf man nicht unerwähnt lassen: Savant 3 hat keine eingebaute Cache Klasse. Es ist vor allem für kleinere Projekte geeignet, für die man nicht gleich ein riesengroßes Präsentationsframework einbinden will.

Browsererkennung mit Javascript

Geschrieben am 2. Februar 2009, Keine Kommentare

Syntax Error -  Folded Up Beyond All Recognition

Creative Commons License Foto von Simon Pow

Manchmal will man einfach gerne den Browser per Javascript bestimmen. Für solche Zwecke gibt es zum Glück ganz wunderbar kleine Code Schnipseln, die ich auf The Spanner gefunden habe…

Das Besondere daran ist, dass man sie nicht durch schon bestehendes Javascript manipulieren kann.

// Firefox
FF = /a/[-1]=='a';

// Firefox 3
FF3 = (function x(){})[-5]=='x';

// Firefox 2
FF2 = (function x(){})[-6]=='x';

// Internet Explorer
IE = 'v'=='v';

// Safari
Saf = /a/.__proto__=='//';

// Chrome
Chr = /source/.test((/a/.toString+''));

// Opera
Op = /^function (/.test([].sort);

Man fragt sich vielleicht: wozu das Ganze? Gibt doch genügend Javascript Frameworks, (wie z.B. Mootools) die das alles von Haus aus erledigen. Aber für kleine Objekte, bei der man kein Framework benötigt wird, kann das ja mal nützlich sein. ;)

Benutzung

if (IE) { alert('Du benutzt Internet Explorer *würg*'); }

Ganz einfach, nicht wahr?

Kategorien

↑ Beam mich nach oben