Autor Thema: Hotspot ohne grüne Umrandung erzeugen  (Gelesen 3322 mal)

Offline deepmessage

  • Junior Mitglied
  • **
  • Beiträge: 73
Hotspot ohne grüne Umrandung erzeugen
« am: 05.10.06 - 09:00:38 »
Hallo zusammen.

Ich habe in Script einen Agenten geschrieben, der mir ein paar Text-Hotspots erzeugt.


Code
With nrtItem	
		Call .AppendParagraphStyle(nrtpsParagraphStyle)
		Set it = collLinks.Iterator
		While it.hasNextElement
			Set ndCurr = it.nextElement
			Call .AppendStyle(nrtsStyle)
			Call .AppendDocLink(ndCurr, ndCurr.GetItemValue("Subject")(0), ndCurr.GetItemValue("Subject")(0))			
			Call .AddNewline(1)
		Wend
		
		Call .Compact	
		Call .Update
	End With


Leider wird die standardmäßig grüne Umrandung angezeigt:




 Was ich jetzt gerne realisieren möchte, ist, die Hotspots statt der Umrandung in blauer Farbe und unterstrichen hinzubekommen. Die Unterstreichung bekomme ich mit  "nrtsStyle.Underline = true" mit Sicherheit hin, nur das Entfernen der Umrandung will nicht klappen.

Habt ihr eine Idee?


Gruß
Alexander
« Letzte Änderung: 07.10.06 - 19:22:20 von deepmessage »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #1 am: 05.10.06 - 09:17:10 »
Habs nicht getestet, aber bekommt man die Umrandung nicht mit notesRichTextStyle.Effects = EFFECTS_NONE weg ?
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline deepmessage

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #2 am: 05.10.06 - 09:22:06 »
.Effects = EFFECTS_NONE hat leider "keinen Effekt" gemacht  ;)



hm... laut Notes Hilfe gibt's einen Kommentar bei der Methode "appendDocLink":

Zitat
Optional. String. If supplied, the HotSpotText appears in the rich text item as boxed text which can be clicked on with the mouse to follow the doclink. In this case, no other token appears in the text.



Ich probier mal die NotesRichTextDocLink class. Die hat schon mal einen vielversprechenden Namen...


Gruß
Alexander
« Letzte Änderung: 05.10.06 - 09:33:51 von deepmessage »

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #3 am: 05.10.06 - 10:09:01 »
Habe mal lange dran rumgewürgt und nichts erreicht.

Wäre auch immer noch an einer Lösung interessiert... ::)

Moritz

Offline deepmessage

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #4 am: 05.10.06 - 10:14:18 »
Habs auch nicht hinbekommen... Der Knackpunkt wird das AppendDocLink sein, denke ich.

Habt ihr noch einen Tipp?  ???

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #5 am: 05.10.06 - 10:27:09 »
Toll, wahrscheinlich wieder so ein Fall, wo man nur über die API rankommt. Dort gibt es nämliche ein:

Code
LNHotspot::SetShowBorder  

Controls whether the Notes UI displays a box around this hotspot.
Syntax
void SetShowBorder( LNBOOL border )

UPDATE:

habe hier noch was auf LDD gefunden:

http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/0c2ce9a1305dac0585256ebe0057f8f6?OpenDocument

und hier:

http://www-10.lotus.com/ldd/nd6forum.nsf/c21908baf7e06eb085256a39006eae9f/4bb3c6522d444dcd85256e0b0047d2bf?OpenDocument
« Letzte Änderung: 05.10.06 - 10:43:49 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline deepmessage

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #6 am: 05.10.06 - 10:38:20 »
Klasse!

Nur kann mir jetzt einer noch erklären, wie das mit der API funkioniert? Ich habe mit der noch nie gearbeitet. Ist total neues Gebiet für mich.


Gruß
Alexander

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #7 am: 05.10.06 - 10:45:13 »
Klasse!

Nur kann mir jetzt einer noch erklären, wie das mit der API funkioniert? Ich habe mit der noch nie gearbeitet. Ist total neues Gebiet für mich.


Gruß
Alexander

