<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6797681432467884709</id><updated>2012-01-17T09:39:53.265+01:00</updated><category term='The Decorator'/><category term='Visual Studio'/><category term='Ganzzahlen'/><category term='ABS()'/><category term='Bridge'/><category term='FLOOR()'/><category term='visuelle Klassen'/><category term='Uhrzeit'/><category term='Nachkommastellen'/><category term='PEM Editor 6'/><category term='NMEA'/><category term='Arbeitsspeicher'/><category term='BINDEVENT()'/><category term='Foren'/><category term='Messagebox'/><category term='SET EXACT'/><category term='Reporting'/><category term='msvcrt20.dll'/><category term='STUFF()'/><category term='VFP Imaging'/><category term='analoge Anzeige'/><category term='ProLib'/><category term='WMI'/><category term='VFP9 SP2'/><category term='Debugger'/><category term='Dateien'/><category term='BITCLEAR'/><category term='SYS-Funktionen'/><category term='Blogs'/><category term='winspool.drv'/><category term='Promotionvideo'/><category term='Bindevents'/><category term='CHR()'/><category term='UNC Pfadnamen'/><category term='Bernard Bout'/><category term='Makrosubstitution'/><category term='Namensausdrücke'/><category term='Alive'/><category term='Entwurfsmuster'/><category term='Version Control'/><category term='Images'/><category term='bewegliche Forms'/><category term='Universalthread'/><category term='LED Anzeige'/><category term='VFP Studio'/><category term='Isolated Shell'/><category term='Cesar Chalom'/><category term='Datumstempel'/><category term='Laufwerksinformationen'/><category term='GDIPlusX'/><category term='Shell.Application'/><category term='Strategy'/><category term='Drucker'/><category term='PEM Editor'/><category term='BITNOT'/><category term='Word'/><category term='Bilder'/><category term='PRTINFO()'/><category term='Poll'/><category term='Fullscreen'/><category term='Stringvergleich'/><category term='ProzessIDs'/><category term='GOMONTH'/><category term='Hilfedatei'/><category term='Timeouts'/><category term='STRTOFILE()'/><category term='Ping'/><category term='Brücke'/><category term='Zeitstempel'/><category term='freie Sourcen'/><category term='Zeichenketten'/><category term='Blogliste'/><category term='Windows Scripting'/><category term='WAV abspielen'/><category term='Joel Leach'/><category term='Textmerge'/><category term='ShellExecute'/><category term='Emerson Reed'/><category term='Farbtiefe'/><category term='Craig Boyd'/><category term='Cursor'/><category term='SQL Select'/><category term='STRTRAN()'/><category term='Chain of Responsibility'/><category term='Sommerzeit'/><category term='Excel'/><category term='undokumentiert'/><category term='Vorzeichen'/><category term='Verknüpfung erzeugen'/><category term='Andrew MacNeill'/><category term='Color picker'/><category term='Lauftext'/><category term='Consolas'/><category term='INT()'/><category term='Feiertagsberechnungen'/><category term='Microsoft'/><category term='Versionskontrolle'/><category term='Spracheinstellung'/><category term='Reguläre Ausdrücke'/><category term='Tablet-PC Applikationen'/><category term='Greenwich Mean Time'/><category term='OLE Automation'/><category term='Byte invertieren'/><category term='Arrays'/><category term='DOW()'/><category term='Toolbar'/><category term='C64 Bootscreen'/><category term='OCCURS()'/><category term='RAM'/><category term='Blog Konfiguration'/><category term='Security Updates'/><category term='Codeplex'/><category term='Strings'/><category term='Codemuster'/><category term='Strategie'/><category term='Vollbild'/><category term='Themed Controls'/><category term='Forum'/><category term='Stringmanipulation'/><category term='FILETOSTR()'/><category term='ParallelFox'/><category term='Nostalgie'/><category term='TTOC()'/><category term='Prüfziffernberechnung'/><category term='Osterformel nach Gauß'/><category term='Dateinamen'/><category term='Der Dekorierer'/><category term='MP3 Tags'/><category term='Links'/><category term='TIME()'/><category term='DAY()'/><category term='BITNOT()'/><category term='Marquee'/><category term='Jun Tangunan'/><category term='Design Patterns'/><category term='Windows Management Instrumentation'/><category term='Zwischenablage'/><category term='MOD()'/><category term='Syntax Farbeinstellungen'/><category term='Modulo Berechnung'/><category term='MouseMove'/><category term='Visual FoxPro'/><category term='Umgebungsvariablen'/><category term='MESZ'/><category term='Zuständigskeitskette'/><category term='Rechtschreibkorrektur'/><category term='Applikationsobjekt'/><category term='Einleitung'/><category term='VFPx'/><category term='Farbanzeige'/><category term='GDIplus'/><category term='BITSET'/><category term='FoxCharts'/><category term='Windows Scripting Host'/><category term='Erik Sink'/><category term='Digitale Anzeige'/><category term='API'/><category term='DATETIME()'/><category term='win32api'/><category term='Open Source'/><category term='CSLID'/><category term='Diagramme'/><category term='Editor'/><category term='FoxTabs'/><category term='Parameterobjekt'/><category term='CEILING()'/><category term='BITTEST'/><category term='Runtime Installer'/><category term='Datumsfunktionen'/><category term='BITXOR'/><category term='Sourcen'/><category term='Bildformate'/><category term='IDE Einstellungen'/><category term='Eventtracking'/><category term='Grid'/><category term='ASC()'/><category term='Verzeichnisse'/><title type='text'>Tom's VFP Blog</title><subtitle type='html'>Tipps, Tricks und Codebeispiele rund um Visual FoxPro</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default?start-index=101&amp;max-results=100'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>104</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-4515643086061521790</id><published>2011-12-21T11:22:00.001+01:00</published><updated>2011-12-23T08:42:05.901+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DATETIME()'/><category scheme='http://www.blogger.com/atom/ns#' term='TTOC()'/><category scheme='http://www.blogger.com/atom/ns#' term='Datumsfunktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='TIME()'/><title type='text'>Datumsspielereien (Teil 8) / Date gadgets (Part 8)</title><summary type='text'>Die TIME() Funktion von Visual Foxpro liefert uns eine Uhrzeit als Characterstring. Wenn wir zu dieser Zeit jedoch Stunden, Minuten oder Sekunden hinzuaddieren möchten, dann ist das bei einem String eine mühsame Arbeit.

Anstatt mit TIME() sollten wir für Berechnungen immer mit DATETIME() arbeiten. Hier steht uns neben dem Datum auch die Uhrzeit für Berechnungen zur Verfügung. Allerdings wird ein</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/4515643086061521790/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=4515643086061521790' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4515643086061521790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4515643086061521790'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/12/datumsspielereien-teil-8-date-gadgets.html' title='Datumsspielereien (Teil 8) / Date gadgets (Part 8)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-7115948328915086766</id><published>2011-12-14T14:33:00.001+01:00</published><updated>2011-12-14T15:12:18.174+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tablet-PC Applikationen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Erstellen von Tablet-PC Anwendungen mit VFP / Creating Tablet-PC Applications with VFP</title><summary type='text'>Vor ein paar Wochen stolperte ich bei der Suche nach Informationen zur Erstellung von Tablet PC Anwendungen mit Visual Foxpro über den folgenden Blogbeitrag:

http://www.tabletpcblog.de/2010/03/11/erstellen-von-tablet-pc-anwendungen-mit-visual-foxpro/

Bei diesem Posting handelt es sich um eine Übersetzung eines MSDN Artikels von Mike Stewart aus dem Jahr 2004:

http://msdn.microsoft.com/en-us/</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/7115948328915086766/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=7115948328915086766' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7115948328915086766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7115948328915086766'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/12/erstellen-von-tablet-pc-anwendungen-mit.html' title='Erstellen von Tablet-PC Anwendungen mit VFP / Creating Tablet-PC Applications with VFP'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-448921598655286080</id><published>2011-12-05T11:31:00.000+01:00</published><updated>2011-12-05T11:31:12.965+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BINDEVENT()'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Zwei Forms gleichzeitig bewegen / Moving two forms simultaneously</title><summary type='text'>Wer noch die alte Version von WinAMP(R) kennt weiß, dass dort insgesamt zwei zusätzliche, an die Hauptform andockbare Fenster zur Verfügung standen.

Einen solchen Effekt können wird in Visual FoxPro ebenfalls erzielen. Hierzu binden wir den 'Moved' Event der Hauptform einfach an die zugehörigen Unterforms.

Der für die Repositionierung benötigte Code befindet sich in der Prozedur 'MoveSubForm':
</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/448921598655286080/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=448921598655286080' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/448921598655286080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/448921598655286080'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/12/zwei-forms-gleichzeitig-bewegen-moving.html' title='Zwei Forms gleichzeitig bewegen / Moving two forms simultaneously'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8487514992654867536</id><published>2011-11-29T09:12:00.000+01:00</published><updated>2011-11-29T09:12:07.814+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STRTOFILE()'/><category scheme='http://www.blogger.com/atom/ns#' term='FILETOSTR()'/><category scheme='http://www.blogger.com/atom/ns#' term='STRTRAN()'/><category scheme='http://www.blogger.com/atom/ns#' term='Stringmanipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='OCCURS()'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Entfernen von Worten aus Textdateien / Removing words from textfiles</title><summary type='text'>Visual FoxPro stellt uns nicht nur eine Menge Funktionen zur Stringmanipulation zur Verfügung. Auch das Öffnen und Bearbeiten von Dateiinhalten kann auf mehreren Wegen durchgeführt werden.

Wollen wir bspw. bestimmte Worte (oder Zeichenfolgen) aus einer Textdatei entfernen, so können wir die Datei natürlich über die Funktionen FOPEN(), FGETS(), FWRITE() und FCLOSE() verarbeiten, mit Hilfe von </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8487514992654867536/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8487514992654867536' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8487514992654867536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8487514992654867536'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/11/entfernen-von-worten-aus-textdateien.html' title='Entfernen von Worten aus Textdateien / Removing words from textfiles'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-9129465384028512657</id><published>2011-11-25T11:25:00.000+01:00</published><updated>2011-11-25T11:25:49.850+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GOMONTH'/><category scheme='http://www.blogger.com/atom/ns#' term='Datumsfunktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Datumsspielereien (Teil 7) / Date gadgets (Part 7)</title><summary type='text'>Im Folgenden eine kleine Abwandlung der Routine aus Teil 6 in der es um die Berechnung des letzten Sonntags eines Monats ging.
Wollen wir nicht den letzten Sonntag sondern einfach nur den letzten Tag des Monats berechnen, so ist es am einfachsten zunächst das Datum des 1. Tages des Folgemonats zu berechnen und davon einfach einen Tag abzuziehen. Ähnlich funktioniert auch die Methode aus Teil 6.
</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/9129465384028512657/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=9129465384028512657' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/9129465384028512657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/9129465384028512657'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/11/datumsspielereien-teil-7-date-gadgets.html' title='Datumsspielereien (Teil 7) / Date gadgets (Part 7)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-1664659014478723304</id><published>2011-11-08T09:16:00.000+01:00</published><updated>2011-11-08T09:16:16.208+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FLOOR()'/><category scheme='http://www.blogger.com/atom/ns#' term='Vorzeichen'/><category scheme='http://www.blogger.com/atom/ns#' term='CEILING()'/><category scheme='http://www.blogger.com/atom/ns#' term='Ganzzahlen'/><category scheme='http://www.blogger.com/atom/ns#' term='MOD()'/><category scheme='http://www.blogger.com/atom/ns#' term='INT()'/><category scheme='http://www.blogger.com/atom/ns#' term='Nachkommastellen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='ABS()'/><title type='text'>Arbeiten mit Ganzzahl und Kommazahlen / working with integers and decimals</title><summary type='text'>Für die Arbeit mit Ganz- und Kommazahlen stellt uns Visual Foxpro ein paar Funktionen zur Verfügung, mit deren Hilfe wir Vorzeichen sowie Vor- und Nachkommastellen extrahieren können. Je nach Aufgabenstellung sind diese Funktionen recht hilfreich.

Im einzelnen dreht es sich um die folgenden Funktionen: INT(), ABS(), CEILING(), FLOOR() und MOD().

Der folgende Mustercode soll die Arbeitsweise der</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/1664659014478723304/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=1664659014478723304' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1664659014478723304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1664659014478723304'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/11/arbeiten-mit-ganzzahl-und-kommazahlen.html' title='Arbeiten mit Ganzzahl und Kommazahlen / working with integers and decimals'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-2458060975560155742</id><published>2011-10-28T14:39:00.000+02:00</published><updated>2011-10-28T14:39:52.428+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NMEA'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='BITXOR'/><title type='text'>Berechnen der NMEA Checksumme / Computing the NMEA checksum</title><summary type='text'>Die National Marine Electronics Association (NMEA) zeichnet u.a. für den digitalen Datenaustausch bei GPS Geräten verantwortlich. Egal ob wir ein solches Gerät auf einem Schiff, im Auto, am Fahrrad oder beim Wandern benutzen. Die zum Einsatz kommenden Datensätze entspringen (mit kleinen individuellen Herstellervarianten) den NMEA Definitionen.

Da jedwede Art der Datenübertragung qualitativen </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/2458060975560155742/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=2458060975560155742' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2458060975560155742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2458060975560155742'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/10/berechnen-der-nmea-checksumme-computing.html' title='Berechnen der NMEA Checksumme / Computing the NMEA checksum'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6561801182373223624</id><published>2011-10-17T08:55:00.000+02:00</published><updated>2011-10-17T08:55:52.449+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Version Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Versionskontrolle'/><category scheme='http://www.blogger.com/atom/ns#' term='Erik Sink'/><title type='text'>Versionskontrolle kann Spaß machen / Version Control can be fun</title><summary type='text'>Nein, das ist kein Witz, Versionskontrolle kann wirklich Spaß machen, zumindest wenn man weiß wofür sie gut ist und ... wenn man das neue Buch von Erik Sink gelesen hat ... :-)

