Immer noch das "Beste" - hier im Original, damit es nicht verloren geht:
Bible, Dijkstra 5:15
"and the clueless shall spend their time reinventing the wheel
while the elite merely use the Wordstar key mappings"
Saturday, April 9, 2016
Wednesday, January 6, 2016
Logging von anonymen Proceduren...
Anonymen Proceduren...
Anonymen Proceduren nutze ich eigentlich oft, ständig, fast nur noch... :-)
Anonymen Proceduren bringen den Sourcecode an die Stellen "wo" ich "ihn" brauche bzw. wenn ich den Sourcecode nochmal lese, kann ich sofort sehen was an dieser Stelle passiert.
Das macht natürlich nur Sinn, wenn ich den Code nicht an anderer Stelle nochmal brauche, da bietet sich selbstverständlich weiterhin eine "normale" Procedure an.
Jetzt nutze ich natürlich mein FDK und alle darin enthaltenen Funktionen. Das FDK bietet umfangreiche Logging-Funktionen. Das klappt auch bis auf eine Kleinigkeit sehr gut.
Ich konnte bisher nicht loggen, welche Procedure des Parameters ausgerufen wurde.
Beispiel:
Mit vielen Dank an Remy Lebeau (TeamB) für eine Lösung:
Und wieder ist ein Puzzelsteinchen für's FDK fertig.
Anonymen Proceduren nutze ich eigentlich oft, ständig, fast nur noch... :-)
Anonymen Proceduren bringen den Sourcecode an die Stellen "wo" ich "ihn" brauche bzw. wenn ich den Sourcecode nochmal lese, kann ich sofort sehen was an dieser Stelle passiert.
Das macht natürlich nur Sinn, wenn ich den Code nicht an anderer Stelle nochmal brauche, da bietet sich selbstverständlich weiterhin eine "normale" Procedure an.
Jetzt nutze ich natürlich mein FDK und alle darin enthaltenen Funktionen. Das FDK bietet umfangreiche Logging-Funktionen. Das klappt auch bis auf eine Kleinigkeit sehr gut.
Ich konnte bisher nicht loggen, welche Procedure des Parameters ausgerufen wurde.
Beispiel:
procedure Foo<T>(AInvoke : TProc)
begin
...
// Log(AInvoke)
...
end;
Mit vielen Dank an Remy Lebeau (TeamB) für eine Lösung:
type
TFDKProcLogHelper = class abstract
public
class function Proc2String(P : Pointer) : String;
end;
class function TFDKProcLogHelper.Proc2String(P : Pointer): String;
type
PIInterface = ^IInterface;
var
UnitName : String;
Ctx: TRttiContext;
ProcType : TRttiType;
obj : TInterfacedObject;
begin
obj := PIInterface(P)^ as TInterfacedObject;
UnitName := obj.UnitName;
Ctx := TRttiContext.Create;
try
ProcType := Ctx.GetType(obj.ClassType);
finally
Ctx.Free;
end;
Result := '"'+UnitName+'.'+ProcType.ToString+'"';
end;
Jetzt kann ich ich loggen mit:
procedure Foo<T>(AInvoke : TProc)
begin
...
FDKConfig.GetLogger( Self ).Debug( 'Foo<%s>(%s)', [
PTypeInfo( TypeInfo( T ) ).Name,
TFDKProcLogHelper.Proc2String(@AInvoke) ] );
...
end;
Und wieder ist ein Puzzelsteinchen für's FDK fertig.
Wednesday, December 30, 2015
Delphi Codecamp 2016
Delphi Code Camp
Ich freue mich über die Einladung von Bernd Ua - auf dem Delphi Codecamp 2016 - einen Tag über Firemonkey referieren zu dürfen.
Zur Zeit bin ich bei der Ausarbeitung der Themen und würde mich über ein Feedback freuen.
Ich freue mich über die Einladung von Bernd Ua - auf dem Delphi Codecamp 2016 - einen Tag über Firemonkey referieren zu dürfen.
Zur Zeit bin ich bei der Ausarbeitung der Themen und würde mich über ein Feedback freuen.
Friday, December 11, 2015
Norton Ghost 15 unter Windows 10 - nach Update...
Langsam fangen die Windows 10 Updates an zu nerven...
Ghost war schon wieder "tot".
Also wieder die Kompatibilität setzen... Infos gibt es hier.
Ghost war schon wieder "tot".
Also wieder die Kompatibilität setzen... Infos gibt es hier.
Wednesday, December 9, 2015
Delphi 2007 nach Windows 10 Updates!
Und schon wieder will Delphi 2007 nicht funktionieren... (Nach Windows 10 Update)
Also einfach nochmal machen wir hier beschrieben.
Saturday, December 5, 2015
FDK - Das Firemonkey Development Kit
Zuersteinmal das wichtigste:
Unser Team ist Vollständig.
=====> FFFFFF DDDDD K K FireMonkey Development Kit
====> F D D K KK (c) F. Lauter aka Mavarik
===> FFFF D D KKK O. Münzberg aka Sir Rufo
==> F D D K KK
=> F DDDDD K K Version 2015
Momentan planen wir die Features für die 1. Version.
Es zeichnet sich jedoch schon jetzt ab, dass viele Features des FDK's nicht Firemonkey spezifisch sind.
Es wird also auch für "nicht Firemonkey Entwickler" sicherlich einiges Interessantes dabei sein.
- Pattern
- Factorys
- Converter
- Helper, Strukturen und Wrapper
- Threading
- uvm.
Aber natürlich auch FMX-Spezifische Units.
- Mobil-Helper
- Datenbank Wrapper
- Geräte Kommunikation
- Event-Helper
- uvm...
Sowie wir eine Feature-Matrix haben, werden wir diese veröffentlichen.
Selbstverständlich werden wir für unser FDK auch geeignete Schulungen anbieten. Termine stehen jedoch noch nicht fest.
Unser Team ist Vollständig.
=====> FFFFFF DDDDD K K FireMonkey Development Kit
====> F D D K KK (c) F. Lauter aka Mavarik
===> FFFF D D KKK O. Münzberg aka Sir Rufo
==> F D D K KK
=> F DDDDD K K Version 2015
Momentan planen wir die Features für die 1. Version.
Es zeichnet sich jedoch schon jetzt ab, dass viele Features des FDK's nicht Firemonkey spezifisch sind.
Es wird also auch für "nicht Firemonkey Entwickler" sicherlich einiges Interessantes dabei sein.
- Pattern
- Factorys
- Converter
- Helper, Strukturen und Wrapper
- Threading
- uvm.
Aber natürlich auch FMX-Spezifische Units.
- Mobil-Helper
- Datenbank Wrapper
- Geräte Kommunikation
- Event-Helper
- uvm...
Sowie wir eine Feature-Matrix haben, werden wir diese veröffentlichen.
Selbstverständlich werden wir für unser FDK auch geeignete Schulungen anbieten. Termine stehen jedoch noch nicht fest.
Thursday, November 12, 2015
Android & Houdini
Ich habe schon ewig danach gesucht, wie man Houdini "verwendet"... Heute habe ich durch Zufall den entscheidenden Hinweis gefunden..
Einfach im Verzeichnis der Delphi-Installation unter:
{$BDS}\ lib\Android\debug\x86 -> nach x86.old
{$BDS}\ lib\Android\release\x86 -> nach x86.old
Die Verzeichnisse renamen... Und schon wird die Fehlermeldung nicht mehr mit ein kompiliert.
Und Houdini kann ggf. starten.
Leider habe ich noch kein Feedback...
Einfach im Verzeichnis der Delphi-Installation unter:
{$BDS}\ lib\Android\debug\x86 -> nach x86.old
{$BDS}\ lib\Android\release\x86 -> nach x86.old
Die Verzeichnisse renamen... Und schon wird die Fehlermeldung nicht mehr mit ein kompiliert.
Und Houdini kann ggf. starten.
Leider habe ich noch kein Feedback...
Friday, October 2, 2015
Neuer Patch für iOS9.x
Na toll... Nach einer Woche testen...
Endlich ein Patch von EMBT der "alle" Probleme löst.
Naja die App war eh noch nicht durch die Prüfung.
Also noch mal von vorne...
Selbstverständlich hat sich das verhalten unter iOS9 ein klein wenig verändert. Also musste ich sowieso noch mal an den Source.
Na dann wieder 14 Tage warten, bis die App in den Store kann.
Endlich ein Patch von EMBT der "alle" Probleme löst.
Naja die App war eh noch nicht durch die Prüfung.
Also noch mal von vorne...
Selbstverständlich hat sich das verhalten unter iOS9 ein klein wenig verändert. Also musste ich sowieso noch mal an den Source.
Na dann wieder 14 Tage warten, bis die App in den Store kann.
Friday, September 25, 2015
Application Loader ERROR ITMS-90534
Es ist immer wieder schön, wie man als nicht Apple-User rumstolpert und von kryptischen Fehlermeldungen überrascht wird...
ITMS-90534 ist so eine :
"Invalid toolchain. New apps and app updates must be built with the public (GM) versions of XCode 6or later, and ios 8 SDK or later. ios 9 apps for internal TestFlight testers must be built with the latest seed of the ios SDK and uploaded with the latest seed of Xcode"
Eigentlich sollte die Fehlermeldung lauten : Sie haben versucht eine Ad-Hoc App in den Apple Store zu laden. Aber der "Rest" hätte natürlich auch seien können...
Vorher ging es erstmal darum überhaupt den Upload zu starten:
Sie sind nicht berechtigt diesen Service zu nutzen. Lautetet die Fehlermeldung.
Eigentlich hatte ich "nur" das Passwort zu meinem Apple-Account geändert. Leider hat der Application Loader davon nichts mitbekommen. Ein klick auf die eMail Adresse oben links hat das Problem behoben...
Dauer der "Aktion" App in den Store laden somit 2h.
ITMS-90534 ist so eine :
"Invalid toolchain. New apps and app updates must be built with the public (GM) versions of XCode 6or later, and ios 8 SDK or later. ios 9 apps for internal TestFlight testers must be built with the latest seed of the ios SDK and uploaded with the latest seed of Xcode"
Eigentlich sollte die Fehlermeldung lauten : Sie haben versucht eine Ad-Hoc App in den Apple Store zu laden. Aber der "Rest" hätte natürlich auch seien können...
Vorher ging es erstmal darum überhaupt den Upload zu starten:
Sie sind nicht berechtigt diesen Service zu nutzen. Lautetet die Fehlermeldung.
Eigentlich hatte ich "nur" das Passwort zu meinem Apple-Account geändert. Leider hat der Application Loader davon nichts mitbekommen. Ein klick auf die eMail Adresse oben links hat das Problem behoben...
Dauer der "Aktion" App in den Store laden somit 2h.
Friday, September 18, 2015
Delphi und iOS9
iOS9 ist raus und "alle" Apps die mit Delphi XE7 & XE8 compiliert wurden müssen geändert werden.
Es reicht natürlich diese mit Delphi 10 neu zu compilieren. Für alle die kein Delphi 10 haben, gibt es hier eine Anleitung.
Es reicht natürlich diese mit Delphi 10 neu zu compilieren. Für alle die kein Delphi 10 haben, gibt es hier eine Anleitung.
Wednesday, September 9, 2015
Delphi 2007 unter Windows 10!
Nach dem Upgrade von Windows 7/8 auf Windows 10, will Delphi 2007 keine einziges Projekt mehr kompilieren.
Es wird eine "Targets" Datei nicht gefunden...
Zuerst einmal wundert man sich natürlich wofür eine .net Datei benötigt wird.
Die Lösung ist ganz einfach: Nach dem Update existiert ein Ordner
C:\Windows.old
Hier aus dem Unterordner: C:\Windows.old\Windows\Microsoft.NET\Framework\v2.0.50727
alle Borland.*.Tagets Dateien nach
C:\Windows\Microsoft.NET\Framework\v2.0.50727
kopieren...
Dann noch Andy's IDE Fix Pack 4.4 installieren und schon geht Delphi 2007 wieder.
Es wird eine "Targets" Datei nicht gefunden...
Zuerst einmal wundert man sich natürlich wofür eine .net Datei benötigt wird.
Die Lösung ist ganz einfach: Nach dem Update existiert ein Ordner
C:\Windows.old
Hier aus dem Unterordner: C:\Windows.old\Windows\Microsoft.NET\Framework\v2.0.50727
alle Borland.*.Tagets Dateien nach
C:\Windows\Microsoft.NET\Framework\v2.0.50727
kopieren...
Dann noch Andy's IDE Fix Pack 4.4 installieren und schon geht Delphi 2007 wieder.
Monday, September 7, 2015
Mein Youtube Channel...
Nur damit die Infos sofort zu finden sind.
Mein Youtube Channel!
Zugegeben in letzter Zeit ist der Channel "etwas" zu kurz gekommen.
Aber als nächstes werde ich meine Vortrag der Delphi-Tage online stellen... (Nach dem Event)
Mein Youtube Channel!
Zugegeben in letzter Zeit ist der Channel "etwas" zu kurz gekommen.
Aber als nächstes werde ich meine Vortrag der Delphi-Tage online stellen... (Nach dem Event)
Subscribe to:
Posts (Atom)