porbleme mit der state-eigenschaft von checkboxen

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: porbleme mit der state-eigenschaft von checkboxen

von kannenklaus » Mi, 25.01.2006 14:18

hallo thomas,

auf dich ist verlass!
Dim bSWords as boolean, bSCase as boolean
war der richtige tipp. allerdings ist die SearchWords-methode auf einmalig in der zelle vorkommende wörter beschränkt.

danke

gruß

klaus

von Toxitom » Mi, 25.01.2006 13:05

Hey Klaus,

hmm, das Thema hatten wir doch schon mal - oder?

Also, der Code hat eine ganz andere Schwäche. Innerhalb einer "with" Zuweisung kannst du natürlich keinen weiteren Basic-Cose ausführen!

Die "With" zuweisung dient quasi nur dazu, die verschiedenen Eigenschaften eines Objektes "platzsparend" zu füllen.

Also, "entzerre" deinen Code und führe zwei neue Varaiblen (Boolsche) ein.

Code: Alles auswählen

Sub SuErMultiple
   Dim oDoc as Object
   Dim oBereich as Object
   Dim oSuche1 as Object
   Dim sSu1 as String 'Variable für den 1. Suchbegriff
   Dim sEr1 as String 'Variable für die 1. Ersetzung
   
   Dim bSWords as boolean, bSCase as boolean
'--Controller wird für den ausgewählten Zellbereich erzeugt
   oDoc = ThisComponent
   oBereich = oDoc.getCurrentSelection()'.getRangeAddress()

   
'--Su/er-Eingaben des Dialogs werden an die Variablen ausgelesen
   sSu1 = oDlg.getControl("txtSu1").getText
   sEr1 = oDlg.getControl("txtEr1").getText


'--ein ReplaceDescriptor wird für den jeweiligen Suchen/Ersetzungsvorgang erstellt
   oSuche1 = oBereich.createReplaceDescriptor

' -- Chechboxen abfragen
If oDlg.getControl("cbxSuWort").state=1 AND oDlg.getControl("cbxGrossKlein").state=1 then
             bSWords = true 'Inhalt muss exakt dem Suchstring entsprechen
            bSCase = true 'Großschreibung             
         Elseif oDlg.getControl("cbxSuWort").state=1  AND oDlg.getControl("cbxGrossKlein").state=0  then
             bSWords = true 'Inhalt muss exakt dem Suchstring entsprechen
             bSCase = false 'Großschreibung             
          Elseif oDlg.getControl("cbxSuWort").state=0  AND oDlg.getControl("cbxGrossKlein").state=1 then
             bSWords = false 'Inhalt muss exakt den Suchstring enthalten
             bSCase = true 'Großschreibung
          End If
'--1. Suchen/Ersetzen Ausdruck wird definiert
   if oDlg.getControl("txtSu1").text <> "1. Suchtext eingeben" then
      with oSuche1
         .setSearchString(sSu1)
         .setReplaceString(sEr1)
         .SearchWords = bSWords
          .SearchCaseSensitive = bSCase
      end with
      oBereich.replaceAll(oSuche1)   
   end if
So sollte es funktionieren :wink:

Gruss
Thomas

porbleme mit der state-eigenschaft von checkboxen

von kannenklaus » Mi, 25.01.2006 12:03

hallo gruppe,

die auswertung der state-eigenschaft eines dialogs klappt nicht bzw. sie ist ohne wirkung. es geht um cbxWortSu unc cbsGrossKlein. sie sollen beim su/er-vorgang je nach status berücksichtigt bzw. unberücksichtigt bleiben. der entsprechende code, der dies abfrägt ist orange markiert. leider ist er ohne wirkung

Code: Alles auswählen

Sub SuErMultiple
	Dim oDoc as Object
	Dim oBereich as Object
	Dim oSuche1 as Object
	Dim sSu1 as String 'Variable für den 1. Suchbegriff
	Dim sEr1 as String 'Variable für die 1. Ersetzung

'--Controller wird für den ausgewählten Zellbereich erzeugt
	oDoc = ThisComponent
	oBereich = oDoc.getCurrentSelection()'.getRangeAddress()

	
'--Su/er-Eingaben des Dialogs werden an die Variablen ausgelesen
	sSu1 = oDlg.getControl("txtSu1").getText
	sEr1 = oDlg.getControl("txtEr1").getText


'--ein ReplaceDescriptor wird für den jeweiligen Suchen/Ersetzungsvorgang erstellt
	oSuche1 = oBereich.createReplaceDescriptor


'--1. Suchen/Ersetzen Ausdruck wird definiert
	if oDlg.getControl("txtSu1").text <> "1. Suchtext eingeben" then
		with oSuche1
			.setSearchString(sSu1)
			.setReplaceString(sEr1)
'############################
'###ab hier steckt wohl der fehler drin###
If oDlg.getControl("cbxSuWort").state=1 AND oDlg.getControl("cbxGrossKlein").state=1 then
		    	.SearchWords = true 'Inhalt muss exakt dem Suchstring entsprechen
		    	.SearchCaseSensitive = true 'Großschreibung		    	
			Elseif oDlg.getControl("cbxSuWort").state=1  AND oDlg.getControl("cbxGrossKlein").state=0  then
		    	.SearchWords = true 'Inhalt muss exakt dem Suchstring entsprechen
		    	.SearchCaseSensitive = false 'Großschreibung		    	
	    	Elseif oDlg.getControl("cbxSuWort").state=0  AND oDlg.getControl("cbxGrossKlein").state=1 then
		    	.SearchWords = false 'Inhalt muss exakt den Suchstring enthalten
		    	.SearchCaseSensitive = true 'Großschreibung
	    	End If
		end with
		oBereich.replaceAll(oSuche1)	
	end if
wer weis rat?

freue mich auf eine antwort.

beste grüße

klaus

Nach oben