Anmerkung:
Für diejenigen denen dieser Name nichts sagt sei ein Besuch der SourceGear Homepage angeraten.

Ich habe mir mittlerweile diverse Videos von Erik Sink im Web angesehen und ohne Zweifel hat er eine Menge Humor </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6561801182373223624/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6561801182373223624' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6561801182373223624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6561801182373223624'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/10/versionskontrolle-kann-spa-machen.html' title='Versionskontrolle kann Spaß machen / Version Control can be fun'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-5003586246848982722</id><published>2011-10-07T15:38:00.000+02:00</published><updated>2011-10-07T15:38:13.382+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STUFF()'/><category scheme='http://www.blogger.com/atom/ns#' term='msvcrt20.dll'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Strings'/><title type='text'>Stringinvertierung - andersherum / inverting strings - the other way around</title><summary type='text'>Beim durchstöbern meiner Codeschnipsel stolperte ich eben über eine andere Sichtweise der Stringinvertierung. Bei dieser geht es um einen einfachen Positionstausch innerhalb eines übergebenen Strings.

Mit anderen Worten: aus
 MeineInvertierteZeichenkettewird 
etteknehcieZetreitrevnIenieMDas folgende Codemuster zeigt drei mögliche Wege auf, dies zu erreichen...

* // Funktionstest 
CLEAR 
liS=</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/5003586246848982722/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=5003586246848982722' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5003586246848982722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5003586246848982722'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/10/stringinvertierung-andersherum.html' title='Stringinvertierung - andersherum / inverting strings - the other way around'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8152287518156758290</id><published>2011-10-05T10:41:00.001+02:00</published><updated>2011-10-05T10:42:03.518+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CHR()'/><category scheme='http://www.blogger.com/atom/ns#' term='Byte invertieren'/><category scheme='http://www.blogger.com/atom/ns#' term='ASC()'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='BITNOT()'/><category scheme='http://www.blogger.com/atom/ns#' term='ABS()'/><category scheme='http://www.blogger.com/atom/ns#' term='Strings'/><title type='text'>Stringinvertierung - segmentiert und komplett / inverting strings - segmented and complete</title><summary type='text'>Im Microsofts deutschem Foxpro Forum kam vor einigen Wochen die Frage wie ein String von A nach Z, B nach Y, C nach X usw. invertiert werden kann.

Im folgenden Codebeispiel steht wahlweise eine segmentierte Invertierung (nur für Buchstaben und Zahlen) sowie eine komplette Invertierung (sämtlich Zeichen der ASCII Tabelle = 0-255) zur Verfügung. 

Vor der eigentlichen Funktion findet sich wie </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8152287518156758290/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8152287518156758290' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8152287518156758290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8152287518156758290'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/10/stringinvertierung-segmentiert-und.html' title='Stringinvertierung - segmentiert und komplett / inverting strings - segmented and complete'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8251246492313746474</id><published>2011-09-28T10:59:00.001+02:00</published><updated>2011-09-28T13:00:45.966+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BITCLEAR'/><category scheme='http://www.blogger.com/atom/ns#' term='Byte invertieren'/><category scheme='http://www.blogger.com/atom/ns#' term='BITSET'/><category scheme='http://www.blogger.com/atom/ns#' term='BITNOT'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='BITTEST'/><title type='text'>Byte invertieren - Viele Wege führen zum Ziel / invert a byte - There's more than one way to skin a cat</title><summary type='text'>Wenn wir den Wert eines Bytes invertieren wollen/sollen, dann gibt es wie immer mehrere Vorgehensweisen, dies zu tun.

Wer keine Ahnung davon hat, wie Bits und Bytes ticken, der greift u.U. zur simpelsten (pfui) Lösung:

FUNCTION ByteInverter1
LPARAMETERS vValue as Integer
    RETURN 255 - vValue
ENDFUNC 


Wer zu denen gehört, die das duale/binäre Zahlensystem beherrschen werden evtl. dazu </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8251246492313746474/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8251246492313746474' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8251246492313746474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8251246492313746474'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2011/09/byte-invertieren-viele-wege-fuhren-zum.html' title='Byte invertieren - Viele Wege führen zum Ziel / invert a byte - There&apos;s more than one way to skin a cat'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-730095917709780027</id><published>2010-12-27T09:26:00.000+01:00</published><updated>2010-12-27T09:26:41.039+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vollbild'/><category scheme='http://www.blogger.com/atom/ns#' term='Fullscreen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Form im Vollbild ohne Taskleiste anzeigen / Fullscreen form without taskbar</title><summary type='text'>Vor ein paar Wochen drehte es sich in einem Forum um die Frage, ob und wie es möglich wäre, eine VFP Form maximiert darzustellen, ohne dass dabei die Taskbar zu sehen ist.

Dies ist bspw. darüber zu erreichen, dass wir uns eine Form bauen, die sich immer im Vordergrund befindet. Im folgenden Beispielcode wird zunächst eine kleine Form erzeugt, die sich bei einem Doppelklick auf den kompletten </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/730095917709780027/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=730095917709780027' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/730095917709780027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/730095917709780027'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/12/form-im-vollbild-ohne-taskleiste.html' title='Form im Vollbild ohne Taskleiste anzeigen / Fullscreen form without taskbar'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3710693381942438380</id><published>2010-11-04T12:10:00.001+01:00</published><updated>2010-11-04T12:13:32.566+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PRTINFO()'/><category scheme='http://www.blogger.com/atom/ns#' term='Drucker'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Druckerinformationen mit VFP Bordmitteln / Display printer infos with native VFP functions</title><summary type='text'>Vor einiger Zeit hatte ich bereits in zwei Einträgen über die Anzeige des aktuellen Druckerstatus (Teil1 , Teil2 )geschrieben. Die dort vorgestellten Funktionen arbeiten auf Basis der Windows Management Instrumentation (WMI). 
Die heutige Funktion kommt ohne WMI aus. Sie greift auf zwei native VFP Funktionen zu: GETPRINTER() und PRTINFO().

Die Funktion PRTINFO() kennt insgesamt 13 verschiedene </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3710693381942438380/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3710693381942438380' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3710693381942438380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3710693381942438380'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/11/druckerinformationen-mit-vfp.html' title='Druckerinformationen mit VFP Bordmitteln / Display printer infos with native VFP functions'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-5497357566951042668</id><published>2010-10-08T16:26:00.000+02:00</published><updated>2010-10-08T16:26:01.134+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WMI'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Management Instrumentation'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Arbeitsspeicher'/><category scheme='http://www.blogger.com/atom/ns#' term='RAM'/><title type='text'>Informationen über den Arbeitsspeicher ermitteln / Retrieving RAM infos</title><summary type='text'>Im UT kam vor ein paar Tagen die Frage auf, wie denn unter VFP Informationen über den installierten Arbeitsspeicher in Erfahrung gebracht werden könnten. Hugo Ranea lieferte daraufhin einen kurzen Mustercode zur Abfrage dieser Informationen über die Windows Management Instrumentation (WMI). Der folgende Beispielcode basiert auf seinem Codemuster.

Auf MSDN gibt es wie immer eine detaillierte </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/5497357566951042668/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=5497357566951042668' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5497357566951042668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5497357566951042668'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/10/informationen-uber-den-arbeitsspeicher.html' title='Informationen über den Arbeitsspeicher ermitteln / Retrieving RAM infos'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-1058549327494174314</id><published>2010-09-06T08:59:00.000+02:00</published><updated>2010-09-06T08:59:46.045+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PEM Editor 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFPx'/><title type='text'>PEM Editor 6 auf VFPX verfügbar / PEM Editor 6 available on VPFX</title><summary type='text'>Die neue Version dieses hervorragenden Tools steht auf VFPX zum Download bereit:

http://vfpx.codeplex.com/wikipage?title=PEM%20Editor&amp;referringTitle=Home

Seit Version 4 gibt es übrigens eine Videoserie die auch beim Einstieg in Version 6 gute Dienste leistet.

Eine wirklich tolle Erweiterung (und teilweise Ersatz) für die VFP Entwicklungsoberfläche!</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/1058549327494174314/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=1058549327494174314' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1058549327494174314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1058549327494174314'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/09/pem-editor-6-auf-vfpx-verfugbar-pem.html' title='PEM Editor 6 auf VFPX verfügbar / PEM Editor 6 available on VPFX'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-2558237478912920226</id><published>2010-09-02T14:16:00.005+02:00</published><updated>2010-09-08T11:06:49.509+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Codemuster'/><category scheme='http://www.blogger.com/atom/ns#' term='freie Sourcen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Visual Foxpro Links - Reloaded</title><summary type='text'>In den beiden vorangegangenden Postings zu Visual Foxpro Foren und - Blogs habe ich bereits jede Menge Seiten rund um VFP aufgezeigt. Mit diesem Posting gibt es eine weitere Linksliste welche in die beiden vorangegangenen Postings thematisch irgendwie nicht reingepaßt haben.
Diesen Seiten mit ihren bereitgestellten Codemustern und freien und erwerbbaren Sourcen sollte jeder einmal einen Besuch </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/2558237478912920226/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=2558237478912920226' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2558237478912920226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2558237478912920226'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/09/visual-foxpro-links-reloaded.html' title='Visual Foxpro Links - Reloaded'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-481889640058122731</id><published>2010-08-24T13:45:00.002+02:00</published><updated>2010-08-24T13:46:59.627+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sommerzeit'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Greenwich Mean Time'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Feststellen der aktuellen Zeitzone / Discover the current time zone</title><summary type='text'>Wenn wir mit Daten arbeiten, die nicht nur in einer einzigen Zeitzone erfaßt werden, dann können wir nicht direkt mit der Uhrzeit der jeweiligen Arbeitsstation arbeiten. Dies würde die Erfassungszeitpunkte ad absurdum führen. 

In einem solchen Fall haben wir zwei Möglichkeiten. Ersten können wir die Zeitstempel vor dem Speichern entsprechend anpassen oder zweitens, wir führen einen Merker, der </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/481889640058122731/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=481889640058122731' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/481889640058122731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/481889640058122731'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/08/feststellen-der-aktuellen-zeitzone.html' title='Feststellen der aktuellen Zeitzone / Discover the current time zone'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6290616795474007419</id><published>2010-08-12T11:57:00.000+02:00</published><updated>2010-08-12T11:57:33.107+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Forum'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='ProLib'/><category scheme='http://www.blogger.com/atom/ns#' term='Runtime Installer'/><title type='text'>Umzug der VFP-Runtime Installer / VFP-Runtime Installers have moved</title><summary type='text'>wOOdy hat im internationalen Visual Foxpro Forum soeben  mitgeteilt, dass die seit Jahren von vielen genutzten Runtime Installer ab sofort direkt über die MSDN Seiten von Microsoft zur Verfügung stehen.

Hier geht es direkt zu seiner Mitteilung:

http://social.msdn.microsoft.com/Forums/de-DE/visualfoxprogeneral/thread/1f5e4714-72fa-4f33-bdcc-77d768f92d82</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6290616795474007419/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6290616795474007419' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6290616795474007419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6290616795474007419'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/08/umzug-der-vfp-runtime-installer-vfp.html' title='Umzug der VFP-Runtime Installer / VFP-Runtime Installers have moved'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-7747018367129381792</id><published>2010-08-09T10:05:00.002+02:00</published><updated>2010-08-09T10:24:49.309+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ParallelFox'/><category scheme='http://www.blogger.com/atom/ns#' term='Joel Leach'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFPx'/><title type='text'>Parallele Prozessverarbeitung mit Visual Foxpro / Parallel processing in Visual Foxpro</title><summary type='text'>Am Sonntag hat Joel Leach über sein aktuelles VFPX Projekt gebloggt in dem es um die parallele Verarbeitung von Prozessen unter VFP geht.
Sein Projekt mit dem Namen ParallelFox steht in der Beta Version auf VFPX ab sofort zum Download bereit.

Hier gehts direkt zu Joel's Blog:
http://weblogs.foxite.com/joel_leach/archive/2010/08/08/12986.aspx

Hier gehts zum Download auf VFPX:
http://</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/7747018367129381792/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=7747018367129381792' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7747018367129381792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7747018367129381792'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/08/parallele-prozessverarbeitung-mit.html' title='Parallele Prozessverarbeitung mit Visual Foxpro / Parallel processing in Visual Foxpro'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-807638894237543917</id><published>2010-08-05T11:59:00.003+02:00</published><updated>2010-08-09T10:23:19.556+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog Konfiguration'/><title type='text'>Mein Blog im neuen Gewand / A new look for my blog</title><summary type='text'>Nein, der Browser hat keine Macke, der Bildschirm ist auch nicht kaputt, mit der Grafikkarte ist ebenfalls noch alles in Ordnung und auch die Brille muss nicht geputzt werden... ;-)

Ich konnte einfach nur das drei Jahre alte Design meines Blogs nicht mehr sehen. Im ersten Schritt habe ich jetzt ein etwas moderneres Design gewählt. Mal schauen, wann es mich in den Fingern juckt und ich damit </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/807638894237543917/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=807638894237543917' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/807638894237543917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/807638894237543917'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/08/mein-blog-im-neuen-gewand.html' title='Mein Blog im neuen Gewand / A new look for my blog'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-5726715198696545682</id><published>2010-08-03T11:56:00.001+02:00</published><updated>2010-08-12T10:41:56.140+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogs'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogliste'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Visual Foxpro Blogs</title><summary type='text'>Wie bereits im letzten Posting angekündigt gibt es nun eine Liste mit Blogs rund um Visual Foxpro.
Diese Liste ist bestimmt nicht vollzählig, und falls ich einen Eurer Meinung nach wichtigen Blog vergessen habe, dann teilt mir dies bitte per Kommentar mit. Ich werde die Liste dann umgehend erweitern.

Nicht alle dieser Blogs werden noch aktiv weiter geführt. Aber auch solche verfügen über ein </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/5726715198696545682/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=5726715198696545682' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5726715198696545682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5726715198696545682'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/08/visual-foxpro-blogs.html' title='Visual Foxpro Blogs'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8654799280154906962</id><published>2010-07-12T10:10:00.002+02:00</published><updated>2010-07-12T10:57:56.890+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Foren'/><category scheme='http://www.blogger.com/atom/ns#' term='Sourcen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Links'/><title type='text'>Links zu Visual Foxpro im Web / Links about Visual Foxpro on the web</title><summary type='text'>Im folgenden gibt es eine (ganz bestimmt nicht vollständige) Liste mit Quellen und Foren rund um den Fuchs. Diese Liste berücksichtigt nicht die vielen Blogs rund um VFP. Eine Blogliste werde ich demnächst gesondert posten.

Diese Liste darf von Euch gerne per Kommentar ergänzt werden.

deutschsprachige Foxpro User Group 

Foxite (englisch)

(Chris Wollenhaupt's) Guineu (englisch)

Microsofts </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8654799280154906962/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8654799280154906962' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8654799280154906962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8654799280154906962'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/07/links-zu-visual-foxpro-im-web-links.html' title='Links zu Visual Foxpro im Web / Links about Visual Foxpro on the web'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-448288518576954258</id><published>2010-07-09T11:24:00.002+02:00</published><updated>2010-08-09T10:27:20.346+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Foren'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsofts neue Diskussionsforen / Microsoft's new forums</title><summary type='text'>Nachdem Microsoft vor einigen Wochen die alten Newsgroups und somit auch die darauf basierenden Webforen geschlossen hat, dachte ich zunächst, was solls, im deutschen Forum war in den letzten Jahren sowieso nicht so richtig was los und die Präsentation der Webforen war nicht wirklich geglückt.
ABER: Für den Fall der Fälle standen die alten VFP Hasen immer Gewehr bei Fuss um bei einfachen und auch</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/448288518576954258/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=448288518576954258' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/448288518576954258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/448288518576954258'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/07/microsofts-neue-diskussionsforen.html' title='Microsofts neue Diskussionsforen / Microsoft&apos;s new forums'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8345510377291139893</id><published>2010-07-07T16:29:00.001+02:00</published><updated>2010-07-07T16:30:46.662+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='analoge Anzeige'/><category scheme='http://www.blogger.com/atom/ns#' term='Bilder'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Uhrzeit'/><title type='text'>Analoge Uhr selbst gebaut / Self made analog clock</title><summary type='text'>Nachdem ich im letzten Monat einen Eintrag bzgl. einer digitalen Anzeige gepostet habe fiel mir jetzt wieder ein altes Stück Code in die Finger, bei dem es sich um eine analoge Uhrzeitanzeige dreht. Nachdem ich den Staub entfernt und den Code ein wenig optimiert habe steht einem neuen Blogeintrag nichts mehr im Wege.

Damit das Codemuster funktioniert (und natürlich, damit die Analoguhr dem </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8345510377291139893/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8345510377291139893' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8345510377291139893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8345510377291139893'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/07/analoge-uhr-selbst-gebaut-self-made.html' title='Analoge Uhr selbst gebaut / Self made analog clock'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6E4j9SUV7xs/TDSGZfGV6LI/AAAAAAAAAGE/dR4E8uJ_16k/s72-c/clock8.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-85563778541747005</id><published>2010-06-25T16:45:00.002+02:00</published><updated>2010-06-28T16:41:30.923+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='UNC Pfadnamen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Erzeugen von UNC Pfadnamen / Creating UNC Pathnames (Revisited)</title><summary type='text'>Nachdem ich heute zufälligerweise in eine alte Funktion von mir reingeschaut habe (Erzeugen von UNC-Pfadnamen), gab es auch gleich Verbesserungsbedarf. Im Blogeintrag vom September 2008 konnte nur ein Laufwerksbuchstabe (bspw. H:) übergeben werden. Die neue Funktion habe ich nun dahingehend erweitert, dass es jetzt sowohl reine Laufwerksbuchstaben, als auch komplette Verzeichnis- und/oder </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/85563778541747005/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=85563778541747005' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/85563778541747005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/85563778541747005'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/06/unc-pfadname-revisited.html' title='Erzeugen von UNC Pfadnamen / Creating UNC Pathnames (Revisited)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3517269064972529752</id><published>2010-06-15T10:25:00.002+02:00</published><updated>2010-06-28T16:42:07.048+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Marquee'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Lauftext'/><title type='text'>Marquee Texte schnell und einfach erzeugen / Creating marquee texts quick and easy</title><summary type='text'>Wenn wir mit einfachen Mitteln einen Lauftext (Marquee) erzeugen bzw. darstellen wollen, dann ist alles, was wir benötigen eine Containerklasse mitsamt Label- und Timerobjekt. Dem Container verpassen wir noch einen Eigenschaft, mit welcher die Laufrichtung bzw. das Verhalten beim Verlassen des sichtbaren Bereiches gesteuert wird und fertig ist die Laube. 

Der folgende Mustercode kann, wenn als </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3517269064972529752/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3517269064972529752' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3517269064972529752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3517269064972529752'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/06/marquee-texte-schnell-und-einfach.html' title='Marquee Texte schnell und einfach erzeugen / Creating marquee texts quick and easy'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-2542579993483957327</id><published>2010-06-04T16:22:00.001+02:00</published><updated>2010-06-28T16:44:31.156+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Digitale Anzeige'/><category scheme='http://www.blogger.com/atom/ns#' term='LED Anzeige'/><category scheme='http://www.blogger.com/atom/ns#' term='Bilder'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Digitale Anzeige selbst gebaut / Self made digital display</title><summary type='text'>Vor einiger Zeit hatte ich an dieser Stelle über mein Problem mit dem richtigen Timing bei meinem Tee geschrieben. Thema war damals das Abspielen von WAV-Dateien in VFP.

Was mich ursprünglich dazu veranlasst hatte, mir einen Teatimer zu programmieren war, dass ich einfach mal ausprobieren wollte, wie aufwändig die Erstellung einer digitalen Zahlenanzeige ist, OHNE einen ensprechenden Font </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/2542579993483957327/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=2542579993483957327' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2542579993483957327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2542579993483957327'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/06/digitale-anzeige-selbst-gebaut.html' title='Digitale Anzeige selbst gebaut / Self made digital display'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6E4j9SUV7xs/TAjpxbmpzCI/AAAAAAAAAEc/CjFFIRH0qYY/s72-c/inf_digit_horizontal.bmp' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3196506040016204227</id><published>2010-05-19T14:37:00.001+02:00</published><updated>2010-06-28T16:45:59.940+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WMI'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Management Instrumentation'/><category scheme='http://www.blogger.com/atom/ns#' term='ProzessIDs'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>ProzessIDs lesen und beenden / Reading and terminating process IDs (Revisited)</title><summary type='text'>Im letzten Eintrag ging es um das gezielte Beenden von Applikationen. In diesem Posting stelle ich nun eine kleine Abwandlung dieser Vorgehensweise vor. Genauer gesagt für die Aufgabenstellung, dass unsere soeben gestartete Applikation sicherstellen soll, das keine weiteren (zuvor gestarteten) Prozesse von ihr sich im Arbeitsspeicher befinden.

Diese Aufgabe läßt sich mit der Funktion </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3196506040016204227/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3196506040016204227' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3196506040016204227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3196506040016204227'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/05/prozessids-lesen-und-beenden-revisited.html' title='ProzessIDs lesen und beenden / Reading and terminating process IDs (Revisited)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-4145427407376522006</id><published>2010-05-10T12:57:00.002+02:00</published><updated>2010-06-28T16:46:20.781+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WMI'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Management Instrumentation'/><category scheme='http://www.blogger.com/atom/ns#' term='ProzessIDs'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>ProzessIDs lesen und beenden / Reading and terminating process IDs</title><summary type='text'>Wenn wir, aus welchem Grund auch immer, sicherstellen wollen, das eine bestimmte Anwendung nur einmal gestartet sein darf, dann kommt üblicherweise ein Singleton-Pattern zum Einsatz. Bei der Arbeit mit Objekten ist dies für viele sicherlich eine immer wiederkehrende Routine und die Funktion PEMSTATUS() wird in diesem Fall wohl auch oft genug zum Einsatz kommen. 

Wollen wir jedoch eine komplette </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/4145427407376522006/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=4145427407376522006' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4145427407376522006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4145427407376522006'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/05/prozessids-lesen-und-beenden.html' title='ProzessIDs lesen und beenden / Reading and terminating process IDs'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8464214235040815494</id><published>2010-05-04T11:40:00.001+02:00</published><updated>2010-06-28T16:47:02.682+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timeouts'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Bindevents'/><title type='text'>Inaktivität des Anwenders über TIMEOUT prüfen / Using TIMEOUT to check user inactivity</title><summary type='text'>Eine unangenehme Eigenschaft von VFP ist, dass eine Applikation, die aus einer EXE heraus gestartet wurde, solange für Updatevorgänge gesperrt bleibt, bis die aufrufende EXE beendet wird.

Jetzt stellt dies nicht wirklich ein Problem dar, denn üblicherweise genügt es, den Anwender zu informieren, das Programm für einen Updatevorgang zu beenden.

Dieser Gedankengang hat allerdings einen kleinen </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8464214235040815494/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8464214235040815494' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8464214235040815494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8464214235040815494'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/05/inaktivitat-des-anwenders-uber-timeout.html' title='Inaktivität des Anwenders über TIMEOUT prüfen / Using TIMEOUT to check user inactivity'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3162461509730628110</id><published>2010-04-08T11:58:00.004+02:00</published><updated>2010-06-28T16:47:58.012+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='win32api'/><category scheme='http://www.blogger.com/atom/ns#' term='Farbtiefe'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Feststellen der aktuellen Farbtiefe / Determine current color depth</title><summary type='text'>Wer in seiner Applikation mit hochauflösenden Grafiken und Fotos arbeitet, der benötigt für eine einwandfreie Anzeige auch eine akzeptable Anzahl an darstellbaren Farben. 

Früher war für viele solcher Anwendungen der Zugriff über Terminaldienste (Citrix, Terminalserver, u.ä.) oftmals ein K.O.-Kriterium, da in diesen Umgebungen aus Geschwindigkeitsgründen eine Farbtiefe von 8 Bit (=256 Farben) </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3162461509730628110/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3162461509730628110' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3162461509730628110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3162461509730628110'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/04/feststellen-der-aktuellen-farbtiefe.html' title='Feststellen der aktuellen Farbtiefe / Determine current color depth'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-7693079536859991118</id><published>2010-04-06T11:10:00.003+02:00</published><updated>2010-06-28T16:49:23.402+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='winspool.drv'/><category scheme='http://www.blogger.com/atom/ns#' term='WMI'/><category scheme='http://www.blogger.com/atom/ns#' term='Drucker'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Druckerstatus abfragen - Teil 2 / Query printer status - Part 2</title><summary type='text'>Im Dezember hatte ich einen Eintrag verfasst, in dem es darum ging, den Status der vorhandenen Drucker abzufragen. Im folgenden Codebeispiel habe ich diese Funktionalität dahingehend erweitert, dass nun auch der Standarddrucker des aktuellen Benutzers gefunden und gekennzeichnet wird.

Ermöglicht wird dies durch eine Abfrage des Windows-Spoolertreibers (winspool.drv) der sich üblicherweise im </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/7693079536859991118/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=7693079536859991118' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7693079536859991118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7693079536859991118'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/04/druckerstatus-abfragen-teil-2.html' title='Druckerstatus abfragen - Teil 2 / Query printer status - Part 2'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8853263193038004216</id><published>2010-03-15T16:28:00.005+01:00</published><updated>2010-07-19T07:41:57.274+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prüfziffernberechnung'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Modulo Berechnung'/><title type='text'>Flexible Prüfziffernberechnung mit Modulo und Gewichtung / Flexible check digit calculation with modulo and weighting</title><summary type='text'>Prüfziffernberechnungen gibt es wie Sand am Meer. Speziell im Bereich Barcoding sind sie in den verschiedensten Varianten vorzufinden. Egal ob Code 2aus5il, Code128 oder EAN128. Sie alle verfügen über Prüfziffern.

Die Unterschiede liegen bei fast allen diesen Varianten bei der Wertigkeit der Multiplikatoren und dem Modulowert. Beginnt bei einem EAN-13 die Multiplikation mit 1 und wechselt sich </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8853263193038004216/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8853263193038004216' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8853263193038004216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8853263193038004216'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/03/flexible-prufziffernberechnung-mit.html' title='Flexible Prüfziffernberechnung mit Modulo und Gewichtung / Flexible check digit calculation with modulo and weighting'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8362943305165581276</id><published>2010-03-15T13:40:00.002+01:00</published><updated>2010-06-28T16:52:41.106+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog Konfiguration'/><title type='text'>Umstellung meines Blog von 'br' auf 'cr' / Blog conversion from 'br' to 'cr'</title><summary type='text'>Letzte Woche habe ich meine Blog Konfiguration umgestellt, damit der von mir bereitgestellte Code zukünftig problemlos über die Zwischenablage ins VFP Codefenster übernommen werden kann. Blogger setzt nun nicht mehr &lt; br &gt; als Zeilenumbruch ein, sondern arbeitet mit normalen Carriage Returns.

Diese Umstellung sorgte jedoch dafür, dass in ca. 80% der Blogeinträge die Formatierung der normalen </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8362943305165581276/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8362943305165581276' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8362943305165581276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8362943305165581276'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/03/umstellung-meines-blog-von-br-auf-cr.html' title='Umstellung meines Blog von &apos;br&apos; auf &apos;cr&apos; / Blog conversion from &apos;br&apos; to &apos;cr&apos;'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-2965905277517922537</id><published>2010-03-03T14:02:00.004+01:00</published><updated>2010-06-28T16:53:38.615+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bildformate'/><category scheme='http://www.blogger.com/atom/ns#' term='Reguläre Ausdrücke'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Erkennen von Bildformaten / Recognition of image formats</title><summary type='text'>Seit vielen Jahren arbeite ich bereits mit ACDSee. Die Version 5, welche meine Version 3 ablöste, lag damals einer meiner PC Zeitschriften als Vollversion bei. Sie kommt noch immer regelmäßig zum Einsatz wenn es darum geht Grafiken/Fotos zu verwalten oder auch zu konvertieren. 

Was mich anfänglich erstaunte war die Fähigkeit dieser Applikation einen Grafikformattyp auch dann noch erkennen zu </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/2965905277517922537/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=2965905277517922537' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2965905277517922537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2965905277517922537'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/03/erkennen-von-bildformaten.html' title='Erkennen von Bildformaten / Recognition of image formats'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-1888704634466077592</id><published>2010-02-05T13:45:00.010+01:00</published><updated>2010-06-28T16:55:11.890+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zeichenketten'/><category scheme='http://www.blogger.com/atom/ns#' term='Universalthread'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Text in binäre Zeichenkette wandeln ... und umgekehrt / Converting text to binary string ... and vice versa</title><summary type='text'>Als regelmäßiger Besucher des Universalthread (UT) war mir bereits seit geraumer Zeit aufgefallen, dass eine der Teilnehmerinnen (Hi Tc ;-)) eine interessante Signatur benutzt:

010000110101001101101000011000010111001001110000010011110111001001000010011101010111001101110100

Wird diese Signatur in 8er Blöcke zerlegt und anschließend in Zeichen umgewandelt, dann kommt ein Text heraus, der in einem</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/1888704634466077592/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=1888704634466077592' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1888704634466077592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1888704634466077592'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/02/text-in-binare-zeichenkette-wandeln-und.html' title='Text in binäre Zeichenkette wandeln ... und umgekehrt / Converting text to binary string ... and vice versa'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3458573243292536576</id><published>2010-02-01T08:10:00.004+01:00</published><updated>2010-03-28T12:01:38.557+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFP9 SP2'/><title type='text'>FoxyPreviewer</title><summary type='text'>Cesar Chalom hat in seinem Blog ein neues Projekt vorgestellt. Es handelt sich hierbei um eine Druckvorschau Bibliothek, mit deren Hilfe jede Menge Funktionalität im Bereich der Vorschau sowie der nachfolgenden Verarbeitung bereitgestellt wird. Unbedingt mal reinschauen: http://weblogs.foxite.com/vfpimaging/archive/2010/01/31/10127.aspx</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3458573243292536576/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3458573243292536576' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3458573243292536576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3458573243292536576'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/02/foxypreviewer.html' title='FoxyPreviewer'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8081933772177987855</id><published>2010-01-29T16:03:00.009+01:00</published><updated>2010-06-28T16:56:09.765+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MESZ'/><category scheme='http://www.blogger.com/atom/ns#' term='Sommerzeit'/><category scheme='http://www.blogger.com/atom/ns#' term='Datumsfunktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Datumsspielereien (Teil 6) / Date gadgets (Part 6)</title><summary type='text'>Datumsberechnungen und kein Ende :-) 

Vor ein paar Tagen fiel mir mal wieder das leidige Thema MESZ ein. Ähnlich wie bei Ostern hatte ich mir nie wirklich Gedanken darum gemacht, wann denn nun das nächste Mal die Uhrzeit umgestellt wird. Windows wird es schon richten und ich würde mich wieder zwei Wochen lang mit der Zeitverschiebung rumschlagen... ;-) 

Ein kurzer Blick in die Wikipedia und </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8081933772177987855/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8081933772177987855' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8081933772177987855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8081933772177987855'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/01/datumsspielereien-teil-6.html' title='Datumsspielereien (Teil 6) / Date gadgets (Part 6)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-4089842483220209632</id><published>2010-01-06T09:56:00.010+01:00</published><updated>2010-06-28T16:56:49.023+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cesar Chalom'/><category scheme='http://www.blogger.com/atom/ns#' term='Bernard Bout'/><category scheme='http://www.blogger.com/atom/ns#' term='Craig Boyd'/><category scheme='http://www.blogger.com/atom/ns#' term='Jun Tangunan'/><category scheme='http://www.blogger.com/atom/ns#' term='Andrew MacNeill'/><category scheme='http://www.blogger.com/atom/ns#' term='visuelle Klassen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Emerson Reed'/><title type='text'>Jun Tangunan's visuelle Klassen / visual classes</title><summary type='text'>Vor ein paar Tagen hat Andrew MacNeill einen Blogbeitrag gepostet in dem er auf den Blog von Jun Tangunan mit dessen visuellen Klassen hinweist. 

Nachdem ich Jun's Blog nun einen Besuch abgestattet habe befindet sich dieser ebenfalls in meiner Blogroll ;-) 

Jun zeigt in seinem Blog u.a. Button-, Titelleisten-, Switch-, Kalender- und Datumfeldklassen die einen sehr ansprechenden Eindruck machen.</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/4089842483220209632/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=4089842483220209632' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4089842483220209632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4089842483220209632'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2010/01/jun-tanguans-visuelle-klassen.html' title='Jun Tangunan&apos;s visuelle Klassen / visual classes'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3957909668308585765</id><published>2009-12-11T13:26:00.008+01:00</published><updated>2010-06-28T16:57:08.755+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Datumsfunktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Datumsspielereien (Teil 5) / Date gadgets (Part 5)</title><summary type='text'>Heute gibt es eigentlich nur einen kleinen Nachtrag. 

Im 4. Teil der Datumsspielereien drehte es sich u. a. darum, wie wir die korrekte Kalenderwoche berechnen. Der umgekehrte Weg, aus einer Kalenderwoche wieder ein Datum zu generieren fehlte allerdings. 

Wenn wir ein solches Datum berechnen sollen, dann müssen wir uns auf einen von sieben Tagen der Woche einigen. Der Einfachheit halber habe </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3957909668308585765/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3957909668308585765' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3957909668308585765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3957909668308585765'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/12/datumsspielereien-teil-5.html' title='Datumsspielereien (Teil 5) / Date gadgets (Part 5)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-7324071502617364325</id><published>2009-12-03T13:18:00.007+01:00</published><updated>2010-06-28T16:49:49.458+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WMI'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Management Instrumentation'/><category scheme='http://www.blogger.com/atom/ns#' term='Drucker'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Druckerstatus abfragen / Query printer status</title><summary type='text'>Die Anzeige des aktuellen Zustands der verfügbaren Drucker kann für so manchen Anwender von essentieller Bedeutung sein, wenn es darum geht einen Ausdruck möglichst schnell in den Händen zu halten. Andererseits kann es nur von Vorteil sein, wenn bei einer Druckausgabe bereits im Vorfeld erkennbar ist, daß ein spezieller Drucker bspw. einen Papierstau hat, oder nur wenig Papier im Einzugschacht </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/7324071502617364325/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=7324071502617364325' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7324071502617364325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7324071502617364325'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/12/druckerstatus-abfragen.html' title='Druckerstatus abfragen / Query printer status'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6865800351317338678</id><published>2009-11-20T12:58:00.003+01:00</published><updated>2010-06-28T16:58:17.950+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Messagebox'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Neue extrem parametrisierbare Messagebox für VFP8/9 / New extreme parametric messagebox for VFP8/9</title><summary type='text'>Anatoly Mogylevets hat unter news2news eine FLL veröffentlicht, mit der komplett parametrisierbare Messagebox() Designs ermöglicht werden. Unbedingt mal anschauen! 

Hier der Link: http://www.news2news.com/vfp/?solution=3</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6865800351317338678/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6865800351317338678' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6865800351317338678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6865800351317338678'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/11/neue-extrem-parametrisierbare.html' title='Neue extrem parametrisierbare Messagebox für VFP8/9 / New extreme parametric messagebox for VFP8/9'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8802060297185571696</id><published>2009-07-24T14:50:00.005+02:00</published><updated>2010-06-28T16:58:46.711+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DAY()'/><category scheme='http://www.blogger.com/atom/ns#' term='CEILING()'/><category scheme='http://www.blogger.com/atom/ns#' term='Datumsfunktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='DOW()'/><title type='text'>Datumsspielereien (Teil 4) / Date gadgets (Part 4)</title><summary type='text'>Bereits in einigen früheren Postings (Datumsspielereien Teil 1-3) waren Datumswerte ein Thema. In diesem Posting dreht es sich jedoch nicht um Feiertage sondern um die Berechnung spezieller Tage. Insbesondere die aktuelle Woche des Monats, die Kalenderwoche sowie der Montag der Woche. Zur Berechnung des Monatswoche benötigen wir drei Funktionen: CEILING(), DOW() und DAY(). CEILING gibt die nächst</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8802060297185571696/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8802060297185571696' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8802060297185571696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8802060297185571696'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/07/datumsspielereien-teil-4.html' title='Datumsspielereien (Teil 4) / Date gadgets (Part 4)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-5461389709435796449</id><published>2009-07-15T08:08:00.004+02:00</published><updated>2010-06-28T16:59:31.882+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Arrays'/><title type='text'>Arbeiten mit Arrays / Working with arrays</title><summary type='text'>Wer mit VFP arbeitet wird irgendwann feststellen, dass nicht immer alle Informationen als Cursor zur Verfügung stehen. Viele Funktionen des Fuxes die u.a. auch auf Objekte und Verzeichnisse zugreifen, stellen ihre gesammelten Informationen in Form eines Arrays bereit. 

Unter anderem gibt die Funktion ADIR() bei gezielten Verzeichnisabfragen (bspw. mit ADIR(myArray,[*],[D],1) ) grundsätzlich den </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/5461389709435796449/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=5461389709435796449' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5461389709435796449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5461389709435796449'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/07/arbeiten-mit-arrays.html' title='Arbeiten mit Arrays / Working with arrays'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-7558591589598911686</id><published>2009-03-05T10:37:00.006+01:00</published><updated>2010-06-28T17:00:01.265+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hilfedatei'/><category scheme='http://www.blogger.com/atom/ns#' term='FoxTabs'/><category scheme='http://www.blogger.com/atom/ns#' term='PEM Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFPx'/><category scheme='http://www.blogger.com/atom/ns#' term='VFP9 SP2'/><category scheme='http://www.blogger.com/atom/ns#' term='Themed Controls'/><title type='text'>Neuigkeiten über VFPx / VFPx news</title><summary type='text'>In den letzten vier Wochen gab es wieder jede Menge neues im Bereich VFPx. Bereich Abgeschlossene Projekte 
Seit dem 22. Februar steht die Version 3.01 des PEM Editors zur Verfügung.
Bereich Release Candidates 
Seit dem 18. Februar die von Rick Schummer angekündigte korrigierte und erweiterte VFP9 SP2 Hilfedatei in der Version 1.05 bereit.
Seit dem 9. Februar gibt es die Version 3.5.0 der Themed </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/7558591589598911686/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=7558591589598911686' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7558591589598911686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7558591589598911686'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/03/neuigkeiten-uber-vfpx.html' title='Neuigkeiten über VFPx / VFPx news'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-732516051716778823</id><published>2009-02-12T08:07:00.007+01:00</published><updated>2010-06-28T17:01:22.851+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nostalgie'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='C64 Bootscreen'/><title type='text'>Nostalgie als VFP-Startprogramm / Nostalgia as VFP start program</title><summary type='text'>Vor ein paar Tagen fiel mir beim Durchstöbern eines alten VFP-Verzeichnisses ein kleines Programm auf, dass den C64 Bootscreen simuliert. 

