String während Laufzeit manuell ändern

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: String während Laufzeit manuell ändern

Re: String während Laufzeit manuell ändern

von clag » Sa, 01.02.2014 20:34

Hallo Balu,

danke für die Erklärungen das mit der doppelten Deklaration hätte ich allein nie auf den Schirm gekriegt
oder die verschiedene Buttontypen wo bei mir da auffällt zwischen dem typ Abbrechen und OK kann ich keinen funktionalen Unterschied feststellen.
Es ist egal welchen Button ich anklicke es wird der String ausgegeben

Re: String während Laufzeit manuell ändern

von balu » Sa, 01.02.2014 17:37

Hai clag,

bei den Buttons gibt es 3 Funktionen die schon fest vorgegeben sind:
- OK
- Abbrechen
- Hilfe

Zu finden in dem dementsprechenden Kontextmenü für den Button, und zwar bei:
- Art der Schaltfläche

Du willst jetzt also einen Abbrechen-Button erstellen der nix anderes macht als den Dialog zu beenden? Das ist zu umständlich. Nimm doch stattdessen die Einstellung Ok. Dazu musst Du aber in deiner Sub

Code: Alles auswählen

TextField1
als letzten Eintrag

Code: Alles auswählen

myDialog.endExecute()
stehen haben. Also nicht in eine extra Sub. Und dem Button brauchst Du auch kein Makro zuordnen.

Wenn Du jetzt aber neben dem OK noch ein Abbrechen haben willst, dann lass es so wie es ist.


aber der erste Button für Abbrechen macht mir schon Ärger
Wie lange bist Du hier schon aktiv?
Du müsstest doch langsam wissen das dies keine Fehlerbeschreibung ist. Auch hier in der Makro-Ecke ist es sehr wichtig Fehlermeldungen uns mitzuteilen. Und die dürfen durchaus etwas ausführlicher sein. Auch wenn dir jetzt mein Ton nicht gefällt, aber das muss so sein. Ohne eine genaue Fehlerbeschreibung, oder deren Wortlaut, kann es mitunter vorkommen das man sich wie ein Idiot einen Wolf nach dem möglichen Fehler sucht. Und je umfangreicher ein Code ist, umso stressiger wird dann die Suche.

Aber nun gut. Kommen wir zu dem Übeltäter:

Code: Alles auswählen

Objektvariable nicht belegt
Die sagt auch schon genau das aus was sache ist. Das nämlich die Objektvariable nicht belegt ist.

"Aber Halt Stop! Ich hab sie doch belegt!" Würdest Du jetzt dazwischen rufen.

Stimmt ja auch. Du hast sie belegt, die myDialog. Aber dummerweise gleich 2 mal. Und das ist dein Eigentor. Und warum?
Ganz einfach.
Weil zu anfang hast Du sie als Public deklariert, was vollkommen korrekt ist. Aber in der Sub hast Du sie noch mal deklariert. Und nun ist sie nicht mehr Öffentlich, sondern nur noch Lokal. Und das bedeutet, sie ist nur in dieser einen Sub gültig und sonst nirgends mehr. Also steht in der Sub cmd_Abbrechen keine gültige Variable mehr zur Verfügung, da sie ja nur in der anderen Sub ihre gültigkeit besitzt.

Und das beudeutet für dich als Fehlerbeseitigung: Lösche die deklaration in der Sub, so das sie ganz am Anfang Öffentlich steht.

Und dann ändere das hier

Code: Alles auswählen

CreateUnoDialog( DialogLibraries.Standard.getByName("Dialog1") )
ganz einfach in das um

Code: Alles auswählen

CreateUnoDialog( DialogLibraries.Standard.Dialog1) 
Sollte so reichen.


Viel Spaß noch in der Wundersamen Welt der Programmierung, Du Pink Panther :D.



Gruß
balu

Re: String während Laufzeit manuell ändern

von clag » Sa, 01.02.2014 16:38

Hallo Kenner und Könner,

Ich habe es ja geahnt, allein wird das nix

also so einen Dialog habe ich schon mal und auch die Felder darin aber der erste Button für Abbrechen macht mir schon Ärger.
Wäre schön wenn mir jemand auf die Sprünge hilft ggf auch für einen ok Button
Dialogtest01.odt
(12.17 KiB) 90-mal heruntergeladen

Re: String während Laufzeit manuell ändern

von clag » Sa, 01.02.2014 13:10

Hi DocCyber,

na denn will ich mich mal mit Dialogen befassen
besten Dank für's erste
und ich leihe mir mal den Pink Panther Spruch

" ist nicht Ende meiner Frage, ich komm wieder alle Tage " :lol:

Re: String während Laufzeit manuell ändern

von DocCyber » Sa, 01.02.2014 09:24

Eigenen Dialog mit zwei Textfeldern erstellen.
Langen String auf die beiden Textfelder verteilen, ggf. ändern.
Bei Klick auf einen OK-Button im Dialog wird der String wieder zusammengesetzt.
Der neue String wird dann als Result der Dialogbox zurückgegeben.

String während Laufzeit manuell ändern

von clag » Sa, 01.02.2014 08:26

Hallo Kenner und Könner,

in einem Makro werden aus ein gelesenen Textzeilen Strings generiert die aber manchmal nicht korrekt zB zu lang sind.
zu einer automatische gesteuerten Anpassung ist mir noch nicht das richtig Konzept eingefallen.

I möchte jetzt folgendes erreichen, der String soll doppelt einzeilig angezeigt werden
und eine Zeile davon soll editierbar sein, so das ich den String händisch anpassen kann
und nach "ok" klick soll der geänderte String in die Variable des Ursprungsstrings übernommen werden.

Wie kann man das am besten realisieren?

und schon mal danke für's lesen

Nach oben