Pasek narzędziowy (Toolbar)

edytuj

Wstęp

edytuj

Zestaw kontrolek obsługiwanych przez wbudowane funkcje AitoIt nie obejmuje bardzo popularnego w nowszych programach paska narzędziowego. Tworzenie i obsługę tego typu kontrolek umożliwia standardowy UDF o nazwie GuiToolbar.au3.

UDF jest bardzo rozbudowany, zawiera ponad sto funkcji do tworzeni, usuwania, odczytu, ustawiania i zmiany wyglądu elementów paska.

Wszystkie nazwy stałych są zdefiniowane w ToolbarConstants.au3. Dołączenie tych definicji jest realizowane przez GuiToolbar.au3, więc nie trzeba robić tego w programie.

Funkcje podstawowe

edytuj

_GUICtrlToolbar_Create

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_Create($hWnd [, $iStyle = 0x800 [, $iExStyle = 0]])

Funkcja tworzy pasek narzędziowy. Zwraca uchwyt do kontrolki, lub 0 gdy wystąpił błąd.

$hWnd - uchwyt do okna GUI, w którym ma być utworzona kontrolka.

$iStyle - styl okna:

$TBSTYLE_FLAT        |  0x800 | pasek jednowierszowy, tekst pod ikoną (domyślnie)
$TBSTYLE_LIST        | 0x1000 | pasek jednowierszowy, tekst po prawej stronie ikony
$TBSTYLE_WRAPABLE    |  0x200 | pasek wielowierszowy (jeżeli przyciski nie mieszczą się w jednym wierszu)
$TBSTYLE_TRANSPARENT | 0x8000 | pasek przezroczysty (ale przyciski nie są przezroczyste)

$iExStyle - dodatkowy parametr stylu (domyślna wartość 0):


_GUICtrlToolbar_AddButton

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_AddButton($hToolbar, $iID, $iImage [, $iString = 0 [, $iStyle = 0 [, $iState = 4 [, $iParam = 0]]]])

Funkcja dodaje przycisk do paska narzędziowego. Zwraca 1 gdy sukces, lub 0 gdy wystąpił błąd.

$hToolbar - uchwyt do paska narzędziowego

$iID - ID przycisku nadane przez programistę

$iImage - indeks obrazka na przycisku. Przy korzystaniu z zasobów systemowych jest to:

$STD_COPY       - Kopiuj (Copy)
$STD_CUT        - Wytnij (Cut)
$STD_DELETE     - Usuń (Delete)
$STD_FILENEW    - Nowy plik (New file)
$STD_FILEOPEN   - Otwórz plik (Open file)
$STD_FILESAVE   - Zapisz plik (Save file)
$STD_FIND       - Szukaj (Find)
$STD_HELP       - Pomoc (Help)
$STD_PASTE      - Wklej (Paste)
$STD_PRINT      - Drukuj (Print)
$STD_PRINTPRE   - Podgląd wydruku (Print preview)
$STD_PROPERTIES - Właściwości (Properties)
$STD_REDOW      - Ponów (Redo)
$STD_REPLACE    - Zamień (Replace)
$STD_UNDO       - Cofnij (Undo)

Pozostałe opcjonalnie:

$iString - indeks stringu z opisem przycisku

$iStyle - styl przycisku

$iState - status przycisku

$IParam - dodatkowy parametr (w zasadzie należy używać tylko wartości domyślnej)


_GUICtrlToolbar_AddButtonSep

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_AddButtonSep($hToolbar [, $iWidth = 6])

Funkcja wstawia separator do paska narzędziowego. Nie zwraca żadnej wartości.

$hToolbar - uchwyt do paska narzędziowego

$iWidth - szerokość separatora w pikselach (domyślna wartość to 6 pikseli)


_GUICtrlToolbar_AddBitmap

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_AddBitmap($hToolbar, $iButtons, $hInst, $iID)


$hToolbar - uchwyt do paska narzędziowego

$iButtons - ilość obrazów przycisków w bitmapie (jeżeli korzystamy z zasobów systemowych parametr ten nie ma znaczenie i może mieć dowolną wartość)

$hInst - uchwyt do instancji modułu z pliku wykonywalnego, który zawiera zasób grafiki rastrowej. Jeżeli chcemy korzystać z zasobów systemowych parametr należy ustawić na -1.

$hID - ID bitmapy z obrazkami przycisków. Przy korzystaniu z zasobów systemowych jest to ID zasobu:

$IDB_STD_LARGE_COLOR  - duże standardowe ikony
$IDB_STD_SMALL_COLOR  - małe standardowe ikony
$IDB_VIEW_LARGE_COLOR - duże ikony w bardziej kolorowej wersji
$IDB_VIEW_SMALL_COLOR - małe ikony w bardziej kolorowej wersji


_GUICtrlToolbar_AddString

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_AddString($hToolbar, $sString)

Funkcja dodaje nowy string do opisu przycisków paska narzędziowego. Zwraca numer indeksu, lub -1 gdy wystąpił błąd.

Numerowanie rozpoczyna się od 0, kolejno dodawane stringi będą miały indeksy 0, 1, 2, ... itd.

$hToolbar - uchwyt do paska narzędziowego

$hString - string z opisem przycisku


_GUICtrlToolbar_IsButtonPressed

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_IsButtonPressed($hToolbar, $iID)

Funkcja sprawdza czy został wciśnięty przycisk o podanym ID. Zwraca True gdy przycisk został wciśnięty, lub False gdy nie jest wciśnięty.

$hToolbar - uchwyt do paska narzędziowego

$iID - numer ID przycisku (jest nadawany przez programistę podczas tworzenia przycisku funkcją _GUICtrlToolbar_AddButton)

Tworzenie paska narzędziowego

edytuj

Omówione powyżej funkcję stanowią podstawę do utworzenia paska narzędziowego z opisanymi przyciskami. Można to zrobić np. tak:

#include <GuiToolbar.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

$GUI = GUICreate("Test tworzenia paska narzędziowego:", 400, 200) ;tworzenie okna GUI

Local Enum $idOpen=1000, $idSave, $idDelete, $idHlp  ;nadanie wartości 

$hToolbar = _GUICtrlToolbar_Create($GUI) ;utworzenie paska narzędziowego

;opisy na przyciskach
_GUICtrlToolbar_AddString($hToolbar, "Otwórz")
_GUICtrlToolbar_AddString($hToolbar, "Zapisz")
_GUICtrlToolbar_AddString($hToolbar, "Usuń")
_GUICtrlToolbar_AddString($hToolbar, "Pomoc")

;obrazki na przyciskach (korzystamy z zasobów systemowych)
_GUICtrlToolbar_AddBitmap($hToolbar, 1, -1,  $IDB_VIEW_LARGE_COLOR)

;tworzenie przycisków
_GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN, 0)
_GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE, 1)
_GUICtrlToolbar_AddButton($hToolbar, $idDelete, $STD_DELETE, 2)
_GUICtrlToolbar_AddButtonSep($hToolbar, 12)  ;separator
_GUICtrlToolbar_AddButtonSep($hToolbar, 0)   ;separator
_GUICtrlToolbar_AddButton($hToolbar, $idHlp, $STD_HELP, 3)

GUISetState()

Do
   Select
      Case _GUICtrlToolbar_IsButtonPressed($hToolbar, $idOpen)
         MsgBox(0,"Wybrano:","Otwórz",2)
      Case _GUICtrlToolbar_IsButtonPressed($hToolbar, $idSave)
         MsgBox(0,"Wybrano:","Zapisz",2)
      Case _GUICtrlToolbar_IsButtonPressed($hToolbar, $idDelete)
         MsgBox(0,"Wybrano:","Usuń",2)
      Case _GUICtrlToolbar_IsButtonPressed($hToolbar, $idHlp)
         MsgBox(0,"Wybrano:","Pomoc",2)
   EndSelect
