Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Статус бар для программы читающей *.bmp файлы [D7, XP]


sunrise13 ©   (2009-06-04 21:33:00) 

Помогите пожалусто. Я хочу сделать строку состояния (StatusBar) просматривающую параметры bmp, делаю все как по

инструкции. Даже сделал легкий вариант. Опен, ексит. Картинку просматривает. Создаю статус бар. Пишу в 1 панели

(text) :

StatusBar.Panels[0].Text :=
 Format('%d x %d', [Image.Picture.Width, Image.Picture.Height]);

Во 2 это:

StatusBar.Panels[1].Text := OpenDialog.FileName;

(Все размеры все расставленно)

Патом добавляю пункт в скрипте:

procedure TPictureForm.UpdateStatusBar;
begin
 if Image.Width <> 0 then
 begin
   StatusBar.Panels[0].Text := Format('%d x %d',
     [Image.Picture.Width, Image.Picture.Height]);
   StatusBar.Panels[1].Text := OpenDialog.FileName;
 end
 else // в компоненте Image нет рисунка
 begin
   StatusBar.Panels[0].Text := '';
   StatusBar.Panels[1].Text := '';
 end;
end;

И добавляю строчку в Open... :

procedure TPictureForm.OpenMenuItemClick(Sender: TObject);
begin
 if OpenDialog.Execute then
 begin
   Image.Picture.LoadFromFile(OpenDialog.FileName);
 end;
 UpdateStatusBar;
end;

И при запуске он выдаёт ошибку тут :

procedure TPictureForm.OpenMenuItemClick(Sender: TObject);
begin
 if OpenDialog.Execute then
 begin
   Image.Picture.LoadFromFile(OpenDialog.FileName);
 end;
  UpdateStatusBar;
end;

Помогите в чём ошибка???
Вот мой скрипт:

unit Unit1;

interface

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

type
 TPictureForm = class(TForm)
   MainMenu: TMainMenu;
   FileMenuItem: TMenuItem;
   OpenMenuItem: TMenuItem;
   N1: TMenuItem;
   ExitMenuItem: TMenuItem;
   OpenDialog: TOpenDialog;
   Image: TImage;
   StatusBar: TStatusBar;
   procedure ExitMenuItemClick(Sender: TObject);
   procedure OpenMenuItemClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 PictureForm: TPictureForm;

implementation

{$R *.dfm}

procedure TPictureForm.ExitMenuItemClick(Sender: TObject);
begin
 Close;
end;

procedure TPictureForm.OpenMenuItemClick(Sender: TObject);
begin
 if OpenDialog.Execute then
 begin
   Image.Picture.LoadFromFile(OpenDialog.FileName);
 end;
end;

end.

Ошибка:
[Ошибка] Unit1.pas(45): Undeclared identifier: 'UpdateStatusBar'
[Ошибка] Unit1.pas(48): Undeclared identifier: 'UpdateStatusBar'
[Ошибка] Unit1.pas(50): Undeclared identifier: 'Image'
[Ошибка] Unit1.pas(52): Undeclared identifier: 'StatusBar'
[Ошибка] Unit1.pas(52): Missing operator or semicolon
[Ошибка] Unit1.pas(53): ']' expected but identifier 'Picture' found
[Ошибка] Unit1.pas(53): 'END' expected but ',' found
[Ошибка] Unit1.pas(56): ';' expected but 'ELSE' found
[Ошибка] Unit1.pas(58): Undeclared identifier: 'StatusBar'
[Ошибка] Unit1.pas(58): Missing operator or semicolon
[Ошибка] Unit1.pas(59): Missing operator or semicolon
[Ошибка] Unit1.pas(59): '(' expected but ':=' found
[Ошибка] Unit1.pas(60): '.' expected but ';' found
[Предупреждение] Unit1.pas(61): Text after final 'END.' - ignored by compiler
[Фатальная ошибка] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

Помогите доделать программу плиз вот я ее выложил : http://dump.ru/file/2844204

Исправте чтобы статус бар работал
Delphi 7
Спасиб


sunrise13   (2009-06-05 11:37:00) [1]

Удалено модератором


{RASkov}   (2009-06-04 23:02:00) [2]

Вот только подскажу моменты. Например тут:
> [0] sunrise13   (04.06.09 21:33)
> if Image.Width<> 0 then
> begin
>   StatusBar.Panels[0].Text := Format('%d x %d',
>     [ Image.Picture.Width, Image.Picture.Height]);

проверяешь одно, а (используешь)выводишь другое. Тем более Image(если это TImage) Width без содержания в нем картинки может иметь отличную от ноля....

> Вот мой скрипт:
.....

и где в твоем "скрипте" процедура(т.н. метод TPictureForm) UpdateStatusBar;?
Ну и само собой разберись с точками, шмочками, скобками, шмопками и иже с ними :)


{RASkov}   (2009-06-04 22:51:00) [3]

> [3] sunrise13   (04.06.09 22:17)
> Исправь прогу плиз

Как же ты так умудрился ее набрать? Методом тыка шоль? :)
Или в инете спёр такой кривой код?)
Сам исправь.... там делов 10 сек..... другие среду дольше будут загружать, да твой код копипастить туда....
Тебе же уже подсказали где ошибки, и главный подсказчик - компилятор. Да и тут уже сказали в чем твои ошибки.... Мозгов нужно чуть больше чем у курицы, что б сообразить исправить :) Удачи.


oldman   (2009-06-04 22:23:00) [4]

Я по пятницам не подаю...


sunrise13   (2009-06-04 22:17:00) [5]

Исправь прогу плиз И выложи на дамп. Там просто синтаксис исправить я хз какой :-(
Спасиб


oldman   (2009-06-04 21:57:00) [6]


> procedure TPictureForm.UpdateStatusBar;
> begin
>  if Image.Width <> 0 then Вот здесь чего-то не хватает
>  begin
>    StatusBar.Panels[0].Text := Format('%d x %d',
>      [Image.Picture.Width, Image.Picture.Height ]); Это зачем?
>    StatusBar.Panels[1].Text := OpenDialog.FileName;
>  end И здесь чего-то не хватает
>  else // в компоненте Image нет рисунка
>  begin
>    StatusBar.Panels[0].Text := '';
>    StatusBar.Panels[1].Text := '';
>  end;
> end;


Это только в одном куске...

А Undeclared identifier: 'UpdateStatusBar' потому, что процедуру объявлять надо! Значит, ошибки не только синтаксические.

Учебник, хелп и русско-английский словарь читать нам по сроку службы не положено?


oldman   (2009-06-04 21:47:00) [7]


> Ошибка:
> [Ошибка] Unit1.pas(45): Undeclared identifier: 'UpdateStatusBar'
> [Ошибка] Unit1.pas(48): Undeclared identifier: 'UpdateStatusBar'
> [Ошибка] Unit1.pas(50): Undeclared identifier: 'Image'
> [Ошибка] Unit1.pas(52): Undeclared identifier: 'StatusBar'
> [Ошибка] Unit1.pas(52): Missing operator or semicolon
> [Ошибка] Unit1.pas(53): ']' expected but identifier 'Picture'
> found
> [Ошибка] Unit1.pas(53): 'END' expected but ',' found
> [Ошибка] Unit1.pas(56): ';' expected but 'ELSE' found
> [Ошибка] Unit1.pas(58): Undeclared identifier: 'StatusBar'
> [Ошибка] Unit1.pas(58): Missing operator or semicolon
> [Ошибка] Unit1.pas(59): Missing operator or semicolon
> [Ошибка] Unit1.pas(59): '(' expected but ':=' found
> [Ошибка] Unit1.pas(60): '.' expected but ';' found


Просто у тебя в программе полно синтаксических ошибок...


Наверх

Титульная страница Поиск, карта сайта Написать письмо