Programowanie w języku Delphi » FAQ

Jak rozwiązać problemy przy instalacji SynEdit 1.1 na D7PE

UWAGA: Wskazówka zmodyfikowana (podziękowania dla Dominika). Aby SynEdit działało lepiej, należy przywrócić oryginalny plik SynEditPropertyReg.pas a następnie wprowadzić od nowa następujące zmiany:

SynEdit w wersji 1.1 (najnowszej) używa do wielu rzeczy modułów DesignIntf i DesignEditors, za pośrednictwem modułu SynEditPropertyReg. Z nimi wiąże się większość błędów przy instalacji pakietu. Przede wszystkim sekcję uses należy zmodyfikować do następującej postaci:

uses
  Classes,
  Dialogs,
  Forms,
  Graphics,
  Controls,
  VCLEditors,
  DesignIntf,
  DesignEditors,
  SynEditKeyCmds,
  SynEditKeyCmdsEditor,
  SynEdit,
  SynEditPrint,
  SynEditPrintMargins,
  SynEditPrintMarginsDialog,
  SynAutoCorrect,
  SynAutoCorrectEditor;


Z dziwnego powodu dyrektywy nie działają tu zbyt dobrze i trzeba ręcznie wymusić użycie prawidłowych plików. Następny błąd, drugi i ostatni, jest w pliku SynMacroRecorder, linia 375 - nie jest wykrywana stała sListIndexError. Wystarczy ją zadeklarować w module lub poprostu wpisać tekst, np. 'Błąd podczas usuwania zdarzena' czy choćby 'Koziołek Matołek' (z tym że to będzie w razie czego wyglądać trochę głupio...). Po tych czynnościach wszystko powinno być w porządku. Ostrzeżeniami "implicty imported" można się nie przejmować.

PS. W razie gdyby kompilator nie mógł znaleźć jakiegoś pliku (np. SynAutoCorrect, nie wiem czemu akurat ten, ale się to zdarza), należy dodać do Search Path projektu ścieżkę katalogu Source w katalogu głównym SynEdit.

3 komentarze

my_nick 2003-05-27 16:07

Próbowałem - nic to nie dało, a tak jest przynajmniej prościej, w końcu to jest instrukcja instalacji pod d7, więc po co inne ewentualności?

Vogel 2003-05-26 20:28

Tak sobie teraz myślę, że może opłacało by się raczej zmodyfikować SynEdit.inc (*.inc - chyba SynEdit) - dodając dyrektywy dla COMPILER_7 i COMPILER_7_UP...

Dominik 2003-05-26 15:09

Z moich doświadczeń z instalacją SynEdita błąd z TFontProperty też da się zlikwidować. Po prostu  trzeba usunąć wszystkie dyrektywy związane z { .$IFDEF COMPILER_6_UP }(chodzi tu chyba o moduł Rtl).