KOlejny problem :)

0

Jaaaa to chyba jestem bardzo niedouczony :) Ale mooshe sie przyznac, ze gdyby nie forum to by bylo kiepsko ze mna {browar} Oto moj problem:

Mam w bibliotece dll forme zadeklarowana jako

var Test: TForm ;

i kiedy deklaruje dla niej procedure OnPaint typu:

Rysuj(Sender: TObject)

i chce sie do niej odwolac w programie(ciagle w kodzie dll), tzn przypisac ja do formy Test w ten sposob:

with Test do
begin
jakies instrukcje
OnPaint := Rysuj(Sender) ;
jakies instrukcje
end ;

To pokazuje sie blad ze Podany przeze mnie w nawiasie Sender nie istnieje, nie ma czegos takiego jak sender... a kiedy przypisuje taka procedure OnPaint 'normalnie' w formie, to nie ma przeszkod i Sender jest rozpoznawany przez kompilator. {glowa}

PS. Moduly jakie mam w uses to: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, Buttons, ToolWin, ComCtrls, Registry, ImgList;

PROSZE O POMOC ! :) ;(

Pozdrawiam {hello} --LSD - Discover The New Way Of Thinking

0

kiedyś dawno ktoś mi poradził na taki problem ,zeby sender ustawić na nil
nie wiem, czy pomoże, czy w ogóle zadziała, ale nie mam pod ręką delphi i nie mogę sprawdzić. Jak działa, daj znac

{browar} --Spin
(Delphi 5 Enterprise)

0

Spin napisał:
kiedyś dawno ktoś mi poradził na taki problem ,zeby sender ustawić na nil
&gtnie wiem, czy pomoże, czy w ogóle zadziała, ale nie mam pod ręką delphi i nie mogę sprawdzić. Jak działa, daj znac

Nie dziala mi niestety, wyskakuje taki blad [Error] : Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer or untyped parameter'

Dzieki za pomoc, byc moze cos zle robie {browar}

Pozdrawiam {hello} --LSD - Discover The New Way Of Thinking

0

Spróbuj napisać:
onpaint:=rysuj;
Wystarczyło zajrzeć do pomocy Delphi...

0

mool napisał:
Spróbuj napisać:
&gtonpaint:=rysuj;
&gtWystarczyło zajrzeć do pomocy Delphi...

A czytales co napisalem wyzej ???? hmm...

Pozdrawiam {hello} --LSD - Discover The New Way Of Thinking

0

Jasne, że czytam, ale nie mów, że to nie działa, bo u mnie działa i musi działać.
Patrzę w pomocy pod OnPaint, widzę link do TNotifyEvent, no i wszystko jasne:
type TNotifyEvent = procedure (Sender: TObject) ofobject;
A więc ów tajemniczy Sender jest zadeklarowany w typie zmiennej TNotifyEvent, tak więc po OnPaint i wszystkich podobnych trzeba podstawiać nazwę.

0

Hmmmmmmmmmmmmm................ nie bardzo moge ci uwierzyc :) :) :) Jak mozesz to wrzuc tutaj dzialajacy kod, bylbym bardzo wdzieczny {browar}

Pozdrawiam {hello} --LSD - Discover The New Way Of Thinking

0

Oto fragment twojego pierwszego postu w tym temacie:

with Test do
begin
jakies instrukcje
OnPaint := Rysuj(Sender) ;
jakies instrukcje
end ;

A oto ten fragment poprawny:

with Test do
begin
jakies instrukcje
OnPaint := Rysuj;
jakies instrukcje
end ;

Po prostu istnieje taki typ jak Procedure, w którym są zdefiniowane również parametry. Sender jest to szczególny parametr i zawsze musi się znajdować w procedurach obsługi zdarzeń, a więc twórcy Delphi ułatwili (choć może utrudnili) nam życie i nie trzeba, a wręcz nie można go po prostu wpisywać. Zresztą co ja tu będę tłumaczyć i tak się do tego nie nadaję, włącz Delphi i zobacz: żadnego błędu!

0

A przeczytales ze jest do biblioteka dll ??? U mnie jesli ten kod w takowej bibliotece umieszcze to nie dziala :)

Pozdrawiam {hello} --LSD - Discover The New Way Of Thinking

0

Skoro tak, to sorry, nie znam się na dll-kach, ale wiesz co podrzuć mi kod (ten co masz dotychczas zrobiony) do tej dll-ki, wszystkie pliki, jakie delphi potrzebuje, bo w zasadzie nie wiem jak zacząć z dll-ką, ja się temu przyjrzę i coś wykombinuję dzisiaj lub jutro.

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