[gelöst] Datenübergabe zwischen SUBs

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

der_Zerstreute
***
Beiträge: 62
Registriert: Do, 01.05.2008 11:33

[gelöst] Datenübergabe zwischen SUBs

Beitrag von der_Zerstreute »

Hallo Leute ,

Ich bin hier noch auf ein weiteres Problem gestoßén.
Ich öffne in meinem Makro ein Dialogfenster in dem ich einen Datensatz auswählen kann.
In diesem Fenster sind Buttons die ein weiteres Dialogfenster öffnen. Leider brauche ich in diesem zweiten Dialogfenster Daten aus der Main-Routine , diese stehen nicht zur verfügung da sie in einer Variable abgelegt sind die im Programm dimensioniert wird (Datenabhänig).

Wie bekomme ich dieses Array in mein zweites Dialogfenster ohne sie als Global definieren zu müssen ? Geht das überhaupt ?

Danke für Eure Hinweise ..
Zuletzt geändert von der_Zerstreute am Fr, 21.02.2014 09:05, insgesamt 1-mal geändert.
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

Re: Datenübergabe zwischen SUBs

Beitrag von Frieder D. »

Hallo der_Zerstreute

Es kommt darauf an, ob diese Daten auch im Dialog angezeigt werden.
Wenn das so ist, kannst du sie natürlich mit dem zweiten Sub aus dem Dialog auslesen.

Aber was spricht eigentlich gegen Globale Variablen?

Gruß Frieder

P.S. wir könnten dir hier viel besser helfen, wenn du deinen Code hier posten würdest,
oder noch besser das gesamte Dokument mit Dialogen und Makros anhängen.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Datenübergabe zwischen SUBs

Beitrag von komma4 »

Frieder D. hat geschrieben:Aber was spricht eigentlich gegen Globale Variablen?
Dagegen spricht, dass sie eben globale Gültigkeit haben - für die gesamte Dauer der OOo-Sitzung!

Ich lasse meinen Rechner und OOo meist (mehrere Wochen) durchlaufen... durch globale Variablen wird der während des Makrolaufs belegte Speicherplatz aber nicht mehr freigegeben.


Deshalb meist besser PUBLIC Variablen zu verwenden. Mehr in der F1 Hilfe.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
der_Zerstreute
***
Beiträge: 62
Registriert: Do, 01.05.2008 11:33

Re: Datenübergabe zwischen SUBs

Beitrag von der_Zerstreute »

Hallo Ihr zwei ,

ein weiterer Punkt , warum es bei mir ungeschickt wäre es in ein Global Array zu packen , das Array wird innerhalb der Hauptprozedur in Abhängigkeit vom Inhalt einer Datei dimensioniert. Da sich der Inhalt der Datei aber ändern kann ,brauche ich flexible Arrays und das geht leider nicht mit Globals :(.

Gruß Daniel
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Datenübergabe zwischen SUBs

Beitrag von Stephan »

und das geht leider nicht mit Globals
Und wie kommst Du zu dieser Aussage?

Ich kann hier Global definierte Arrays jedenfalls wunderbar mit Redim anpassen:

Code: Alles auswählen

Global xyz()

Sub testen()
  Redim Preserve xyz(3)
  Msgbox UBOUND(xyz())
  Redim Preserve xyz(5)
  Msgbox UBOUND(xyz())
End Sub
Du nicht? UNd falls ja warum nicht? WElche Nebenbedingungen?


Gruß
Stephan
der_Zerstreute
***
Beiträge: 62
Registriert: Do, 01.05.2008 11:33

Re: Datenübergabe zwischen SUBs

Beitrag von der_Zerstreute »

oh coool .. "Preserve" war mir so nicht geläufig ! muß ich übersehen haben :D..

Danke , damit sollte das funktionieren :D
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Datenübergabe zwischen SUBs

Beitrag von Stephan »

oh coool .. "Preserve" war mir so nicht geläufig !
Ich bin jetzt zu faul das auszuprobieren, aber willst Du mir damit sagen das ein einfaches Redim nicht geht?

Ja, die FRage ist ernstgemeint, denn Preserve bewirkt ja nur den ERhalt vorhandener Werte und wurde hier von mir ohne besondere Absicht verwendet, wäre also eigentlich überflüssig wenn es nur formal darum ginge dEine Anforderung zu erfüllen, die hieß:
brauche ich flexible Arrays und das geht leider nicht mit Globals

Gruß
Stephan
der_Zerstreute
***
Beiträge: 62
Registriert: Do, 01.05.2008 11:33

Re: Datenübergabe zwischen SUBs

Beitrag von der_Zerstreute »

Hallo Stephan ,

Ok hast recht , es bleibt ein Global ;). Ich muß eingestehen das nicht ausprobiert zu haben. :( [Schande über mein Haupt :D]..
Ich ging davon aus das nach einem ReDim die Variable kein Global mehr ist .. Weit her geholt , jetz wo ich drüber nachdenke :D..

Danke aber für den Hinweis :D.
Gruß
Daniel
Antworten