Nun war der alte Brotkasten nicht wirklich mein erster Computer (mein erster Commodore, ein C116, war eher ein überdimensionierter Taschenrechner dessen Abmessungen die der zum laden und speichern der Programme benötigten Datasette nur knapp überstieg und </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/732516051716778823/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=732516051716778823' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/732516051716778823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/732516051716778823'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/02/nostalgie-als-vfp-startprogramm.html' title='Nostalgie als VFP-Startprogramm / Nostalgia as VFP start program'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3372899843585516103</id><published>2009-02-05T08:34:00.008+01:00</published><updated>2010-06-28T17:02:30.180+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Entwurfsmuster'/><category scheme='http://www.blogger.com/atom/ns#' term='Der Dekorierer'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='The Decorator'/><title type='text'>Einführung in Entwurfsmuster (Teil 5) / Introduction to design patterns (Part 5)</title><summary type='text'>Im Dezember 2006/Januar 2007 schrieb Andy Kramek in seinem Blog über die Implementierung von Entwurfsmustern in Visual Foxpro. Andy hat mir erlaubt, meine deutsche Übersetzung seiner Artikelserie hier zu veröffentlichen. An dieser Stelle für seine Erlaubnis nochmals herzlichen Dank. 

Heute nun Teil 5, der sich mit dem Dekorierer beschäftigt. 

Hinweis: Die Überschriften der jeweiligen Kapitel </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3372899843585516103/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3372899843585516103' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3372899843585516103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3372899843585516103'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/02/einfuhrung-in-entwurfsmuster-teil-5.html' title='Einführung in Entwurfsmuster (Teil 5) / Introduction to design patterns (Part 5)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6E4j9SUV7xs/SYqZwdd2mlI/AAAAAAAAADQ/ouNi9t6pepM/s72-c/04_der_dekorierer.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-7405373422855299564</id><published>2009-01-23T08:32:00.006+01:00</published><updated>2010-06-28T17:03:30.458+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='VFPx'/><category scheme='http://www.blogger.com/atom/ns#' term='VFP9 SP2'/><title type='text'>Reparierte VFP9 SP2 Hilfedatei wird unter VFPX bereitgestellt / Fixed VFP9 SP2 help file is provided under VFPX</title><summary type='text'>Gute Nachricht von Rick Schummer zur im letzten Jahr im April erschienenen defekten SP2 Hilfedatei. 

Nachdem diverse (noch nicht genannte) Entwickler in den letzten Monaten die Hilfedatei durch Decompilieren, Reparieren und Neukompilieren von ihren ursprünglichen Problemen befreit haben, hat YAG von Microsoft Seite nun die Genehmigung erteilt, die Hilfedatei auf VFPX unter der Creative Common </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/7405373422855299564/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=7405373422855299564' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7405373422855299564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7405373422855299564'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/01/reparierte-vfp9-sp2-hilfedatei-wird.html' title='Reparierte VFP9 SP2 Hilfedatei wird unter VFPX bereitgestellt / Fixed VFP9 SP2 help file is provided under VFPX'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-9031688757421042035</id><published>2009-01-15T15:28:00.007+01:00</published><updated>2010-06-28T17:04:48.927+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WAV abspielen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>WAV-Sounds mit VFP abspielen / Playing WAV-sounds with VFP</title><summary type='text'>Vor einiger Zeit hatte ich mir einen kleinen TeaTimer gebaut, damit mein schwarzer Tee nicht dauernd 10 bis 20 Minuten zieht. 

Das Ganze passte auch prima, solange ich die Timer-Form im Auge behielt. Dummerweise schaue ich während der Arbeit mit Foxpro aber auf mein Codefenster und so passierte es recht häufig, dass ich doch wieder einen 20 Minuten Tee da stehen hatte. 

Lange Rede kurzer Sinn, </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/9031688757421042035/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=9031688757421042035' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/9031688757421042035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/9031688757421042035'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/01/wav-sounds-mit-vfp-abspielen.html' title='WAV-Sounds mit VFP abspielen / Playing WAV-sounds with VFP'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-117948803473525408</id><published>2009-01-12T08:09:00.009+01:00</published><updated>2010-06-29T09:42:29.003+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zuständigskeitskette'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Entwurfsmuster'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Chain of Responsibility'/><title type='text'>Einführung in Entwurfsmuster (Teil4) / Introduction to design patterns (Part4)</title><summary type='text'>Im Dezember 2006/Januar 2007 schrieb Andy Kramek in seinem Blog über die Implementierung von Entwurfsmustern in Visual Foxpro. Andy hat mir erlaubt, meine deutsche Übersetzung seiner Artikelserie hier zu veröffentlichen. An dieser Stelle für seine Erlaubnis nochmals herzlichen Dank. 

Heute nun Teil 4, der sich mit der Zuständigkeitskette beschäftigt. 

Hinweis: Die Überschriften der jeweiligen </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/117948803473525408/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=117948803473525408' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/117948803473525408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/117948803473525408'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2009/01/einfhrung-in-entwurfsmuster-teil4.html' title='Einführung in Entwurfsmuster (Teil4) / Introduction to design patterns (Part4)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6E4j9SUV7xs/SWru0iwR3LI/AAAAAAAAADI/nk3wda7Ynfs/s72-c/03_die_zustaendigkeitskette.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6659680670121124540</id><published>2008-12-18T08:05:00.005+01:00</published><updated>2010-06-29T09:43:51.714+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Strategy'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Entwurfsmuster'/><category scheme='http://www.blogger.com/atom/ns#' term='Strategie'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Einführung in Entwurfsmuster (Teil3) / Introduction to design patterns (Part3)</title><summary type='text'>Im Dezember 2006/Januar 2007 schrieb Andy Kramek in seinem Blog über die Implementierung von Entwurfsmustern in Visual Foxpro. Andy hat mir erlaubt, meine deutsche Übersetzung seiner Artikelserie hier zu veröffentlichen. An dieser Stelle für seine Erlaubnis nochmals herzlichen Dank. 

Heute nun Teil 3, der sich mit dem Strategiemuster beschäftigt. 

Hinweis: Die Überschriften der jeweiligen </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6659680670121124540/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6659680670121124540' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6659680670121124540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6659680670121124540'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/12/einfhrung-in-entwurfsmuster-teil3.html' title='Einführung in Entwurfsmuster (Teil3) / Introduction to design patterns (Part3)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6E4j9SUV7xs/SUn4m8ds5mI/AAAAAAAAADA/9h96qG2jWIY/s72-c/02_das_strategiemuster.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-2124870984499417209</id><published>2008-12-11T08:04:00.002+01:00</published><updated>2008-12-11T08:16:31.818+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Security Updates'/><title type='text'>Microsoft Security Bulletin MS08-070</title><summary type='text'>Visual FoxPro ActiveX Controls Security UpdateDer Microsoft Security Bulletin MS08-070 - Critical listet u.a. auch Visual Foxpro 8 SP1 sowie Visual Foxpro 9 SP1/SP2 als betroffene Produkte auf. Die verfügbaren Patches können hier heruntergeladen werden:Visual FoxPro 8.0 SP1
http://www.microsoft.com/downloads/details.aspx?familyid=A6977F81-F7F6-486B-96AD-8D296D79F205&amp;displaylang=enVisual FoxPro </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/2124870984499417209/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=2124870984499417209' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2124870984499417209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2124870984499417209'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/12/microsoft-security-bulletin-ms08-070.html' title='Microsoft Security Bulletin MS08-070'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-5792659714421268780</id><published>2008-12-10T08:05:00.007+01:00</published><updated>2010-06-29T09:44:51.692+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Entwurfsmuster'/><category scheme='http://www.blogger.com/atom/ns#' term='Brücke'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Bridge'/><title type='text'>Einführung in Entwurfsmuster (Teil2) / Introduction to design patterns (Part2)</title><summary type='text'>Im Dezember 2006/Januar 2007 schrieb Andy Kramek in seinem Blog über die Implementierung von Entwurfsmustern in Visual Foxpro. Andy hat mir erlaubt, meine deutsche Übersetzung seiner Artikelserie hier zu veröffentlichen. An dieser Stelle für seine Erlaubnis nochmals herzlichen Dank. 

Heute nun Teil 2, der sich mit dem grundlegendsten Muster - der Brücke - beschäftigt. 

Hinweis: Die </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/5792659714421268780/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=5792659714421268780' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5792659714421268780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5792659714421268780'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/12/einfhrung-in-entwurfsmuster-teil2.html' title='Einführung in Entwurfsmuster (Teil2) / Introduction to design patterns (Part2)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6E4j9SUV7xs/ST9yzDxpa0I/AAAAAAAAACM/RrIPvdQaje0/s72-c/01_das_brueckenmuster.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8636953287771299589</id><published>2008-12-04T08:03:00.008+01:00</published><updated>2010-06-29T09:51:10.138+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Entwurfsmuster'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Einführung in Entwurfsmuster (Teil1) / Introduction to design patterns (Part1)</title><summary type='text'>Im Dezember 2006/Januar 2007 schrieb Andy Kramek in seinem Blog über die Implementierung von Entwurfsmustern in Visual Foxpro. Andy hat mir erlaubt, meine deutsche Übersetzung seiner Artikelserie hier zu veröffentlichen. An dieser Stelle für seine Erlaubnis nochmals herzlichen Dank. 

Heute nun also der erste Teil. 

Hinweis: Die Überschriften der jeweiligen Kapitel sind direkt mit seinem </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8636953287771299589/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8636953287771299589' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8636953287771299589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8636953287771299589'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/12/einfhrung-in-entwurfsmuster-teil1.html' title='Einführung in Entwurfsmuster (Teil1) / Introduction to design patterns (Part1)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6008074429633944371</id><published>2008-11-16T15:04:00.007+01:00</published><updated>2010-03-15T12:00:06.634+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Promotionvideo'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>FoxPro - The Evolution of a new Standard</title><summary type='text'>Während der 2008 DEVCON Keynote in Frankfurt zeigte Ken ein Promotionvideo zu FoxPro. Rainer versuchte ihm zwar das Video 'abzuschwatzen', aber irgendwie wollte Ken es nicht rausrücken. Im März diesen Jahres war dieses Video jedoch schon auf Youtube veröffentlicht worden. Wer sich das Filmchen also nochmals geniesserisch reinziehen möchte... 

hier der Link: http://www.youtube.com/watch?v=</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6008074429633944371/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6008074429633944371' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6008074429633944371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6008074429633944371'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/11/foxpro-evolution-of-new-standard.html' title='FoxPro - The Evolution of a new Standard'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3456605304371892189</id><published>2008-11-10T13:01:00.008+01:00</published><updated>2010-06-29T09:57:04.393+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GDIPlusX'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFPx'/><title type='text'>12 Monate Bloggen rund um den Fuchs / 12 months blogging about the fox</title><summary type='text'>Tja, jetzt ist es doch tatsächlich bereits ein Jahr her seit ich den ersten Eintrag in diesem Blog erfasst habe. Es waren weniger Einträge als ich geplant hatte, aber auf Grund der beständig wachsenden Zahl an Lesern werde ich diesen Blog sicherlich weiter führen. 

In den nächsten Monaten habe ich vor, ein wenig über Entwurfsmuster (Design Pattern) und deren Anwendung/Umsetzung in VFP zu </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3456605304371892189/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3456605304371892189' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3456605304371892189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3456605304371892189'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/11/12-monate-bloggen-rund-um-den-fuchs.html' title='12 Monate Bloggen rund um den Fuchs / 12 months blogging about the fox'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6519416322528098147</id><published>2008-10-22T09:59:00.006+02:00</published><updated>2010-06-29T09:53:07.990+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Datumstempel'/><category scheme='http://www.blogger.com/atom/ns#' term='Datumsfunktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Zeitstempel'/><title type='text'>Beliebig formatierte Datum-/Zeitstempel / Free formatted date- and timestamps</title><summary type='text'>Immer wieder besteht der Bedarf, einen Dateinamen mit einem Datum- und/oder Zeitstempel zu versehen. Da der Aufbau jedoch jedes Mal anders aussieht, und alles (wie so oft) schnell gehen muss, sammeln sich im Laufe der Zeit die verschiedensten Funktionen an um den Dateinamen aufzubereiten. Um dieses Sammelsorium ein klein wenig zu entschlacken gibt es in diesem Blogeintrag einen Mustercode für </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6519416322528098147/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6519416322528098147' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6519416322528098147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6519416322528098147'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/10/beliebig-formatierte-datum-zeitstempel.html' title='Beliebig formatierte Datum-/Zeitstempel / Free formatted date- and timestamps'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-1310992128219450863</id><published>2008-10-01T08:51:00.005+02:00</published><updated>2010-06-29T09:54:07.412+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Excel 2007 Format lesen und schreiben / read and write Excel 2007 format</title><summary type='text'>Craig Boyd hat in seinem Blog hochinteressanten Code zum lesen und schreiben des aktuellen Excel 2007 Formats (xlsx) bereitgestellt.

Die direkt vom Blog herunterladbare ZIP-Datei (19,15 KB) enthält ein kleines PRG. Darin finden sich u.a. die beiden Funktionen 'AppendFromExcel()' und 'CopyToExcel()' mit denen die Bearbeitung von xlsx-Dateien ermöglicht wird, ohne das Office 2007 auf dem Rechner </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/1310992128219450863/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=1310992128219450863' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1310992128219450863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1310992128219450863'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/10/excel-2007-format-lesen-und-schreiben.html' title='Excel 2007 Format lesen und schreiben / read and write Excel 2007 format'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6751318692581419819</id><published>2008-09-15T08:17:00.005+02:00</published><updated>2010-03-19T11:31:50.607+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GDIplus'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Security Updates'/><title type='text'>Security Updates für VFP8 und VFP9</title><summary type='text'>In seinem aktuellen 'Letter from the Editor' hat Milind Lele (Visual Foxpro und Visual Studio Program Manager) drei Patches zu Visual Foxpro veröffentlicht.

Die Patches stehen für VFP 8 SP1, VFP9 SP1 und VFP9 SP2 zur Verfügung. 

Rick Schummer vermutet, da es sich in allen drei Fällen um eine gepatchte GDIplus.dll handelt, dass der Download einer einzigen Patchdatei genügt, ist sich bisher </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6751318692581419819/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6751318692581419819' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6751318692581419819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6751318692581419819'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/09/security-updates-fr-vfp8-und-vfp9.html' title='Security Updates für VFP8 und VFP9'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-1117034209275716273</id><published>2008-09-15T07:41:00.004+02:00</published><updated>2010-03-19T11:36:11.174+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><category scheme='http://www.blogger.com/atom/ns#' term='Poll'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFPx'/><title type='text'>VFPx Poll von Andrew MacNeill</title><summary type='text'>Offensichtlich ist die VFPx Initiative um Open Source Add-Ons für VFP auf Microsoft's Codeplex bereitzustellen, noch längst nicht so vielen Entwicklern bekannt wie bisher eigentlich zu erwarten gewesen wäre. Aus diesem Grund hat Andrew MacNeill einen kleinen Poll eingerichtet, bei dem jeder Visual Foxpro Entwickler aufgerufen ist, seine Stimme abzugeben.

Hier geht es zu Andrew's Poll:
http://</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/1117034209275716273/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=1117034209275716273' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1117034209275716273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1117034209275716273'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/09/vfpx-poll-von-andrew-macneill.html' title='VFPx Poll von Andrew MacNeill'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6183284926193607788</id><published>2008-09-03T11:03:00.004+02:00</published><updated>2010-06-29T09:54:54.164+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='UNC Pfadnamen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Erzeugen von UNC Pfadnamen / Creating UNC pathnames</title><summary type='text'>Im folgenden Posting geht es um die Konvertierung von Verzeichnisnamen die auf gemappte Laufwerke zugreifen.

Mit Hilfe der WIN32API können wir über die dort verfügbare Funktion WNetGetConnection den UNC Namen ( Universal/Uniform Naming Convention ) einer solchen Verbindung abfragen.


FUNCTION GetUNCPath
LPARAMETERS vMappedName as String
  * // Datendeklaration und Initialisierung
  LOCAL    </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6183284926193607788/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6183284926193607788' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6183284926193607788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6183284926193607788'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/09/erzeugen-von-unc-pfadnamen.html' title='Erzeugen von UNC Pfadnamen / Creating UNC pathnames'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-2885946188478845299</id><published>2008-08-07T10:44:00.005+02:00</published><updated>2010-06-29T09:55:51.064+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SYS-Funktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Dateien'/><category scheme='http://www.blogger.com/atom/ns#' term='Verzeichnisse'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Einlesen grosser Verzeichnisse ohne ADIR() / Reading large directories without ADIR()</title><summary type='text'>Im UT kam heute die Frage bzgl. des Einlesens von Dateien aus Verzeichnissen mit mehr als 12800 Dateien auf. ADIR() lieferte einen Error 31 - Invalid subscript reference.

U.a. für solche Fälle steht in Foxpro die Funktion SYS(2000, Skeleton [, 1]) zur Verfügung. Mit ihrer Hilfe können Verzeichnisse über eine Verarbeitungsschleife eingelesen werden. Im folgenden ein kleines Beispiel das sämtliche</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/2885946188478845299/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=2885946188478845299' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2885946188478845299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2885946188478845299'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/08/einlesen-grosser-verzeichnisse-ohne.html' title='Einlesen grosser Verzeichnisse ohne ADIR() / Reading large directories without ADIR()'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-2320008327719524888</id><published>2008-08-04T14:12:00.005+02:00</published><updated>2010-06-29T09:57:35.442+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFPx'/><title type='text'>Neues bei VFPx / VFPx news</title><summary type='text'>Nachdem das OOP Menu Projekt den Status 'Production Release' erreicht hat, gibt es auch schon das nächste Menüprojekt.

Das von LingFeng Shi gemanagte PopMenu Projekt steht als Alfa Release zum Download bereit.

Eine regelmäßig aktualisierte Übersicht der VFPx Projekte gibts hier
http://tomsvfpblog.blogspot.com/2008/02/vfpx-auf-codeplex-aktualisiert.html

und hier (in Englisch)
http://</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/2320008327719524888/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=2320008327719524888' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2320008327719524888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2320008327719524888'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/08/neues-bei-vfpx.html' title='Neues bei VFPx / VFPx news'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-9096131793838872443</id><published>2008-07-15T10:47:00.005+02:00</published><updated>2010-06-29T09:58:28.534+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OLE Automation'/><category scheme='http://www.blogger.com/atom/ns#' term='Rechtschreibkorrektur'/><category scheme='http://www.blogger.com/atom/ns#' term='Word'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Rechtschreibkorrektur über Word / Spellchecking with Word</title><summary type='text'>Wenn wir dem Anwender die Möglichkeit geben, innerhalb unserer Applikation Texte zu erfassen, die über ein paar Worte hinausgehen, dann wäre es ganz praktisch, diese erfassten Daten, auf Anfrage, einer Rechtschreibprüfung zu unterziehen.

Ist auf dem Kundensystem Word installiert, so stellt sich diese Option als leicht realisierbar dar. Der folgende Beispielcode greift auf eine Funktion zu, die </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/9096131793838872443/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=9096131793838872443' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/9096131793838872443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/9096131793838872443'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/07/rechtschreibkorrektur-ber-word.html' title='Rechtschreibkorrektur über Word / Spellchecking with Word'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6490645509523704278</id><published>2008-07-01T11:01:00.007+02:00</published><updated>2010-06-29T09:59:49.273+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FoxCharts'/><category scheme='http://www.blogger.com/atom/ns#' term='VFP Imaging'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFPx'/><title type='text'>Aktualisierung von FoxCharts auf Version 0.40 Beta / Update of FoxCharts to version 0.40 beta</title><summary type='text'>Cesar Chalom hat eine neue Version seiner Diagramm Bibliothek ins Netz gestellt.
Wer dieses Tool bisher noch nicht kennt, sollte das unbedingt nachholen!

Hier der Link zum VFP-Imaging Blog. Dort stehen auch die neuen Features zum Nachlesen.
http://weblogs.foxite.com/vfpimaging/archive/2008/06/30/6353.aspx
Hier der Link zur Downloadseite auf Codeplex/VFPx
http://www.codeplex.com/VFPX/Release/</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6490645509523704278/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6490645509523704278' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6490645509523704278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6490645509523704278'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/07/aktualisierung-von-foxcharts-auf.html' title='Aktualisierung von FoxCharts auf Version 0.40 Beta / Update of FoxCharts to version 0.40 beta'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-2722450862205534301</id><published>2008-06-30T11:37:00.005+02:00</published><updated>2010-06-29T10:00:46.893+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Verzeichnisse'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Scripting'/><title type='text'>Kopieren, verschieben und löschen von Verzeichnisstrukturen / Copy, move and delete directory structures</title><summary type='text'>Das Kopieren, Verschieben/Umbenennen und Löschen von einzelnen Dateien stellt unter Visual Foxpro üblicherweise kein Problem dar. Die Befehle


COPY FILE Filename1 TO Filename2
RENAME Filename1 TO Filename2
DELETE FILE Filename [RECYCLE]

übernehmen diese Aufgaben. An dieser Stelle möchte ich jedoch nochmals auf meinen Blog-Eintrag zum Thema Namensausdrücke hinweisen, denn die dort beschriebenen </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/2722450862205534301/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=2722450862205534301' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2722450862205534301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2722450862205534301'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/06/kopieren-verschieben-und-lschen-von.html' title='Kopieren, verschieben und löschen von Verzeichnisstrukturen / Copy, move and delete directory structures'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-4303404838718978869</id><published>2008-06-24T09:24:00.005+02:00</published><updated>2010-06-29T10:01:25.289+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='bewegliche Forms'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Wie bewege ich eine Form ohne Titelleiste / How to move a form without titlebar</title><summary type='text'>Ab und an besteht der Bedarf, ein Formobjekt ohne Titelleiste darzustellen. Mit Hilfe der Form-Eigenschaft 'TitleBar' läßt sich das soweit auch problemlos bewerkstelligen. Soll diese nun 'kopflose' Form jedoch trotzdem auf dem Bildschirm bewegt werden können, dann haben wir jetzt ein klitzekleines Problem, denn die Titelleiste einer Form dient nun einmal als Haltegriff für die Maus, wenn eine </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/4303404838718978869/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=4303404838718978869' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4303404838718978869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4303404838718978869'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/06/wie-bewege-ich-eine-form-ohne.html' title='Wie bewege ich eine Form ohne Titelleiste / How to move a form without titlebar'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3142794946397830778</id><published>2008-06-18T12:14:00.006+02:00</published><updated>2010-06-29T10:02:28.578+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zeichenketten'/><category scheme='http://www.blogger.com/atom/ns#' term='Stringvergleich'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Zeichenketten auf ihren Aufbau prüfen / Checking strings on their structure</title><summary type='text'>Im UT kam vor einigen Wochen die Frage auf, wie eine gültige Telefonnummer innerhalb einer Zeichenkette gefunden werden könne.

Der Aufbau der Zeichenketten war wie folgt:  
Suite 100 123-1234 -&gt; 123-1234  
Room 4711 333-12345 -&gt; ungültig  
Bldg J (910)222-2222 -&gt; 222-2222

Die Lösung ist recht einfach. Im ersten Schritt wird die potentielle Telefonnummer (letzter Block) herausgelöst. Im zweiten </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3142794946397830778/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3142794946397830778' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3142794946397830778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3142794946397830778'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/06/zeichenketten-auf-ihren-aufbau-prfen.html' title='Zeichenketten auf ihren Aufbau prüfen / Checking strings on their structure'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-5585634787466886086</id><published>2008-05-28T15:47:00.006+02:00</published><updated>2010-06-29T10:02:56.553+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Datumsfunktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Feiertagsberechnungen'/><title type='text'>Datumsspielereien (Teil 3) / Date gadgets (Part 3)</title><summary type='text'>Im dritten Posting geht es um diejenigen Feiertage, die in direkter Beziehung zu Heiligabend oder vielmehr dem 1. Weihnachtsfeiertag stehen.

Im Einzelnen handelt es sich hier um den Volkstrauertag, Buss- und Bettag, Totensonntag sowie den 1. - 4. Advent.

Der folgende Code greift auf die im Teil 1 beschriebene Funktion SetYear() zurück.

Ähnlich wie beim Osterfest und den daran gekoppelten </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/5585634787466886086/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=5585634787466886086' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5585634787466886086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5585634787466886086'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/05/datumsspielereien-teil-3.html' title='Datumsspielereien (Teil 3) / Date gadgets (Part 3)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-900032117146956086</id><published>2008-05-26T11:44:00.006+02:00</published><updated>2010-06-29T10:04:44.685+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Datumsfunktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Feiertagsberechnungen'/><title type='text'>Datumsspielereien (Teil 2) / Date gadgets (Part 2)</title><summary type='text'>Im zweiten Posting der Datumspielereien geht es um die Berechnung von Weiberfastnacht, Rosenmontag, Fastnacht, Aschermittwoch, Karfreitag, Ostermontag, Christi Himmelfahrt, Pfingstsonntag, Pfingstmontag und Fronleichnam. Mit anderen Worten um sämtliche (mir bekannten) Ostern-abhängigen Feiertage.

Der folgende Code greift auf die im Teil 1 beschriebenen Funktionen GetOstersonntag() und SetYear() </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/900032117146956086/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=900032117146956086' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/900032117146956086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/900032117146956086'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/05/datumsspielereien-teil-2.html' title='Datumsspielereien (Teil 2) / Date gadgets (Part 2)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-539944189653107978</id><published>2008-05-19T09:12:00.012+02:00</published><updated>2010-06-29T10:05:09.499+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Osterformel nach Gauß'/><category scheme='http://www.blogger.com/atom/ns#' term='Datumsfunktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Feiertagsberechnungen'/><title type='text'>Datumsspielereien (Teil 1) / Date gadgets (Part 1)</title><summary type='text'>Als ich mit dem Entwickeln von Software begann, hätte ich mir nicht träumen lassen, welche Algorithmen hinter der Berechnung eines speziellen Datums liegen können.

Natürlich war ich mir der beweglichen kirchlichen Feiertage bewußt, aber um das Warum machte ich mir keine Gedanken. Erst wenn wir uns näher mit diesen diversen Feiertagen befassen stellen wir fest, dass das Osterfest für die </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/539944189653107978/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=539944189653107978' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/539944189653107978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/539944189653107978'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/05/datumsspielereien-teil-1.html' title='Datumsspielereien (Teil 1) / Date gadgets (Part 1)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-2592540345942910612</id><published>2008-05-05T08:11:00.006+02:00</published><updated>2010-06-29T10:06:17.694+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zwischenablage'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Applikationsobjekt'/><title type='text'>So bekommen wir einen Cursor in die Zwischenablage / How to get a cursor into clipboard</title><summary type='text'>Um Textinformationen in die Zwischenablage zu kopieren wird üblicherweise die Systemvariable _CLIPTEXT genutzt.

cMyVar = [Hallo Welt]
_cliptext = cMyVar

Mit einer Tabelle (oder einem Cursor) funktioniert dies allerdings nicht.

Um eine Datenmenge, unabhängig davon ob sie als Tabelle oder als Cursor vorliegt, in die Zwischenablage zu bekommen könnte man nun meinen, dass mühevoll per </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/2592540345942910612/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=2592540345942910612' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2592540345942910612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2592540345942910612'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/05/so-bekommen-wir-einen-cursor-in-die.html' title='So bekommen wir einen Cursor in die Zwischenablage / How to get a cursor into clipboard'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-700286194397958859</id><published>2008-04-28T08:23:00.006+02:00</published><updated>2010-06-29T10:07:26.155+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hilfedatei'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Neue englische Hilfedatei für VFP9 SP2 / New English help file for VFP9 SP2</title><summary type='text'>Microsoft hat am 25. April eine neue, ca. 11 MB grosse Version der fehlerbehafteten Hilfedatei online gestellt.

Hier der Download Link: 
http://www.microsoft.com/downloads/details.aspx?FamilyId=842ACEC8-F79C-41CD-AB1A-AE4F184387C2&amp;displaylang=en

Um innerhalb von VFP Zugriff auf diese Datei zu erhalten sollte die Datei (dv_foxhelp.chm) umgehend in den VFP9 Installationsordner kopiert werden. Bei</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/700286194397958859/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=700286194397958859' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/700286194397958859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/700286194397958859'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/04/neue-englische-hilfedatei-fr-vfp-sp2.html' title='Neue englische Hilfedatei für VFP9 SP2 / New English help file for VFP9 SP2'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3982699526684544896</id><published>2008-04-21T10:00:00.004+02:00</published><updated>2010-06-29T10:08:09.159+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dateinamen'/><category scheme='http://www.blogger.com/atom/ns#' term='Verzeichnisse'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Arbeiten mit Verzeichnissen und Dateinamen (Teil 3) / Working with directories and filenames (Part 3)</title><summary type='text'>Die beiden vorangegangenen Teile handelten von den Funktionen GETDIR() und ADDBS() sowie GETFILE(), CHDIR und CURDIR(). In diesem Eintrag geht es nun um die Zerlegung der einzelnen Bereiche eines Dateinamens inklusive vorgelagertem Pfadnamen.

Wenn wir mit Hilfe von GETFILE() eine Datei selektiert und die Auswahl überprüft haben,

cFile = GETFILE()
IF FILE(cFile)
    ...
ENDIF

kommt es immer </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3982699526684544896/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3982699526684544896' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3982699526684544896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3982699526684544896'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/04/arbeiten-mit-verzeichnissen-und_21.html' title='Arbeiten mit Verzeichnissen und Dateinamen (Teil 3) / Working with directories and filenames (Part 3)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-270606911443689725</id><published>2008-04-16T14:15:00.004+02:00</published><updated>2010-03-19T12:02:19.214+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='undokumentiert'/><category scheme='http://www.blogger.com/atom/ns#' term='Messagebox'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Undokumentierte Parameterwerte in der Messagebox</title><summary type='text'>Gemäß der FAQs von George Tasker gibt es bei der VFP Messagebox zwei undokumentierte Werte beim zweiten Parameter.

Hierbei handelt es sich um:

#DEFINE MB_SYSTEMMODAL 4096
#DEFINE MB_TASKMODAL 8192

Der Einsatz dieser beiden Werte beeinflußt ausschließlich Modalitätslevel und -bereich des Messagebox-Dialogs.

MB_TASKMODAL (8192) hat üblicherweise einen wenig sichtbaren Effekt auf die Dialogbox. </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/270606911443689725/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=270606911443689725' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/270606911443689725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/270606911443689725'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/04/undokumentierte-parameterwerte-in-der.html' title='Undokumentierte Parameterwerte in der Messagebox'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-1168599702461826438</id><published>2008-04-15T13:55:00.007+02:00</published><updated>2010-06-29T10:10:18.035+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Farbanzeige'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Color picker'/><title type='text'>Welche Farbe war das noch mal? / What color was that again?</title><summary type='text'>Immer wieder stehe ich vor dem Problem, dass ich nicht mehr weiss, welche Farbtöne ich innerhalb einer visuellen Klasse benutzt habe.

In Expression Web stellt dies bspw. kein Problem dar. Dort ist ein 'Color Picker' integriert. Im Fux ist dem leider nicht so.

Bisher kam deswegen immer das kleine Tool 'Pixie' von Nattyware zum Einsatz. Im UT stolperte ich vor ein paar Tagen dann über ein kleines</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/1168599702461826438/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=1168599702461826438' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1168599702461826438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1168599702461826438'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/04/welche-farbe-war-das-noch-mal.html' title='Welche Farbe war das noch mal? / What color was that again?'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_6E4j9SUV7xs/SASg-TAER3I/AAAAAAAAACA/KHgDbEIfx9I/s72-c/ColorPicker.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-7006343325601644653</id><published>2008-04-04T10:55:00.006+02:00</published><updated>2010-06-29T10:09:05.226+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dateinamen'/><category scheme='http://www.blogger.com/atom/ns#' term='Verzeichnisse'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Arbeiten mit Verzeichnissen und Dateinamen (Teil 2) / Working with directories and filenames (Part 2)</title><summary type='text'>Nachdem ich im ersten Teil auf die Befehle GETDIR() und ADDBS() näher eingegangen bin, ist dieses Mal die Auswahl von Dateien angesagt.Ergänzend möchte ich auf einen älteren Eintrag hinweisen, der die Arbeit mit Namensausdrücken zum Thema hat.Der Befehl zur Dateiselektion ist sicherlich jedem VFPler hinlänglich bekannt:cFile = GETFILE()

GETFILE() kann jedoch mit diversen Parametern versorgt </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/7006343325601644653/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=7006343325601644653' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7006343325601644653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7006343325601644653'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/04/arbeiten-mit-verzeichnissen-und.html' title='Arbeiten mit Verzeichnissen und Dateinamen (Teil 2) / Working with directories and filenames (Part 2)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_6E4j9SUV7xs/R_XvN5JWpGI/AAAAAAAAAB4/J9rFeGtuMHU/s72-c/getfile_muster.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6767313671109675770</id><published>2008-04-04T07:49:00.005+02:00</published><updated>2010-06-29T10:11:13.534+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FoxCharts'/><category scheme='http://www.blogger.com/atom/ns#' term='VFP Imaging'/><category scheme='http://www.blogger.com/atom/ns#' term='Diagramme'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFPx'/><title type='text'>Neues Projekt in VFPx / New VFPx project</title><summary type='text'>MS Graph war gestern - heute ist VFP Imaging. 
OK, vielleicht ein klein wenig reisserisch, aber wer erst einmal einen Blick auf Cesar Chaloms neuesten BLOG-Eintrag geworfen hat, der wird mir sehr wahrscheinlich zustimmen. Bereits die Alpha-Version dieses neuen VFPx Projektes sieht verdammt vielversprechend aus. 

Hier geht's zu Cesar's Blog:
http://weblogs.foxite.com/vfpimaging/archive/2008/04/04</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6767313671109675770/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6767313671109675770' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6767313671109675770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6767313671109675770'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/04/neues-projekt-in-vfpx.html' title='Neues Projekt in VFPx / New VFPx project'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3489801517381747926</id><published>2008-04-02T14:23:00.009+02:00</published><updated>2010-06-29T10:12:12.842+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE Einstellungen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Consolas'/><title type='text'>Aktivieren des Consolas Schriftpakets in VFP / Enabling the Consolas font package in VFP</title><summary type='text'>Innerhalb der IDE von Visual Foxpro ist für alle einstellbaren Bereiche als Standardschrift Courier New voreingestellt.

Als proportionale Schrift sicherlich nicht die schlechteste Wahl für Entwickler. Nachteile ergeben sich immer dann, wenn mit den Zahlen eins und null(1/0) und den Buchstaben l und o (l/O) gearbeitet wird.

Da dieses Thema im Universalthread just wieder durchdiskutiert wurde, </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3489801517381747926/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3489801517381747926' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3489801517381747926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3489801517381747926'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/04/aktivieren-des-consolas-schriftpakets.html' title='Aktivieren des Consolas Schriftpakets in VFP / Enabling the Consolas font package in VFP'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_6E4j9SUV7xs/R_OAOJJWpFI/AAAAAAAAABw/9oiSNxkhkPE/s72-c/IDE_Consolas_Ablauf.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-2421320553582056301</id><published>2008-03-27T15:06:00.006+01:00</published><updated>2010-06-29T10:09:25.164+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dateinamen'/><category scheme='http://www.blogger.com/atom/ns#' term='Verzeichnisse'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Arbeiten mit Verzeichnissen und Dateinamen (Teil 1) / Working with directories and filenames (Part 1)</title><summary type='text'>Visual Foxpro ist eine Entwicklungssprache, bei der man sich nicht über einen Mangel an Befehlen und Funktionen beschweren kann. Ganz im Gegenteil. Problematisch ist es allerdings schon, in diesem Befehlsdschungel so halbwegs den Überblick zu bewahren.

Verständlich, dass der ein oder andere lieber auf die wenigen Befehle zurückgreift, die er oder sie bereits seit vielen Jahren immer wieder </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/2421320553582056301/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=2421320553582056301' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2421320553582056301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/2421320553582056301'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/03/arbeiten-mit-verzeichnissen-und.html' title='Arbeiten mit Verzeichnissen und Dateinamen (Teil 1) / Working with directories and filenames (Part 1)'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-5475393096339626159</id><published>2008-03-26T08:33:00.005+01:00</published><updated>2010-06-29T10:13:27.152+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Scripting Host'/><category scheme='http://www.blogger.com/atom/ns#' term='Word'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Word über Windows Scripting Host fernsteuern / Remote controlling Word with windows scripting host</title><summary type='text'>Wer intensiv mit Word arbeitet weiss, dass es für fast alle Funktionen drei Möglichkeiten gibt, diese aufzurufen (OK, manchmal gibt es auch vier ;-) ).

Die drei Basiswege hierbei stellen die Menüs und Popup-Menüs, die Maus und die Tastatur dar.

An dieser Stelle soll es sich um die eingebetteten Tastaturfunktionen drehen. Die meisten dieser Schnelltasten (Shortcuts) werden im übrigen in den </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/5475393096339626159/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=5475393096339626159' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5475393096339626159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5475393096339626159'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/03/word-ber-windows-scripting-host.html' title='Word über Windows Scripting Host fernsteuern / Remote controlling Word with windows scripting host'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-1701579071668700983</id><published>2008-03-19T11:24:00.006+01:00</published><updated>2010-06-29T10:14:06.308+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ping'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Alive'/><title type='text'>Netzwerk Ping in VFP / Network ping with VFP</title><summary type='text'>Wie eine Netzwerkadresse auf ihre Verfügbarkeit geprüft wird dürfte wohl den meisten Entwicklern bekannt sein...

    ping domaenenname.de

Hierbei erfolgt die Namensauflösung in eine IP-Adresse bei korrekt konfiguriertem DNS automatisch. Alternativ können wir natürlich auch direkt die IP-Adresse eingeben.

    ping 192.168.1.70

Im DOS-Befehlsfenster oder auch in Batchdateien kann es heute noch </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/1701579071668700983/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=1701579071668700983' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1701579071668700983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1701579071668700983'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/03/netzwerk-ping-in-vfp.html' title='Netzwerk Ping in VFP / Network ping with VFP'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-5520850408885219067</id><published>2008-03-17T14:05:00.009+01:00</published><updated>2010-06-29T10:14:41.598+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Syntax Farbeinstellungen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Editoreinstellungen / Editor settings</title><summary type='text'>Am 13. März hatte ich nach mehreren Monaten Pause wieder die Zeit gefunden, am Kölner dFPUG Regionaltreffen teilzunehmen.

