eine globale klasse erstellen



  • hallo,

    vor einiger zeit habe ich angefangen mit borland, bin begeistert habe die 5 standard.

    jetzt hatte ich dazu natürlich schon gefragt, ob es einen leichteren weg gibt variablen als global zu kennzeichnen. darauf habe ich verschiedene antworten bekommen und auch gefunden, nur sind diese hilfestellungen irgendwie so beschrieben, dass ich es selbst nicht raffe.

    jetzt meine frage:

    derzeit verwende ich globale in einer mdiForm, auf die ich mit kindfenstern und anderen normalen formen zugreifen will.

    ich includiere den header jeder form, die auf die globalen zugreifen muss in der mdiForm. anschließend deklariere ich meine globalen in der mdiForm.h und greife von jeder anderen form (kind oder normal) alle globalen per extern auf.

    das ist sehr umständlich.

    1. frage diesbezüglich ist:
    wie und wo hin kann ich in der mdiForm eine klasse erstellen, welche meine globalen variablen kapselt und auf diese klasse zugreifen, wenn sie global ist mit extern, dann müsste ich doch eigentlich code sparen.
    2. wie greift man eigentlich von einem kindfenster auf das elternfenster und seine elemente zu?

    auf kindfenster zugreifen aus der mdiForm heraus ist ja kein prob, allerdings andersherum. wie kann ich zum beispiel von einem kindfenster eine onClick event in der mdiForm auslösen?

    wäre super nett , wenn jemand helfen könnte!

    gruß gerd



  • hallo,

    also das mit der klass für globale variablen vergesse lieber mal wieder, sowas hab ich noch nirgends gesehen, und eine klasse sollte ja eigentlich möglichst ein object zusammenfassen, oder zumindest eine gleichgerichtete funktionalität kapseln, diesen fall sehe ich bei deinen globalen variablen aber nicht. leg dir da lieber eine unit an, die alle öffentlich gemeinsam genutzen variablen und funktionen enthält, diese kannst du dann problemlos überall einbinden wo du sie brauchst...

    du kannst auf die mainform genauso zugreifen wie auf die childforms, du bindest die mainform in die childform ein und gehst dann über die öffentliche variable vom typ tform, also z. b. MainForm->RoutineXYClick(this); wo ist das problem????

    mfg
    murphy



  • Also die variablen, welche ich zusammenfassend in einer klasse definieren möchte sind auch thematisch, allerdings habe ich noch ein problem:

    wenn ich jetzt zum beispiel in dem mdichild irgendwelche werte einer var benötige, welche auch über ein options-dialog geändert werden sollen, wie stelle ich es nun an, das die variablen von dem child zu den optionen und umgekehrt gelangen?

    es ist mir irgendwie nicht ganz klar, wie es gehen soll.

    ich benötige zum beispiel auch eine variable, welche mir auskunft über die anzuzeigende sprache gibt. diese müsste im MDIFORM angelegt sein als absolut global für jedes neue dokument, wie kann ich diese dann in allen weiteren dokumenten erfragen bzw. über den Optionsdialog auch ändern?

    vielleicht ist meine frage jetzt etwas detailierter?

    gruß gerd



  • achja, und geänderte variablen im optionsdialog für das mdichild sollen sich auch auf weitere children auswirken.

    also denke ich es wäre sinnvoll diese einmal in der MDIFORM anzulegen als klasse!

    richtig? oder irre ich total?

    gruß Gerd



  • hi,

    wenn du inhalte von variablen zwischen klassen hin und herschieben willst, definiere doch einfach die variable im public abschnitt des header files. überall, wo dieser header jetzt eingebunden wird, kannst du über KLASSENNAME->VARIABLE auf den inhalt zugreifen

    so long



  • werde ich mal versuchen!


Log in to reply