Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] [ot] open office - jak otrzymac numer linii na ktorej jest k

To: winnt@man.lodz.pl
Subject: Re: [WINNT] [ot] open office - jak otrzymac numer linii na ktorej jest kursor
From: "1634Racine" <mnjfmr@j.cbqebml>
Date: Wed, 4 Dec 2024 22:57:47 +0100
Arkadiusz 'Black Fox' Artyszuk w viqdtl.b7s.1@blackfox.org">news:viqdtl.b7s.1@blackfox.org
[...................]
Można to zdaje się zrobić poprzez protezę w postaci makra, ale to nie będzie na belce edytora. Taka funkcjonalność czeka na wprowadzenie do OO już od kilkunastu lat. Zgodnie ze źródłem https://forum.openoffice.org/en/forum/viewtopic.php?t=10528 makro może mieć postać:
Sub GetCursorColumn
on error goto hr
vc = thiscomponent.currentcontroller.viewcursor
vc.gotoStartOfLine(true)
lenst= len(vc.string)
vc.collapsetoend
msgbox "Column: " & lenst
hr:
End Sub

byc moze dochodzimy do sedna sprawy. Przed wrzuceniem tutaj tematu zapyt. AI gemini o stosowne makro, pytalem lepiej/gorzej, ale o: cyfrowy znacznik miejsca kursora na dole dokumentu w Apache OpenOffice, aby na dolnej belce był widoczny numer pionowej linii na ktorej jest kursor. Dostalem kod w basicu i na tym zakonczylem dzialalnosc, bowiem rozkraczylem sie juz na czynnosci implementacji makra (chociaz niby wiadomo, narzedzia -> makra -> ...), wiec nie mam pojecia czy to w ogole dziala:

Sub AktualizujNumerLinii
   Dim oDoc As Object
   Dim oCursor As Object
   Dim iLine As Integer

   oDoc = ThisComponent
   oCursor = oDoc.CurrentController.Selection.getByIndex(0).Start
   iLine = oCursor.Paragraph.Start

   ' Zmień "Pole1" na nazwę Twojego pola
   oDoc.Text.Find("Pole1").String = "Linia: " & iLine
End Sub

                z wytlumaczeniem od gemini:

Jak działa makro:

 1.. Zmienna oDoc: Przechowuje referencję do aktualnie otwartego dokumentu.
 2.. Zmienna oCursor: Przechowuje informacje o pozycji kursora.
 3.. Zmienna iLine: Przechowuje numer linii, na której znajduje się kursor.
 4.. Pętla:
a.. oDoc.Text.Find("Pole1").String: Znajduje pole o nazwie "Pole1" i zmienia jego zawartość. b.. "Linia: " & iLine: Łączy tekst "Linia: " z numerem linii i przypisuje go do pola.
Tworzenie pola:

1.. Wstawienie pola: W miejscu, gdzie chcesz wyświetlać numer linii, wstaw pole. Możesz to zrobić ręcznie lub używając menu Wstaw -> Pole. 2.. Nadanie nazwy: Właściwości pola zmień nazwę na "Pole1" (lub dowolną inną, pamiętając o użyciu tej samej nazwy w makru).
Instalacja makra:

1.. Otwórz okno makr: Przejdź do menu Narzędzia -> Makra -> Organizator makr. 2.. Utwórz nowy moduł: W oknie organizatora makr utwórz nowy moduł (np. "MojeMakra").
 3.. Wklej kod: Wklej powyższy kod do utworzonego modułu.
4.. Przypisanie do przycisku (opcjonalnie): Możesz przypisać makro do przycisku na pasku narzędzi, aby łatwiej je uruchamiać.
Automatyczne uruchamianie makra:

Aby makro działało automatycznie przy każdej zmianie pozycji kursora, można spróbować użyć zdarzeń w OpenOffice Basic. Jednak implementacja tego rozwiązania może być bardziej złożona i wymagać głębszej znajomości języka.








<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>