Neben informativen und aufschlussreichen Gesprächen fiel mir zum wiederholten Male auf, dass Jo Hilgers spezielle, individuelle Syntax-Farbeinstellungen für den VFP-Editor vorgenommen hatte.

An sich ist das ja nichts aussergewhöhnliches. Mein Editor leuchtet ebenfalls in </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/5520850408885219067/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=5520850408885219067' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5520850408885219067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5520850408885219067'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/03/editoreinstellungen.html' title='Editoreinstellungen / Editor settings'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_6E4j9SUV7xs/R95yKJ-4a_I/AAAAAAAAABo/VZqWsZ8of50/s72-c/editor_farbeinstellungen.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3946220600356605823</id><published>2008-03-11T11:45:00.007+01:00</published><updated>2010-06-29T10:17:19.151+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stringvergleich'/><category scheme='http://www.blogger.com/atom/ns#' term='SET EXACT'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Gleicher als Gleich - Die Tücken des Stringvergleichs / More same as same - the pitfalls of the string comparison</title><summary type='text'>Angenommen, wir haben den folgenden Code in einer Prozedur/Funktion/Methode hinterlegt um den aktuellen Wert einer Listbox in Erfahrung zu bringen:

DO CASE
CASE "LKW" = listbox.value
    ....
CASE "Hänger" = listbox.value
    ...
CASE "LKW+Hänger" = listbox.value
    ...
ENDCASE

Wir werden u.U. nie in den dritten Zweig fallen. Ursache ist die Art und Weise, mit der VFP Strings miteinander </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3946220600356605823/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3946220600356605823' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3946220600356605823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3946220600356605823'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/03/gleicher-als-gleich-die-tcken-des.html' title='Gleicher als Gleich - Die Tücken des Stringvergleichs / More same as same - the pitfalls of the string comparison'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8226996748247500416</id><published>2008-02-26T08:15:00.014+01:00</published><updated>2010-06-29T10:18:17.709+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFPx'/><title type='text'>VFPx auf Codeplex aktualisiert / VFPx updated on Codeplex</title><summary type='text'>Die VFPx Seite wurde generalüberholt. Hierbei hat Craig Boyd für eine bessere Übersicht der einzelnen Projekte und deren aktuelle Releasestati gesorgt.

aktualisiert am 26.06.2008  
aktualisiert am 04.08.2008  
aktualisiert am 23.10.2008  
aktualisiert am 04.11.2008  
aktualisiert am 08.01.2009  
aktualisiert am 02.02.2009  
aktualisiert am 05.03.2009  

Abgeschlossene Projekte 