Until GUIGetMsg() = $GUI_EVENT_CLOSE



Funkcje dodatkowe

edytuj

_GUICtrlToolbar_Destroy

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_Destroy(ByRef $hToolbar)

Funkcja usuwa pasek narzędziowy łącznie z wszystkimi przyciskami. Zwraca 1 gdy sukces, lub 0 gdy wystąpił błąd.

$hToolbar - uchwyt do kontrolki zwrócony przez funkcję _GUICtrlToolbar_Create

UWAGA: Funkcja działa tylko na paski narzędziowe utworzone przez _GUICtrlToolbar_Create.

_GUICtrlToolbar_ButtonCount

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_ButtonCount($hToolbar)

Funkcja zwraca ilość przycisków na pasku narzędziowym.

$hToolbar - uchwyt do paska narzędziowego

UWAGA: Separatory są także zliczane jak zwykłe przyciski.


_GUICtrlToolbar_CheckButton

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_CheckButton($hToolbar, $iID [, $fCheck = True])

Funkcja zaznacza lub usuwa zaznaczenie przycisku. Zwraca True gdy sukces, lub False gdy wystąpił błąd.

$hToolbar - uchwyt do paska narzędziowego

$iID - ID przycisku nadane przez programistę

$Check - True - zaznaczanie przycisku (wartość domyślna), False - usunięcie zaznaczenia

Przykład:

#include <GuiToolbar.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

$GUI = GUICreate("Test:", 200, 200)

Local Enum $idOpen=1000, $idHelp
$hToolbar = _GUICtrlToolbar_Create($GUI)

_GUICtrlToolbar_AddString($hToolbar, "Otwórz")
_GUICtrlToolbar_AddString($hToolbar, "Pomoc")
_GUICtrlToolbar_AddBitmap($hToolbar, 1, -1,  $IDB_VIEW_LARGE_COLOR)
_GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN, 0)
_GUICtrlToolbar_AddButtonSep($hToolbar)
_GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP, 1)

GUISetState()

Do
   $msg = GUIGetMsg()
   _GUICtrlToolbar_CheckButton($hToolbar, $idOpen)
   Sleep(1000)
   _GUICtrlToolbar_CheckButton($hToolbar, $idOpen, False)
   Sleep(1000)
Until $msg


_GUICtrlToolbar_PressButton

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_PressButton($hToolbar, $iID [, $fPress = True])

Funkcja symuluje wciśnięci (zwolnienie) przycisku w pasku narzędziowym. Zwraca True gdy sukces, lub False gdy wystąpił błąd.

$hToolbar - uchwyt do paska narzędziowego

$iID - ID przycisku nadane przez programistę

$fPress - True (wartość domyślna) oznacza wciśnięcie przycisku, False jego zwolnienie

Przykład:

#include <GuiToolbar.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp

$hGUI = GUICreate("Toolbar", 600, 400)
$hToolbar = _GUICtrlToolbar_Create($hGUI)

_GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)

_GUICtrlToolbar_AddString($hToolbar, "&Nowy")
_GUICtrlToolbar_AddString($hToolbar, "&Otwórz")
_GUICtrlToolbar_AddString($hToolbar, "&Zapisz")
_GUICtrlToolbar_AddString($hToolbar, "&Pomoc")

_GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW, 0)
_GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN, 1)
_GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE, 2)
_GUICtrlToolbar_AddButtonSep($hToolbar)
_GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP, 3)

GUISetState()

Sleep(2000)
_GUICtrlToolbar_PressButton($hToolbar, $idSave) ;wciśnięcie przycisku
If _GUICtrlToolbar_IsButtonPressed($hToolbar, $idSave) Then MsgBox(0, "Test:", _
                                        "Symulacja wciśnięcia przycisku: Zapisz")
