![]() |
Auf XE3 programmiert, auf 5 solls laufen.
Hallo,
Ich habe vor knapp 4 Wochen angefangen Delphi zu programmieren. Dazu habe ich die Testversion von XE3 verwendet. Heute ist die Probezeit abgelaufen und ich habe nur noch ein altes Delphi 5 zur verfügung und muss damit jetzt irgendwie zurande kommen.. Problem ist erstmal: droj Datei wird nicht mehr erkannt scheinbar. Wenn ich ein Projekt öffnen will, werden die dproj Dateien ausgeblendet und ich kann nur die dpr öffnen. Dann wird auch nicht meine Form1 geöffnet, sondern die Datei, in den die Forms erstellt werden und die Anwendung ausgeführt wird. Dann muss ich plötzlich jede einzelne unit die ich verwende über Datei -> öffnen aufmachen... Naja das waren nur komfortprobleme... Wo mein Problem anfängt, ist direkt beim ersten Ausführen meines Programmes: Rot markierte zeile: "Vcl.Forms". "File not found: 'Vcl.dcu'". OK... zeile auskommentiert: "File not found; 'Winapi.dcu'" egal auch auskommentiert: "Identifier redeclared: 'System'" Ich kann nix machen und brauch hilfe :roll: |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Erspar dir den Ärger und mach das Projekt in D5 neu.
Ich kann allerdings nicht glauben, daß jemand wirklich davon ausgeht, daß ein unter XE3 (2012) entwickeltes Programm ohne Probleme under D5 (1999) zum Laufen zu bringen ist. Übrigens: umgekehrt wäre das wahrscheinlich kein Problem gewesen. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Zitat:
@Getox: Entferne bei VCL.Forms einfach das VCL., so dass im Beispiel nur noch Forms übrig bleibt. D5 kannte diese Nomenklatur noch nicht, funktioniert also fast bei allen Units bis auf Variants, die kennt D5 auch nicht. PAS ist auch nicht wild, problematisch könnte es bei den DFM's werden, wenn die nicht als Text gespeichert wurden. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
OK... hab jetzt alles Weggelöscht.. also "VCL." und so weiter... und dann DAS:
[Fatal Error] SQLiteTable3.pas(1): Line too long (more than 1023 characters) :cry: Der Tag fängt wundervoll an... Ja das ist eine Datei aud dem SQLite Wrapper. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Gibt es die nicht für D5?
|
AW: Auf XE3 programmiert, auf 5 solls laufen.
Zitat:
|
AW: Auf XE3 programmiert, auf 5 solls laufen.
Ich entwickle ja nicht für XE3/D5 parallel, zur Not funktioniert es aber.
Es gibt Dinge die mache ich in D5, Dinge die mache ich in XE3. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Zitat:
Compilieren geht Problemlos aber beim Öffnen des Formular kracht es ... |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Dazu kann ich nur sagen, dass es nicht meine Entscheidung war, mit XE3 anzufangen und dann auf 5 umzusteigen.
Ja ich werde vermutlich viele Features vermissen, aber da muss ich nun durch und ich muss mich nun irgendwie mit meiner neuen Situation arrangieren. Ich war noch mal auf der Seite von Tim Anderson, wegen dem Wrapper und ich finde nur eine Datei zum runterlsaen und das ist die, welche bereits von mir in Benutzung war. Ja ich wurde auch schon drauf hingewiesen, dass ich einige fehlerhafte Properties in meinem Stringgrid habe... |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Zitat:
XE3 hat nicht nur Vorteile, ich kann das durchaus nachvollziehen. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Zitat:
Solche Händischen Aktionen welche nicht durch einfache Compilierungen offensichtlich werden wird man sehr oft übersehen bzw. verursachen letztendlich realtiv viel Zeitaufwand. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Zitat:
Delphi-Quellcode:
Gruß
const
cMyText='bla bla max 255?'+ 'bla bla max 255?'+ 'bla bla max 255?' K-H |
Ich habe jetzt mit Hilfe den Wrapper so hinbekommen, dass die Zeilen nicht mehr zu lang sind.
Das hatte mit dem Format der Quelldatei zu tun... Da gibt es ja irgendwie #13 und #10. Linux benutzt nur eins, Mac das andere und Windows beide um Absätze zu machen (wenn ich es richtig verstanden habe). Das habe ich im Notepad++ geändert bekommen (Bearbeiten -> Format Teilenende -> Konvertiere zu Windows(CR + LF)). Nun habe ich auch noch Unterstützung bekommen, indem mein Wrapper von SQLite noch zum Teil umgeschrieben wurde und ich begebe mich jetzt auf die Suche nach UTF8Encode() für Delphi5. Mal sehen, ob ich da fündig werde. Wenn ich noch ein Problem habe, werde ich wieder schreiben :) Danke aber vorerst, dass ihr euch mit meinem Problem auseinandersetzt. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Zitat:
|
AW: Auf XE3 programmiert, auf 5 solls laufen.
So... ich habe nun herausgefunden, dass JCL wohl was "Externes" ist, dass man zusätzlich installieren muss. nach einiger Zeit habe ich nun auch geschafft eine JCL Version zu besorgen, welche mit Delphi5 Läuft. JVCL 3.37 war wohl die letzte Version die unter Delphi5 lief und darin war auch ne funktionierende Version von JCL.
Jetzt bin ich aber leicht verwirrt mit dem ganzen String, WideString, UTF8 und keine Ahnung. Mit diesem Thema habe ich mich nicht ganz befasst. Ich habe nun in meiner Datei vom SQL Wrapper erstmal die JclUnicode unter USES hinzugefügt und bin nun an der Stelle an der vorher stand:
Delphi-Quellcode:
Die Funktion UTF8Encode gib es nicht und will ich ja durch die entsprechende Funktion der JCL ersetzen. Aufgrund mangelnden Wissens, was diese ganzen Textformate angeht, stehe ich etwas aufm Schlauch. Welche Funktion aus der JCLUnicode ist denn die, welche ich benötige?
function StrToUTF8(const S: WideString): AnsiString;
begin Result := UTF8Encode(S); end; |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Denke nochmal über den Tipp von Uwe nach (Projekt im Rahmen von D5 neu aufsetzen).
Vielleicht kannst Du auch irgendwo ein günstiges D2009 bekommen - dort wäre zumindest schon Unicode mit dabei (wenn Du es wirklich brauchst). |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Das Problem vor dem ich stehe, dass ich mit SQLite arbeite. Dafür nutze ich einen Wrapper und der geht nur mit diesem Unicodegedöns.
Wenn ich das Programm neu schreibe, kann ich aus diesem Grunde immernoch keine Datanbank anlegen, benutzen oder sonst was... |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Warum soll es denn eigentlich auf D5 laufen? Aus Kostengründen? In XE3 schien ja alles gut geklappt zu haben. Klang oben zumindest so. Für die Stunden, die Du jetzt mit dem rumgefrickel Zeit verlierst, kannst Du Dir auch XE3 Pro zulegen.
|
AW: Auf XE3 programmiert, auf 5 solls laufen.
Zitat:
Ach ja: Müsste nicht ZEOS auch SQLite unterstützen? Ist evtl. einfacher damit zu arbeiten. Die Frage ist nur ob du die neustes Version noch verwenden kannst oder auf Alte Version zurückspringen musst. Kannst du nicht mindestens auf D7 hochgehen? Diese müsste noch von mehr Bibliotheken unterstützt werden so das du keine Antiken Versionen einsetzen musst. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Soweit ich weiß haben wir alle defines in Zeos7 für Compiler, älter als D7 rausgeschmissen. Außerdem ist ist das UTF8Encode/UTF8Decode da auch schon überall drin.
Es gab da eine kurze Absprache, ob irgendwer noch Interesse an solchen Compilern haben könnte. Das gleiche Spiel mit FPC2.2../Kylix Mit 6.6.6 könnte das alles noch gehen, du bräuchtest jedoch irgendwelche UTF8 oder WideString Componenten wie TNT o.ä.. Altenativen für: uses windows; UTF8Decode
Delphi-Quellcode:
UTF8Encode:
function AnsiToWide(const S: AnsiString): WideString;
var l: Integer; begin l := MultiByteToWideChar(CP, 0, PAnsiChar(@s[1]), - 1, nil, 0); //Checkout the Result-Lengh if l = 0 then Exit; SetLength(Result, l - 1); MultiByteToWideChar(65001, 0, PAnsiChar(@s[1]), - 1, PWideChar(@Result[1]), l - 1); //Convert Ansi to Wide with supported Chars end;
Delphi-Quellcode:
Du kannst die CP65001(UTF8) auch mit 1252 austauschen (dann aber dwFlags anstatt 0 mit WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR austauschen), somit WideToAnsi oder AnsiToWide erstellen, was deine Controls dann darstellen können.
function WideToAnsi(const ws: WideString): AnsiString;
var L: Integer; begin l := WideCharToMultiByte(65001,0, @ws[1], - 1, nil, 0, nil, nil); //Checkout the result length if l = 0 then Exit; SetLength(Result, l - 1); //SetResult Length WideCharToMultiByte(65001,0, @ws[1], - 1, @Result[1], l - 1, nil, nil); // Convert Wide down to Ansi end; Habe das alles so bei Zeos reingebröselt und funzt wunderbar. Jedoch werden unter CP1252 alle nicht unterstützen Bytesequenzen zu '?' umgewandelt. Gruß Michael |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Zitat:
![]() LG |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Zitat:
Zitat:
Zitat:
Ich bin grade am erlernen dieser Programmiersprache.Da ist 1000 Euro für nen XE3 Pro etwas mit Kanonen auf Spatzen geschossen finde ich. Auch das angebot mit dem 2009er finde ich nett, aber 200 Euros sind auch ne Stange Geld. Was nutzt die schönste IDE, wenn man am Ende des monats verhungert ist? Dass ist in meinen Augen eh das größte Problem von Delphi. Wenn man als Neuling vor der Wahlsteht, ob man eine IDE einer beliebigen anderen Sprache gratis runterlädt oder 200 Euro auf den Tisch latzt, um Delphi zu lernen, kann man schon fast erraten, was dieser wählen wird. ich persönlich bin nunmal drauf angewiesen speziell Delphi zu lernen, aber wenn dies nicht so wäre, würde ich umgehend eine ander Sprache wählen, wo ich weniger probleme, bei überhauptkeinen Kosten habe. Zudem hat man vermutlich mit weiter verbreiteten Sprachen bessere Berufsaussichten, als mit Delphi - wo eh die Mehrheit der Leute nicht auf dem aktuellen stand ist und noch denkt, dass Delphi unter Borlands Führung im sterben liegt. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Mit anderen Worten, Du musst Delphi und SQLite verwenden lernen, bekommst aber noch kein Geld, hast aber eine Aussicht auf einen Auftrag/Job mit Delphi und SQLLite?
|
AW: Auf XE3 programmiert, auf 5 solls laufen.
Ich mache ein Praktikum um mich auf meine bevorstehende Ausbildung vorzubereiten. Ich muss Delphi verwenden, aber es lohnt sich wohl nicht, mir eine eigene Lizens zu kaufen, da ich auch noch in andere Abteilungen (mit anderen Sprachen) reinschnuppern werde.
Mein Ziel ist es, möglichst viel in eigener Arbeit zu erlernen, um möglichst schnell auch mal sinnvoll einsetzbar zu sein. Dabei ist es mit persönlich auch nicht wichtig, welche Sprache ich lerne... Programmieren ist ja nicht ob ich jetzt schreibe "a := 1" oder "a = 1", programmieren ist meiner Meinung nach diese spezielle Denkweise, das analysieren von Problemen und so weiter... Das ist wie bei echten Sprachen. Ob ich jetzt sage "Ich mag Pizza" oder "I like Pizza" ist zwar eine andere Sprache, aber der selbe Sinn. Wenn ich aber nicht weis, dass es Pizza gibt, kann ich mit beiden Sätzen nix anfangen. Also lerne ich eine Sprache und wenn ich an eine andere Sprache komme, brauche ich nur suchen, wie bekannte Dinge in anderen Sprachen geschrieben werden. Zu diesem Lerneffekt zähle ich auch, dass ich einige Dinge einbaue, die über das hinausgehen, was ich eigentlich machen soll. So habe ich zum beispiel meine Datenbank eingebaut, obwohl das Programm ursprünglich nur so aussehen sollte, als wenn es was können würde. Aber ich dachte "Hm, programmiere ich es so, dass es was kann" und so habe ich wieder ettliche Dinge gelernt, wie ich vorher nicht kannte und auf die ich nun immer wieder zurückgreifen kann. Das Problem ist jetzt einfach, dass ich an meinem Programm nicht weiter arbeiten kann, weil ich die IDE wechseln musste und ich hab doch noch sooo viele Ideen :( Vielleicht mag der ein oder andere sich nun fragen, warum ich dann so viele fragen im Forum stelle. Ich versuche immer erst alleine durch Google auf die Lösung zu kommen, danach frage ich im Forum (wenn ich über einen gefühlt sehr großen zeitraum nicht weitergekommen bin) und wenn ich da dann auch nicht auf eine lösung komme, ziehe ich es in Betracht einen Arbeitskollegen bei seiner Arbeit zu stören. Zum einen möchte ich hier möglichst wenig Leuten zur Last fallen - wenn ich schon zur Zeit keinen wirklichen Nutzen habe und zum anderen verstehe ich das geschriebene Wort oft besser als das gesprochene, da ich Teile mehrfach lesen kann und länger zeit habe über den Sinn nachzudenken, als wenn ich nun in einem normalen Gespräch bin. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
Es gibt noch Junge Menschen, bei denen man das Gefühl bekommen dürfte, mit einer Einstellung das Richtige getan zu haben! :love: Erstmal danke für die Aufhellung meines Abends, Getox ;)
Zum Problem an sich, würde ich allerdings auch fast sagen: Düster. Delphi 5 ist leider einfach schon so dermaßen veraltet, dass es noch kaum wer berücksichtigt. Die Suche und Versuche deine XE3 Projekte mit allen Fremdkoponenten dort hin zu pressen dürfte in sehr viel Liebesmüh und Rumprobieren und Hinbiegen enden. Das hat zwar sicherlich auch einen ziemlichen Lerneffekt, da man zwangsweise mit diversen Internas in Berührung kommt, für das was du "sn sich" aber wohl willst dürfte das eher hinderlich sein. Stehst du bereits in Kontakt mit einem konkreten Arbeitgeber? Wenn ja, würde ich dort mal freundlich nachfragen, ob sie dir - wenn auch nur bis zum Zeitpunkt deines Eintritts in den Betrieb - eine aktuellere Delphi Version borgen würden. Ich kann mir kaum vorstellen, dass man solches Engagement leichtfertig ausschlagen würde. Die Alternative würde ich sonst auch wirlich im Neuschreiben in D5 fast von der Pieke an sehen, und dabei sich auf Bordmittel beschränken, weil es die meisten Komponenten wohl dafür nicht mehr oder nur reingefrickelt gibt. Das dürfte leider nur sehr weit vom späteren Arbeitsalltag entfernt sein. |
AW: Auf XE3 programmiert, auf 5 solls laufen.
@Getox
Respekt für Haltung :thumb: Finde ich echt super. Letztlich ist es eine Frage in welchem Bereich Du mal arbeiten wirst, welche Arbeitsumgebung und Sprache Du dann intensivierst. Delphi/Pascal ist m.E. am verständlichsten und übersichtlichsten - aber das ist Geschmachssache. Zur Last fällst Du hier sicher keinem. Aber ich gebe Medium recht, es wird schwierig sein, mit D5 noch viel Unterstützung bei spezielleren Fragen zu erhalten. WENN Du D5 nutzt, dann würde ich AUSNAHMSWEISE erst mal mit der BDE und DBase oder Paradox arbeiten. Um ein paar Erfahrungen zu sammeln taugt das allemal. Irgendwelche für D5 außergewöhnlichen Dinge zu nutzen wird wohl so viele Probleme bereiten, dass Du nur frustriert wirst... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz