Einzelnen Beitrag anzeigen

Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#16

Re: TACredits, scrolling Unicode & Smart-Tag capable Cre

  Alt 17. Jul 2007, 15:06
Hmm - mal so eine Frage aus dem Hintergrund: wäre es viel Arbeit, die Komponente für Delphi7 anzupassen? Ich haben eben versucht, diese zu kompilieren, aber D7 kennt wohl noch keine WideStringLists...

Es wäre sicher vermessen zu fragen, ob man die entsprechenden DCU-Files bekommen könnte,oder (keine Ahnung, inwieweit sich das mit den Borland-Lizenzen beißt)?

Da die Komponente wirklich Eindruck macht, wäre sowas für den Splashscreen oder den Aboutdialog meiner Anwendung ideal...


vielen Dank,
Christian


PS: Ich habe jetzt mal ein wenig rumgecodet und siehe da, die Komponente läuft jetzt schonmal während der Designzeit (also Scrollt munter vor sich hin.) Starte ich allerdings meine Anwendung, bekomme ich ununterbrochen Zugriffsverletzungen... woran könnte das liegen?

Ich habe derzeit nur die "WidestringLists" durch normale "StringLists" ausgetauscht und die Compileranweisungen {$REGION ...} auskommentiert. Der Fehler tritt in der StrUtils.pas auf, also hats schonmal was mit meinem Austauschen der Stringlists zu tun - aber wo im Code muss ich suchen?


Danke






Delphi-Quellcode:
              lCurTagBegin := CurPos - 1;
              lCurTagEnd := PosEx(']', CurLine, lCurTagBegin);
              lCurTagName := Copy(CurLine, lCurTagBegin, lCurTagEnd - lCurTagBegin + 1);

              if CheckTag(lCurtagName, lCurTag) then
              begin
                lNexTagBegin := lCurTagEnd - 1;
                lNexTagName := '';

                while not CheckTag(lNexTagName, lNexTag) do
                begin
                  lNexTagBegin := PosEx('[', CurLine, lNexTagBegin + 1);
                  lNexTagEnd := PosEx(']', CurLine, lNexTagBegin);
                  lNexTagName := Copy(CurLine, lNexTagBegin, lNexTagEnd - lNexTagBegin + 1);
                  if (lNexTagEnd = 0) or (lNexTagBegin = 0) then
                  begin
                    lNexTagBegin := Length(CurLine) + 1;
                    Break;
                  end;
               end;

Diese Codezeilen lösen die Exception aus. Die Funktion PosEx löst den Fehler bei den Zeilen "lCurTagEnd", "lCurTagName" und "lNexTagEnd", "lNexTagName" aus.

Im Anhang ist die Komponentendatei, welche bei mir unter D7 zwar läuft, aber nur solange man in der ersten Zeile Text stehen hat. Leider werden aufgrund des PosEx-Fehlers auch die Taganweisungen nicht gelöscht. Ansonsten Scrollt das bei mir jetzt auch bei laufendem Programm. Vielleicht kann sich das einer mal anschauen, der etwas mehr Ahnung von Komponenten hat, als ich.
Angehängte Dateien
Dateityp: pas credits_126.pas (43,9 KB, 20x aufgerufen)
Christian Nöding
  Mit Zitat antworten Zitat