_GUICtrlToolbar_PressButton($hToolbar, $idSave, False) ;zwolnienie przycisku

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE


_GUICtrlToolbar_SetButtonText

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_SetButtonText($hToolbar, $iID, $sText)

Funkcja zmienia opis przycisków paska narzędziowego. Zwraca True gdy sukces, lub False gdy wystąpił błąd.

$hToolbar - uchwyt do paska narzędziowego

$iID - ID przycisku nadane przez programistę

$sText - nowy tekst opisu przycisku

UWAGA: Nowy opis powinien być krótszy od pierwotnego, w przeciwnym razie jego część będzie zastąpiona kropkami.

W razie konieczności wydłużyć pierwotny opis dodając na jego końcu odpowiednią ilość spacji.

Przykład:

#include <GuiToolbar.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp

$hGUI = GUICreate("Toolbar", 600, 400)
$hToolbar = _GUICtrlToolbar_Create($hGUI)

_GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)

_GUICtrlToolbar_AddString($hToolbar, "&New")
_GUICtrlToolbar_AddString($hToolbar, "&Open   ")
_GUICtrlToolbar_AddString($hToolbar, "&Save")
_GUICtrlToolbar_AddString($hToolbar, "&Help")

_GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW, 0)
_GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN, 1)
_GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE, 2)
_GUICtrlToolbar_AddButtonSep($hToolbar)
_GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP, 3)

GUISetState()

Sleep(2000)
MsgBox(0, "Test", "Zmiana opisu przycisków")
_GUICtrlToolbar_SetButtonText($hToolbar, $idNew, "&Nowy")
_GUICtrlToolbar_SetButtonText($hToolbar, $idOpen, "&Otwórz")
_GUICtrlToolbar_SetButtonText($hToolbar, $idSave, "&Zapis")
_GUICtrlToolbar_SetButtonText($hToolbar, $idHelp, "&Pomoc")


Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE


_GUICtrlToolbar_SetStyle

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_SetStyle($hToobar, $iStyle)

Funkcja ustala styl paska narzędziowego. Zwraca True gdy sukces, lub False gdy wystąpił błąd.

$hToolbar - uchwyt do paska narzędziowego

$iStyle - kod stylu paska

$CCS_TOP              - pasek na górze
$CCS_BOTTOM           - pasek na dole
$TBSTYLE_TOOLTIPS     - pasek może być wielowierszowy (jeżeli przyciski nie mieszczą się w jednym wierszu)
$TBSTYLE_FLAT         - pasek jednowierszowy, opis pod spodem odrazka
$TBSTYLE_LIST         - pasek jednowierszowy, opis z prawej strony obrazka
$TBSTYLE_TRANSPARENT - pasek przezroczysty

Kody można łączyć za pomocą funkcji BitOR, np.: BitOR($TBSTYLE_WRAPABLE, $CCS_TOP).


_GUICtrlToolbar_GetStyle

edytuj
#include <GuiToolbar.au3>
_GUICtrlToolbar_GetStyle($hToolbar)

Funkcja odczytuje kod stylu paska narzędziowego. Zwraca ten kod lub 0 gdy wystąpił błąd.

$hToolbar - uchwyt do paska narzędziowego

Przykład:

#include <GuiToolbar.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

Enum $idNew = 1000, $idOpen, $idSave, $idHelp

$hGUI = GUICreate("", 120, 300, 700, 200)
$hToolbar = _GUICtrlToolbar_Create($hGUI)

;ustalenie stylu paska
_GUICtrlToolbar_SetStyle($hToolbar, BitOR($TBSTYLE_WRAPABLE, $CCS_TOP))

_GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)

$a1 = _GUICtrlToolbar_AddString($hToolbar, "&Nowy")
$a2 = _GUICtrlToolbar_AddString($hToolbar, "&Otwórz")
$a3 = _GUICtrlToolbar_AddString($hToolbar, "&Zapis")
$a4 = _GUICtrlToolbar_AddString($hToolbar, "&Pomoc")

_GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW, $a1)
_GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN, $a2)
_GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE, $a3)
_GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP, $a4)

GUISetState()

MsgBox(0, "", "Styl: 0x" & Hex(_GUICtrlToolbar_GetStyle($hToolbar)))

;zmiana stylu
_GUICtrlToolbar_SetStyle($hToolbar, BitOR($TBSTYLE_LIST, $CCS_BOTTOM))
GUISetState()

MsgBox(0, "", "Styl: 0x" & Hex(_GUICtrlToolbar_GetStyle($hToolbar)))


Edytor tekstu w formacie RTF

edytuj

Wstęp

edytuj

Podstawowy zestaw kontrolek Autoit zawiera tylko edytor czystego tekstu (txt). W bibliotece standardowej znajduje się biblioteka funkcji do obsługi bardziej zaawansowanego formatu RTF (Rich Text Format).

Format ten opracowany w 1987 r. przez Microsoft umożliwia zmianę wielkości, kroju i koloru czcionki oraz tworzenie tabel. Jest bardzo popularny i dostępny niemal w każdym bardziej zaawansowanym edytorze tekstu.

Funkcje do obsługi kontrolki edytora RTF zawarte są w UDF o nazwie GuiRichEdit.au3. Jest on bardzo rozbudowany i zawiera prawie sto funkcji.

Podstawowe funkcje do tworzenie kontrolki RTF

edytuj

_GUICtrlRichEdit_Create

edytuj
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_Create($hWnd, $sText, $iLeft, $iTop [, $iWidth = 150 [, $iHeight = 150 [, $iStyle = -1 [, $iExStyle = -1]]]])

Funkcja tworzy kontrolkę edytora RTF. Zwraca uchwyt do kontrolki lub 0 gdy wystąpił błąd. Makro @error przyjmuje wtedy wartość:

103 - $iLeft < 0
104 - $iTop < 0
105 - $iWidth nie jest >0 lub równe -1
106 - $iHeight nie jest >0 lub równe -1
107 - $iStyle nie jest >0 lub równe -1
108 - $iExStyle nie jest >0 lub równe -1
UWAGA: -1 oznacza wartość domyślną

$hWnd - uchwyt do okna GUI, w którym ma być utworzona kontrolka

$sText - tekst do wstawienia w kontrolce

$iLeft i $iTop - współrzędne lewego górnego narożnika kontrolki

$iWidth - szerokość kontrolki

$iHeight - wysokość kontrolki

$iStyle - styl kontrolki

$ES_AUTOHSCROLL - automatyczne przewijanie tekstu w prawo o 10 znaków, gdy użytkownik wpisze znak na końcu linii
$ES_AUTOVSCROLL - automatycznie przewija tekst o stronę, gdy użytkownik naciśnie klawisz ENTER w ostatniej linii
$WS_HSCROLL - kontrolka z poziomym pasekiem przewijania
$WS_VSCROLL - kontrolka z pionowym paskiem przewijania
$ES_CENTER - centrowanie tekstu
$ES_LEFT - wyrównanie tekstu do lewego marginesu
$ES_MULTILINE - tekst wielowierszowy (domyślne)
$ES_NOHIDESEL - zaznaczony tekst jest w negatywie, nawet jeśli kontrola nie jest aktywna
$ES_NUMBER - pozwala wpisywać tylko cyfry
$ES_READONLY - tekst tylko do odzczytu, edycja zablokowana
$ES_RIGHT - wyrównanie tekstu do prawego marginesu
$ES_WANTRETURN - powrót karetki po naciśnięciu ENTER (ustawienie domyślne)
$ES_PASSWORD - wyświetla gwiazdki (*) zamiast znaków wpisanych do pola edycyjnego

$iExStyle - kod rozszerzenia stylu, wg standardowych stałych $WS_EX_...

UWAGA:

1. Kody można łączyć za pomocą funkcji BitOR.

2. Przed zakończeniem skryptu należy użyć funkcji _GUICtrlRichEdit_Destroy().


_GUICtrlRichEdit_Destroy

edytuj
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_Destroy(ByRef $hRTF)

Funkcja usuwa kontrolkę edytora RTF. Zwraca TRUE gdy sukces, jednocześnie zerując zmienną zawierającą uchwyt do kontrolki. Jeżeli wystąpił błąd funkcja zwraca 0, a makro @error przyjmuje wartość -1 (funkcja próbuje zniszczyć kontrolkę należącą do innej aplikacji).

$hRTF - uchwyt do kontrolki edytora RTF


_GUICtrlRichEdit_AppendText

edytuj
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_AppendText($hRTF, $sText)

Funkcja dodaje tekst do tekstu w kontrolce (na końcu). Zwraca TRUE gdy sukces, FALSE gdy wystąpił błąd (@error przyjmuje wartość 101 - $hRTF nie zawiera uchwytu do kontrolki).

$hRTF - uchwyt do kontrolki edytora RTF

$sText - dopisywany tekst


_GUICtrlRichEdit_SetText

edytuj
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_SetText($hRTF, $sText)

Funkcja nadpisuje tekst w kontrolce. Zwraca TRUE gdy sukces, FALSE gdy wystąpił błąd (@error przyjmuje wartość 101 - $hRTF nie zawiera uchwytu do kontrolki).

$hRTF - uchwyt do kontrolki edytora RTF

$sText - nadpisywany tekst


_GUICtrlRichEdit_GetText

edytuj
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_GetText($hRTF [, $fCrToCrLf = False [, $iCodePage = 0 [, $sReplChar = ""]]])

Funkcja zwraca pobrany tekst z kontrolki RTF. Jeżeli wystąpił błąd zwraca pusty string "", a makro @error przyjmuje wartość:

101 - $hRTF nie zawiera uchwytu
102 - $fCrToCrLf ma inną wartość niż TRUE lub FALSE
103 - $iCodePage nie jest liczbą
700 - błąd wewnętrzny

$fCrToCrLf - konwersja każdego CR na CRLF, TRUE - tak, FALSE - nie (wartość domyślna)

$iCodePage - strona kodowa używana w tłumaczeniu, domyślna wartość 0, co oznacza domyślne ustawienie w systemie, CP_ACP - ANSI, 1200 - Unicode

$sReplChar - znak jaki ma być wstawiony w miejsce znaku występującego w odczytanym tekście, jeżeli nie występuje on w zadeklarowanej stronie kodowej. Domyślnie jest to pusty string, czyli znak zostanie pominięty. Makro @extended zawiera ilość podmian.

UWAGA: Zwracany jest czysty tekst, bez znaków formatujących.


_GUICtrlRichEdit_StreamFromFile

edytuj
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_StreamFromFile($hRTF, $sFilespec)

Funkcja wczytuje z pliku do kontrolki tekst w formacie RTF. Zwraca TRUE gdy sukces, lub FALSE gdy wystąpił błąd. Makro @error przyjmuje wtedy wartość:

 101 - $hRTF nie zawiera uchwytu
1121 - nie można otworzyć pliku
1122 - plik jest pusty
 700 - próba przesłania zbyt wielu znaków

$hRTF - uchwyt do kontrolki edytora RTF

$sFilespec - nazwa pliku do wczytania


_GUICtrlRichEdit_StreamFromVar

edytuj
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_StreamFromVar($hRTF, $sVar)

Funkcja wczytuje ze zmiennej do kontrolki tekst w formacie RTF. Zwraca TRUE gdy sukces, lub FALSE gdy wystąpił błąd. Makro @error przyjmuje wtedy wartość:

101 - $hRTF nie zawiera uchwytu
700 - próba przesłania zbyt wielu znaków

$hRTF - uchwyt do kontrolki edytora RTF

$sVar - nazwa zmiennej do wczytania


_GUICtrlRichEdit_StreamToFile

edytuj
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_StreamToFile($hRTF, $sFilespec [, $fIncludeCOM=True [, $iOpts=0 [, $iCodePage = 0]]])

Funkcja zapisuje tekst z kontrolki do pliku zachowując format RTF lub TXT. Zwraca TRUE gdy sukces, lub FALSE gdy wystąpił błąd. Makro @error przyjmuje wtedy wartość:

 101 - $hRTF nie zawiera uchwytu
 102 - nie można utworzyć pliku
1041 - $SFF_PLAINRTF nieprawidłowy dla pliku tekstowego
1042 - $opts: nieprawidłowa opcja
1043 - $SF_UNICODE jest ważne tylko dla pliku tekstowego
 700 - błąd wewnętrzny

$hRTF - uchwyt do kontrolki edytora RTF

$sFilespec - nazwa pliku do zapisania, jeżeli rozszerzenie jest .rtf (np. "tekst.rtf"), to plik będzie zapisany w formacie RTF, w przeciwnym razie jako TXT.

$fIncludeCOM -

$iOpts - dodatkowe opcje, domyślnie 0

$iCodePage - generowanie tekstu UTF-8 przy użyciu tej strony kodowej


_GUICtrlRichEdit_StreamToVar

edytuj
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_StreamToVar($hRTF [, $fRtf = True [, $fIncludeCOM=True [, $iOpts=0 [, $iCodePage = 0]]]])

Funkcja zwraca tekst z kontrolki w formacie RTF lub TXT, lub string pusty "" jeżeli wystąpił błąd. Makro @error przyjmuje wtedy wartość:

 101 - $hRTF nie zawiera uchwytu
1041 - $SFF_PLAINRTF nieprawidłowy dla pliku tekstowego
1042 - $opts: nieprawidłowa opcja
1043 - $SF_UNICODE jest ważne tylko dla pliku tekstowego
 700 - internal error 

$hRTF - uchwyt do kontrolki edytora RTF

$fRtf - TRUE - zwracany tekst w formacie RTF, FALSE - zwracany tylko czysty tekst (TXT)

$fIncludeCOM -

$iOpts - dodatkowe opcje, domyślnie 0

$iCodePage - generowanie tekstu UTF-8 przy użyciu tej strony kodowej


Tworzenie i obsługa kontrolki edytora RTF

edytuj
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

;tworzenie okna GUI
$hGui = GUICreate("Test edytora RTF", 320, 300)
;tworzenie kontrolki edytora RTF
$hREdit = _GUICtrlRichEdit_Create($hGui, "Tekst początkowy.", 10, 10, 300, 250, _
                                  BitOR($WS_HSCROLL, $WS_VSCROLL, $ES_MULTILINE))

GUISetState()

MsgBox(0, "", "Dopisanie tekstu",5)
;dopisywanie tekstu do kontrolki (z użyciem znaków kontrolnych formatu RTF)
_GUICtrlRichEdit_AppendText($hREdit, "{\rtf \par Dopisuję trochę {\b wytłuszczonego tekstu}.\par }")

;zapisanie do pliku tekstu w formacie RTF
_GUICtrlRichEdit_StreamToFile($hREdit, "bleble.rtf")

MsgBox(0, "", "Zmiana tekstu",5)
;zmiana tekstu
_GUICtrlRichEdit_SetText($hREdit, "Teraz inny tekst")

MsgBox(0,"","Wczytanie tekstu RTF z pliku")
;wczytanie tekstu RTF z pliku do kontrolki
_GUICtrlRichEdit_StreamFromFile($hREdit, "bleble.rtf")


Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

;odczyt tekstu z kontrolki
$txt = _GUICtrlRichEdit_GetText($hREdit)
MsgBox(0,"Tekst odczytany:", $txt)

;likwidacja kontrolki
_GUICtrlRichEdit_Destroy($hREdit)