HomeNewsForumECO-BuchLinksImpressum

Login-Bereich

Benutzer Anmeldung

Sind Sie in diesem Portal bereits registriert? Dann können Sie sich hier anmelden:

Benutzername:

Passwort:

Passwort vergessen?

 

Registrierung

 

Fragen zum Forum?

Schicken Sie ein Mail an den Moderator.

ECO-Forum
Alle Kategorien > Online-ECO-Buch > Beispielanwendungen > PMapper für Aufzählungstypen
Anzahl Nachrichten: 4 - Seiten (1): [1]
Autor: Efim
Erstellt: 23. Apr. 2007 - 08:56
Betreff: PMapper für Aufzählungstypen
Hallo Alois,

ich habe gerade das Beispiel PM1 aus Kapitel 2.2.6 angeschaut: alles funktioniert perfekt.
Sobald ich aber versucht habe, die Werte für Aufzählungstypen in einem TextBox zu bearbeiten anstatt von Gridspalten, wurden plötzlich keine Eingaben akzeptiert. Hast Du Ahnung woaran das liegen kann?

Es gibt auch Verweis auf Kapitel 5.3.2 im Buch (ganz am Ende des §2.2.6), wo ich gehofft habe zu finden wie man die Aufzählungswerte in einem ComboBox ausgibt. Ich war leider nicht fündig. Ist das überhaupt möglich?

Grüsse
Efim
Autor: AS
Erstellt: 24. Apr. 2007 - 10:33
Betreff: re: PMapper für Aufzählungstypen
Hi Efim,

zum Punkt Textboxeingaben werden in diesem Bsp. im Gegensatz zu Eingaben im Grid nicht akzeptiert:

- Kann ich nachvollziehen, Lösung/Ursache weiss ich (noch) nicht


zum Punkt Enums in Comboboxen/Listboxen:

- Eine mögliche Lösung bezogen auf das Buchbeispiel. ist z.B. folgende:
* Ein weiteres ExpressionHandle (E2) mit der EXP=ADT_CompanyType.AllInstances erstellen
* Diesem Exp.handle zwei columns zuordnen: Name=Key,EXP=self und Name=Value,EXP=self.asString
* Listbox/Combobox: Datesource=E2, Valuemember=Key, SelectedValue=eCompanyType der aktuell ausgewählten CL_Job Instanz (z.B. ExpressionHandle1.eCompanyType)

- Die Idee zu dieser Lösung stammt aus folg. Thread in der ECO-NG http://groups.google.com/group/borland.public.delphi.modeldrivenarchitecture.eco/browse_thread/thread/f82c8e0fbda58199/c31a40de0d1b940b?lnk=gst&q=enum&rnum=10#c31a40de0d1b940b

??? Sehen wir dich am Samstag bei den Delphi-Tagen 2007 ???

Viele Grüße
Alois
Autor: Efim
Erstellt: 24. Apr. 2007 - 03:20
Betreff: re: PMapper für Aufzählungstypen
Hallo nochmals,

> - Kann ich nachvollziehen, Lösung/Ursache weiss ich (noch) nicht

ich glaube das liegt daran dass TextBox.Text vom Typ string ist und kann deshalb nicht über Databinding von einem nicht-strng Typ gesteuert werden.

Ich habe das auf folgende Weise zu Laufe gebracht:

JobTiypeAsString: column von CurrencyManagerHandle1 mit Expression = 'self.AsString'

Self.TextBox1.DataBindings.Add(System.Windows.Forms.Binding.Create('Tag', Self.CurrencyManagerHandle1,
'eJobType'));
Self.TextBox1.DataBindings.Add(System.Windows.Forms.Binding.Create('Text',
Self.CurrencyManagerHandle1, 'JobTiypeAsString'));

procedure TWinForm.TextBox1_Validating(sender: System.Object; e: System.ComponentModel.CancelEventArgs);
var currText: string;
newTagValue: ADT_JobType;
begin
currText := (sender as TextBox).Text;
newTagValue := Enum.Parse(typeOf (ADT_JobType), currText) as ADT_JobType;
(sender as TextBox).Tag := newTagValue;
end;

Keine schöne Lösung, aber das hat bewiesen dass über eine object-Eigenschaft (Tag) klappt.

> zum Punkt Enums in Comboboxen/Listboxen
Danke für die Lösung: funktioniert einwandfrei! Ich wusste nicht dass so etwas wie <CustomEnumTyp>.allInstances in OCL geht. Weißt Du zufällig wie wird das über PMapper dem OCLService bekanntgemacht?

??? Sehen wir dich am Samstag bei den Delphi-Tagen 2007 ???

Das Wetter ist zu schön :-) Im Ernst: was kann dort Interessantes von ECO sein?

Grüsse
Efim
Autor: AS
Erstellt: 24. Apr. 2007 - 04:38
Betreff: re: re: PMapper für Aufzählungstypen
Hallo Efim,

".... was kann dort Interessantes von ECO sein?"

Was für eine Frage !?!?!

Es gibt dort tatsächlich eine ECO-Session (ganze 30 min!!!) die Holger und ich präsentieren.
Und das wird sicher keine Einsteiger-Session!
Näheres dazu findest du unter http://www.delphi-tage.de/veranstaltung/agenda.html

Die Delphi-Tage sind außerdem eine gute Gelegenheit für interessante Gespräche.

Gruß
Alois
Anzahl Nachrichten: 4 - Seiten (1): [1]
Sie müssen sich anmelden, um in dieser Konferenz eine Nachricht zu schreiben.