amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > AppWindow / AppMessage [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

07.08.2009, 18:39 Uhr

AGSzabo
Posts: 1663
Nutzer
hi,

für icon-drag n drop will ich mit AppWindows und AppMessages arbeiten. Dazu habe ich mein Fenster als AppWindow angemeldet und dabei den messageport des prozesses (der für alle fenster gillt) als Port für den Erhalt der AppMessages eingetragen.

Jetzt ist es so, dass das Programm abstürzt sobald ich ein icon über das fenster loslasse. Ich weis nämlich nicht wie ich feststellen kann ob an meinem messageport nun eine AppMessage oder eine IntuiMessage ankommt. Und dann weis ich nicht, wie man aus der AppMessage den Dateinamen der reingezogenen datei raus bekommt.

Muss ich für die Appmessages einen eigenen Port einrichten? Wie bekomme
ich raus wie die datei heist und wo sie liegt?

thx,
Andreas
--
Sam os4.1, e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110

[ - Antworten - Zitieren - Direktlink - ]

07.08.2009, 20:04 Uhr

thomas
Posts: 7718
Nutzer

Es ist einfacher, wenn man für unterschiedliche Messages auch unterschiedliche Ports macht. Aber es geht auch mit einem. Du mußt halt schauen, welche Felder der beiden Message-Typen übereinander liegen und gefahrlos abgefragt werden können. Normalerweise müßte es reichen, zuerst zu prüfen, ob es eine IntuiMessage ist (gültige Class) und dann ob es eine AppMessage ist (gültige am_Class).

Die Icons bekommst du über am_Args. In am_NumArgs steht drin, wieviele Icons übergeben wurden und am_Args zeigt auf einen Array mit WBArgs. Ein WBArg besteht aus zwei Pointern, der erste ist ein Lock auf das Verzeichnis und der zweite zeigt auf den Dateinamen (ohne Pfad und ohne .info). Das ist das gleiche Prinzip wie bei der WBStart-Message.

Eigentlich sollte man solche Dinge leicht erkennen, wenn man sich mal die Includes anschaut.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

07.08.2009, 20:10 Uhr

AGSzabo
Posts: 1663
Nutzer
@thomas:

>Eigentlich sollte man solche Dinge leicht erkennen, wenn man sich mal die Includes anschaut

oh mann! immer wieder der selbe vorwurf. natürlich habe ich die docs gewälzt!

aber danke für die hinweise!

und ich nehme mal an der lock ist vom typ shared so dass ich ihn nicht freigeben muss.


--
Sam os4.1, e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1

[ Dieser Beitrag wurde von AGSzabo am 07.08.2009 um 20:18 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

07.08.2009, 20:27 Uhr

thomas
Posts: 7718
Nutzer
@AGSzabo:
Zitat:
so dass ich ihn nicht freigeben muss

Du darfst nie irgendetwas freigeben, was du nicht selbst allokiert hast !

Gruß Thomas



--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

08.08.2009, 14:25 Uhr

ZeroG
Posts: 1487
Nutzer
@AGSzabo:
Warum guckst du dir eigendlich nicht die Beispiele für sowas an? Oder hast du nicht die RKMs?

[ - Antworten - Zitieren - Direktlink - ]

08.08.2009, 15:37 Uhr

AGSzabo
Posts: 1663
Nutzer
@ZeroG:

Also langsam reicht es echt! Da opfert man sich auf um dem Amiga ein stück Kuchen zu verpassen und hat echt spass an der freude und fragen kostet nichts, da wird man dauernd zusammengepfiffen man soll doch die docs lesen! Was ist das blos für eine an den haaren herbeigezogene ausflucht! NATÜRLICH lese ich die docs! Ma findet halt nicht immer gleich alles und oft langt es auch nicht. ausserdem verstehe ich kaum C.

ps: was ich hier rein frage ist blos die spitze des eisberges an problemen die mir passieren! von mir aus ein minimum.

grüsse,
Andreas
--
Sam os4.1, e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110

[ Dieser Beitrag wurde von AGSzabo am 08.08.2009 um 17:09 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

08.08.2009, 16:54 Uhr

AGSzabo
Posts: 1663
Nutzer
@thomas

HI, jetzt stehe ich noch vor folgendem problem: wenn ich das icon ueber mein "hot area" ziehe, sollte sich der mauszeiger ändern. aber dazu muss wohl das fenster aktiv sein, das ist und wird es aber nicht während ich das icon ziehe! gibts da ne lösung?

gruesserl,
Andreas
--
Sam os4.1, e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110

[ - Antworten - Zitieren - Direktlink - ]

08.08.2009, 18:38 Uhr

ZeroG
Posts: 1487
Nutzer
@AGSzabo:
Zitat:
Also langsam reicht es echt! Da opfert man sich auf um dem Amiga ein stück Kuchen zu verpassen und hat echt spass an der freude und fragen kostet nichts, da wird man dauernd zusammengepfiffen man soll doch die docs lesen!
Ich hab dich nicht zusammengepfiffen (zumindest war es nicht so gemeint), aber im RKM steht im Abschnitt über AppWindow/AppMessage zeug nun mal:

Zitat:
When an application receives the messages described above, the message
will include struct WBArg *am_ArgList containing the names (wa_Name) and
directory locks (wa_Lock) of all selected icons that were passed as
arguments by the user. This am_ArgList has the same format as the
sm_ArgList of a WBStartup message.

Was in etwa genau das ist was thomas geantwortet hat, oder nicht?

[ - Antworten - Zitieren - Direktlink - ]

08.08.2009, 19:26 Uhr

AGSzabo
Posts: 1663
Nutzer
@ZeroG:

ist ja schon gut. ich geb ruh und freue mich über jede unterstützung.
--
Sam os4.1, e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110

[ - Antworten - Zitieren - Direktlink - ]

08.08.2009, 21:37 Uhr

Bizcocho
Posts: 15
Nutzer
Hi alle zusammen.
Ich gucke mir das auch schon eine Weile hier mit an und muß jetzt auch
mal was loswerden.
Ich finde es gut das AGSzabo eine Idee im Kopf hat und etwas programmieren will - sieht auch schon gut aus. Aber mir scheint das er vor einem Berg mit unentlichen Problemen steht. Jeden Tag fragt er neue Sachen - nun gut - ist auch richtig so.
AGSzabo - nichts persönlich nehmen - was ist los? Hast du dir schon mal angeguckt wer dir mit Rat und Tat zu Seite steht? Wieviele Amiganer haben eine Antwort auf deine Probleme? Ich glaub Thomas ist weit vorne oder? Wenn er dir schon soviele Tips gibt, dann sei nicht so undankbar mit deinen Antworten. Wenn die Quelle versiegt, dann ist Ebbe. :nuke:
Guck mal ein bisschen im Aminet. Es gibt da viele Beispiele in Assembler - auch für dein letztes Problem. Warum guckst du dir nicht dein Programm im Debugger an? Ich benutze z.B. den MaxonASM, toll in Echtzeit, dann kannst du sehen was alles so schönes passiert.
Sprich mit Sicherheit findest du auch den Fehler warum dein Programm abstürzt. Versuch doch mal folgendes: Bastel dir ein Intuifenster in der WB - ohne spielerein - , richte dir dein AppFenster ein, frag es ab, ziehe ein Icon rüber und kehre normal zur WB zurück - bei richtiger Port Abfrage.
Und das ganze bitte im Debugger - Schritt für Schritt - , damit du siehst was d0 und Konsorten machen. Wenn du damit Erfolg hast fügst du das Programm in dein bestehendes ein.
Vielleicht so:

movem.l d0-a6,-(a7)
jsr App_Fenster
movem.l (a7)+,d0-a6
....
....
bra Ende

App_Fenster:
.....
....
.....
rts

Aber das weißt du ja sicherlich schon

So, und jetzt alle auf mich!!!



:D

[ - Antworten - Zitieren - Direktlink - ]

08.08.2009, 22:04 Uhr

AGSzabo
Posts: 1663
Nutzer
@Bizcocho:

vorweg: das appwindow funktioniert jetzt. :-)

also: erstmal, es tut mir leid! ich kann nicht gut mit menschen ungehen.

und dann: ich finde nicht dass meine antworten undankbar sind. im gegenteil, ich schreibe immer wieder "danke" mit dazu und wer will wird ja in meinem readme genannt.

thomas macht wirklich toll. seine HP ist gut. blos dauernd dieses "lies nach" von anderen ist so zu verstehen dass ich durch meine vielen fragen ärger erwecke? das möchte ich natürlich nicht und wenns trotzdsem so ist, schreibt man das eben direkt hin oder schreibt garnix. das wäre toll.

danke,
Andreas

ps: schön dass dir xui gefällt... :-)

pps: ich kann nur immer wieder betonen wie gut es ist dass hier so eine populäre amigainsel herrscht. es ist schön zu sehen dass es gleichgesinnte gibt die auch was drauf haben!

--
Sam os4.1, e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110

[ Dieser Beitrag wurde von AGSzabo am 08.08.2009 um 22:10 Uhr geändert. ]

[ Dieser Beitrag wurde von AGSzabo am 08.08.2009 um 22:12 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > AppWindow / AppMessage [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.