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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2010, 07:42   #21
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это видимо
Угадал, дружище. Я на скорую руку писал, и проверки ставить чет влом было ))))
Цитата:
faAnyFile-faDirectory
По-моему это не даст верный резальтат.
Имхо нужно писать faAnyFile and not faDirectory. Впрочем не проверял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.09.2010, 08:06   #22
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Код:
function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;
Тут простые логические опирции не проканают.

Эти 2 кода работают идентично, но 2 выглядит куда приятнее
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  SR: TSearchRec;
begin
  Memo1.Lines.Clear;
  FindFirst ('d:\TEMP\*.*', faAnyFile, SR);
  repeat
    if (SR.Attr and faDirectory) <> faDirectory then begin
      Memo1.Lines.Add (SR.Name);
    end;
  until FindNext (SR) <> 0;
end;
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  SR: TSearchRec;
begin
  Memo1.Lines.Clear;
  FindFirst ('d:\TEMP\*.*', faAnyFile-faDirectory, SR);
  repeat
    Memo1.Lines.Add (SR.Name);
  until FindNext (SR) <> 0;
end;
Sibedir вне форума Ответить с цитированием
Старый 22.09.2010, 08:51   #23
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Тут простые логические опирции не проканают.
Друже, Учи матчасть ) Эти выражения дуальны. Они могут быть использованы не только в логическом выражении
А чтоб не быть голословным приведу пример:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  SR: TSearchRec;
begin
  Memo1.Lines.Clear;
  if FindFirst ('c:\temp\*', faAnyFile and not faDirectory, SR)<>0 then exit;
  repeat
      Memo1.Lines.Add (SR.Name);
  until FindNext (SR) <> 0;
  FindClose(sr);
end;
Найдет все файлы без директорий
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.09.2010, 08:56   #24
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Все, разобрался как должно быть, чтобы первый файл брался. Вот рабочий код:
Код:
procedure TForm1.BtnRecordClick(Sender: TObject);
var
 x,y,i:integer;
 b:TBitmap;
 sr:TSearchRec;
 s:string;
begin
 b:=TBitmap.Create;
 FindFirst(Form1.StatusBar3.Panels[1].Text +'*.bmp',faAnyFile,sr);
// FindNext(sr);
 with StringGrid1 do
  for i:=0 to RowCount-1 do begin
   b.LoadFromFile(Form1.StatusBar3.Panels[1].Text + sr.Name);
   b.Canvas.Rectangle(90,200,600,90);
   b.Canvas.Font.Color:=clBlack;
   b.Canvas.Font.Size:=50;
   b.Canvas.Font.Name:='Verdana';
   b.Canvas.TextOut(120,100,Cells[0,i]);
   b.SaveToFile(Form1.StatusBar3.Panels[1].Text + sr.Name + '.tiff');
   if FindNext(sr)<>0 then break;
  end;
 b.Free;
 FindClose(sr);
 ShowMessage('             Выполнено!             ');
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 22.09.2010, 08:57   #25
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну вот и молодчина. Поставь себе плюс в репу )))
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.09.2010, 09:04   #26
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Если бы я мог сам себе поставить
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 22.09.2010, 09:22   #27
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Упс. Ну не знал, не знал я. В оправдание могу лишь вяло заметить, что опирация с минусом (в данном конкретном случае) будет выполняться быстрее (вроде бы).
Sibedir вне форума Ответить с цитированием
Старый 22.09.2010, 13:32   #28
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

поидее Делфи должен константу подставить а не вычислять каждый раз, так что разница...хз есть ли.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.09.2010, 13:36   #29
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Ну вот, на этапе компиляции ж время экономится.
Блин, ща спалюсь, ща спалюсь.

Последний раз редактировалось Sibedir; 22.09.2010 в 13:39.
Sibedir вне форума Ответить с цитированием
Старый 22.09.2010, 14:01   #30
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

бинарные операции тоже быстры.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отрисовка updown edik Компоненты Delphi 0 27.12.2009 12:39
Присвоение текста в цикле AvaMight Общие вопросы Delphi 2 16.06.2009 01:23
отрисовка локации Juffin Общие вопросы Delphi 4 21.04.2009 14:26
Отрисовка компонентов Dr.Badnezz Компоненты Delphi 1 04.01.2009 16:50
Отрисовка CheckListBox. NikLik Компоненты Delphi 0 21.09.2008 21:58