Sedna (Microsoft</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8226996748247500416/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8226996748247500416' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8226996748247500416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8226996748247500416'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/02/vfpx-auf-codeplex-aktualisiert.html' title='VFPx auf Codeplex aktualisiert / VFPx updated on Codeplex'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8112072139301041565</id><published>2008-02-21T08:47:00.006+01:00</published><updated>2010-03-19T12:24:20.772+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Isolated Shell'/><category scheme='http://www.blogger.com/atom/ns#' term='VFP Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Erster Weblog zu VFP Studio</title><summary type='text'>Craig Boyd hat in seinem Blog ein erstes Shockwave-Video zum Thema VFP Studio veröffentlicht, dem in der nächsten Zeit noch weitere Videobeiträge folgen sollen.  

VFP Studio basiert auf der Isolated Shell von Visual Studio und ermöglicht die VFP-Projektierung direkt im Visual Studio.

Im ersten Video ist zu sehen, wie der VS-Codeeditor im Zusammenspiel mit VFP-Code arbeitet. Bisher war ich mit </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8112072139301041565/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8112072139301041565' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8112072139301041565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8112072139301041565'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/02/erster-weblog-zu-vfp-studio.html' title='Erster Weblog zu VFP Studio'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-6767125421281127805</id><published>2008-02-20T16:09:00.006+01:00</published><updated>2010-06-29T10:19:50.615+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Namensausdrücke'/><category scheme='http://www.blogger.com/atom/ns#' term='Makrosubstitution'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Leerzeichen in Datei- und Verzeichnisnamen / Spaces in file- and directory names</title><summary type='text'>Mit der Makrosubstitution stellt uns Visual FoxPro eine wirklich mächtige Funktion zur Verfügung. Sie bekommt jedoch früher oder später ein Problem in Bezug auf Verzeichnis- und Dateinamen.

Sobald in diesen ein Leerzeichen enthalten ist, erzeugt VFP beim Ausführen der substitutierten Variablen einen Fehler. Da wir dem Anwender üblicherweise nicht vorschreiben können, wie er bspw. seine </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/6767125421281127805/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=6767125421281127805' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6767125421281127805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/6767125421281127805'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/02/leerzeichen-in-datei-und.html' title='Leerzeichen in Datei- und Verzeichnisnamen / Spaces in file- and directory names'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-1373178318098859913</id><published>2008-02-04T10:36:00.002+01:00</published><updated>2010-06-29T10:20:36.065+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MouseMove'/><category scheme='http://www.blogger.com/atom/ns#' term='Images'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Bilder zur Laufzeit in einem Form bewegen / Moving images in a form at runtime</title><summary type='text'>Zu o.a. Thema gibt es diverse, ziemlich aufwendige Codebeispiele. Je nach Aufgabenstellung macht es auch durchaus Sinn, einen etwas komplexeren Ansatz zu wählen. Wenn wir jedoch mit möglichst geringem Aufwand bspw. ein Image-Objekt zur Laufzeit bewegen möchten, dann läßt sich das auch mit wenig Code realisieren.

Für die Umsetzung benötigen wir jeweils eine Property für die X- und die Y-Achse, </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/1373178318098859913/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=1373178318098859913' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1373178318098859913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1373178318098859913'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/02/bilder-zur-laufzeit-in-einem-form.html' title='Bilder zur Laufzeit in einem Form bewegen / Moving images in a form at runtime'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8505333705457485447</id><published>2008-01-22T13:55:00.003+01:00</published><updated>2010-06-29T10:21:16.938+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Spracheinstellung'/><title type='text'>Feststellen der aktuellen Windows Spracheinstellung / Determine the current Windows language</title><summary type='text'>Mehrsprachigkeit in Applikationen ist schon lange ein Thema.

Wenn die Anwendung mit eigenen Logins arbeitet, kommt meist eine Klassenbibliothek zum Einsatz, die auf Basis des Anwendungslogins, die korrekte Sprache für die jeweiligen Masken einblendet.

Diese User-bezogene Reaktion können wir jedoch ganz einfach auf eine höhere Ebene tragen. Es wäre doch eigentlich ganz praktisch, wenn unsere </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8505333705457485447/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8505333705457485447' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8505333705457485447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8505333705457485447'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/01/feststellen-der-aktuellen-windows.html' title='Feststellen der aktuellen Windows Spracheinstellung / Determine the current Windows language'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3364705116657897508</id><published>2008-01-14T15:51:00.002+01:00</published><updated>2010-06-29T10:22:27.613+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell.Application'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='CSLID'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Herausfinden der Pfadnamen von CSLID-Ordnern / Locating the paths of CSLID folders</title><summary type='text'>Windows stellt eine Reihe von allgemein zugänglichen Standardverzeichnissen bereit.

Diese über Common System Location IDentifiers (CSLIDs) referenzierten Ordner werden über das Shell.Application - Objekt zum Abruf bereitgestellt. Hierbei steht für jeden Ordner den das jeweilige Windows BS unterstützt ein eigenes Ordnerobjekt zur Verfügung.

Der unten aufgeführte Mustercode beruht auf WinXPSP2 </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3364705116657897508/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3364705116657897508' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3364705116657897508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3364705116657897508'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/01/herausfinden-der-pfadnamen-von-cslid.html' title='Herausfinden der Pfadnamen von CSLID-Ordnern / Locating the paths of CSLID folders'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-5822930700718875626</id><published>2008-01-03T08:31:00.002+01:00</published><updated>2010-06-29T10:24:14.654+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ShellExecute'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Beliebige Dateien über assoziierte Anwendung öffnen / Opening any file with its associated application</title><summary type='text'>Um externe Anwendungen zu starten stellt Visual FoxPro den Befehl RUN zur Verfügung.

Wenn wir jedoch nicht wissen, wie die Anwendung genau heisst oder wo sie liegt, dann führt meist kein Weg an ShellExecute vorbei.

Dieses von shell32.dll bereitgestellte Interface ermöglicht uns ein recht flexibles Handling mit Dateien und den damit assoziierten Anwendungen.

Bevor wir mit ShellExecute arbeiten </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/5822930700718875626/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=5822930700718875626' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5822930700718875626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/5822930700718875626'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2008/01/beliebige-dateien-ber-assoziierte.html' title='Beliebige Dateien über assoziierte Anwendung öffnen / Opening any file with its associated application'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-4648297443523380745</id><published>2007-12-21T15:00:00.002+01:00</published><updated>2010-06-29T10:25:28.128+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Scripting Host'/><category scheme='http://www.blogger.com/atom/ns#' term='Verknüpfung erzeugen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Erstellen einer Desktopverknüpfung unter VFP / Creating a desktop shortcut with VFP</title><summary type='text'>Immer wieder besteht der Bedarf, bei einer Installation eine Desktopverknüpfung zu einer oder mehreren Dateien oder Applikationen zu erzeugen.

Professionelle Installer führen dies natürlich vollautomatisch für uns durch, aber hin und wieder müssen auch wir Entwickler solch eine Verknüpfung erzeugen.

Den einfachsten Weg stellt wie so oft der Windows Scripting Host bereit. Über 'CreateShortcut' </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/4648297443523380745/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=4648297443523380745' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4648297443523380745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4648297443523380745'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2007/12/erstellen-einer-desktopverknpfung-unter.html' title='Erstellen einer Desktopverknüpfung unter VFP / Creating a desktop shortcut with VFP'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-67368619707799336</id><published>2007-12-18T11:15:00.002+01:00</published><updated>2010-06-29T10:41:25.088+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Modulo Berechnung'/><title type='text'>Wieso verhält sich die Modulo-Funktion so wie sie sich verhält?!? / The reason why modulo behaves as it behaves</title><summary type='text'>Die vielleicht etwas eigenwillige Frage im Post-Titel beruht auf dem Ergebnis der beiden folgenden Berechnungen:

?MOD(9/10)  &amp;&amp; liefert 9 -&gt; 0 Rest 9
?MOD(-9/10) &amp;&amp; liefert 1 -&gt; x Rest 1 ??????

Woher kommt bei der zweiten Zeile das Ergebnis 1?

Grundsätzlich gilt, das bei der Modulo-Berechnung alle Zahlen in 'Blöcke' von 0 bis 9 eingeordnet werden:

...
  0 =&gt; Block 0
  1 =&gt; Block 1
  2 =&gt; </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/67368619707799336/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=67368619707799336' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/67368619707799336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/67368619707799336'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2007/12/wieso-verhlt-sich-die-modulo-funktion.html' title='Wieso verhält sich die Modulo-Funktion so wie sie sich verhält?!? / The reason why modulo behaves as it behaves'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-7217612512527371853</id><published>2007-11-29T10:09:00.002+01:00</published><updated>2010-06-29T10:42:03.748+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Umgebungsvariablen'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Arbeiten mit Umgebungsvariablen / Working with Environment Variables</title><summary type='text'>Als Umgebungsvariablen werden solche Werte angesehen, die vom BS bereitgestellt werden. Die meisten dieser Variablen können über START/Systemsteuerung/System/Erweitert/Umgebungsvariablen eingesehen und auch den eigenen Bedürfnissen entsprechend angepasst werden.

Die Funktion GetEnv() kommt in VFP schon lange zum Einsatz. Sie stellt nicht nur die zur Verfügung stehenden Variablen des BS dar, </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/7217612512527371853/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=7217612512527371853' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7217612512527371853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/7217612512527371853'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2007/11/arbeiten-mit-umgebungsvariablen.html' title='Arbeiten mit Umgebungsvariablen / Working with Environment Variables'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-4843333115544772377</id><published>2007-11-28T09:07:00.002+01:00</published><updated>2010-06-29T10:43:26.822+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MP3 Tags'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>ID3v1 Tags in MP3-Dateien auslesen und verändern / Read and change ID3v1 Tags in MP3 files</title><summary type='text'>Die Position des ID3v1 Tags in einer MP3 Datei ist recht einfach zu ermitteln. Der Offset in der Datei Beträgt -128 Bytes. Wenn also die MP3 Datei eine Grösse von 2500 Bytes besitzt, dann beginnt der Tag bei Byte 2372.

Die ersten drei Bytes stellen den Magic Code, der anzeigt, dass hier auch wirklich ein ID3v1 Tag vorhanden ist. Entsprechen diese 3 Zeichen nicht der Zeichenkette "TAG", dann ist </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/4843333115544772377/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=4843333115544772377' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4843333115544772377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/4843333115544772377'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2007/11/id3v1-tags-in-mp3-dateien-auslesen-und.html' title='ID3v1 Tags in MP3-Dateien auslesen und verändern / Read and change ID3v1 Tags in MP3 files'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-9092658342221353033</id><published>2007-11-26T09:08:00.002+01:00</published><updated>2010-06-29T10:44:55.964+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cursor'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Select'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Hinzufügen von Spalten in SQL SELECT Befehlen / Adding columns to SQL SELECT statements</title><summary type='text'>Eine häufig auftretende Anforderung bei der Arbeit mit Daten bzw. mit ihrer Datenquelle ist es, in der Lage zu sein 'on the fly' diese um zusätzliche Spalten zu ergänzen. 

Nun, dies ist ziemlich einfach, wenn es um das Hinzufügen einer neuen, leeren Spalte geht. Einfach in der Abfrage die SPACE()-Funktion wie folgt einsetzen:
  
SELECT SPACE(30) AS neuespalte FROM tabellenname

Hinweis: Das Wort</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/9092658342221353033/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=9092658342221353033' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/9092658342221353033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/9092658342221353033'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2007/11/hinzufgen-von-spalten-in-sql-select.html' title='Hinzufügen von Spalten in SQL SELECT Befehlen / Adding columns to SQL SELECT statements'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-8609636581009612563</id><published>2007-11-23T11:10:00.003+01:00</published><updated>2010-06-29T10:44:05.546+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Parameterobjekt'/><title type='text'>Arbeiten mit Parameterobjekten / Working with parameter objects</title><summary type='text'>PUBLIC Variablen wurden und werden immer noch gerne als alternative Variante für Parametereinstellungen genutzt. In der heutigen objektorienten Welt ist dies jedoch nicht mehr angebracht. Sie widersprechen dem Grundgedanken des gekapselten und unabhängigen Objekts.

Die Auswertung von Parametern in einem Objekt erfolgt häufig durch das vorherige Füllen von Objekteigenschaften durch das aufrufende</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/8609636581009612563/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=8609636581009612563' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8609636581009612563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/8609636581009612563'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2007/11/arbeiten-mit-parameterobjekten.html' title='Arbeiten mit Parameterobjekten / Working with parameter objects'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-1930576086246030412</id><published>2007-11-22T08:26:00.002+01:00</published><updated>2010-06-29T10:46:05.526+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Grid'/><title type='text'>So finden wir das aktuelle Objekt innerhalb eines Grids / How to find the current object within a grid</title><summary type='text'>Klar, das aktuelle Control einer Form ist schnell gefunden:
  
loObj = Thisform.ActiveControl
Wenn es jedoch um eine Text-, Edit- oder Checkbox eines Grids geht, dann funktioniert dies leider nicht, denn VFP liefert uns anstelle von Column und Row nur das Gridobjekt selbst. Das ist aber bei weitem kein Beinbruch. Das Grid verfügt über eine ähnliche Funktion, mit deren Hilfe sich die aktuelle </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/1930576086246030412/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=1930576086246030412' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1930576086246030412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1930576086246030412'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2007/11/so-finden-wir-das-aktuelle-objekt.html' title='So finden wir das aktuelle Objekt innerhalb eines Grids / How to find the current object within a grid'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-3538733317693886514</id><published>2007-11-21T08:30:00.003+01:00</published><updated>2010-06-29T10:47:26.906+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OLE Automation'/><category scheme='http://www.blogger.com/atom/ns#' term='Word'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><title type='text'>Welche WORD-Version liegt auf dem aktuellen System vor? / Which version of Word is installed on the current system?</title><summary type='text'>Mit jeder Word-Version stehen neue Funktionen für die OLE-Automation zur Verfügung oder das Interface wurde in Kleinigkeiten modifiziert. 

Somit ist es nicht ausreichend, dem Anwender mitzuteilen, dass für bestimmte Funktionen der eigenen Software einfach nur Word installiert sein muss. 

Vielmehr sollten wir als Entwickler dafür Sorge tragen, dass unsere Software auf die verschiedenen Versionen</summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/3538733317693886514/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=3538733317693886514' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3538733317693886514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/3538733317693886514'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2007/11/welche-word-version-liegt-auf-dem.html' title='Welche WORD-Version liegt auf dem aktuellen System vor? / Which version of Word is installed on the current system?'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797681432467884709.post-1670219455205799329</id><published>2007-11-20T08:24:00.003+01:00</published><updated>2010-06-29T10:49:14.807+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Messagebox'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='Textmerge'/><title type='text'>Meldungen und Infotexte einfach generieren / Messages and infos concatenated easily</title><summary type='text'>Oftmals stehen wir vor der Aufgabe, einen umfangreichen Informationstext (u.U. gefüllt mit Variablenwerten) in einer Message- oder Editbox auszugeben. 

Am Beispiel einer Fehlermeldung könnte dies vielleicht wie folgt aussehen:
  
FUNCTION ShowError
LPARAMETERS vError, vMessage, vCode, vLine, vObject
MESSAGEBOX([in Zeile ] + TRANSFORM(m.vLine) + [: ] + ALLTRIM(m.vCode) ;
+ CHR(13) + [ist </summary><link rel='replies' type='application/atom+xml' href='http://tomsvfpblog.blogspot.com/feeds/1670219455205799329/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6797681432467884709&amp;postID=1670219455205799329' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1670219455205799329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797681432467884709/posts/default/1670219455205799329'/><link rel='alternate' type='text/html' href='http://tomsvfpblog.blogspot.com/2007/11/meldungen-und-infotexte-einfach.html' title='Meldungen und Infotexte einfach generieren / Messages and infos concatenated easily'/><author><name>Tom Borgmann</name><uri>http://www.blogger.com/profile/08903165976787522012</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_6E4j9SUV7xs/Sxer4ms0RdI/AAAAAAAAADs/QMETdQn2qDw/S220/Tom_090x117.jpg'/></author><thr:total>0</thr:total></entry></feed>
