Страница 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')
заменить на
Причем в данном случае 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
ну да, это же пример