Seite 2 von 4
Re: Formular global anlegen
Verfasst: Sa, 03.10.2009 19:39
von eBayer
Hallo anonym,
wer soll sich nun von Deinem letzten Beitrag angesprochen fühlen und was willst Du damit sagen?
Wird langsam nervig, wie Du hier die Mitglieder beschäftigst..................
- Erst eine Behauptung aufstellen
- Dann fragen ob die Behauptung stimmt
Irgendwie habe ich das Gefühl, Du versuchst nur Dampf in das Forum zu bringen.
Auf eine direkte und klar formulierte Frage antworte ich gerne..... aber für Besserwisserei ist hier nicht der richtige Platz.
eBayer
Re: Formular global anlegen
Verfasst: Sa, 03.10.2009 21:20
von komma4
Auch ich habe mich gefragt was Dein Posting soll. Du bringst nichts Neues und nach meiner Meinung trägst Du (wieder mal) nichts konkretes zum Thema bei.
Deine "konkrete Frage", warum eine Beschränkung der Anzahl von Links und wie Du das umgehen könntest, ist hier im Bereich falsch: ==> Unterforum "Site Feedback"
Versuche Dich bitte mal etwas erwachsener zu benehmen; Danke!
Re: Formular global anlegen
Verfasst: So, 04.10.2009 00:02
von Stephan
Hallo anonym,
ich ziehe jetzt hier die Grenze.
Was Du treibst nenne ich nunmehr Trollerei und sperre deshalb Deinen Account für zunächst 1 Woche.
Ich habe auch keine Lust hier noch ein weiteres Mal den Versuch zu unternehmen Dir zu erklären was Du hier falsch machst, wenn du es denn bis jetzt (trotz diverser - teil sachlicher, teils genervter - Erklärungen, von mir, in diversen Threads) nicht verstanden hast.
Ich schrieb in meinem Post um 12:33 nochmals ganz deutlich worum es geht, und selbst wenn (was ich aber inzwischen nicht mehr recht glaube) das alles die Situation mißdeutet, hätte jeder andere nach diesen deutlichen Worten, mich entweder konkret angesprochen (wenn er denn wirklich nicht verstünde worum es geht) oder hätte notfalls (weil er die Situation nicht versteht) zunächst etwas 'inne gehalten'.
Du jedoch setzt nahtlos den bisherigen Sil fort.
Du aber solltest vielleicht einen Eindruck davon gewinnen wie wenig leicht ich mir die Entscheidung mache, wenn ich Dir hier sage das Du der Allererste bist dessen Account ich hier sperre, solange ich hier Moderator bin (ausgenommen offensichtliche Spam-Accounts).
Im Übrigen bist Du mir (nach Ablauf der Sperre) ausdrücklich gerne wieder mit Beiträgen willkommen, sofern sich diese in einem vernünftigen Rahmen bewegen - momentan sehe ich aber keine Alternative mehr zu einer Account-Sperre.
Gruß
Stephan
Re: Formular global anlegen
Verfasst: So, 04.10.2009 12:39
von gigabert
Stephan hat geschrieben:Hallo anonym,
ich ziehe jetzt hier die Grenze.
Was Du treibst nenne ich nunmehr Trollerei und sperre deshalb Deinen Account für zunächst 1 Woche.
Hallo,
ich weiss jetzt ehrlich nicht, ob so eine Sperre nun gerechtfertigt ist. Ich - als häufiger Fragesteller - muss schon eingestehen, dass die Beiträge von
anonym nicht immer einfach zu verstehen oder inhaltlich richtig waren. Ich konnte mit vielen Antworten nicht unbedingt was anfangen. Aber ich denke, man sollte unterscheiden, ob jemand absichtlich oder böswillig das Forum mit wirklich unnötigen Beiträgen bedient, oder in der Absicht, anderen weiterzuhelfen. Man sollte auch bedenken, dass nicht alle die Fähigkeit besitzen, sich immer verständlich auszudrücken. Ich ärgere mich dann manchmal auch über falsche oder unverständliche Antworten und Beiträge, fände es aber richtig, damit einen anderen und besseren Umgang zu finden.
Na ja, nur eine Meinung eines Forumsbenutzers...
Bert
Re: Formular global anlegen
Verfasst: So, 04.10.2009 13:58
von gigabert
anonym hat geschrieben:Das sind zwei unterschiedliche Behälter.
datenbank.DatabaseDocument.FormDocuments()
Ist ein Behälter für die Formulare im Basebehälter.
(im Gegensatz zu Berichten, Abfragen und Tabellen)
Name des Formular-Dokumentes
datenbank.drawpage.forms.getByName("PersonenFormular")
Ist ein Behälter für die Formulare mit den Steuerelementen.
Name des Formular-Elementes
Hallo,
kann mir das jemand mal genauer erklären? Ich verstehe den Unterschied nicht so ganz. Wann und warum nehme ich die erste und wann die zweite Variante? Ich möchte ja ein globales Objekt des Formulars erstellen, welches ich dann in der weiteren Anwendung benutzen kann.
Wenn ich das mit
Code: Alles auswählen
formContainer = thisDatabaseDocument.FormDocuments
oFormularPerson = formContainer.loadComponentFromURL("Personen","_blank",0,aProp())
versuche, kann ich in den weiteren Modulen mit der globalen Variablen
oFormularPerson nicht die bisher entwickelten Prozeduren ausführen, weil die das Formular-Objekt bisher mit
Code: Alles auswählen
oFormularPerson = ThisComponent.drawpage.forms.getByName("PersonenFormular")
erstellt haben. Meine Verwirrung nimmt so langsam zu...
Gruss
Bert
Re: Formular global anlegen
Verfasst: So, 04.10.2009 14:17
von eBayer
Hallo Bert,
ich verstehe Deine Verwirrung nicht.....
Hast Du Dir denn noch nicht angeschaut, wie ich es in meiner Beispielanwendung mache?
Oder habe ich Deine Fragestellung so mißverstanden?
Gruß eBayer
Re: Formular global anlegen
Verfasst: So, 04.10.2009 14:25
von komma4
Variante 1 ist der Zugriff auf den Formular-Container - zum Umbenennen eines Formulars, bspw. (ThisDatabaseDocument)
Variante 2 ist der Zugriff auf das Formular selbst (bei geöffnetem Formular; ThisComponent)
Re: Formular global anlegen
Verfasst: So, 04.10.2009 15:14
von gigabert
Sorry, hab diesen Inhalt mal gelöscht. Wurde versehentlich unfertig abgeschickt. Kommt jetzt nochmal komplett...
Re: Formular global anlegen
Verfasst: So, 04.10.2009 15:22
von gigabert
eBayer hat geschrieben:Hallo Bert,
ich verstehe Deine Verwirrung nicht.....
Hast Du Dir denn noch nicht angeschaut, wie ich es in meiner Beispielanwendung mache?
Oder habe ich Deine Fragestellung so mißverstanden?
Gruß eBayer
Hallo eBayer,
ich glaube, ich hab meine Verwirrung nun in deinem Beispiel gefunden. Du weist der globalen Variable das Objekt des Formulars aus einer Prozedur (Main) heraus zu, die beim Öffnen des Formulars aufgerufen wird. Damit hast du natürlich mit
oForm = ThisComponent.DrawPage.Forms.getByName("Form_Adressen") und
setGlobalForm(oForm) die globale Variable für dieses Formular aus dem Formular selbst heraus gesetzt und damit auch weiteren Zugriff auf das Formular. Aber wie kann ich die globale Variable auf das Formular setzen, wenn ich das Formular selbst noch garnicht aufgerufen habe?
OK, ich muss gestehen, ich hab meine Anwendung mittlerweile soweit geändert, dass ich ein weiteres (leeres) Formular erstellt habe ("StartFormular"), welches beim Öffnen der odb-Anwendung erscheint. Mit diesem Formular wird auch eine Startprozedur in einem Modul gestartet, welche globale Variablen für die Anwendung setzen soll, unter anderem eben auch für die vorhandenen Formulare, auf die ich dann über das Menü in dem Startformular zugreifen möchte. Nur sind die Formulare ja noch garnicht geöffnet worden.
Ich hoffe, nicht zu sehr verwirrt zu haben
Bert
Re: Formular global anlegen
Verfasst: So, 04.10.2009 15:28
von gigabert
komma4 hat geschrieben:Variante 1 ist der Zugriff auf den Formular-Container - zum Umbenennen eines Formulars, bspw. (ThisDatabaseDocument)
Variante 2 ist der Zugriff auf das Formular selbst (bei geöffnetem Formular; ThisComponent)
Das heisst, mit der 2. Variante kann ich nur ein Objekt des Formulars erzeugen, wenn das Formular selbst auch geöffnet ist? Das
ThisComponent bezieht sich immer auf das geöffnete/aktive Dokument? Aus einem anderen Formular kann ich so also keine globale Variable für ein noch nicht geöffnetes Formular erzeugen?
Gruss
Bert
Re: Formular global anlegen
Verfasst: So, 04.10.2009 15:44
von Stephan
Ich - als häufiger Fragesteller - muss schon eingestehen, dass die Beiträge von anonym nicht immer einfach zu verstehen oder inhaltlich richtig waren
darin sehe ich kein wesentliches Problem und keinen Grund der mich eine Sperre hätten aussprechen lassen
Aber ich denke, man sollte unterscheiden, ob jemand absichtlich oder böswillig das Forum mit wirklich unnötigen Beiträgen bedient
ja, genau das habe ich getan und habe mir die jetzige Entscheidung nicht leicht gemacht.
Na ja, nur eine Meinung eines Forumsbenutzers...
Ich finde es ausdrücklich gut das Du Deine Meinung hier so offen gesagt hast, gerade weil es ja vielleicht auch etwas Überwindung gekostet hat. Du darfst auch ganz sicher sein das mich Deine Kritik nicht verärgert, ganz im Gegenteil respektiere ich Deine Meinung, allein ich teile sie inhaltlich nicht (bzw. nicht vollständig).
Über Eines solltest Du Dir garkeine Sorgen machen (sofern Du das tust): es ist nicht irgendwie Deine Schuld (z.B. weil Du hier den Thread eröffnet hast) das ich jetzt eine Sperre ausgesprochen habe, meine Entscheidung dazu begründet sich ja auch ausdrücklich nicht nur aus dem einen Thread hier.
Gruß
Stephan
Re: Formular global anlegen
Verfasst: So, 04.10.2009 15:48
von Stephan
Ich verstehe den Unterschied nicht so ganz.
Naja, weil das was dasteht wieder einmal nicht so ganz stimmt, es gibt kein "datenbank.drawpage.forms.getByName("PersonenFormular")
" wenn man annimmt "datenbank" sei so definiert wie es dem Wort nach offensichtlich ist, insbesondere das Gleiche wie datenbank in "datenbank.DatabaseDocument.FormDocuments()"
Verstehe erstens das "ThisComponent" nicht immer das Gleiche ist, sondern eine allgemeine DEfinition für das Objekt das dem letzten aktiven Fenster aus Sicht der IDE entspricht.
Unterscheide zweitens zwischen verschiedenen Formularen bzw. der verschiedenen Verwendung des Begriffs "Formular"
Zum Einen meint "Formular" das Formulardokument, zum Zweiten aber auch das virtuelle Formular auf der drawpage des Formulardokuments.

