[#1] "Drag and drop" do mojego onka
Czesc,
co trzeba ustawic by przeciaganie bylo aktywne?
Przyznam, ze szukalem dosc krotko - oczywiscie nic nie znalazlem.

Dzieki
[#2] Re: "Drag and drop" do mojego onka

@peceha, post #1

Jeżeli chodzi Ci o wrzucanie ikonek z Workbencha do Twojego okna, to do poczytania.
[#3] Re: "Drag and drop" do mojego onka

@Krashan, post #2

To zagadnienie jest szczegółowo opisane również w ROM Kernel Reference Manual: Libraries. Rozdział o workbench.library.
[#4] Re: "Drag and drop" do mojego onka

@Hexmage960, post #3

Mogłeś od razu dać linka do tego rozdziału.
[#5] Re: "Drag and drop" do mojego onka

@Krashan, post #4

Dzięki,
Trzeba będzie się za to zabrac
[#6] Re: "Drag and drop" do mojego onka

@Krashan, post #4

O kurcze, a ja myślałem że nazwanie programu aplikacją to jakiś wymysł ludzi od Windows'a, a tutaj widać, iż nawet twórcy Amigi używali słowa aplikacja. No cóż, trzeba będzie się przeprosić z tą nazwą :(
[#7] Re: "Drag and drop" do mojego onka

@peceha, post #1

Czy tu jest blad w tym kodzie? (caly kod tutaj: link)
zanzaczylem strzalka"<-------" to co mi nie pasuje.
Na poczatku czekam na jakas wiadomosc typu AppMessage a gdy taka przyszla i ja przerobilem to daje RelyMsg na wiadomosc typu Message?
do
                        {
                            /* Wait for either a CLOSEWINDOW or an AppMessage */
                            Wait(1 << window->UserPort->mp_SigBit |
                                1 << msgport->mp_SigBit);
                            while (imsg = (struct IntuiMessage *)
                                GetMsg(window->UserPort))
                            {
                                if (imsg->Class = CLOSEWINDOW)
                                    ABORT = TRUE;
                                ReplyMsg((struct Message *) imsg);
                            }
                            while (appmsg = (struct AppMessage *) GetMsg(msgport))     
                            {
                                printf(
                       "aw: appmsg=%lx, Type=%ld, ID=%ld, UserData=%ld, NumArgs=%ld\n",
                                       appmsg, appmsg->am_Type, appmsg->am_ID,
                                       appmsg->am_UserData, appmsg->am_NumArgs);

                                argptr = appmsg->am_ArgList;
                                for (i = 0; i < appmsg->am_NumArgs; i++)
                                {

                                    printf("\targ(%ld): Name='%s', Lock=%lx\n",
                                           i, argptr->wa_Name, argptr->wa_Lock);
                                    /* Point to next argument */
                                    argptr++;
                                }
                               ReplyMsg((struct Message *) appmsg);   <-------<-------<-------
                            }
                        } while (ABORT == FALSE);


edit
a pytam tylko dlatego bo na razie nie dziala mi to jak trzeba
Po wrzuceniu np. jednej ikonki do okna fakrtycznie dostaje 1 plik (petla od 0 do am_numArgs-1). Po wyjsciu z tej petli odpowiadam na *AppMessage (nie *Message bo to mi wiesza amige) ale program jakims cudem odbiera kolejne wiadomosci z portu *msgport (czyli te dla appwindow) i tym sposobem sie zapetla na stale.
A przeciez przeciagam tylko jedna ikonke...


Ostatnia aktualizacja: 28.09.2019 19:23:43 przez peceha
[#8] Re: "Drag and drop" do mojego onka

@peceha, post #7

Niewiele Ci pomoge ale jeden blad masz na pewno tutaj:

if (imsg->Class = CLOSEWINDOW)


Powinno byc "=="
[#9] Re: "Drag and drop" do mojego onka

@peceha, post #7

W pierwszej petli odpowiadasz ReplyMsg na wszystkie wiadomosci, takze te typu AppMessage, a pozniej odpowiadasz na nie jeszcze raz. Kiedys uzywalem takiej petli do obslugi wiadomosci:
signals=Wait(winsig|appwinsig);
	if (signals & appwinsig)
	{
		while(msg=(struct AppMessage*)GetMsg(AppWindowPort))
		{
			printf("appmsg: type=%ld, id=%ld, numargs=ld\n", msg->am_Type, msg->am_ID, msg->am_NumArgs);
			argptr=msg->am_ArgList;
			for (cnt=0;cnt<msg->am_NumArgs;cnt++)
			{
// handle files
				printf("arg %ld: Name=%s, Lock=%ld\n",cnt, argptr->wa_Name, argptr->wa_Lock);
				argptr++;
			}
		}
		ReplyMsg((struct Message*)msg);
	} else if (signals & winsig)
	{
// handle window signals
	}


Obsluga sygnalow z okna przez GT_GetIMsg/GT_ReplyIMsg()

Ostatnia aktualizacja: 28.09.2019 19:52:36 przez docent
[#10] Re: "Drag and drop" do mojego onka

@Phibrizzo, post #8

Dzieki OK

skoro jest jeden blad to zakaldam ze moze byc wiecej :)
bo to nie moj kod tylko przykladowy z amigadev

Ja to przeraabiam na blitz-a i wyglada zdziebko inaczej.
[#11] Re: "Drag and drop" do mojego onka

@docent, post #9

Dzieki, ta czesc juz powinna byc ok

Teraz tylko mi ciagle wiesza amige przy zwalnianiu messegeport.
Jak zakomentuje te linie to program sie zamyka bez problemow.
Gdy ta linia jest aktywna to za kazdym razem czerwone guru.
DeleteMsgPort(msgport);



DODALEM

juz wszystko smiga jak nalezy .
Dzieki!!!!

Ostatnia aktualizacja: 28.09.2019 20:22:51 przez peceha
[#12] Re: "Drag and drop" do mojego onka

@peceha, post #11

W przykladowej petli byl blad, ReplyMsg bylo nie tam gdzie trzeba. Tu poprawna wersja:

signals=Wait(winsig|appwinsig);
	if (signals & appwinsig)
	{
		while(msg=(struct AppMessage*)GetMsg(AppWindowPort))
		{
			printf("appmsg: type=%ld, id=%ld, numargs=ld\n", msg->am_Type, msg->am_ID, msg->am_NumArgs);
			argptr=msg->am_ArgList;
			for (cnt=0;cnt<msg->am_NumArgs;cnt++)
			{
// handle files
				printf("arg %ld: Name=%s, Lock=%ld\n",cnt, argptr->wa_Name, argptr->wa_Lock);
				argptr++;
			}
		        ReplyMsg((struct Message*)msg);
		}
	} else if (signals & winsig)
	{
// handle window signals
	}
[#13] Re: "Drag and drop" do mojego onka

@mschulz, post #12

A nawet nie zwrocilem uwagi - faktycznie powinna "zatwierdzac" kazda przerobiona wiadomosc.

Mimo wszystko w wersji na BB2 mam to w dobrym miejscu wpisane.
[#14] Re: "Drag and drop" do mojego onka

@peceha, post #13

A nawet nie zwrocilem uwagi - faktycznie powinna "zatwierdzac" kazda przerobiona wiadomosc.


Nie przerobiona, kazda odebrana.
[#15] Re: "Drag and drop" do mojego onka

@mschulz, post #12

Masz racje. Najsmieszniejsze jest to, ze w oryginale u mnie jest jak trzeba - usuwajac zbedne rzeczy odkasowalem za duzo :)
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem