Wywolywanie procedur z DLL

0

Wywoływanie procedur z dll'a funkcji nie jest dla mnie problemem. Tylko jak z DLL wywołać procedure na formie?

0

Tak bezpośrednio to sie nie da (przynajmniej bez jakichś zaawansowanych kombinacji). Pierwsze co mi przychodzi na mysl to wysyłanie z dll-a komunikatu do formy.

0

tzn. jak? to juz lepszym sposobem byłby transfer w pliku txt....

0

Hmm... Jednego nie rozumiem... Co rozumiesz poprzez wywołanie procedury na formie?

0

Pokombinować nie umiesz ? :]
Mozesz przeciez wpisac w edicie za pomoca dll i w onchange dac odpowiednia procedure jezeli text edita jest taki jak costam :]
Wiem ze sposob jest slaby itd. ale to po to by dowiedziec sie czy o to chodzilo :]

P.S. Edit Visible:=false zeby to jakos wygladalo :P

0

tzn. jak? to juz lepszym sposobem byłby transfer w pliku txt....

Eee [???]. Nie kapuje co mają do rzeczy pliki txt. W każdym razie raczej nie zrozumiałes o co mi chodzi ;P . Można sobie zadeklarować własny komunikat, nastepnie wysłać go pod uchwyt formy, w której umieszczasz obsługę tego komunikatu. Dokładny przykład masz tu http://4programmers.net/Forum/viewtopic.php/id=61145/post=171525#171525.
Być moze da sie przekazać do dll adres procedury w głownej formie, ale to juz wyższa szkoła jazdy :P.

//no może troche przesadziłem, w każdym razie dla mnie trudniejsze bo z pamieci rozwiązania bym nie podał ;) .

0

Być moze da sie przekazać do dll adres procedury w głownej formie, ale to juz wyższa szkoła jazdy :P.

Wyższa szkoła jazdy? Dla mnie sprawa prostsza :)
W programie głównym robisz coś takiego:

Procedurka_z_DLLa(@procedurka_w_programie_glownym);

A w Dll'ce dajesz tak:

procedure Procedurka_z_DLLa(var procka: procedure(argumenty procedurki w programie glownym));
begin
procka(argumenty wywolania);
end;

Oczywiście pisane z pamięci, więc może coś się nie zgadzać, ale generalnie w ten deseń.

0
procedure Procedurka_z_DLLa(var procka: procedure(argumenty procedurki w programie glownym));
begin
procka(argumenty wywolania);
end;

Adres to zwykly cardinal (lub word?), wiec tylko to wysylasz i podstawiasz jako adres zdefiniowanej procki.

0

ok... jeszcze raz. Wyjaśnię może serum problemu, to może będzie bardziej zrozumiałe. Pisze sobie rozbudowany chat (cli<>srv). Sama główna forma aplikacji z socketami jest niewidoczna, a dll mają pełnić rolę skór. No więc ładuję sobie dynamicznie dll'a, wywołują procedure start, która wyświetla formę (zawartą w dll'u), na której są standardowe komponenty: edit, memo itp. Teraz, jeśli w socket dostanie wiadomość, to wywołuje procedure z dll'a, która dodaje wpis do memo itd. Teraz chce zrobić na odwrót - gdy użytkownik wpisze wiadomość i kliknie na wyślij, to przekazać wiadomość do głównaj formy i wysłać socketem.... ot i cały problem.

0

No wiec wybierz sobie cos z powyzszych, komunikaty, komunikaty + adres procedury ... wszystko bylo powiedziane, tylko troche pogoglowac o wysylaniu/odbieraniu komunikatow ;)

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