Пример использования стандартного функционала класса TStringList для удаления дубликатов из переменной t
var
t:TStringList;
begin
t:=TStringList.Create;
t.Add('1');
t.Add('2');
t.Add('1');
t.Add('3');
t.Add('2');
t.Add('3');
Label1.Caption:=IntToStr(t.Count);//количество строк в списке 6
t.Sorted:=True;
t.Duplicates:=dupIgnore;
t.Clear;
t.BeginUpdate;
t.Add('1');
t.Add('2');
t.Add('1');
t.Add('3');
t.Add('2');
t.Add('3');
t.EndUpdate;
Label2.Caption:=IntToStr(t.Count);//количество строк в списке 3
что нам и было необходимо.
кому лень писать, что то свое есть готовая процедура для этих целей
//remove duplicate strings from the string list
procedure RemoveDuplicates(const stringList : TStringList) ;
var
buffer: TStringList;
cnt: Integer;
begin
stringList.Sort;
buffer := TStringList.Create;
try
buffer.Sorted := True;
buffer.Duplicates := dupIgnore;
buffer.BeginUpdate;
for cnt := 0 to stringList.Count - 1 do
buffer.Add(stringList[cnt]) ;
buffer.EndUpdate;
stringList.Assign(buffer) ;
finally
FreeandNil(buffer) ;
end;
end;
пример использования
var
sl : TStringList;
cnt : integer;
begin
Randomize;
sl := TStringList.Create;
try
for cnt := 1 to 1000 do
sl.Add(IntToStr(Random(2000))) ;
ShowMessage('With duplicates: ' + #13#10 + IntToStr(sl.Count)) ;
RemoveDuplicates(sl) ;
ShowMessage('Without duplicates: ' + #13#10 + IntToStr(sl.Count)) ;
finally
sl.Free;
end;
end;
процедура и пример ее использования были взяты с сайта http://delphi.about.com/ только в целях сохранения и передачи информации))
Есть идея по созданию интересной программы?
вторник, 20 апреля 2010 г.
четверг, 8 апреля 2010 г.
Delphi и иконки (Delphi for ico)
Короче дело обстояло таким образом, я решил прикрутить к программе красивые иконки, нашел сайт по их поиску http://www.iconfinder.net/ и http://www.iconarchive.com/ все что было необходимо оставалось только за мной. Создал проект после чего бросил на форму ImageList1
нажал правой клавишей на компоненте и выбрал пункт меню imagelist editor
после чего открылось окно в котором можно добавить, удалить, заменить и экспортировать иконки
в окне нажал на кнопку ADD после чего выбрал необходимую мне иконку
после выбора иконки нажал кнопку ОК в imagelist editor'e после чего окно закрылось.
Иконки мне были необходимы для того, чтобы использовать их на кнопках в ToolBar1'е.
Бросил ToolBar1 на форму у ToolBar1'a свойство Images путем выбора из комбобокса сделал равным ImageList1. На ToolBar1'е нажав правой клавишей мыши и выбрав пункт меню New Button добавил кнопку на ToolBar ,
но вот незадача иконка которую я загрузил в ImageList1 была с прозрачным фоном а на кнопке была с белым фоном, что весьма плохо смотрелось(полный отстой я бы сказал). Скачал еще несколько иконок и заметил, что некоторые иконки отображаются корректно, а некоторые нет, хотя при просмотре просмоторщиком картинок все они на вид были одинаковыми, но как потом оказалось это лишь видимость.
Скачал бесплатный редактор иконок IcoFX и открыл один из исходников иконки (png) им после чего редактор мне предложил выбрать параметры будущей иконки (размер и палитра),
далее появилось окно расширенного импорта,
где задаются параметры прозрачности в которых методом научного тыка, я определил, что DELPHI определяет прозрачные участки по левому нижнему углу. Вот по этой причине и возникла проблема с непонятным белым фоном.
Спасибо за внимание.
нажал правой клавишей на компоненте и выбрал пункт меню imagelist editor
после чего открылось окно в котором можно добавить, удалить, заменить и экспортировать иконки
в окне нажал на кнопку ADD после чего выбрал необходимую мне иконку
после выбора иконки нажал кнопку ОК в imagelist editor'e после чего окно закрылось.
Иконки мне были необходимы для того, чтобы использовать их на кнопках в ToolBar1'е.
Бросил ToolBar1 на форму у ToolBar1'a свойство Images путем выбора из комбобокса сделал равным ImageList1. На ToolBar1'е нажав правой клавишей мыши и выбрав пункт меню New Button добавил кнопку на ToolBar ,
но вот незадача иконка которую я загрузил в ImageList1 была с прозрачным фоном а на кнопке была с белым фоном, что весьма плохо смотрелось(полный отстой я бы сказал). Скачал еще несколько иконок и заметил, что некоторые иконки отображаются корректно, а некоторые нет, хотя при просмотре просмоторщиком картинок все они на вид были одинаковыми, но как потом оказалось это лишь видимость.
Скачал бесплатный редактор иконок IcoFX и открыл один из исходников иконки (png) им после чего редактор мне предложил выбрать параметры будущей иконки (размер и палитра),
далее появилось окно расширенного импорта,
где задаются параметры прозрачности в которых методом научного тыка, я определил, что DELPHI определяет прозрачные участки по левому нижнему углу. Вот по этой причине и возникла проблема с непонятным белым фоном.
Спасибо за внимание.
Подписаться на:
Сообщения (Atom)