HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 08.01.2010, 01:01
patcher
Познающий
Регистрация: 15.12.2009
Сообщений: 81
С нами: 8634231

Репутация: 24
По умолчанию

Вот набросал процедурку:
Код:
procedure DeleteChars(chars:string; Text:TStrings);
var i:integer;
begin
for i:=1 to length(chars) do
Text.Text:=StringReplace(Text.Text, chars[i], '', [rfReplaceAll, rfIgnoreCase]);
end;
пример использования:
Код:
DeleteChars(Edit1.Text, Memo1.Lines);
при выполнения этого кода все символы, находящиися в Едит1 будут удалены из Memo1
 
Ответить с цитированием

  #12  
Старый 08.01.2010, 12:46
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами: 8680278

Репутация: 17
По умолчанию

Помню курсе на 3-ем такую задачку на assembler'е решал
 
Ответить с цитированием

  #13  
Старый 08.01.2010, 14:12
Markus_13
Познающий
Регистрация: 19.02.2009
Сообщений: 83
С нами: 9065564

Репутация: 50
Talking

блин, все ваши методы лажа, чекбоксы рулят xD
вот наилучшая реализация такой проги: скриншот
Код для FormOnCreate:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var b:byte; c:tCheckBox; e:tEdit; u:tButton; x,y,w,t:word;
begin
font:=screen.MenuFont;
canvas.Font:=font;
x:=8;y:=8;w:=0;
for b:=32 to 255 do begin
c:=tCheckBox.Create(self);c.Parent:=self;
c.Left:=x;c.Top:=y;c.Caption:=chr(b)+#32;
c.Hint:=c.Caption;c.ShowHint:=true;
c.Width:=canvas.TextWidth(c.Caption)+16;
c.Name:='c'+inttostr(b);c.Font:=canvas.Font;c.Show;
c.Checked:=(b>=$C0)or(b=$A8)or(b=$B8);
if b=255 then break;
t:=c.Width+8;
if t>w then w:=t;
inc(y,c.Height+8);
if y>clientHeight-18 then
begin inc(x,w);y:=8;end;
end;
clientWidth:=x+w;
e:=tEdit.Create(self);e.Parent:=self;
e.Left:=8;e.Top:=clientHeight-9;
e.AutoSize:=false;e.Width:=(clientWidth div 3)*2;
e.Name:='ee';e.Text:='test1АБВгде123';e.Show;
clientHeight:=e.Top+e.Height+9;
u:=tbutton.Create(self);u.Parent:=self;
u.Left:=e.Left*2+e.Width;u.Top:=e.Top;
u.Height:=e.Height;u.Width:=clientWidth-u.Left-9;
u.Caption:='Remove selected chars';
u.OnClick:=ButtonClick;
end;
Код для ButtonClick:
Код:
procedure TForm1.ButtonClick(Sender: TObject);
var k:word; b:byte; s:string;
begin
s:=tEdit(FindComponent('ee')).Text;
if length(s)=0 then exit;
for k:=1 to length(s)do begin
b:=ord(s[k]);if b<32 then b:=1 else
if tCheckBox(FindComponent('c'+inttostr(b))).Checked
then b:=1;s[k]:=chr(b);
end;k:=1;
while k<=length(s)do if s[k]=#1 then delete(s,k,1)else inc(k);
tEdit(FindComponent('ee')).Text:=s;
application.MessageBox('All selected chars removed!','');
end;
не забудьте также прописать FormCaption! это самое главное!!!
 
Ответить с цитированием

  #14  
Старый 08.01.2010, 14:35
nerezus
Флудер
Регистрация: 12.08.2004
Сообщений: 3,792
С нами: 11444066

Репутация: 2290


По умолчанию

Цитата:
procedure TForm1.FormCreate(Sender: TObject);
var b:byte; c:tCheckBox; e:tEdit; u:tButton; x,y,w,t:word;
begin
font:=screen.MenuFont;
canvas.Font:=font;
x:=8;y:=8;w:=0;
for b:=32 to 255 do begin
c:=tCheckBox.Create(self);c.Parent:=self;
c.Left:=x;c.Top:=y;c.Caption:=chr(b)+#32;
c.Hint:=c.Caption;c.ShowHint:=true;
c.Width:=canvas.TextWidth(c.Caption)+16;
c.Name:='c'+inttostr(b);c.Font:=canvas.Font;c.Show ;
c.Checked:=(b>=$C0)or(b=$A8)or(b=$B8);
if b=255 then break;
t:=c.Width+8;
if t>w then w:=t;
inc(y,c.Height+8);
if y>clientHeight-18 then
begin inc(x,w);y:=8;end;
end;
clientWidth:=x+w;
e:=tEdit.Create(self);e.Parent:=self;
e.Left:=8;e.Top:=clientHeight-9;
e.AutoSize:=false;e.Width:=(clientWidth div 3)*2;
e.Name:='ee';e.Text:='test1АБВгде123';e.Show ;
clientHeight:=e.Top+e.Height+9;
u:=tbutton.Create(self);u.Parent:=self;
u.Left:=e.Left*2+e.Width;u.Top:=e.Top;
u.Height:=e.Height;u.Width:=clientWidth-u.Left-9;
u.Caption:='Remove selected chars';
u.OnClick:=ButtonClick;
end;
Суперчитаемый код *ROFL*
 
Ответить с цитированием

  #15  
Старый 08.01.2010, 14:43
__mad
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
С нами: 9745696

Репутация: 104
По умолчанию

Цитата:
вот наилучшая реализация такой проги: скриншот
Если б чекбоксы были в одну колонку, то да, согласен, а так не дотягивает.
 
Ответить с цитированием

  #16  
Старый 08.01.2010, 14:58
Markus_13
Познающий
Регистрация: 19.02.2009
Сообщений: 83
С нами: 9065564

Репутация: 50
По умолчанию

Цитата:
Суперчитаемый код *ROFL*
это обфускация xD
шутка, я всегда так пишу, это еще я строки покороче сделал, обычно у меня строка такойже длины как окно компилятора - чтобы как можно больше кода на одном экране было видно =)

Цитата:
Если б чекбоксы были в одну колонку, то да, согласен, а так не дотягивает.
для тебя специально могу VIP версию написать - тока я неуверен что у тя разрешение экрана позволит видеть все чекбоксы)))
 
Ответить с цитированием

  #17  
Старый 08.01.2010, 18:31
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
С нами: 9023100

Репутация: 395


По умолчанию

Цитата:
Сообщение от Markus_13  
обычно у меня строка такойже длины как окно компилятора
если устроишься куда-то работать или будешь писать код не один - будешь анально наказан
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как грамотно убить компьютер [AG] Статьи 30 23.09.2011 15:20
Интервью с сотдрудником отдела "К" elimS2 Мировые новости. Обсуждения. 69 12.11.2009 18:02
Как стать админом ICQ (c) yarrak InfernoNet Болталка 77 06.08.2009 15:15
Как стать хакером! foreva Болталка 19 12.12.2007 00:12



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.