Co jest w tym źle!

0

Witam wszystkich!

Ucze się dopiero Delphi i napotkałem błąd, w poniższym kodzie jest jakiś błąd:

kod:

unit MainFrmU;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ToolWin, ExtCtrls;

const
AppName = 'Text Edit 1.0'; *nazwa aplikacji

type
TMainFrm = class(TForm)
ControlBar1: TControlBar;
Tolls: TToolBar;
HelpBar: TStatusBar;
RichEdit: TRichEdit;
btnNew: TToolButton;
btnOpen: TToolButton;
OpenDialog: TOpenDialog;
btnSave: TToolButton;
SaveDialog: TToolButton;
SaveAs: TToolButton;
procedure RichEditChange(Sender: TObject);
procedure btnOpenClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure SaveAsClick(Sender: TObject);

private
{ Private declarations }

procedure OpenFile(FName : String);

public
{ Public declarations }
end;

var
MainFrm: TMainFrm;

implementation

{$R *.dfm}

procedure TMainFrm.RichEditChange(Sender: TObject);
begin
*wyswietlanie tytulu aplikacji na pasku
Caption := AppName;
end;

procedure TMainFrm.btnOpenClick(Sender: TObject);
begin
{procedura wczytuje do RichEdit plik tekstowy}

OpenDialog.Execute; *wywolanie okna (wyswietlanie).
{Wczytaj do RichEdit plik tekstowy. Własciwosc "File Name"
komponentu "OpenDialog" przechowuje nazwę pliku tekstowego}
OpenFile(OpenDialog.FileName);
end;

procedure TMainFrm.OpenFile (FName: String);
begin

{Wczytaj do RichEdit plik tekstowy. Własciwosc "FileName" komponentu
"OpenDialog"
przechwouję nazwę pliku tekstowego}
RichEdit.Lines.LoadFromFile (OpenDialog.FileName);

Caption := ExtractFileName (OpenDialog.FileName) + ' - ' + AppName;
*wyswietlanie na pasku tytulowym nazwy wczytanego pliku

end;

procedure TMainFrm.btnSaveClick(Sender: TObject);
begin

{
Jezeli plik nie zostal wczesniej zapisany wywolana zostaje
procedura "btnSaveAsClick". Jezeli plik zostal juz wczesniej zapisany
nastepuje zapisanie pliku bez wywolania okna "Otworz".

}

if SaveDialog.FileName = '' then *jeżeli nie znamy nazwy pliku
btnSaveAsClick(Sender) *wywolaj procedure...
else *... w przeciwnym wypadku zapisz plik...
RichEdit.Lines.SaveToFile(SaveDialog.FileName);

end;

procedure TMainFrm.SaveAsClick(Sender: TObject);
begin

{W tej procedurze nastepuje wywolanie oknna "Otworz", a nastepnie
zapisanie pliku. Wartosc "SaveDialog.FileName" przechowuje
sciezkę pliku tekstwoego pod jakim zapisales swoj dokument. Na samym koncu
nastepuje
zmiana wlasciwosci "Caption" okna, a pozniej ustawienie wartosci "Modified"
na "False"}

if SaveDialog.Execute then
RichEdit.Lines.SaveToFile(SaveDialog.FileName); *zapisz plik
Caption := ExtractFileName (SaveDialog.FileName) + ' - ' + AppName;
RichEdit.Modified := False; //ustaw wartosc na "False"

end;

end.

Pomóżcie bo stoję w miejscu z n
auką, nie wiem gdzie tu jest błąd!

????

0

Jak to próbujesz kompilować to kompilator wyrzuca błąd i przerywa proces kompilacji.
Wklej tu treść tego błędu i zaznacz pogrubieniem linijkę w której ten błąd występuje...
Inaczej to trudno będzie pomóc :)
--Pracuję w Delphi
+---------------------------+
Pozdrawiam
GG: 4079188
[email protected]

0

Maciek K. napisał:
Witam wszystkich!

Znalazłem tylko błędy logiczne, zaraz je wymienię:

&gtprocedure TMainFrm.RichEditChange(Sender: TObject);
&gtbegin
&gt*wyswietlanie tytulu aplikacji na pasku
&gtCaption := AppName;
&gtend;

Nie rozumiem czemu dałeś to tu. Nie lepiej wpisać do Caption w inspektorze obiektów lub w OnCreate formy?

&gtprocedure TMainFrm.btnOpenClick(Sender: TObject);
&gtbegin
&gt{procedura wczytuje do RichEdit plik tekstowy}
&gt
&gtOpenDialog.Execute; *wywolanie okna (wyswietlanie).
&gt{Wczytaj do RichEdit plik tekstowy. Własciwosc "File Name"
&gtkomponentu "OpenDialog" przechowuje nazwę pliku tekstowego}
&gtOpenFile(OpenDialog.FileName);
&gtend;

Powinno być:
if OpenDialog.Execute then OpenFile(OpenDialog.FileNam)

  • nie otwiera pliku, gdy użytkownik nacisnął anuluj.

&gtprocedure TMainFrm.OpenFile (FName: String);
&gtbegin
&gt
&gt{Wczytaj do RichEdit plik tekstowy. Własciwosc "FileName" komponentu
&gt"OpenDialog"
&gtprzechwouję nazwę pliku tekstowego}
&gtRichEdit.Lines.LoadFromFile (OpenDialog.FileName);

Czemu FName? Masz OpenDialog.FileName, który przechowuje to samo. Usuń parametr (szybsze wywołanie procedury).

&gtCaption := ExtractFileName (OpenDialog.FileName) + ' - ' + AppName;
&gt*wyswietlanie na pasku tytulowym nazwy wczytanego pliku
&gt
&gtend;

&gtprocedure TMainFrm.SaveAsClick(Sender: TObject);
&gtbegin
&gt
&gt{W tej procedurze nastepuje wywolanie oknna "Otworz", a nastepnie
&gtzapisanie pliku. Wartosc "SaveDialog.FileName" przechowuje
&gtsciezkę pliku tekstwoego pod jakim zapisales swoj dokument. Na samym koncu
&gtnastepuje
&gtzmiana wlasciwosci "Caption" okna, a pozniej ustawienie wartosci "Modified"
&gtna "False"}
&gt
&gtif SaveDialog.Execute then

Brakuje begin

&gtRichEdit.Lines.SaveToFile(SaveDialog.FileName); *zapisz plik
&gtCaption := ExtractFileName (SaveDialog.FileName) + ' - ' + AppName;
&gtRichEdit.Modified := False; //ustaw wartosc na "False"

Brakuje end - te trzy instrukcje powinny być uruchomione, gdy jest spełniony warunek, a bez bagin-end jest wykonywana tylko pierwsza.

&gtend;
&gt
&gtend.

--Vogel [Delphi 6 PE]

I TY możesz nauczyć się grać w bierki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1