Klar, kann ich: Installiere dir einen c / c++ compiler deiner Wahl und programmiere dir die entsprechende Funktion als DLL oder mit Hilfe des LSX Toolkit als lsx.  ;D
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #8 am: 05.10.06 - 11:11:17 »
Sie hätten statt den grünen Rand auch einfach eine blaue Unterstreichung machen können, so wie es alle Anderen auch machen >:(

Offline Wilhelm

  • Aktives Mitglied
  • ***
  • Beiträge: 214
  • Geschlecht: Männlich
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #9 am: 05.10.06 - 11:18:15 »
Na wer sagt denn das erst die blaue Unterstreichung da war und dann der grüne Rahmen?

Ich erinnere dran: F9 geklaut und zu F5 degradiert  ;D ;D
Ich will endlich die F9-Taste in diesem Forum haben!!!

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #10 am: 05.10.06 - 11:21:57 »
Nicht was zuerst da war ist entscheident. Was die MEISTEN verwenden ist entscheident (auch wenn das in Gottes Namen zu 90% von Microsoft vorgegeben wird).

Sonst hätten wir heute immer noch Mäuse mit nur einer Taste. ;D

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #11 am: 05.10.06 - 13:13:32 »
Ich würde es anhand der gesammelten Erkenntnisse folgendermaßen machen:

Voraussetzung ist, daß die Hotspots am Ende des RT-feldes angehängt werden ( Einfügen geht ja bekanntlich ( noch ) nicht  mit Notes Boardmitteln  ;D )

- erzeuge ein temporäres Dokument in der Datenbank mit folgendem Code

Code
Sub Click(Source As Button)
	link$ = "LDD"
	url$ = "http://www.notes.net"
	
	strSUBJECT = "Hallo Welt"
	
	Dim session As New NotesSession
	
	Dim db As NotesDatabase
	Set db = session.CurrentDatabase
	Dim i As Integer
	
	Dim stream As NotesStream
	Set stream = session.CreateStream
	stream.WriteText {<?xml version='1.0' encoding='utf-8' ?>
          <database xmlns='http://www.lotus.com/dxl' version='6.0'> 
               <document form='test'> 
                    <item name='Subject'><text>} & strSUBJECT & {</text></item>
                    <item name='Body'>
                         <richtext>}
	
	For i = 1 To 10
		stream.WriteText { <par>
	
						 <run>Click on this link: </run>
                                   <urllink showborder='false' href='} & url$ & {'>
                                        <run><font color='system'/>} & link$ & {</run>
                                   </urllink> 
						</par>}
	Next	
	
	stream.WriteText {</richtext>
                    </item>
               </document>
          </database>}
	
	Dim dmp As NotesDXLImporter
	Set dmp = session.CreateDXLIMporter(stream, db)
	dmp.Process
End Sub

In der Schleife erzeugst du die erforderlichen Links. Dann hängst du das RichtextFeld aus diesem Dokument an dein bestehendes Dokument an. Anschließend kann das tempDoc gelöscht werden.

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #12 am: 05.10.06 - 13:21:51 »
ähhh Frage wie werden diese Hotspots gemacht ?

Wenn du es über den Designer machst kannst du doch bei den Eigenschaften einfach den Haken aus dem Kästchen in dem steht "Show Border around Hotspot"

Wenn du es über script lösen willst kann ich dir leider nicht weiterhelfen. (Weil Newbie)
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #13 am: 05.10.06 - 13:29:11 »
Ich habe in Script einen Agenten geschrieben, der mir ein paar Text-Hotspots erzeugt.

@Ulrich: Danke für diese Lösung!

Moritz

Offline deepmessage

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #14 am: 05.10.06 - 16:02:46 »
Danke für die starken Posts!


Aber eigentlich müsste man doch nur das Dokument mit den "Umrandungs-Hotspots" per Exporter exportieren, das "showborder" auf false stellen und fertig.
Ich habe das mal ausprobiert, jedoch erstellt er mir beim Import ein neues Dokument und das ist gar nicht gut, weil dann die Doclinks wg. der neuen UNID nicht mehr funktionieren.

Kann man per DXL etwas importieren, ohne dass ein neues Doc erstellt wird?

Gruß
Alexander


**edit: hab's gefunden: DocumentImportOption = DXLIMPORTOPTION_UPDATE_ELSE_IGNORE
Ich poste hier die Lösung, wenn ich's fertig getestet habe... Danke für Eure Hilfe!!  ;D
« Letzte Änderung: 05.10.06 - 16:12:13 von deepmessage »

Offline deepmessage

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Hotspot ohne grüne Umrandung erzeugen
« Antwort #15 am: 05.10.06 - 19:53:44 »
Also, hier das Versprochene:

Ich habe einfach das Dokument genommen und noch mal per XML bearbeitet:
Code
	Dim stream As NotesStream
	Dim importer As NotesDXLImporter
	Dim sXML As String
	Dim ns as new NotesSession
	Dim exporter As NotesDXLExporter
	
	Set exporter = ns.CreateDXLExporter	
	sXML= exporter.Export(ndSelected)
	
	sImportantString = sReplaceString(sXML, "showborder='true'", "showborder='false'")
	
	Set stream = ns.CreateStream
	Set importer = ns.CreateDXLImporter
	importer.DocumentImportOption = DXLIMPORTOPTION_UPDATE_ELSE_IGNORE
	Call importer.import(sXML, CurrentDB)

Somit werden alle Hotspots von ihren Umrandungen befreit  ;D
- und es werden keine neuen Dokumente erzeugt.

Gruß
Alexander

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz