Diplomarbeit

Montag, 15. Oktober 2007

Suchbegriff des Tages

Ist euch schon mal aufgefallen, dass man beim Googlen oder Nachschlagen in der wikipedia auf völlig abstruse Ergebnisse kommt, mit denen man nie gerechnet hat?

Heute z.B
Was hieß nochmal RAD?
Rapid Application Developing....Developer...Development....

Ich schau einfach mal nach....tipp..tipp...wikipedia...tipp

"Das Rad ist ein prinzipiell kreisrundes, scheibenförmiges Fahrzeugteil oder Maschinenelement..."

Arrg

Montag, 26. März 2007

Anchors

In Delphi 3 gibt es das Prinzip der Verankerung von Steuerelementen im übergeordneten Formular nocht nicht. Deswegen ist diese Funktionalität in die Steuerelemente TOrgEdit, TXEdit, TxBevel sowie TBaseDialogForm und SoComponents implementiert worden.

umstellung auf .Net hat mich zu folgenden Änderungen veranlasst.

aus TorgEdit xAnchors und property anchors gelöscht
TBaseDialogForm FormResize Inhalt gelöscht, weil funktionalität der Anchors implementiert
TXEdit property xAnchors gelöscht
TxBevel xAnchors und property anchors gelöscht
SoCoComponents Inhalt in ResizeControls gelöscht, weil funktionalität der Anchors implementiert, Verwendung im Code gelöscht
XAnchor und XAnchors gelöscht

die Orientierung der Steuerelemente wird ausgedrückt mit

type TAnchorKind = (akLeft, akTop, akRight, akBottom);

Auszug aus der Borland Hilfe:

Mit Anchors können Sie sicherstellen, dass ein Steuerelement selbst bei Größenänderungen des Containers seine Position relativ zu dessen Rand beibehält. Wenn die Größe des übergeordneten Objekts geändert wird, behält das Steuerelement seine Position relativ zu den Rändern bei, an denen es verankert ist.

Wenn ein Steuerelement an gegenüberliegenden Seiten seines übergeordneten Objekts verankert ist, wird es bei Größenänderungen des Containers gestreckt. Hat beispielsweise die Eigenschaft Anchors eines Steuerelements den Wert [akLeft, akRight], wird das Steuerelement gestreckt, wenn das übergeordnete Objekt verbreitert wird.

Anchors ist nur wirksam, wenn die Größe des übergeordneten Objekts geändert wird. Wenn z.B. ein Steuerelement beim Entwurf an gegenüberliegenden Seiten eines Formulars verankert wird und das Formular maximiert erstellt wird, wird das Steuerelement nicht gestreckt, weil die Größe des Formulars nach der Erzeugung des Steuerelements nicht verändert wurde.
Hinweis:
Wenn ein Steuerelement den Kontakt mit drei Rändern seines Containers behalten soll, verwenden Sie stattdessen die Eigenschaft Align. Im Gegensatz zu Anchors ermöglicht Align, dass Steuerelemente bei Größenänderungen anderer gleichrangiger Komponenten sowie übergeordneter Objekte entsprechend angepasst werden.

Freitag, 23. März 2007

typeloadexception

TypeLoadException Typ XXX in Unit XXX konnte nicht geldane werden.

Beim Umbau meiner Packete, wodurch die all zu verstrickten Abhängigkeiten gelöst werden sollten. Nachdem ich einzelne Klassen und Hilfsfunktionen ausgelagert hatte viel obenstehender Fehler des Linkers auf.

Hier genauer beschrieben.

Ursache war, dass beim Erstellen eines neuen Projektes, zu dem ich die Packages hinzugefügt habe, wohl einige DLLs in den Ordner des Projektes kopiert wurden. Diese Dateien habe ich wohl als Referenz eingebunden. Beim erneuten kompilieren werden die Kopien allerdings nicht aktualisiert, kompilieren konnte ich die Packete , nur bei Einbinden während der Laufzeit ist der Fehler dann aufgetreten.