- Bild1.gif (26.95 KiB) 1539 mal betrachtet

- Bild2.gif (25.77 KiB) 1538 mal betrachtet

- Bild3.gif (51.08 KiB) 1538 mal betrachtet
Das Formulardokument in erster und zweiter Abbildung ist nun das was dem ZUsammenhang nach hinter:
Code: Alles auswählen
... .loadComponentFromURL("Personen","_blank",0,aProp())
steht.
Die zwei(!) Formulare (von denen jedes ein(!) Textfeld beinhaltet) in der dritten Abbildung hingegen repräsentieren:
Code: Alles auswählen
... .drawpage.forms.getByName("PersonenFormular1")
... .drawpage.forms.getByName("PersonenFormular2")
wobei "drawpage" (es kann hierbei auch mehrere bzw. mehrere Ebenen geben) ein virtuell gedachter 'Container' zur Aufnahme der Zeichnungsobjekte (bzw. hier Formularelemente) ist
Gruß
Stephan
Re: Formular global anlegen
Verfasst: So, 04.10.2009 16:22
von Stephan
Hallo anonym.
ich habe DEinen account gesperrt, damit war natürlich gemeint das Du 7 Tage aus dem Forum ausgeschlossen bist.
Da Du anscheinend auch das wieder mißverstehen willst ergänze ich:
Ich nehme hiermit das Hausrecht war und erteile dem Nutzer "anonym" ein Hausverbot, für jegliche posts egal unter welcher Anmeldung solange wie die Sperre des Accounts "anonym" andauert (also bis zum 11.10.).(*)
(*)
siehe:
ucp.php?mode=register
Ich mache darauf aufmerksam das die IP-Adressen mitgeloggt werden und ich jeden Verstoß gegen das nunmehr klar erteilte Hausverbot den Eigentümer des Forums umgehend zur Kenntnis geben werde.
Stephan
Re: Formular global anlegen
Verfasst: So, 04.10.2009 16:22
von gigabert
Stephan hat geschrieben:Verstehe erstens das "ThisComponent" nicht immer das Gleiche ist, sondern eine allgemeine DEfinition für das Objekt das dem letzten aktiven Fenster aus Sicht der IDE entspricht.
Unterscheide zweitens zwischen verschiedenen Formularen bzw. der verschiedenen Verwendung des Begriffs "Formular"
Zum Einen meint "Formular" das Formulardokument, zum Zweiten aber auch das virtuelle Formular auf der drawpage des Formulardokuments.
Hallo Stephan,
super erklärt. Vielen Dank. Ich denke, ich hab das jetzt endlich verstanden. Falls nicht, kommen gleich weitere Fragen...
Gruss
Bert
Re: Formular global anlegen
Verfasst: So, 04.10.2009 16:38
von eBayer
Hallo Bert,
entschuldige meine "dumme" Frage..... aber warum willst Du denn gleich beim Start die Formulare global hinterlegen? Einen Zeitgewinn wirst Du dadurch im Programmablauf nicht bekommen, denn der Aufruf des Formulars ist auch so schon kaum messbar. Bedenke bitte auch, daß Du mit dem öffen auf Vorrat jede Menge Ressourcen verbrätst - mal abgesehen von der Datenkonsistenz, wenn ein Absturz bei vielen gleichzeitig geöffneten Formularen erfolgt. Das mag bei einer richtigen Datenbank noch funktionieren. Habe bei MySql schonmal mitten in der Erfassung der Daten den Rechner ausgeschaltet (zum Test) - die Daten waren danach sauber verfügbar. Das Gleiche mit der internen HSQLDB ist tödlich!
Solltest Du nicht doch nochmal Dein Konzept überdenken und dann einen Kompromiss aus den Vor- und Nachteilen erarbeiten?
Ich will Dir gerne bei Deinen Überlegungen helfen, wenn Du Wert darauf legst - und vielleicht finden wir ja eine gute Lösung als Mittelweg.
Gruß eBayer