![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > Variablenprüfung in Methodenaufruf | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2005-11-01, 10:48 h Reth Posts: 1860 User |
Hallo allerseits, frage mich, ob so was wie ichs hier versuche auch möglich ist (C++): ((screen != NULL) WA_PubScreen, screen.getScreen(),) und das Ganze innerhalb einer OpenWindowTags-Anweisung, die dann ungefähr so aussieht: OpenWindowTags(NULL, WALEFT,... ... ((screen != NULL) WA_PubScreen, screen.getScreen(),) ... ); D.h. die WAPubScreen Zeile soll nur aufgenommen werden, wenn die Variable screen nicht NULL ist. Will nicht den ganzen Funktionsaufruf 2 Mal schreiben, einmal mit und einmal ohne Screen. Oder kann man OpenWindowTags auch das erste Element eines TagItemArrarys übergeben? Danke schon mal Ciao [ - Answer - Quote - Direct link - ] |
2005-11-01, 11:31 h thomas Posts: 7721 User |
@Reth: Nimm doch struct Screen *scr = (screen != NULL ? screen.getScreen() : NULL); ... (scr != NULL ? WA_PubScreen : TAG_IGNORE), scr ... Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2005-11-01, 12:22 h Reth Posts: 1860 User |
@thomas: Gute Idee (das hätte mir selbst einfallen müssen)! Danke. Kenn die API gerad nicht auswendig, aber einen Zeiger auf das erste Tag einer Liste müsste doch auch gehen, oder (mit OpenWindowTagList oder so)? [ - Answer - Quote - Direct link - ] |
2005-11-02, 20:03 h Holger Posts: 8116 User |
Zitat:Das ist richtig, aber die TagList muß Du doch trotzdem haben. Und wenn Du keine Struktur fester Größe auf dem Stack aufbauen willst, mußt Du dynamisch Speicher reservieren, was die Sache unnötig verkompliziert. Die effizienteste Variante sieht so aus, daß Du Dich bei OpenWindowsTags auf die dynamischen Werte beschränkst. In etwa so: struct TagItem staticWindowAttr[]={ WA_Title, (ULONG)"tolles Fenster", WA_CloseGadget, TRUE, WA_IDCMP, IDCMP_CLOSEWINDOW, TAG_DONE, 0 }; ... win=OpenWindowTags(NULL, myScreen? WA_WA_PubScreen : TAG_IGNORE, (ULONG)myScreen, TAG_MORE, (ULONG)staticWindowAttr); mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ Dieser Beitrag wurde von Holger am 02.11.2005 um 20:07 Uhr editiert. ] [ - Answer - Quote - Direct link - ] |
2005-11-02, 21:23 h Reth Posts: 1860 User |
@Holger: Danke für den Tip. Das mit der dynamischen Speicherbelegung hab ich schon im Visier. Allerdings sagt mir der GCC in folgender Zeile: ((screen != NULL) WA_PubScreen : TAG_IGNORE), screen, '(screen != 0)' cannot be used as a function screen ist vom Typ struct Screen * Wieso das denn? [ - Answer - Quote - Direct link - ] |
2005-11-02, 22:26 h thomas Posts: 7721 User |
Weil du das Fragezeichen vergessen hast. Hast du in deinem ersten Beitrag auch schon. Die Syntax für einen konditionellen Ausdruck ist bedingung ? positiv : negativ Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2005-11-03, 08:01 h Reth Posts: 1860 User |
@thomas: Danke! Hach bin ich ein Blindfisch! [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > Variablenprüfung in Methodenaufruf | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |