ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > Variablenprüfung in Methodenaufruf | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
01.11.2005, 10:48 Uhr Reth Posts: 1858 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
01.11.2005, 11:31 Uhr thomas Posts: 7718 Nutzer |
@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/ [ - Antworten - Zitieren - Direktlink - ] |
01.11.2005, 12:22 Uhr Reth Posts: 1858 Nutzer |
@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)? [ - Antworten - Zitieren - Direktlink - ] |
02.11.2005, 20:03 Uhr Holger Posts: 8116 Nutzer |
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. ] [ - Antworten - Zitieren - Direktlink - ] |
02.11.2005, 21:23 Uhr Reth Posts: 1858 Nutzer |
@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? [ - Antworten - Zitieren - Direktlink - ] |
02.11.2005, 22:26 Uhr thomas Posts: 7718 Nutzer |
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/ [ - Antworten - Zitieren - Direktlink - ] |
03.11.2005, 08:01 Uhr Reth Posts: 1858 Nutzer |
@thomas: Danke! Hach bin ich ein Blindfisch! [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Variablenprüfung in Methodenaufruf | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |