-
Gdy edytuję plik i chcę otworzyć nowy (OpenDialog) to pyta czy chce zapisać zmiany w tym aktualnym i mam do wyboru: Tak, Nie, Anuluj. I nie działa mi Anuluj bo gdy kliknę Anuluj to i tak włączy OpenDialog a nie wróci do programu...
-
Mam zdarzenie OnClose - pyta czy chce zapisać plik - jak klikam Anuluj to i tak zamknie program...
-
Jak pobrać ile znaków ma najdłuższa linijka w RichEdit?
-
Dlaczego gdy mam w RichEdit: ScrollBars na ssBoth to wyświetla mi tylko ten pionowy? (dopiero jak włącze StatusBara to się pojawia na stałe)
1, 2 - Gdzie jest do jasnej ....... jest kod, którym to robisz -? Mamy zgadywać jak to robisz? Popatrz na funkcję OnClose - na liście parametrów jest var Action: TCloseAction
- możesz zapobiec wyłączeniu aplikacji, jeżeli ustawisz w OnClose Action := caNone
;
3 - Przeleć pętlą przez wszystkie linie w RichEdit, zapamiętaj gdzie jest max
4 - Właściwość WordWrap
- poeksperymentuj...
Z pierwszym sobie już poradziłem.
Odnośnie drugiego:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
okienko: integer;
begin
if zmiany = 1 then
begin
okienko := MessageBox(Handle, pchar('Czy chcesz zapisać zmiany do pliku "'+plik+'"?'), 'Notatnik', MB_YESNOCANCEL + MB_ICONWARNING);
if okienko = mrYes then
begin
if otwartyplik = 1 then sRichEdit1.Lines.SaveToFile(plik)
else
begin
if SaveDialog1.Execute then sRichEdit1.Lines.SaveToFile(SaveDialog1.FileName+'.txt');
end;
end;
end;
end;
Dzięki madmike.
Ten z tym Scrollbarem kombinowałem. Robię klon Notatnika. Wszystko zachowuje się tak:
Po włączeniu programu:
- RichEdit1.ScrollBars := ssBoth;
- RichEdit1.WordWrap := False;
*--- nie działa --- --- pojawia się tylko jeden (pionowy) scrollbar ---
Po zaznaczeniu Widok -> Zawijaj wiersze:
- RichEdit1.ScrollBars := ssVertical;
- RichEdit1.WordWrap := True;
--- działa ---
Po odznaczeniu Widok -> Zawijaj wiersze:
- RichEdit1.ScrollBars := ssBoth;
- RichEdit1.WordWrap := False;
--- działa ---
Ha, ja wiem jak się zachowuje, chciałem, żebyś ty się przekonał: :)
- RichEdit1.ScrollBars := ssBoth;
- RichEdit1.WordWrap := fale;
--- działa ---
I gra?
No napisałem, że to własnie nie działa xD Przy włączeniu programu tylko pionowy pasek mi się pojawia a poziomego nie ma... mam ssBoth i WordWrap na false.
Pokaże się dopiero w momencie kiedy tekst będzie wyjeżdżał
poza richedit. Taka uroda RichEdit.
Można spróbować 'oszukiwać', spróbuj na początek w OnCreate
formatki na której masz RichEdit wstawić:
ShowScrollBar(RichEdit1.Handle, SB_HORZ, TRUE); //odpowiada za stałe pokazywanie poziomego scrollbara
ShowScrollBar(RichEdit1.Handle, SB_VERT, TRUE); //odpowiada za stałe pokazywanie pionowego scrollbara
Dopasuj sobie to RichEdit1
do nazwy swojego RichEdit :)
BTW 1: W katalogu gdzie masz zainstalowane delphi powinien być katalog Demo - tam gdzieś jest przykład edytora właśnie na richedit - przejrzyj sobie!
BTW 2: Takie tematy do działu NEWBIE!!!