Hallo Profis,
ich versuche derzeit eine art "Bearbeiten-Rückgängig"-Funktion zu
implementieren. Jeder Benutzer-Vorgang (z.B. Setzen eines Propertys)
soll per Klick wieder Rückgängig gemacht werden können)
Das eigentliche Problem bei der Sache ist nun, dass ich keine simple
Möglichkeit finde, aus einer Property-SetMethode, dieses besagte
Property "an sich" in einen Paremeter einer anderen Methode zu
übergeben. In einem kleinen Test habe ich das dann mit "ByRef" versucht,
was auch funktioniert, jedoch nicht aus einem Property-Setter herraus.
Zum Screenshoot: Was ich vor habe, ist es, z.B. das 'Name'-Property aus
dem oberen PropertyGrid (der UserClass) in eine Property-Value von
EventLogEntry (dem unteren PropertyGrid) zu bekommen.
Abschnitt:
1
Private _Name As String = "UserClass"
2
Public Property Name As String
3
Get [...] End Get
4
Set(ByVal value As String)
5
[...]
6
Dim Entry As EventLogEntrys = New EventLogEntry(Me, Name, [...])
7
_Name = value
8
End Set
9
End Property
1
Warnung 1 Der Ausdruck ruft rekursiv die enthaltende Name-Eigenschaft auf.
Ich hoffe das Bild ist selbsterklärend, und ihr wisst was gemeint ist.
Meine erste Idee ist, das mit 'PropertyInfos' zu lösen, oder mit dem
'Type', aber muss man das? - macht man das so? - oder geht das irgendwie
besser und eleganter?
Liebe Grüße, und danke schon mal im voraus.
TS
edit: Ich glaube die Überschrift des Threads trifft das Thema nicht so
ganz. Wie nennt man das eigentlich?
Hans schrieb:> Schau dir mal das Memento Pattern an.
Memento- Das trifft´s! Ein Kompletter Klon macht natürlich Sinn. Ich
wollte zuerst eigentlich nur den betroffenen geänderten Zustand eines
Objektes zwischenspeichern, und nicht das ganze Objekt.
Timmey S. schrieb:> Meine erste Idee ist, das mit 'PropertyInfos' zu lösen,
Es läuft jetzt mittlerweile auch mit 'Type' und 'PropertyInfo', aber
einen direkten Klon werde ich auch mal versuchen.
Dankeschön
Gruß, TS
Programmierer schrieb:> VB.NET benutzt man heutzutage nicht mehr. Such dir eine richtige> Programmiersprache (also ohne .NET).
Ist da jemand, der .Net nicht mag?
Weil die Ausage Blödsinn ist ( Entschuldigung, aber ist so ), es gibt
sogar Behörden und / oder Einrichtungen, die VS als Standard deklariert
haben.
Hans S. schrieb:> Weil die Ausage Blödsinn ist
Na wenn du das sagst...
Hans S. schrieb:> es gibt> sogar Behörden und / oder Einrichtungen, die VS als Standard deklariert> haben.
Es gibt sogar Behörden und Einrichtungen die noch WinXP oder älteres
benutzen. Die benutzen fast nur veraltete Sachen.
msgbox schrieb:> MsgBox(System.Reflection.MethodBase.GetCurrentMethod.Name())
Danke, genau das habe ich gesucht! Damit lässt sich
"Bearbeiten-Rückgängig" ganz gut implementieren ("Vorher und Nachher"
eines Propertys abspeichern), ohne das ganze Objekt sichern zu müssen...
Hans schrieb:> Memento Pattern
Durch Memento Pattern wurde der Speicher sehr schnell voll [max ca. 50x
UnDo´s], oder ich habe wohl irgend einen Fehler dabei gemacht.
Jedenfalls Danke nochmal für die Tipps, vorallem für GetCurrentMethod.
_____Programmierer schrieb:> VB.NET benutzt man heutzutage nicht mehr.
@Programmierer:
Achso, ja ne, is klar - heutzutage...
Heutzutage "hängen" einem die Provider jedes Jahr ein neues Smartphone
(oder ISP-Router) an die Backe. Heutzutage kommen viel zu viele Sachen
gleichzeitig auf den Markt. Heutzutage kocht jeder sein eigenes
Süppchen, und das Schaffen von gemeinsamen "Standards" wird fast
vergessen. Heutzutage schaut erstmal jeder auf sich selbst. Heutzutage
wird Korruption nicht mehr wirklich ernst genommen. Heutzutage kann man
auch nichts mehr dagegen machen.
Programmierer schrieb:> Such dir eine richtige Programmiersprache
Heutzutage ist Qualität nur noch eine Frage (-und keine Antwort mehr!).
Denn als 'richtig' bezeichnet man heutzutage übrigens auch, lieber
Analog-Käse oder Instant-Fleisch zu essen. Heutzutage halten die meisten
Pop-Stars unserer Zeit nur noch ein Jahr lang. Heutzutage redet man
Entwicklern beständige und bewährte Sachen aus - ganz egal ob diese nun
super funktionieren, ihren Zweck erfüllen, oder (eventuell durch ihr
Alter) extrem günstig zu beschaffen sind...
Programmierer schrieb:> Es gibt sogar Behörden und Einrichtungen die noch WinXP oder älteres> benutzen. Die benutzen fast nur veraltete Sachen.
...denn man soll heutzutage ja lieber was anderes / neues versuchen:
z.B. die heutige Wegwerf-Gesellschaft unterstützen, sich immer wieder
auf neue, und noch kürzere /sinn freie Beschäftigungen und
Produkt-Lifetime´s einlassen, und schlicht das tun was andere sagen
(oder meinen, oder glauben, oder... ): Aber darin wollte ich eigentlich
keine Erfahrung sammeln!! (Wozu auch?) - Dann doch lieber VB. Und von
mir aus auch das von MS/VS, weil es Spaß macht. Wenn es einen Couter
geben würde, für Aussagen wie deine oben: "richtige Programmiersprache"
- wie viele uInt64 hätten wir auf "modernen Systemen heutzutage" schon
zum überlaufen gebracht??? Hängt das eigentlich irgendwie zusammen? Hat
das eigentlich irgendwas mit dem Thread zu tun? Wer weiß denn schon, wie
lange sich das noch verbreitet; - unterstützt, geupdated oder supported
wird - heutzutage - oder erst in 3 Jahren?? WTF:
Deshalb bin ich ja (wieder) bei VB.NET gelandet... Ist das irgendwie
Widersprüchlich? Interessiert dich das überhaupt?
Worauf ich hinaus wollte: Was denn für eine super-duper neue gute, und
kostenlose, professionell supportende und ständig weiterentwickelte, -
genau so komfortable, einfache und von einem breiten Spektrum an
Personen gewollte, (mehr oder
weniger)-Crossplattform-fähige-nicht-.Net-Alternative, die heutzutage
als "richtig" anzusehen ist, meinst du denn genau???
QT oder was? Du hast es ja noch nicht mal erwähnt!!!?? Aber interessiert
mich das??? NEIN!
Was ist eigentlich so schwer daran zu begreifen, dass jeder seine
eigenen Vorlieben hat, und diese irgendwann beherrscht? (Vielleicht auch
du?) Klar würde ich auch gerne in einer Welt leben, in der wir uns auf
ein paar Systeme und Sprachen einigen können oder gar darauf
beschränken. (Allein schon der Umwelt zuliebe) ASM, ActionScript und C++
vielleicht? Im JSON + ECMA-Style (?) zu Coden und zu Schreiben macht auf
jeden Fall Sinn... Das - und eben Basic, um ab und zu die Hände und
Finger vor den ständigen Sonderzeichen-'{.[]/}'-Verkrampfungen (trotz
ergonomischen Arbeitsplatz) zu schonen...
Es gibt sogar Behörden und / oder Einrichtungen, die ...
... (staatlich geförderte!!) Schulungen (z.B. für C#.Net) für
Wider-Einsteiger in die Materie(!), und zur "Erfrischung" der
geforderten Kenntnisse (ja, heutzutage!) anbieten...
Und jetzt? Bloß nicht den Spaß daran verlieren - egal zu welcher Zeit.
Ob das nun auf einem Single-Core X86 Win98Se Rechner passiert, kann dir
doch auch egal sein. Abwrack-Prämie für PC-Hardware gibts auch noch
nicht, deshalb fahren bestimmt noch einige ihren X86 samt alter
Software.
JAAA NAA UND: malloc(XD+LOL^256/ROFL);
IMMER DAS GLEICHE!
tsx
<Edit wegen Schnellschreib-Exception>
Eine eigene Frage?
Dieser Thread ist über 13 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.