Страница 2 из 3

Добавлено: 30 авг 2005, 18:02
Duncon
Респект тебе man , это то что я хотел :)

Добавлено: 30 авг 2005, 20:30
RoKon
А если так?
добавить в процедуру переменную Filter типа TStringList, а строчку

Код: Выделить всё

if (Ext = '.BMP') or (Ext = '.JPG') or (Ext = '.JPEG') or (Ext = '.GIF') 
заменить на

Код: Выделить всё

if Filter.Find(Ext, i)
Причем в данном случае Find не чувствителен к регистру, а список можешь готовить заранее Filter.Add('.bmp'); Filter.Add('.jpg'); ...

Добавлено: 31 авг 2005, 09:51
Duncon
Выглядит красиво..
А мона примерчик, а то уменя какие-то проблемы, мож че не так вотворяю. Да и Delphi-а выдал что у меня Uses не полон(завершон)??

Добавлено: 31 авг 2005, 11:25
RoKon
На форме лежит TButton и TEdit. При нажатии кнопки проверяется наличие текста из Edit1 в списке из (".bmp", ".jpg").

Код: Выделить всё

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var s:TStringList;
  EXT:string;
  i: integer;
begin
 EXT:=Edit1.Text;
 s:=TStringList.Create;
 s.Add('.BMP');
 s.Add('.JPG');
 //...
 if s.Find(EXT,i) then ShowMessage('Yes')
 else ShowMessage('NO');
 s.Free;
end;

end.

Добавлено: 31 авг 2005, 11:36
RoKon
Критерии фильтрации удобнее хранить во внешней переменной, и передавать потом в качестве параметра поэтому строки s:=TStringList.Create; и s.Free; лучше перенести куда-нить в OnFromCreate и а OnFormClose соответственнно.
Или непосредственно перед вызовом процедуры поиска s:=TStringList.Create; s.Add..., а после сразу s.Free

Добавлено: 31 авг 2005, 12:17
LAngel
Если мне память не изменяет, то TStrings использовать не рекомендуется, лучше взять его потомка TStringList.

Добавлено: 31 авг 2005, 12:29
Eugie
Да, TStrings содержит абстрактные методы, поэтому сконструировать непосредственно его экземпляр нельзя.

Добавлено: 31 авг 2005, 12:51
RoKon
Да, да, конечно, не TStings, а TStringList
Сорри, очепятка получилась, даже не знаю почему, прогонял ведь пример, а TStings он даже не откомпилируется.

Добавлено: 31 авг 2005, 18:08
Duncon
Но здесь получается, что скрипт проверяет уже строку в Edite, а не содиржимое папки...

Добавлено: 01 сен 2005, 00:15
RoKon
ну да, это же пример