Seite 1 von 1

DCMESSAGEBOX und SetCaption [ERLEDIGT]

Verfasst: Mi, 16. Mär 2011 11:42
von Manfred
Hi,

mit DCMESSAGEBOX baue ich mir ja eine Möglichkeit in die Statusbarleiste um dort einen Text anzuzeigen. Über
MESSAGE INTO Messagebox
wird etwas angezeigt. Wenn ich nun
Messagebox:setCaption("text")
mache, dann kann ich "meinen" Text dort einbringen. Jetzt habe ich aber festgestellt, das es dabei wohl irgendwie Probleme gibt. Es wird der letzte Text mit dem neuen überschrieben und der alte bleibt drunter, oder es wird nur ein Teil am Anfang gelöscht. Was mache ich falsch?

Re: DCMESSAGEBOX und SetCaption

Verfasst: Mi, 16. Mär 2011 12:19
von Tom
Hallo, Manfred.

Aus der Doku zu DCMESSAGEBOX:
Two objects are created, one for the static area and one for the message text.

Wenn ich das richtig sehe (_DCGETBX.PRG), befindet sich das eigentliche Textstatic in Messagebox:Cargo[6]. Es müsste also über Messagebox:Cargo[6]:SetCaption('Test') richtig funktionieren.

Re: DCMESSAGEBOX und SetCaption

Verfasst: Mi, 16. Mär 2011 12:48
von Manfred
Aha,

weil wenn ich den Text ändere, dann ist im Debugger unter Caption der neue Text drin.
Ich werde das mal probieren

Re: DCMESSAGEBOX und SetCaption

Verfasst: Mi, 16. Mär 2011 12:54
von Manfred
Tom,

Danke, das scheint es gewesen zu sein. Das interessante daran ist, wenn ich das so mache, wie ich es oben beschrieben habe wirken auch die Farbeinstellungen nicht. Der Text wird angezeigt, aber der Rest stimmt dann nicht. Jetzt klappt es aber wohl.

Re: DCMESSAGEBOX und SetCaption [ERLEDIGT]

Verfasst: Mi, 16. Mär 2011 12:59
von Tom
Eine DCMESSAGEBOX ist ein Textstatic auf einem Textstatic. Das eine Static dient als Platzhalter (ich mache das auch an vielen Stellen so), das andere ist für den eigentlichen Text da. Auf diese Weise aber kann man dem Parent-Static, das eigentlich nur Platzhalter sein soll, eine Caption zuweisen. Die Caption des Statics für den Text bleibt hiervon unberührt, deshalb siehst Du zwei Texte. Übrigens erreichst Du das eigentliche Textstatic auch über MessageBox:ChildList()[1].

Re: DCMESSAGEBOX und SetCaption [ERLEDIGT]

Verfasst: Mo, 19. Feb 2018 16:59
von Manfred
ich bin jetzt nochmal über dieses Thema gestolpert.
Einfach nur :cargo[6]:setcaption("geändert") bringt es nicht. Es ändert sich zwar der Inhalt, der wird aber nicht angezeigt. Müßte ich dann ein dc_getrefresh(getlist) machen? Frage ich jetzt mal, bevor ich den ganzen Kram umbaue.

Re: DCMESSAGEBOX und SetCaption [ERLEDIGT]

Verfasst: Mo, 19. Feb 2018 18:49
von Tom
Es kann auch sein, dass sich der Aufbau in den letzten sieben Jahren etwas geändert hat. :wink: Ich schaue morgen mal nach.