kilka pytań z ró?żnej dziedziny :)

0
  1. Czy można sprawdzić, czy istnieje w Unicie funkcja o danej nazwie. Załóżmy, że mam mnóstwo funkcji wywoływanych z różnych komponentów... zamiast stosować różne CASE, można by takie "coś":

for i := 0 to Form.ComponentsCount do
if <font color="blue">MethodName.Exist</span>(string(Form.Component[i].Name)) then // wywołaj

Oczywiście w specyfikacji Object Pascala nie istnieje warunek zaznaczony na niebiesko, ale pytam, czy można zrobić coś podobnego, na ten wzór...

  1. Jak zapisać do pliku liste z komponentu <font color="darkblue">TSynAutoCorrect</span> (lista składająca się z dwóch kolumn, po zastosowaniu SaveToFile byle jakiej listy, "oddzielnikiem" jest jakas podwójna spacja.. nie mam pojęcia zielonego co to jest - na pewno nie dwie spacje, sprawdziłem.

  2. Skąd mogę sciągnąć pełen słownik języka polskiego (długo szukałem, znalazłem tylko 2 adresy: jeden miał 40 kb (lipa), drugi 700 ale też nie miał wszystkich słówek... chciałbym takie coś jak w wordzie. Wielkość pliku tekstowego jest bez różnicy (byle bym się zmieścił w 10 megach :)

  3. Do czego służy: TSynExporterTex, TSynRegexSearch z najnowszego pakietu Synedit (CVS z 3-ciego lipca)

0

Ad.1 Jeśli te funkcje są w DLLu, to można łatwo coś wykombinować. Dam taki przykład:

W bibliotece są dwie funkcje o nazwie TestSum i TestMul, obie o takiej deklaracji:

function [nazwa](Num1, Num2: Integer): Integer; 

TestSum zawiera taki kod:

Result:=Num1+Num2;

A TestMul taki:

Result:=Num1*Num2;

Oczywiście obie są eksportowane.

W programie wstaw 3xTEdit (o nazwach eNum1, eNum1 i eResult) i 2xTButton (o nazwach TestSum i TestMul);

Do zdarzenia OnClick obu buttonów (przypisz im tą samą procedurę) wpisz to:

var 
  HLib: THandle;
  TestFunc: function(Num1, Num2: Integer): Integer;
begin
  HLib:=LoadLIbrary(PChar('test.dll'));
  @TestFunc:=GetProcAddress(HLib,TComponent(Sender).Name);
  if @TestFunc<>nil then eResult.Text:=TestFunc(StrToInt(eNum1.Text),StrToInt(eNum2.Text));
  @TestFunc:=nil;
  FreeLibrary(HLib);
end;

Teraz kliknięcie na przycisk TestAdd spowoduje wyświetlenie sumy liczb, a na TestMul - iloczynu. Jeśli przypiszesz to np. do OnClick któregoś z pól edycyjnych - nic się nie stanie, bo biblioteka nie zawiera odpowiedniej funkcji.

Ad. 2 Tabulator?

1 użytkowników online, w tym zalogowanych: 0, gości: 1