<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0">
<channel>
	<title>Delphi-PRAXiS</title>
	<link>http://www.delphipraxis.net</link>
	<language>de-de</language>
    <generator>Delphi-PRAXiS v2005</generator>
    <managingEditor>webmaster@delphipraxis.net</managingEditor>
    <webMaster>webmaster@delphipraxis.net</webMaster>

	<description>Das Forum für Delphi-Programmierer</description>
    <image>
	   <title>Delphi-PRAXiS</title>
	   <url>http://www.delphipraxis.net/misc/banner/banner_dp_130_100.gif</url>
	   <link>http://www.delphipraxis.net</link>
    </image>
        <item>
	   <title>SQL: benachbarte Datensätze mitselektieren</title>
    	<link>http://www.delphipraxis.net/topic160789.html</link>
	   <description>Folgendes Problem.&lt;br&gt;Meine Datensätze werden geordnet.&lt;br&gt;Für einen bestimmten Datensatz ist der Primary-Key bekannt.&lt;br&gt;&lt;br&gt;Aus der Tabelle möchte ich dieses Element inklusive der 2 nächstkleineren Elemente und der 2 nächstgrößeren Elemente als Ergebnismenge verarbeiten.&lt;br&gt;&lt;br&gt;Hat Jemand eine Idee wie ich das mit weniger als 3 Queries schaffen kann?</description>
    	<pubDate>Fri, 03 Jul 2009 21:32:22 +0200</pubDate>
    </item>
        <item>
	   <title>DLL-EntryPoint mit Funktion tauschen?</title>
    	<link>http://www.delphipraxis.net/topic160791.html</link>
	   <description>Die Frage ist ganz einfach:&lt;br&gt;&lt;br&gt;(Wie) Kann kann man den DLL-EntryPoint mit einer Exportfunktion tauschen?&lt;br&gt;&lt;br&gt;&lt;br&gt;Der Hintergrund ist eben so einfach:&lt;br&gt;&lt;br&gt;Ich möchte praktisch, daß z.B. Unit-Initialisierungen etwas später vorgenommen werden,&lt;br&gt;speziell die von der SysUtils und Co.&lt;br&gt;&lt;br&gt;Es handelt sich um eine statisch verlinkte DLL und ich hätt gern, daß diese Initialisierungen erst nach den Intitialisierungen der EXE geschehen (indem ich's dann manuell über eine "Init"-Prozedur aufrufe).&lt;br&gt;&lt;br&gt;Ansonsten müßte ich Einiges mehr umstellen und ...&lt;br&gt;es handelt sich um die DLL-Version mit Objekten meines himXML&lt;br&gt;... und außerdem würde dann der MemoryManager der DLL und nicht wie in der aktuell hochgeladenen Version der der EXE verwendet. (obwohl das notfalls auch ginge, nur daß man dann, wie bei ShareMem etwas mehr mit der Unitreihenfolge aufpassen muß)&lt;br&gt;&lt;br&gt;Obwohl ... wo ich das hier grad so schreib ... das ShareMem-Problem wäre ja nicht soooo schlimm, aber ich wollte halt ungern unbedingt am MemoryManagement fremder Anwendungen rumspielen und wenn da dann wer einen "alternativen" MemoryManager verwenden wöllte, dann müßte er diesen in der DLL einbauen, da dann der der EXE mit dem der DLL überschrieben würde (im aktuellen himXML ist es ja so, daß die DLL da noch dynamisch geladen wird und den MM der EXE verpaßt bekommt ... in etwa so (Link: &lt;!-- m --&gt;&lt;a href="http://www.delphipraxis.net/topic159601.html" target="_blank" title="http://www.delphipraxis.net/topic159601.html" &gt;&lt;img src="./images/common/inlink.gif" width="10" height="10" hspace="3" border="0" align="middle" style="vertical-align:middle" alt=""&gt;http://www.delphipraxis.net/topic159601.html&lt;/a&gt;&lt;!-- m --&gt; )).&lt;br&gt;&lt;br&gt;Außerdem hab ich jetzt schon etwas Zeit in dieses Problem gesteckt&lt;br&gt;und die direkte External-Verlinkung der Objekte gefällt mir halt besser, als das "verbigen" eines Objektes mit virtuellen Methoden, wie es in der aktuell onlinestehenden Version der Fall ist.&lt;br&gt;Und zusätzlich hatte ich es geschafft die RTTIs der Objekte in der DLL und Exe abzugleichen (is und as funktionieren mit der selben Objektinstanz in beiden Modulen) ... wäre schade das jetzt wieder ändern zu müssen :?</description>
    	<pubDate>Sat, 04 Jul 2009 00:17:45 +0200</pubDate>
    </item>
        <item>
	   <title>Konzeptfrage FormCreate</title>
    	<link>http://www.delphipraxis.net/topic157656.html</link>
	   <description>Hallo Gemeinde,&lt;br&gt;&lt;br&gt;ich möchte aufgrund der mehrfachen Nutzung das Erzeugen meiner Formulare in eine Funktion auslagern.&lt;br&gt;Meine Ansätze hierzu funktionieren soweit auch, jedoch verhält sich das ganze in manchen Fällen ein wenig mehrwürdig:&lt;br&gt;&lt;br&gt; &lt;br&gt;function createform(AOwner:TFormClass;nform:TForm):boolean;&lt;br&gt;Begin&lt;br&gt;try&lt;br&gt;  application.CreateForm(aowner,nform);&lt;br&gt;  nform.Parent:=mainform.panel_df;&lt;br&gt;  mainform.Notebook1.Visible:=false;&lt;br&gt;  nform.Show;&lt;br&gt;  result:=true;&lt;br&gt;except&lt;br&gt;  result:=false;&lt;br&gt;end;&lt;br&gt;end;&lt;br&gt;&lt;br&gt;//Aufruf:&lt;br&gt;createform(TForm1,Form1); //Funktioniert&lt;br&gt; &lt;br&gt;&lt;br&gt;aber: nachdem die Form erzeugt wurde prüfe ich mit:&lt;br&gt; &lt;br&gt;if assigned(form1) then machwas &lt;br&gt;Hier wird seltsamerweise immer false zurückgegeben. Setze ich anstelle des Aufrufes der Funktion, die Funktion selbst mit den entsprechenden Werten ein, wird auf die Prüfung der zugehörige Code ausgeführt. Meine Vermutung ist nun, dass ich mit den Typen der Parameter etwas vermasselt habe. Leider ist die Delphi 7 Hilfe hier jedoch nicht sehr auskunftsfreudig....also hoffe ich, dass ihr mir helfen könnt.&lt;br&gt;Vielen Dank!&lt;br&gt;&lt;br&gt;//EDIT: ist die Funktionsbezeichnung kritisch?</description>
    	<pubDate>Tue, 12 May 2009 08:45:33 +0200</pubDate>
    </item>
        <item>
	   <title>Suche nach bestimmten Songtitel</title>
    	<link>http://www.delphipraxis.net/topic160731.html</link>
	   <description>Ich hab jetzt schon öfters die Werbung zu "Der letzte Kuss" mit Hauptrollenbestzung Zach Braff (J.D - Scrubs) gesehen und such die ganze Zeit nach dem Title des Stückes, das während der Werbung im Hintergrund rennt.&lt;br&gt;&lt;br&gt;Kürlich kam es wieder in den Werbungen vor und ich hab nen kurzen Teil davon aufgezeichnet.&lt;br&gt;Gesucht hab ich selbst auch schon:&lt;br&gt;&lt;!-- m --&gt;&lt;a href="http://www.amazon.de/Last-Kiss-Original-Soundtrack/dp/B000G8NY54/ref=sr_1_1?ie=UTF8&amp;s=music&amp;qid=1246556440&amp;sr=1-1" target="_blank" title="http://www.amazon.de/Last-Kiss-Original-Soundtrack/dp/B000G8NY54/ref=sr_1_1?ie=UTF8&amp;s=music&amp;qid=1246556440&amp;sr=1-1" &gt;&lt;img src="./images/common/inlink.gif" width="10" height="10" hspace="3" border="0" align="middle" style="vertical-align:middle" alt=""&gt;http://www.amazon.de/L ... =1246556440&amp;sr=1-1&lt;/a&gt;&lt;!-- m --&gt;&lt;br&gt;Ich hab all diese Titel auf Youtube angehört jedoch.. hab ich nicht das passende gefunden...&lt;br&gt;&lt;br&gt;Vllt. weiß einer von euch, wie der Titel heißt!?&lt;br&gt;&lt;br&gt;Danke im voraus&lt;br&gt;&lt;br&gt;MfG</description>
    	<pubDate>Thu, 02 Jul 2009 19:47:57 +0200</pubDate>
    </item>
        <item>
	   <title>kann ein Prgramm seinen eingenen Quellcode verändern ?</title>
    	<link>http://www.delphipraxis.net/topic160719.html</link>
	   <description>hey,&lt;br&gt;ich hab (noch) eine frage ^^&lt;br&gt;&lt;br&gt;aber da sie ein bisschen kopliziertere ist möchte ich sie an einem beispiel dalegen.&lt;br&gt;ich habe ein programm mit einem Memofeld und einem Button 'schließen'.&lt;br&gt;In diesem Memo-feld ist nun ein langer text (z.b. eine geschichte) von anfang an drin.&lt;br&gt;Also sofort wenn ich das programm starte.&lt;br&gt;Sie soll in dem Quelltext gespeichert sein, so dass außer der kopilierten .exe datei nichts anderes nötig ist um diese 'geschichte' zu lesen.&lt;br&gt;&lt;br&gt;Nun möchte ich, dass diese geschichte - wenn ich auf den Button zum beenden drück - mit lauter 'f' überschrieben wird.&lt;br&gt;ich könnte das auch eigl. schon machen aber ich möchte nichts in der art&lt;br&gt;Memo1.text := 'ffffffff' .&lt;br&gt;Dann wäre ja meine geschichte bei erneutem starten des programmes wieder lesbar.&lt;br&gt;Ich möchte, dass diese 'geschichte' aber im quelltext des compilierten programmes durch die 'fff' ersetzt wird&lt;br&gt;=&gt; wenn ich das programm wieder starte habe ich nur 'fff' im memofeld und kann die geschichte nicht wieder herstellen.&lt;br&gt;&lt;br&gt;wäre das möglci h?! und wenn ja - auch hier die frage - wie ?!&lt;br&gt;&lt;br&gt;&lt;br&gt;ich hoffe ihrversteht was ich meine und  könnt mir helfen ^^&lt;br&gt;&lt;br&gt;lg ^^</description>
    	<pubDate>Thu, 02 Jul 2009 14:30:42 +0200</pubDate>
    </item>
        <item>
	   <title>Set durchsuchen</title>
    	<link>http://www.delphipraxis.net/topic160790.html</link>
	   <description>Hallo ihr,&lt;br&gt;&lt;br&gt;ich habe ein Set einer Enumeration&lt;br&gt; type&lt;br&gt;  TEnum = (eA, eB, eC);&lt;br&gt;  TEnums = set of TEnum; &lt;br&gt;&lt;br&gt;Nun habe ich eine Methode, die je nach Enum-Wert verschieden reagiert und eine Methode mit dem Set:&lt;br&gt; procedure DoSomething(AEnum : TEnum);&lt;br&gt;procedure DoSomethingOther(AEnums : TEnums); &lt;br&gt;&lt;br&gt;Wie kann ich nun in "DoSomethingOther" die Einträge in AEnums durchgehen und mit DoSomething aufrufen?&lt;br&gt;&lt;br&gt;Also sowas in der der Art:&lt;br&gt; for i := 0 to Length(AEnums) - 1 do&lt;br&gt;  DoSomething(AEnum ); &lt;br&gt;&lt;br&gt;Ich könnte natürlich das umständlich machen, aber dass ist an sich ja ziemlich umständlich ;)&lt;br&gt; if eA in AEnums then&lt;br&gt;  DoSomething(eA);&lt;br&gt;&lt;br&gt;... &lt;br&gt;&lt;br&gt;MfG&lt;br&gt;xZise</description>
    	<pubDate>Fri, 03 Jul 2009 21:47:26 +0200</pubDate>
    </item>
        <item>
	   <title>Mathe mit Strings (die deutsche StringMatheLib ._. )</title>
    	<link>http://www.delphipraxis.net/topic159592.html</link>
	   <description>Jaaaaaaa, was soll ich sagen ... &lt;br&gt;&lt;br&gt; »  also ich weiß, es ist nicht sonderlich schnell, aber dafür seeeeeeeehr einfach aufgebaut :angel2:&lt;br&gt;&lt;br&gt; »  es läuft mindestens ab Delphi 7 (drunter hab ich nicht getestet)&lt;br&gt;und auch für Delphi 2009 ist es geeignet :mrgreen: &lt;br&gt;&lt;br&gt; »  man kann die Verwendung der Unit SysUtils abschalten  (incl. der Unit Math, da diese die SysUtils verwendet, aber außer Max wird daraus eh nix verwendet) &lt;br&gt;&lt;br&gt; »  Zahlen mit theoretisch über 1 Milliarde Dezimalstellen sind möglich&lt;br&gt;&lt;br&gt; »  die Funktionen sind mit deutschsprachigen Namen versehn :shock: &lt;br&gt;&lt;br&gt; »  es steht unter MPL + (L)GPL&lt;br&gt;&lt;br&gt; »  Versionen:&lt;br&gt; StringMatheLib.pas » Demo 1 » alle Funktionen in einer Klasse verpackt&lt;br&gt;StringMatheRec.pas » Demo 2 » in einem Record ("MatheString") verpackt und mit Operatoren versehen (ab D2006/TDE)&lt;br&gt;StringMatheVar.pas » Demo 4 » in einem Variant/"MatheVariant" verpackt und mit Operatoren versehen &lt;br&gt;StringMatheFloatRec.pas » Demo 3 » wie "MatheString" in einem Record ("MatheStringF") als Festkommazahl&lt;br&gt;StringMatheParser.pas » Demo 5 » ein kliner Mathe-Parser  &lt;br&gt;&lt;br&gt; »  was es derzeit kann ... siehe hier: // Normalisieren     alle ungültigen und zusätzlichen Zeichen entfernen&lt;br&gt;// Formatieren       -&lt;br&gt;//&lt;br&gt;// Vergleich         -&lt;br&gt;// Vergleich         -&lt;br&gt;// istPositiv        -&lt;br&gt;// istNegativ        -&lt;br&gt;// istGerade         -&lt;br&gt;// istUngerade       -&lt;br&gt;// gibVorzeichen     -&lt;br&gt;// Dezimalstellen    -&lt;br&gt;//&lt;br&gt;// Summe             r = a + b&lt;br&gt;// Differenz         r = a - b&lt;br&gt;// Plus1             a = a + 1     oder   inc(a)&lt;br&gt;// Minus1            a = a - 1     oder   dec(a)&lt;br&gt;// Negieren          a = -a&lt;br&gt;// Absolut           if a &lt; 0 then r = -a else r = a&lt;br&gt;//&lt;br&gt;// Produkt           r = a * b&lt;br&gt;// Quotient          r = a div b&lt;br&gt;// Modulo            r = a mod b&lt;br&gt;// QuotientModulo    r = a div b   und    m = a mod b&lt;br&gt;//&lt;br&gt;// Quadrat           r = a * a     oder   r = a ^ 2&lt;br&gt;// Quadratwurzel     r = a ^ 1/2&lt;br&gt;// Quadratwurzel     r = a ^ 1/2   und    m = a - (a ^ 1/2)&lt;br&gt;// Potenz            r = a ^ b&lt;br&gt;// Potenz10          r = 10 ^ b&lt;br&gt;//&lt;br&gt;// Quotient2         r = a div 2&lt;br&gt;// Produkt10         r = a * 10^b&lt;br&gt;// Quotient10        r = a div 10^b&lt;br&gt;// Modulo10          r = a mod 10^b&lt;br&gt;// QuotientModulo10  r = a div 10^b   und    m = a mod 10^b&lt;br&gt;//&lt;br&gt;// SummeModulo       r = (a + b) mod m&lt;br&gt;// DifferenzModulo   r = (a - b) mod m&lt;br&gt;// ProduktModulo     r = (a * b) mod m&lt;br&gt;// PotenzModulo      r = (a ^ b) mod m&lt;br&gt;//&lt;br&gt;// Zufall            r = Random(von, bis)&lt;br&gt;&lt;br&gt;Type MatheString = Type AnsiString;&lt;br&gt;  TVergleich = (vUngleich, vKleiner, vKleinerGleich, vGleich, vGroesserGleich, vGroesser);&lt;br&gt;&lt;br&gt;TMathe = Class&lt;br&gt;  Property  ImmerNormalisieren: Boolean Read _ImmerNormalisieren Write _ImmerNormalisieren;&lt;br&gt;&lt;br&gt;  Function  Normalisieren   (a:    String): String;&lt;br&gt;  Function  Formatieren     (a:    String; TausenderPunkte, ImmerMitVorzeichen: Boolean; Mindestlaenge: Integer = 0): String;&lt;br&gt;&lt;br&gt;  Function  Vergleich       (a, b: String): TValueRelationship;       Overload;&lt;br&gt;  Function  Vergleich       (a, b: String; Art: TVergleich): Boolean; Overload;&lt;br&gt;  Function  istPositiv      (a:    String): Boolean;&lt;br&gt;  Function  istNegativ      (a:    String): Boolean;&lt;br&gt;  Function  istGerade       (a:    String): Boolean;&lt;br&gt;  Function  istUngerade     (a:    String): Boolean;&lt;br&gt;  Function  gibVorzeichen   (a:    String): Char;&lt;br&gt;  Function  Dezimalstellen  (a:    String): Integer;&lt;br&gt;&lt;br&gt;  Function  Summe           (a, b: String): String;&lt;br&gt;  Function  Differenz       (a, b: String): String;&lt;br&gt;  Procedure Plus1       (Var a:    String);&lt;br&gt;  Procedure Minus1      (Var a:    String);&lt;br&gt;  Procedure Negieren    (Var a:    String);&lt;br&gt;  Function  Absolut         (a:    String): String;&lt;br&gt;&lt;br&gt;  Function  Produkt         (a, b: String): String;&lt;br&gt;  Function  Quotient        (a, b: String): String;&lt;br&gt;  Function  Modulo          (a, b: String): String;&lt;br&gt;  Procedure QuotientModulo  (a, b: String; Var Result, Rest: String);&lt;br&gt;&lt;br&gt;  Function  Quadrat         (a:    String):  String;&lt;br&gt;  Function  Quadratwurzel   (a:    String):  String;&lt;br&gt;  Procedure Quadratwurzel   (a:    String; Var Result, Rest: String);&lt;br&gt;  Function  Potenz          (a, b: String):  String;&lt;br&gt;  Function  Potenz10        (   b: String):  String;&lt;br&gt;  Function  Potenz10        (   b: Integer): String;&lt;br&gt;&lt;br&gt;  Function  Quotient2       (a:            String):  String;&lt;br&gt;  Function  Produkt10       (a,         b: String):  String;&lt;br&gt;  Function  Produkt10       (a: String; b: Integer): String;&lt;br&gt;  Function  Quotient10      (a,         b: String):  String;&lt;br&gt;  Function  Quotient10      (a: String; b: Integer): String;&lt;br&gt;  Function  Modulo10        (a,         b: String):  String;&lt;br&gt;  Function  Modulo10        (a: String; b: Integer): String;&lt;br&gt;  Procedure QuotientModulo10(a,         b: String;  Var Result, Rest: String);&lt;br&gt;  Procedure QuotientModulo10(a: String; b: Integer; Var Result, Rest: String);&lt;br&gt;&lt;br&gt;  Function  SummeModulo     (a, b, m:  String): String;&lt;br&gt;  Function  DifferenzModulo (a, b, m:  String): String;&lt;br&gt;  Function  ProduktModulo   (a, b, m: String): String;&lt;br&gt;  Function  PotenzModulo    (a, b, m: String): String;&lt;br&gt;&lt;br&gt;  Function  zuInteger       (a:    String):   LongInt;&lt;br&gt;  Function  vonInteger      (a:    LongInt):  String;&lt;br&gt;  Function  zuCardinal      (a:    String):   LongWord;&lt;br&gt;  Function  vonCardinal     (a:    LongWord): String;&lt;br&gt;  Function  zuInteger64     (a:    String):   Int64;&lt;br&gt;  Function  vonInteger64    (a:    Int64):    String;&lt;br&gt;&lt;br&gt;  Function  Produkt_langsam       (a, b: String): String;&lt;br&gt;  Procedure QuotientModulo_langsam(a, b: String; Var Result, Rest: String);&lt;br&gt;  Function  Potenz_langsam        (a, b: String): String;&lt;br&gt;End; &lt;br&gt;&lt;br&gt;&lt;br&gt; »  wer die Parameter a und b vor Funktionsaufruf selber normalisiert (also z.B. mindestens einmal nach Eingabe der Werte), der kann .ImmerNormalisieren auf False setzen und es wird dann nicht ständig, beim Starten von Funktionen, durchgeführt ... es wird so also einen Hauch flotter. :nerd: &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; Einen Tipp noch zum Schluß: versucht besser nicht eine "größere" Potenz zu berechnen!&lt;br&gt;(B also nicht zu groß wählen) &lt;br&gt;  Function TMathe.Potenz(a, b: MatheString): MatheString;&lt;br&gt;  Begin&lt;br&gt;    Result := Potenz_langsam(a, b);&lt;br&gt;  End;  &lt;br&gt;  wurde geändert&lt;br&gt;&lt;br&gt;-- Zitat "ChangeLog" -----------------------&lt;br&gt;  &lt;br&gt;eine Auto-Refresh-CheckBox in den  -Button gelegt&lt;br&gt;&lt;br&gt; &lt;br&gt;mit neuer Lizenz versehen (siehe oben)&lt;br&gt;&lt;br&gt; &lt;br&gt;- einige Optimierungen&lt;br&gt;- Produkt10, Quotient10, Modulo10 und Co. hinzugefügt&lt;br&gt;- und der MatheParser kam auch dazu &lt;br&gt;- der Reinfolgefehler aus Beitrag #55 (Potenzen ala x^y^z) wurde behoben&lt;br&gt;&lt;br&gt; &lt;br&gt;- der Reinfolgefehler aus Beitrag #55 (Potenzen ala x^y^z) wurde behoben&lt;br&gt;&lt;br&gt; &lt;br&gt;- weitere Fehler behoben ... siehe #57+#58&lt;br&gt;- der Fehler bei den Klammern ist hoffentlich behoben #60&lt;br&gt;&lt;br&gt; &lt;br&gt;- Fehler im Parser #61&lt;br&gt;&lt;br&gt; &lt;br&gt;- der Mathe-Parser-Demo um einige Features erweitert (wie den Zwischenspeicher)&lt;br&gt;- Verwaltung der Konstanten, Funktionen und Operatoren erstellt (im Mathe-Parser)&lt;br&gt;&lt;br&gt; &lt;br&gt;- ein bissl aufgeräumt&lt;br&gt;- TMathe.Quadratwurzel, TMathe.PotenzModulo und abhängiges stark beschleunigt&lt;br&gt;- TMathe.Quotient2 eingeführt r := a div 2 (Grund für vorherigen Punkt)&lt;br&gt;- Demo6 erstellt = "Fließkomma"-Parser (alles mit # rechnet noch mit "falscher" Nachkommabehandlung)&lt;br&gt;&lt;br&gt; &lt;br&gt;- Anfänge eines UnitTests eingefügt&lt;br&gt;- XPMan wieder entfernt (#67)&lt;br&gt;- Fehler behoben (#67 inkompatible Typen)&lt;br&gt;- TMathe.Produkt nach xZise #67 geändert&lt;br&gt;&lt;br&gt; &lt;br&gt;- einige Dateien von UTF-8 nach Ansi konvertiert&lt;br&gt;- wegen #72 Version erhöht und alles neu kompiliert bzw. hochgeladen&lt;br&gt;- weitere Konstanten in die Parser eingefügt&lt;br&gt;&lt;br&gt; &lt;br&gt;- Fehler bei internen Verwaltungsoperatoren behoben ... z.B. Komma wurde nicht erkannt&lt;br&gt;&lt;br&gt; &lt;br&gt;- Verzögerungsfehler in Division entfernt, welcher die Rechenoptimierung abschaltete (#76)&lt;br&gt;- Vergleichsfunktion optimiert (#76)&lt;br&gt;- Potenz10, Produkt10 und Quotient10 in StringMatheParserFloat.pas berichtig und freigegeben (Nachkommastellenproblem #76)&lt;br&gt;&lt;br&gt; &lt;br&gt;- Rechenfehler aus #67 behoben&lt;br&gt;&lt;br&gt; &lt;br&gt;- Dezimalstellenfunktion mit Fehlerprüfung versehen und die Anzeiger der Stellen in den Demos etwas umgestellt (siehe #79..#81)&lt;br&gt;&lt;br&gt; &lt;br&gt;- .Normalisieren und .Formatieren überarbeitet (#84)&lt;br&gt;- etwas aufgeräumt und die "InFile"-Hilfe erweitert&lt;br&gt;- doch wieder auf Suche mit Google nach: "7zip"  umgestiegen (ist 60% kleiner)&lt;br&gt; &lt;br&gt;-- Zitat Ende -----------------------</description>
    	<pubDate>Sat, 13 Jun 2009 13:40:54 +0200</pubDate>
    </item>
        <item>
	   <title>ADO - BIn Daten Lesen/Schreiben</title>
    	<link>http://www.delphipraxis.net/topic160766.html</link>
	   <description>Hallo Gemeinde,&lt;br&gt;&lt;br&gt;Leider finde ich nichts über die Suche und/oder Google bezgl. ADO Connection und Bilder einfügen. Bzw Lese und in TImage laden. &lt;br&gt;&lt;br&gt;Gibt es dafür ein Leitfaden ? Ein paar Begriffe oder ein Beispiel ?&lt;br&gt;&lt;br&gt;&lt;br&gt;Danke euch...&lt;br&gt;&lt;br&gt;Gruß, Real-TTX</description>
    	<pubDate>Fri, 03 Jul 2009 11:03:12 +0200</pubDate>
    </item>
        <item>
	   <title>Einloggen mit Indy 10</title>
    	<link>http://www.delphipraxis.net/topic157561.html</link>
	   <description>Guten Tag alle zusammen,&lt;br&gt;&lt;br&gt;ich würde gern ein Programm erstellen, welches dem Benutzer erlaubt sich auf einer Seite einzuloggen.&lt;br&gt;Zu dem Zweck werde ich Indy 10 verwenden.&lt;br&gt;&lt;br&gt;Die Login-Form sieht so hier aus:&lt;br&gt;&lt;br&gt; &lt;form action=&amp;quot;/misc/login&amp;quot; method=&amp;quot;post&amp;quot;&gt;&lt;br&gt;	&lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;textfield&amp;quot; name=&amp;quot;user&amp;quot; value=&amp;quot;Benutzername&amp;quot;/&gt;&lt;br&gt;	&lt;input type=&amp;quot;password&amp;quot; class=&amp;quot;textfield&amp;quot; name=&amp;quot;pw&amp;quot; value=&amp;quot;Passwort&amp;quot;/&gt;&lt;br&gt;    	&lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;xyz&amp;quot; value=&amp;quot;132m2e&amp;quot; /&gt;&lt;br&gt;     	&lt;input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;slo&amp;quot; id=&amp;quot;slo&amp;quot; value=&amp;quot;1&amp;quot;/&gt; Login speichern&lt;br&gt;&lt;br&gt;&lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Einloggen&amp;quot; class=&amp;quot;button&amp;quot; /&gt; &lt;br&gt;&lt;br&gt;Und der Delphi Code, so wie ich ihn mir vorstelle sieht so aus:&lt;br&gt;&lt;br&gt; procedure TForm1.Button1Click(Sender: TObject);&lt;br&gt;var sURL:String; slPostdata:TStringList;&lt;br&gt;begin&lt;br&gt;  slPostdata := TStringList.Create;&lt;br&gt;  sURL:='http://www.snapscouts.de/misc/login';&lt;br&gt;  with&lt;br&gt;  slPostdata do&lt;br&gt;  begin&lt;br&gt;    Values  := sUser;&lt;br&gt;    Values  := sPass;&lt;br&gt;    // --&gt; Hidden Value?&lt;br&gt;    // --&gt; Checkbox Value?&lt;br&gt;  end;&lt;br&gt;  try&lt;br&gt;    IdHTTP1.Post(sURL,slPostdata);&lt;br&gt;    memo1.Text := idhttp1.Response.RawHeaders.Text;&lt;br&gt;  except&lt;br&gt;    memo1.Text := 'Fehlgeschlagen';&lt;br&gt;  end;&lt;br&gt;  slPostdata.Free;&lt;br&gt;end; &lt;br&gt;&lt;br&gt;Nun zu meinen Fragen. &lt;br&gt;Speichert Indy jetzt auch wie ein normaler Browser automatisch Cookies?&lt;br&gt;Wie übergebe die Values von "Checkbox" + "Hidden"? :gruebel: &lt;br&gt;Danke =)</description>
    	<pubDate>Sun, 10 May 2009 15:16:12 +0200</pubDate>
    </item>
        <item>
	   <title>Anfänger - wie Zahlen zum rechnen in Datei speichern ?</title>
    	<link>http://www.delphipraxis.net/topic160773.html</link>
	   <description>Wie Zahlenreihen mit denen ich später noch rechnen will in eine Datei speichern ?&lt;br&gt;&lt;br&gt;&lt;br&gt;Hallo Zusammen&lt;br&gt;&lt;br&gt;Kurze Vorgeschichte dazu:&lt;br&gt;Hab mich vor einigen Jahren mal bissel mit Torbo Pascal beschäftigt ( als die PC's noch langsam genug waren das es lief ) und hab mir nun in den Kopf gesetzt "Delphi" zu lernen. Da ich mich einwenig für Zahlenspielerreien interessiere, möchte ich mir eine Art Lottoprogramm schreiben, um so in die Bereiche Rechnen, Graphische Darstellungen und eventuell in Richtung Datenbanken zu kommen, die mich auch interessieren. Das wird zwar dauern, aber Zeit dafür hab ich.&lt;br&gt;Allerdings hab ich hier in meiner Gegend nicht die Möglichkeit das an einer Schule zu lernen noch noch im Bekanntenkreis, jemanden zum Fragen, also würde ich gern eure Hilfe in Anspruch nehmen.&lt;br&gt;Nun zu meinem Problem. Ich hab mir überlegt in welcher Art ich meine Daten am besten abspeichere. Da ich später noch damit rechnen möchte hab ich mich für ein Array entschieden, aber das klappt irgendwie nicht, könntet ihr mir einen Tip geben ?&lt;br&gt;Und ich hab zwischendurch mal die Fehlermeldung : "E/A Fehler 6" erhalten und hab trotz zwei Bücher und Hilfedateien keine Erklärung dafür gefunden. Wo kann ich beoi solchen Fehlermeldungen da nachschauen ?&lt;br&gt;&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------------------------&lt;br&gt;var&lt;br&gt;  Form1: TForm1;&lt;br&gt;  z1 , z2 , z3 , z4 , z5, z6 , zz  : integer;&lt;br&gt;&lt;br&gt;&lt;br&gt;implementation&lt;br&gt;&lt;br&gt;{$R *.dfm}&lt;br&gt;&lt;br&gt;procedure TForm1.Button1Click(Sender: TObject);&lt;br&gt;begin&lt;br&gt;close;&lt;br&gt;end;&lt;br&gt;&lt;br&gt;procedure TForm1.Edit1Exit(Sender: TObject);&lt;br&gt;&lt;br&gt;Var&lt;br&gt; Nr : integer;&lt;br&gt; zahlenreihe: String;&lt;br&gt; MyFile : array   of integer ;&lt;br&gt;&lt;br&gt;begin&lt;br&gt;  if (Edit1.Text='') or&lt;br&gt;     (Edit2.Text='') or&lt;br&gt;     (Edit3.Text='') or&lt;br&gt;     (Edit4.Text='') or&lt;br&gt;     (Edit5.Text='') or&lt;br&gt;     (Edit6.Text='') or&lt;br&gt;     (Edit7.Text='') then&lt;br&gt;      exit;&lt;br&gt;&lt;br&gt;   z1 := StrToInt(Edit1.Text);&lt;br&gt;   z2 := StrToInt(Edit2.Text);&lt;br&gt;   z3 := StrToInt(Edit3.Text);&lt;br&gt;   z4 := StrToInt(Edit4.Text);&lt;br&gt;   z5 := StrToInt(Edit5.Text);&lt;br&gt;   z6 := StrToInt(Edit6.Text);&lt;br&gt;   zz := StrToInt(Edit7.Text);&lt;br&gt;&lt;br&gt;   if (z1&lt;1) or (z1&gt;49) then exit;&lt;br&gt;   if (z2&lt;1) or (z2&gt;49) then exit;&lt;br&gt;   if (z3&lt;1) or (z3&gt;49) then exit;&lt;br&gt;   if (z4&lt;1) or (z4&gt;49) then exit;&lt;br&gt;   if (z5&lt;1) or (z5&gt;49) then exit;&lt;br&gt;   if (z6&lt;1) or (z6&gt;49) then exit;&lt;br&gt;   if (zz&lt;1) or (zz&gt;49) then exit;&lt;br&gt;&lt;br&gt;&lt;br&gt;   if (z1&gt;=z2)or(z1&gt;=z3)or(z1&gt;=z4)or(z1&gt;=z5)or(z1&gt;=z6)or(z1=zz)then exit;&lt;br&gt;   if (z2&gt;=z3)or(z2&gt;=z4)or(z2&gt;=z5)or(z2&gt;=z6)or(z2=zz)then exit;&lt;br&gt;   if (z3&gt;=z4)or(z3&gt;=z5)or(z3&gt;=z6)or(z3=zz)then exit;&lt;br&gt;   if (z4&gt;=z5)or(z4&gt;=z6)or(z4=zz)then exit;&lt;br&gt;   if (z5&gt;=z6)or(z5=zz)then exit;&lt;br&gt;   if z6=zz then exit;&lt;br&gt;&lt;br&gt;   //     Zahlenreihe eingeben, Datei anlegen, bzw. Zahlen speichern, letzte Zahlenreihe mit Nummer ausgeben&lt;br&gt;   MyFile  := z1 ;&lt;br&gt;   MyFile  := z2 ;&lt;br&gt;   MyFile  := z3 ;&lt;br&gt;   MyFile  := z4 ;&lt;br&gt;   MyFile  := z5 ;&lt;br&gt;   MyFile  := z6 ;&lt;br&gt;   MyFile  := zz ;&lt;br&gt;&lt;br&gt;   AssignFile(MyFile,zahlenreihe);&lt;br&gt;   {$I-}&lt;br&gt;     if FileExists(zahlenreihe) then&lt;br&gt;    Reset(MyFile)&lt;br&gt;   else&lt;br&gt;    ReWrite(MyFile);&lt;br&gt;   {$I+}&lt;br&gt;     if IOResult=0 then&lt;br&gt;     begin;&lt;br&gt;       System.Seek(MyFile,SizeOf(MyFile));&lt;br&gt;       Write(MyFile,Nr);&lt;br&gt;     end;&lt;br&gt;     CloseFile(MyFile);&lt;br&gt;&lt;br&gt;   Edit8.Text := IntToStr(Nr, zahlenreihe);&lt;br&gt;&lt;br&gt;end;&lt;br&gt;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);&lt;br&gt;begin&lt;br&gt;   if not (Key in  ) then&lt;br&gt;     Key := #0;&lt;br&gt;end;&lt;br&gt;&lt;br&gt;end.&lt;br&gt;&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------------------&lt;br&gt;&lt;br&gt;Ich glaub ich hab neben meiner Unkenntnis noch einige Gedankenfehler drin. Bitte euch um Hilfe.&lt;br&gt;Noch etwas dazu, ich weiss das die Bedingungen auch ziehmlich umständlich geschrieben sind, mir geht es in erster Linie um die Funktionalität damit ich es auch verstehe. Wenn es dann läuft werde ich mich um eine bessere Schreibweise kümmern. Da das ganze lernen etwas länger dauern dürfte, möchte ich eines nach dem anderen machen.&lt;br&gt;(Hoffe hab mich bei der Programmschreiberrei nicht zu doof angestellt)&lt;br&gt;&lt;br&gt;Soweit mein Anliegen an euch.&lt;br&gt;Gruß Jiron</description>
    	<pubDate>Fri, 03 Jul 2009 12:56:02 +0200</pubDate>
    </item>
        <item>
	   <title>DBGrid Spalte füllen</title>
    	<link>http://www.delphipraxis.net/topic160788.html</link>
	   <description>Hi,&lt;br&gt;&lt;br&gt;ich habe ein DBGrid welches mehrere Spalten hat, die ich mit SQL fülle. Ich möchte aber eine zusätzliche Spalte manuell füllen.&lt;br&gt;Kennt jemand eine Möglichkeit?&lt;br&gt;&lt;br&gt;Vielen Dank!&lt;br&gt;Lg Maja</description>
    	<pubDate>Fri, 03 Jul 2009 21:14:30 +0200</pubDate>
    </item>
        <item>
	   <title>alle Objecte der Hauptform an andere Unit übergeben?</title>
    	<link>http://www.delphipraxis.net/topic160787.html</link>
	   <description>hallo,&lt;br&gt;&lt;br&gt;ich wollte viele Functions und Procedures der hauptform auslagern in eine extra unit, zur Programmübersichtlichkeit.&lt;br&gt;&lt;br&gt;Ich möchte gerne mit allen Objecten (Labels ScrollBoxes usw.) etwas anstellen in der Unit, nur nicht jedes einzellen Object übergeben.&lt;br&gt;&lt;br&gt;Wie kann man es anstellen, dass ich alle Objecte der Hauptform an die zweite Form übergeben kann?&lt;br&gt;&lt;br&gt;Falls es schon nen Beitrag zu diesem Problem gibt, dann bitte den Link Posten!&lt;br&gt;&lt;br&gt;Vielen Dank!&lt;br&gt;&lt;br&gt;LG Marco!</description>
    	<pubDate>Fri, 03 Jul 2009 19:54:18 +0200</pubDate>
    </item>
        <item>
	   <title>Farbe von Bildschirminhalt ermitteln ?</title>
    	<link>http://www.delphipraxis.net/topic160676.html</link>
	   <description>Hi,&lt;br&gt;&lt;br&gt;ich habe beriets rausgefunden wie man die Farbe eines bestimmten Pixel auf dem Bildschirm ermitteln kann. &lt;br&gt;&lt;br&gt;Ich bin gerade dabei ein Art Ambilight zu programmieren, welches mir die überweigende Farbe in einem bestimmten Bereich des Bildschirms ausgeben soll. &lt;br&gt;&lt;br&gt;Meine Fragen dazu ist nun wie kann man am besten eine Berechnung der überweigenden Farbe realisieren ? &lt;br&gt;&lt;br&gt;Um es nochmal ein wenig vorstellbarer zu umschreiben. Ich nehme mal eine Fläche von 500x500px in der Bildschirmmitte die darin enthaltenen Pixel sollen nun ausgewertet werden und die am häufigsten vorkommende Farbe soll ausgegeben werden. Dabei reicht allerdings nicht die Aussage Rot, Grün, Blau, usw. überwiegt, sondern es sollte schon ein genauer Farbwert sein. &lt;br&gt;&lt;br&gt;Ich hoffe mir kann da jemand auf die Sprünge helfen. &lt;br&gt;&lt;br&gt;mfg Yannic</description>
    	<pubDate>Thu, 02 Jul 2009 00:18:18 +0200</pubDate>
    </item>
        <item>
	   <title>Virtual Treeview MultiSelect/Onchange Event Problem</title>
    	<link>http://www.delphipraxis.net/topic160783.html</link>
	   <description>Hi Leute,&lt;br&gt;&lt;br&gt;ich verwende den Virtual Treeview als Navigationshilfe durch ein Mehrschichtiges Dokument.&lt;br&gt;Wird jetzt im Tree ein Node markiert, soll das ganze auch im Dokument entsprechend markiert werden.&lt;br&gt;Dazu verwende ich den Event Onchange des Virtual Trees.&lt;br&gt;&lt;br&gt;In diesem Event wird der Node übergeben dessen Status sich ändert :&lt;br&gt; &lt;br&gt;procedure TXyzForm.vst_DocExplorerChange(Sender: TBaseVirtualTree; Node: PVirtualNode);&lt;br&gt;Var pNodeData : PTTreeData;&lt;br&gt;begin&lt;br&gt;  pNodeData := vst_DocExplorer.GetNodeData(Node);&lt;br&gt;  if (Assigned(pNodeData)) and (Assigned(PNodeData^.Line)) then&lt;br&gt;    pNodeData^.Line.Selected := vst_DocExplorer.Selected ;&lt;br&gt;end;&lt;br&gt; &lt;br&gt;&lt;br&gt;Das ganze funktioniert auch "wunderbar" das Event tritt immer ein wenn ein Node markiert wird.&lt;br&gt;Allerdings bekomme ich nicht mit wenn die Markierung/Selektierung aufgehoben wird.&lt;br&gt;&lt;br&gt;Situation: Multiselect des Trees ist an, 2 Nodes sind markiert, es wird auf einen anderen Node geklickt.&lt;br&gt;Annahme: 3 x das Event OnChange 2 x für die vorher selektierten und 1 x für den neuen selektierten.&lt;br&gt;&lt;br&gt;^^ Das ist aber leider nicht der Fall, weiß jemand warum ?&lt;br&gt;Oder bin ich im falschen Event ?&lt;br&gt;&lt;br&gt;Nachtrag: Das Event tritt immer nur 2 x ein, egal ob vorher 2,4 oder 8 Einträge selektiert waren.&lt;br&gt;&lt;br&gt;Greetz Data</description>
    	<pubDate>Fri, 03 Jul 2009 15:13:56 +0200</pubDate>
    </item>
        <item>
	   <title>Serialisierung von TCollection mit TXMLSerializer</title>
    	<link>http://www.delphipraxis.net/topic160657.html</link>
	   <description>Hallo,&lt;br&gt;&lt;br&gt;ich benutze den XMLSerializer von dragonsoft und hab nun leider damit ein Problem:&lt;br&gt;&lt;br&gt;Ich habe von TCollection und TCollectionItem abgeleitete Klassen die ich serialisiere und als XML-Datei speicher. Das klappt soweit auch ganz gut:&lt;br&gt;&lt;br&gt;Die Klassen:&lt;br&gt; &lt;br&gt;type&lt;br&gt;  TStorageItem = class(TCollectionItem)&lt;br&gt;  private&lt;br&gt;    FText: String;&lt;br&gt;    function GetM_sText: string;&lt;br&gt;    procedure SetM_sText(Value: string);&lt;br&gt;  published&lt;br&gt;    property Text: String read GetM_sText write SetM_sText;&lt;br&gt;end;&lt;br&gt;&lt;br&gt;type TStorage = class(TCollection)&lt;br&gt;  private&lt;br&gt;    function GetItem(Index: Integer): TStorageItem;&lt;br&gt;    procedure SetItem(Index: Integer; const Value: TStorageItem);&lt;br&gt;&lt;br&gt;  public&lt;br&gt;    function Add: TStorageItem;&lt;br&gt;    function FindItemID(ID: Integer): TStorageItem;&lt;br&gt;    function Insert(Index: Integer): TStorageItem;&lt;br&gt;    property Items : TStorageItem read GetItem write SetItem;&lt;br&gt;end;&lt;br&gt; &lt;br&gt;&lt;br&gt;Die Routine zum Speichern:&lt;br&gt; &lt;br&gt;procedure TForm1.Button1Click(Sender: TObject);&lt;br&gt;var&lt;br&gt;  coTest: TStorage;&lt;br&gt;  coStore: TStorageItem;&lt;br&gt;begin&lt;br&gt;  coTest := TStorage.Create(TStorageItem);&lt;br&gt;&lt;br&gt;  coStore := coTest.Add;&lt;br&gt;  coStore.Text := 'Test';&lt;br&gt;&lt;br&gt;  coStore := coTest.Add;&lt;br&gt;  coStore.Text := 'Test2';&lt;br&gt;&lt;br&gt;  coStore := coTest.Add;&lt;br&gt;  coStore.Text := 'Test3';&lt;br&gt;&lt;br&gt;  with TXMLSerializer.Create(self) do&lt;br&gt;  begin&lt;br&gt;    XMLSettings.WellFormated := true;&lt;br&gt;&lt;br&gt;    StorageOptions :=  ;&lt;br&gt;    SpecialClasses :=  ;&lt;br&gt;&lt;br&gt;    SaveObject(coTest, 'Test');&lt;br&gt;&lt;br&gt;    SaveToFile('C:test.xml');&lt;br&gt;  end;&lt;br&gt;end;&lt;br&gt; &lt;br&gt;&lt;br&gt;Nun probiere ich diese Collection wieder aus der XML auszulesen also zu deserialisieren:&lt;br&gt;&lt;br&gt; &lt;br&gt;var&lt;br&gt;  coTest: TStorage;&lt;br&gt;  coStore: TStorageItem;&lt;br&gt;  i: Integer;&lt;br&gt;begin&lt;br&gt;  coTest := TStorage.Create(TStorageItem);&lt;br&gt;&lt;br&gt;  with TXMLSerializer.Create(self) do&lt;br&gt;  begin&lt;br&gt;    XMLSettings.WellFormated := true;&lt;br&gt;&lt;br&gt;    SpecialClasses :=  ;&lt;br&gt;&lt;br&gt;    LoadFromFile('C:test.xml');&lt;br&gt;&lt;br&gt;    LoadObject(coTest, 'Test');&lt;br&gt;  end;&lt;br&gt;&lt;br&gt;  ListBox1.Clear;&lt;br&gt;&lt;br&gt;  for i := 0 to coTest.Count - 1 do&lt;br&gt;  begin&lt;br&gt;    ListBox1.AddItem(coTest.Items .Text, nil);&lt;br&gt;  end;&lt;br&gt; &lt;br&gt;&lt;br&gt;Das ganze Funktioniert nicht (coTest.Count ist immer 0). Ich habe mir den Quellcode der Deserialisierungsroutinen mal angeschaut und diese versucht per SetPropValue() die Count-Eigenschaft von meiner TStorage-Klasse zu manipulieren. Da diese aber Read-only ist, klappt das nicht.&lt;br&gt;&lt;br&gt;Hat jemand eine Idee wie ich das Problem lösen könnte?&lt;br&gt;&lt;br&gt;Grüße</description>
    	<pubDate>Wed, 01 Jul 2009 16:29:21 +0200</pubDate>
    </item>
     </channel>
</rss>
