Archiv für den Monat Februar 2015

4. Delphi Stammtisch Dresden – Review

Am 25.02.2015 haben sich wieder ca. 20 Delphi Entwickler in Dresden zum Stammtisch getroffen. Diesmal ging es weniger um konkrete Implementierungen sondern eher um die Projektorganisation und Vorbereitung. Also vom Vorgespräch beim Kunden, das Erstellen eines Pflichtenheftes (oder auch nicht) bis zur Angebotserstellung und dem Start ins Projekt. Auch wurden einige Aspekte des GUI Designs besprochen. Interessant für mich waren die unterschiedlichen herangehensweisen an das Thema. Vom Erstellen eines detaillierten Pflichtenheftes aus dem dann das Angebot hervorgeht bis zur Abrechnung nach Stunden ohne konkrete Schätzungen war alles dabei. Als die große Erkenntnis und gleichzeitig auch als Ernüchterung für mich: Alle haben mehr oder weniger ähnliche Probleme und kein Patentrezept. Es kommt halt immer drauf an…

Firebird Probleme mit langem Benutzernamen und UTF8 Datenbanken

Für die Umstellung des Datenbank Besitzers (Owner) einer Firebird 2.0 Datenbank habe ich folgende Arbeiten durchgeführt:
– neuen Benutzer angelegt
– SQL Skript der bestehenden Datenbank generiert (mit IBExpert)
– neuen Benutzer in das create database Statement eingefügt
– Skript ausführen (isql oder IBExpert)

Das Skript lieferte die folgende Fehlermeldung:
Statement failed, SQLCODE = -607
unsuccessful metadata update
-CREATE VIEW failed
-arithmetic exception, numeric overflow, or string truncation
After line XX in file CreateDB.sql

Weiterlesen

How to iterate a TreeView

Normally the iteration is done by a recursive method and the use of TreeView1.Items.GetFirstNode, getNextSibling, getFirstChild… But there is an easy solution: TTreeNodesEnumerator.

var
  aNodeEnum: TTreeNodesEnumerator;
  aNode: TTreeNode;
begin
  aNodeEnum := TreeView1.Items.GetEnumerator;
  try
    while aNodeEnum.MoveNext do
    begin
      aNode := aNodeEnum.Current;
      //Do something with the Node...
      aNode.Text := aNode.Text + ' --> iterate';
    end;
  finally
    aNodeEnum.Free;
  end;

The TTreeNodesEnumerator iterates through the entire TreeView. All nodes with their children.