Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2007, 22:07   #11
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Но проблема в том что я могу загружать картинку автоматически- нажимаю на as.bmp открыть с помощью и выбираю свою программу
Что значит автоматически? В любом случае ты обрабатываешь параметр командной строки в программе и загружаешь картинку из файла. Если это не сделать твоя программа просто запустится и никакой файл не откроет.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 06.08.2007 в 22:09.
mutabor вне форума Ответить с цитированием
Старый 06.08.2007, 22:18   #12
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

bill, выкинь каку, она же только для БМП.

Вот способ получше:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
   Image1.Picture.Bitmap:=TBitmap.Create;
end;
procedure TForm1.Image1Click(Sender: TObject);
begin
   if image1.Picture.Graphic.Empty then showmessage('картинки нет')
      else showmessage('картинка есть');
end;
procedure TForm1.FormClick(Sender: TObject);
begin
   image1.Picture.LoadFromFile('h:\aa_img.jpg');
end;
Alex21 вне форума Ответить с цитированием
Старый 07.08.2007, 11:59   #13
bill
Форумчанин
 
Аватар для bill
 
Регистрация: 26.04.2007
Сообщений: 440
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Что значит автоматически? В любом случае ты обрабатываешь параметр командной строки в программе и загружаешь картинку из файла. Если это не сделать твоя программа просто запустится и никакой файл не откроет.
1. Я хотел описать словами такую процедуру действий- есть некий файл as.bmp ,я нажимаю на него правой кнопкой мыши, нахожу открыть с помощью и выбираю свою прогу ,которая при нажатии естес-но запускается и ,запустившись ,уже имеет загруженную картинку в image.
2. с командной строкой я еще не работал и поэтому не могу ничем похвастаться. Это все таки не image1.picture.loadfromfile('as.bmp '); Там все сложнее.
bill вне форума Ответить с цитированием
Старый 08.08.2007, 01:02   #14
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
1. Я хотел описать словами такую процедуру действий- есть некий файл as.bmp ,я нажимаю на него правой кнопкой мыши, нахожу открыть с помощью и выбираю свою прогу ,которая при нажатии естес-но запускается и ,запустившись ,уже имеет загруженную картинку в image.
То есть ты ее при дизайне туда загрузил?
Если да, при создании запиши в ту самую bool переменную true или так объяви
var loaded: boolean = true;
Сама картинка в Image не полезет, тебе ее туда нужно загрузить. А раз это делаешь ты, следовательно вполне хватает однобайтового boolean, вместо лишнего битмапа.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 09.08.2007, 20:25   #15
bill
Форумчанин
 
Аватар для bill
 
Регистрация: 26.04.2007
Сообщений: 440
По умолчанию

1.
Цитата:
Сообщение от mutabor Посмотреть сообщение
То есть ты ее при дизайне туда загрузил?
А что значит при дизайне загрузил? К тому же так называемый процесс я еще пока не разрабатывал. Этим займусь позже, обновляя версию проги. Сейчас просто нет времени этим заниматься. Пока надо еще найти картинку в image.
2. мне одно не понятно - создаем image1.picture.bitmap:=tbitmap.crea te;
почему вообще создаем именно bitmap а не обьект graphic типа tgraphic?
мы ведь потом имеено через него узнаем есть ли картинка - if image1.picture.graphic.empty ......

Последний раз редактировалось bill; 09.08.2007 в 20:37.
bill вне форума Ответить с цитированием
Старый 09.08.2007, 22:49   #16
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Есть такие понятия в визуальном программировании design time и runtime. Первое означает использование Object Inspector (окошко слева в Дельфи) для изменения свойств компонентов. Второе означает изменения свойств уже во время выполнения программы. Image.Picture это кстати тоже свойство.

Поехали дальше. Объясняю на пальцах. Допустим ты положил в ящик стола 100 рублей, а через минуту ломаешь голову над тем как узнать есть там 100 рублей или нет. То же самое ты делаешь в своей программе. Загружаешь картинку а потом пытаешься определить или она там есть. Она там будет только если ты ее туда загрузил.

Свойство Graphic.Empty удобно использовать, но раз уж оно недоступно, достаточно просто создать свою переменную выполняющую те же функции.

з.ы. Кстати после первой же загрузки картинки можно смело использовать свойство Image.Picture.Graphic.Empty. Ошибки уже не будет.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 09.08.2007 в 22:57.
mutabor вне форума Ответить с цитированием
Старый 10.08.2007, 07:37   #17
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Допустим ты положил в ящик стола 100 рублей, а через минуту ломаешь голову над тем как узнать есть там 100 рублей или нет. То же самое ты делаешь в своей программе. Загружаешь картинку а потом пытаешься определить или она там есть. Она там будет только если ты ее туда загрузил.

Свойство Graphic.Empty удобно использовать, но раз уж оно недоступно, достаточно просто создать свою переменную выполняющую те же функции.

з.ы. Кстати после первой же загрузки картинки можно смело использовать свойство Image.Picture.Graphic.Empty. Ошибки уже не будет.
Оригинальная трактовка парадокса Шредингера.
По сути .create - выступает в роли ящика (в роли создания ящика)
Alex21 вне форума Ответить с цитированием
Старый 10.08.2007, 11:16   #18
bill
Форумчанин
 
Аватар для bill
 
Регистрация: 26.04.2007
Сообщений: 440
По умолчанию

mutabor, оригинально придумал про 100 рублей. )
1.Про дизайнтайм и рантайм я знал просто не понял что ты имел ввиду вначале.
Картинку я загружаю при рантайме обычно(с помощью диалога). Сэтим проблем не будет.
1. а. Но все таки как я же писал- если я ее хочу загрузить(не знаю как выразится точнее- может определить на загрузку?) еще до выполнения проги - нахожу некий as.bmp выбираю првой кнопкой мыши открыть с помощью и свою прогу. Она запускается и запустившись уже имеет картинку.
Я не пойму как мне описать подобное действие- по идее я должен так загружать картинку процедуре в form1.create своей проги если я сделал эти вышеперечисленные действия. Но как спросить сделал ли я их и как тогда узнать имя картинки над которой провел эти действия(безобразия )))?
Да самое главное- загр=ю не при дизайнтайме!
P.s получается я перефрозировал последней пост mutabor-а - но т.е главный вопрос как это сделать?
2. Из любопытства- кто такой Шредингер? И что за пародокс?
bill вне форума Ответить с цитированием
Старый 10.08.2007, 11:32   #19
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от bill Посмотреть сообщение
2. Из любопытства- кто такой Шредингер? И что за пародокс?
Кот Шредингера
Alex21 вне форума Ответить с цитированием
Старый 10.08.2007, 21:08   #20
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Слов больше нет, перехожу на код

Открыть с помощью.
На форме один имидж и одна кнопка.

Код:
var
  Form1: TForm1;
  empty: boolean = true; //да, это она :)

procedure TForm1.FormCreate(Sender: TObject);
const
  Ext: array[0..3] of string = ('.bmp','.jpg','.jpeg','.ico'); //*
var
  fn,fe: string; //filename, fileext
  i: integer;
begin
if ParamCount > 0 then
  begin 
  fn:=ParamStr(1);
  fe:=ExtractFileExt(fn);
  for i:=0 to length(Ext)-1 do
    if AnsiLowerCase(fe) = Ext[i] then
      begin
      Image1.Picture.LoadFromFile(fn);
      empty:=false;
      Break;
      end;
  if empty then ShowMessage('Не суйте в меня всякую гадость');
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if empty then ShowMessage('Empty') else
ShowMessage('Not Empty');
end;
* массив Ext заполнять обязательно маленькими буквами
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 10.08.2007 в 21:27. Причина: немного подправил
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текст + картинка Killbrum Помощь студентам 13 26.05.2008 22:33
Картинка в Memo Aleksandr Общие вопросы Delphi 4 21.05.2008 14:15
Картинка в пеинте! Altera Общие вопросы Delphi 3 01.03.2008 22:58
не отображается картинка sstyle JavaScript, Ajax 3 30.01.2008 02:59
CGI-картинка AidarBik PHP 0 01.01.2008 18:03