Donnerstag, 8. März 2007

Designer spielt verrückt

Manchmal zeigt er mir meine Formulare an, manchmal nicht, dann kommt das BDS mit den komischsten Fehlermeldungen, z.B.

Objektverweis wurde nicht auf Objektinstanz festgelegt.

Anscheinend bin ich nicht die erste mit diesen Problemen und das BDS2006 ist nicht die erste Version mit diesen Bugs.

Hier habe ich folgenden hilfreichen Beitrag über das irrationale Verhalten gefunden.

Hallo alle zusammen,

Konnte bei mir das beschriebene Verhalten auch nachvollziehen. Nach
verschiedenen Try and Error Versuchen konnte ich folgendes Muster
feststellen.

- Basis Formulare und Controls dürfen sich nicht in der gleichen
Projektmappe befinden wie die davon abgeleiteten Forms und Controls.
- Das kompilierte Programm darf nicht gestartet werden während das Projekt
(abgeleitete Forms und Controls) geöffnet ist. (Danach tritt der Fehler bei
mir immer auf.)
- Vor dem Ändern der Basis Forms und Controls, darauf achten das im Projekt
(abgeleitete Forms und Controls) keine Designer geöffnet sind.
- Wenn es trotzdem wieder passiert, alle Designer Fenster schliessen und die
IDE beenden.

Wenn ich mich daran halte funktioniert das recht gut.

Liebe Grüsse aus der Schweiz
Thomas Kaufmann

Bugs der automatischen .NET Konvertierung im BDS 2005

Ich habe hier eine Seite gefunden, auf der sich ein Programmierer über Bugs des BDS 2005 auslässt. Wie ich inzwischen weiß, hat sich Borland nicht die Mühe gemacht alle Bugs zu beseitigen.

zum Forumsbeitrag

Donnerstag, 8. Februar 2007

dbexpress und MySQL 4.1

Gerade habe ich im Internet gelesen, dass die dbExpress Komponenten von Delphi mySQL nur bis Version 4.0 untestützen, weil sich wohl ab 4.1 an der Client Server Kommunkation einiges geändert hat. DANKE BORLAND.

Aber es gibt Abhilfe, sogar eine kostenfreie:

http://www.justsoftwaresolutions.co.uk/delphi/dbexpress_and_mysql_5.html

Montag, 5. Februar 2007

Zeos Library für PostgreSQL

Da ich mit einer PostgreSQL Datenbank arbeiten werde, realisiere ich den Zugriff mit Zeos. nach längerem Suchen habe ich mir hier das zeosdbo-6.5.0-alpha release geladen.
Danach habe ich vorschriftsmässig die dpk Datei ins BDS 2006 geladen und versucht mit Win32 (nicht mit .NET) zu kompilieren.
Sofort kam folgender Fehler:

Undeclared identifier: 'TLoginEvent'

Dies hab ich nach langem Suchen in verschiedenen Foren über tote Links usw mit dem Zusatz DBCommonTypes unter uses behoben. Hätt ich doch direkt in die Hilfe geschaut....

Nachtrag:
leider kann ich ZEOS nicht nutzen, da ich mit .NET entwickle.
Ich werd wohl mySQL nehmen müssen.

Mittwoch, 31. Januar 2007

Timeout für Socket festlegen

Mit der Klassenmethode SetSocketOption kann man den Timeout eines Sockets festlegen.

Overloads Public Sub SetSocketOption( _
ByVal optionLevel As SocketOptionLevel, _
ByVal optionName As SocketOptionName, _
ByVal optionValue As Integer _
)

SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 10);

