Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX
  UG/Open Menuestart über callback

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
  
NX Blech (Sheet Metal)
Autor Thema:  UG/Open Menuestart über callback (677 mal gelesen)
Kendoo
Mitglied
wissenschaftlicher Mitarbeiter


Sehen Sie sich das Profil von Kendoo an!   Senden Sie eine Private Message an Kendoo  Schreiben Sie einen Gästebucheintrag für Kendoo

Beiträge: 22
Registriert: 12.05.2002

erstellt am: 12. Mai. 2002 21:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi, ich arbeite gerade an einer Studienarbeit und hätte eine Frage zu Callbacks... (UG V17)

Habe zwei Menues über den UIStyler erstellt und möchte diese in einer internen Application verwenden. Dat eine geht auch verhältnismäßig einfach über einen User Exit anzuschmeissen. Nur das zweite bekomm ich nicht auf die Oberfläche, dieses soll quasi vom ersten Menue aus aufgerufen werden. Dazu benötige ich wohl diese Callback Geschichte. Habe mir auch unzählige Male die .h und template.c files durchgelesen die der UIStyler ja automatisch erstellt - trotzdem, wenn es denn mal funktionierte dann nur mit diversen WARNINGs beim Compilieren...

Wäre weltklasse wenn jemand ein kleines C-Demofile ala "Callback ruft Menue auf" hätte...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

waldi
Mitglied
 Softwerker


Sehen Sie sich das Profil von waldi an!   Senden Sie eine Private Message an waldi  Schreiben Sie einen Gästebucheintrag für waldi

Beiträge: 272
Registriert: 07.08.2001

erstellt am: 13. Mai. 2002 08:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kendoo 10 Unities + Antwort hilfreich

Hi,

eine Demofile hab ich gerade nicht, aber eigentlich sollte das über die Funktion UF_STYLER_create_dialog gehen. Am besten wertest du mal den Rückgabewert des Aufrufes aus und lässt dir mit UF_get_fail_message die Fehlermeldung ausgeben. Wichtig ist halt, dass deine *.dlg Datei, die du aufrufen willst gefunden wird. Also bei UF_STYLER_create_dialog entweder den kompletten Pfad angeben, oder Umgebungsvariablen setzen (UFII_VENDOR_DIR)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Kendoo
Mitglied
wissenschaftlicher Mitarbeiter


Sehen Sie sich das Profil von Kendoo an!   Senden Sie eine Private Message an Kendoo  Schreiben Sie einen Gästebucheintrag für Kendoo

Beiträge: 22
Registriert: 12.05.2002

erstellt am: 13. Mai. 2002 19:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi waldi, thanxx für die schnelle Antwort, habs mittlerweile so HALB hinbekommen. Wenn ich keinen Prototyp der Funktion deklariere dann gehts, deklariere ich allerdings einen (wies sich ja eigentlich gehört) dann motzt der Kompiler:

error C2198: 'startoptmen' : Nicht genuegend Parameter uebergeben


Die Funktion zum starten des Menues lautet:


extern int startoptmen ( int *response )
{
    int  error_code = 0;

    if ( ( error_code = UF_initialize() ) != 0 )
          return (0) ;

    if ( ( error_code = UF_STYLER_create_dialog ( "optionmenue.dlg",
          OPTIO_cbs,      /* Callbacks from dialog */
          OPTIO_CB_COUNT, /* number of callbacks*/
          NULL,        /* This is your client data */
          response ) ) != 0 )
    {
          char fail_message[133];

          /* Get the user function fail message based on the fail code.*/
          UF_get_fail_message(error_code, fail_message);
          UF_UI_set_status (fail_message);
          printf ( "%s\n", fail_message );
    }


    UF_terminate();                           
    return (error_code);
}


Die Callbackfunktion in der ich die obige aufrufen möchte:


int CHANGE_act_open_menu2 ( int dialog_id,
            void * client_data,
            UF_STYLER_item_value_type_p_t callback_data)
{
    /* Make sure User Function is available. */ 
    if ( UF_initialize() != 0)
          return ( UF_UI_CB_CONTINUE_DIALOG );

    /* ---- Enter your callback code here ----- */


startoptmen ();

    UF_terminate ();

    /* Callback acknowledged, do not terminate dialog */
    return (UF_UI_CB_CONTINUE_DIALOG);
   
    /* or Callback acknowledged, terminate dialog.    */
    /* return ( UF_UI_CB_EXIT_DIALOG );              */

}

Verwende ich da die Funktion falsch? Meine C Kentnisse sind leider erst am wachsen  ). Sollte man eigentlich eher C nehemen oder lieber gleich C++?

Schönen Dank schonmal im vorraus Gruß Kendoo...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

waldi
Mitglied
 Softwerker


Sehen Sie sich das Profil von waldi an!   Senden Sie eine Private Message an waldi  Schreiben Sie einen Gästebucheintrag für waldi

Beiträge: 272
Registriert: 07.08.2001

erstellt am: 13. Mai. 2002 20:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kendoo 10 Unities + Antwort hilfreich

Hi,

ruf die Funktion mal so auf, dann klappts:

int ret=0;
startoptmen(&ret);

Du hast die funktion ja mit einem Parameter deklariert, also musst du auch einen übergeben.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Kendoo
Mitglied
wissenschaftlicher Mitarbeiter


Sehen Sie sich das Profil von Kendoo an!   Senden Sie eine Private Message an Kendoo  Schreiben Sie einen Gästebucheintrag für Kendoo

Beiträge: 22
Registriert: 12.05.2002

erstellt am: 14. Mai. 2002 18:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

waldi isch dank Dir!!! Läuft - und ich kann weiterhühnern...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz