Controll-feld, Index auslesen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Controll-feld, Index auslesen

Re: Controll-feld, Index auslesen

von keksi1970 » Mo, 03.03.2008 21:43

argh, ich hasse es, etwas zu tun, ohne zu wissen, was passieren kann, wenn ich es nicht tue ;)

das Thema Öffnen von Dateien und Zugreifen auf ein geöffnetes Dokument zwecks Hyperlinksetzung besprechen wir in einem neuen Thread, da ich es erst versuche, selbst zu lösen. Nur wenn ich nicht weiss, was ich da tue, oder nicht mehr weiter weiss, werde ich anfragen.

Gruß

Andreas

Re: Controll-feld, Index auslesen

von komma4 » Mo, 03.03.2008 11:24

keksi1970 hat geschrieben:aber warum genau muss ich diesen wieder entfernen und reicht es, in der Schaltfläche Beenden zuzuordnen oder auch beim Abbrechen
allgemeiner Tenor in den postings zum Thema: Listener entfernen, sonst gibt's Probleme.
Also: nach der Anzeige des Dialogs immer entfernen, egal, welche Schaltfläche gedrückt wurde....


Deine weiteren "2 Dinge": besprechen wir in einem neuen thread?!

Re: Controll-feld, Index auslesen

von keksi1970 » Mo, 03.03.2008 10:24

es hilft, funktioniert einwandfrei, nur mit dem aufheben der Zuordnung hab ich ein winziges Problem.

den "Lauschangriff" starte ich VOR dem Start meines Dialoges, aber warum genau muss ich diesen wieder entfernen und reicht es, in der Schaltfläche Beenden zuzuordnen oder auch beim Abbrechen ?

So, nun fehlen nur noch 2 Dinge, Das Öffnen und somit Weiterbearbeiten einer Datei und die Sache mit dem Hyperlink

Gruß Andreas

Re: Controll-feld, Index auslesen

von komma4 » Mo, 03.03.2008 09:06

Ich denke, dass es reicht die Übernahme der im Dialog vorhandenen Daten in ein Tabellenblatt dann vorzunehmen, wenn der Dialog geschlossen wird...
aber das ist Dein Bier.

(in einer zentralen Routine würdest Du ja wieder unterschiedlich reagieren: wenn "Markt1" dann, sonst - wenn "Markt2" dann, sonst - wenn "Markt3".... )


Inzwischen habe ich das Beispiel fertig gemacht und gepostet Dialog Event Listener Beispiel - vielleicht hilft es Dir weiter.

Re: Controll-feld, Index auslesen

von keksi1970 » Mo, 03.03.2008 08:32

guten morgen

ich habe mir halt vorgestellt, dass wenn ich alle Felder auf eine einzige Routine zugreifen lasse, das ganze Makro nicht so aufgebläht wird.
Davon abgesehen, dass meine Neugier, wie so etwas funktioniert, befriedigt wird, ist es anschliessend auch einfacher, die Felder meines Dialoges zu ändern, welche hinzuzufügen oder zu löschen, ohne dass direkt eine gravierende Änderung geschehen muss.

Zu der direkten Übernahme, die brauche ich erst beim verlassen des Feldes, bzw bei einer Eingabe in ein neues Feld (ich würde gerne in der Tabelle sehen, was ich im Dialog eingebe :) )

Gruß Andreas

Re: Controll-feld, Index auslesen

von komma4 » So, 02.03.2008 21:08

Ich bin mit nach dem nochmaligen Durchlesen der Anfrage nicht mehr sicher was Dir passt.

Du möchtest einen Wert aus den Eingabefeldern eines Dialogs übernehmen, warum muss dass mit einer zentralen Routine geschehen?

Warum geht nicht so etwas:

Code: Alles auswählen

Sub getMarkt1()
 call bearbeiteMarkt(1)
End Sub
Sub getMarkt2()
 call bearbeiteMarkt(2)
End Sub

Sub bearbeiteMarkt( Nr as Integer )
 print oDialog.getControl( "Markt" & Nr ).getText()
End Sub 

Und: Du brauchst keine Listener (augenblickliche Übernahme der Werte), wenn Du nach dem Drücken einer Schaltfläche oder beim Schliessen des Dialogs die Werte ausliest und bearbeitest.

Nochmal die Frage: warum muss direkt bei Änderung etwas ausgelöst werden?


Zu Ereignissen:
man kann hier einen FocusListener einsetzen, der beim Verlassen des EIngabefeldes ausgelöst wird. Beispiel folgt.

Re: Controll-feld, Index auslesen

von keksi1970 » So, 02.03.2008 19:01

hihi Jürgen,

ich will ja den namen weiterverarbeiten, und wenn ich ihn kenne, brauch ich ihn nicht auslesen ;).

also nochmal :

ich habe 8 *8 Felder bunt gemischt, Textfelder und numeric-fields

und diese sollen alle mit derselben sub-routine funktionieren, nämlich

Code: Alles auswählen

Ctrl_Name = MyCtrl.model.Name
msgbox Ctrl_Name
und zwar in Abhängigkeit davon, welches Objekt nun diese Routine ausgelöst hat, soll mir der Name des Objektes angezeigt werden

Gruß Andreas

Gibts nicht sowas wie getcontrol(ACTIVE_FIELD) oder so ?

Re: Controll-feld, Index auslesen

von turtle47 » So, 02.03.2008 18:53

Hallo Andreas,

Du musst dem Makro auch mitteilen wo sich das Objekt befindet:

Code: Alles auswählen

sub test
Dim Ctrl_Name as String
MyCtrl= Uescheindlg.getControl("Markt1")'Das fehlt bei Deinem Code
Ctrl_Name = MyCtrl.model.Name
msgbox Ctrl_Name
end sub
Hilft das weiter?

Jürgen

Re: Controll-feld, Index auslesen

von keksi1970 » So, 02.03.2008 18:42

also irgendwie funktioniert etwas nicht.

Code: Alles auswählen

sub test
Dim Ctrl_Name as String
Ctrl_Name = MyCtrl.model.Name
msgbox ctrl_name
end sub
das versuche ich durch die änderung eines textfeldes innerhalb meines dialoges aufzurufen

bekomme aber nur die fehlermeldung, objektvariable nicht belegt

gruß andreas

Re: Controll-feld, Index auslesen

von turtle47 » So, 02.03.2008 18:33

Code: Alles auswählen

Dim Ctrl_Name as String

Re: Controll-feld, Index auslesen

von keksi1970 » So, 02.03.2008 18:23

hi

stellt sich die Frage, wie belege ich die nicht belegte Objektvariable ?


Gruß Andreas

Re: Controll-feld, Index auslesen

von turtle47 » So, 02.03.2008 17:05

Hallo Andreas,

dann lies doch den Namen des Kontrollfeldes vorher aus:

Code: Alles auswählen

Ctrl_Name = MyCtrl.model.Name
und dann

Code: Alles auswählen

MyCtrl= Uescheindlg.getControl(Ctrl_Name)

Re: Controll-feld, Index auslesen

von keksi1970 » So, 02.03.2008 16:42

hi Jürgen,

ich suche eher so etwas

Code: Alles auswählen

MyCtrl= Uescheindlg.getControl(KONTROLLFELD,welches dieses SUB ausgelöst hat)
MyText = MyCtrl.Model.Text
case select mytext

case markt
Spalte = 12
case stellplatz
Spalte = 14

usw
Gruß Andreas

Re: Controll-feld, Index auslesen

von turtle47 » So, 02.03.2008 13:15

Hi Andreas,

suchst Du sowas:

Code: Alles auswählen

Dim Ctrl_Index as integer

Code: Alles auswählen

MyCtrl= Uescheindlg.getControl("NumericField" & Marktcount)
Ctrl_Index = MyCtrl.model.TabIndex
msgbox Ctrl_Index
Jürgen

Re: Controll-feld, Index auslesen

von keksi1970 » So, 02.03.2008 12:36

so, habe mir jetzt Dutzende von Google Seiten angeguckt und weiss immer noch nix, ich glaube, ohne dein Beispiel bin ich völlig aufgeschmissen

Gruss

Andreas

Nach oben