Timeout auf 10 ms gesetzt
SocketOptionLevel und SocketOptionName sind Enumerationen, mit deren Hilfe man Einstellungen im Socket vornehmen kann. SocketOptionName-Enumerationswerte werden nach SocketOptionLevel gruppiert.
  • IP
    Socket-Optionen gelten nur auf IP-Sockets angewendet.
  • IPv6
    Socket-Optionen werden nur auf IPv6-Sockets angewendet.
  • Socket
    Socket-Optionen werden auf alle Sockets angewendet.
  • Tcp
    Socket-Optionen werden nur auf TCP-Sockets angewendet.
  • Udp
    Socket-Optionen werden nur auf UDP-Sockets angewendet.
Link : Optionslevel
Link : SocketOptionen

Man kann natürlich auch von vornherein mit dem TcpClient arbeiten, der zwar deutlich abgespeckt aber immernoch ausreichend ist.

TcpClient.ReceiveTimeout := 10000

Freitag, 26. Januar 2007

Inkompatible Typen 'Object' und 'Integer'

Beim Aufruf von

TStringList.AddObject(ClassName, TBSuche.Recno);

AddObject(const S: string; AObject: Object): Integer; override;

wird als zweites Argument ein Object erwartet, TBSuche.Recno ist allerdings ein Integer. In .NET unterscheidet man zwischen Wert und Refernztypen. Werttypen repräsentieren einen Wert und werden
direkt im Speicher abgelegt. Referenztypen sind Verweise auf Objekte im Heap.
In .Net können Werttypen ganz leicht in Referenztypen umgewandelt werden:

TObject(-Werttyp-)

Dies nennt man Boxing. D.h.die Lösung zum o.g. Ausdruck ist:

TStringList.AddObject(ClassName, TObject(TBSuche.Recno));

Donnerstag, 11. Januar 2007

BDS funktioniert nicht

Bei starten vom BDS bekomme ich folgende Fehlermeldung:

Die VCL für den .NET-Formular-Designer konnte nicht initialisiert werden. Klasse nicht registriert, ClassID : {....}

folglich fehlen mir ein paar wichtige Komponenten in meinem BDS 2006. Eine Neuinstallation hat mich etwa 70 min gekostet, da das Ding über eine halbe Stunde zum deinstallieren braucht. Dies hat den Fehler aber auch nicht behoben.

Nach langer Internetrecherche stieß ich dann auf diesen Artikel, der mir erklärt, ich solle die dazugehörigen DLLs neu registrieren.

Hab ich dann auch gemacht, habe aber bei den wichtigen Komponenten keinen Zugriff auf die Registrierungsschlüssel. Nachdem ich diesen
Artikel im Netz gefunden habe, machte ich mich auf, die Rechte bei den entsprechenden Schlüsseln in der Registry zu verändern.

Leider gibt es die Schlüssel in der Registry nicht!!!!

Jetzt geb ich auf, und arbeite an dem quälend lahmen Laptop, bei dem alles funktoniert weiter.

*FRUST*

User Status

Du bist nicht angemeldet.

Aktuelle Beiträge

die falschen dinge...
deinen einsatz für die freiheit in ehren aber ich finde...
M. (Gast) - 28. Nov, 15:29
http://de.wikipedia.org/wi ki/Rad_%28Begriffskl%C3%A4 rung%29 Rapid...
http://de.wikipedia.org/wi ki/Rad_%28Begriffskl%C3%A4 rung%29 Rapid...
Johannes (Gast) - 13. Nov, 14:03
Suchbegriff des Tages
Ist euch schon mal aufgefallen, dass man beim Googlen...
NinaInverse - 15. Okt, 15:41
Chinas Behörden verbieten...
Als ich den Spiegelartikel gerade eben gelesen habe,...
NinaInverse - 24. Aug, 13:37
Amilo Pro V3515 mit Linux
Wir haben hier ein paar Amilo Pro Laptops rumstehen,...
NinaInverse - 16. Aug, 11:32

Suche

 

Status

Online seit 6367 Tagen
Zuletzt aktualisiert: 28. Nov, 15:29

Credits


Diplomarbeit
persönliches
Profil
Abmelden
Weblog abonnieren