Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Редактирование надписей в компоненте едит [D7]


Страницы:   1 2 3 4 5

Глеб ©   (2012-05-05 16:58:00) 

Добрый день!

Почти разобрался со своей проблемой, но есть одна просьба. Сейчас мой программный код добавляет/удаляет символы, но эти действия происходят в конце компонента, как сделать так что бы можно было в любой позиции это делать? Вот код

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
 var n : integer;
 s : string;
 begin
 if Key=8 then begin
 Edit1.Text:=copy(Edit1.Text,1, Length(Edit1.Text)-3);
 Edit1.SelStart:=Length(Edit1.Text);
 end;
 end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
 const
 mask : set of char =['0'..'9' , 'a'..'z' , 'A'..'Z'];
 begin
 if not (Key in mask) then Key:=#0
 else begin
 Edit1.Text:=Edit1.Text + ' ,';
 Edit1.SelStart:=Length(Edit1.Text) - 2;
 end;
 end;


MsGuns   (2012-05-09 16:58:00) [1]

>Глеб   (08.05.12 16:25) [81]
>MsGuns я не говорил, что это мой код и я не хвастаюсь, здесь я его выложил для того, чтобы если такая проблема повториться у другого человека он мог его у меня посмотреть и доделать под себя.

Даже если какашка не твоя, давать ее гордо другим понюхать - действо не менее пошлое :)

>Очень жаль, что у тебя в голове такие пошлые мысли - это только тебя характеризует

Какие мысли у меня в голове - это мне одному известно, и то не всегда :)
В посте нет ни одного слова против кого-то конкретного, а просто констатация очевидного факта в тему.
Если эта самая констатация вызывает у них такую реакцию, то это их уже определенно характеризует :)

ЗЫ. На обиженных воду возят (древняя руспословица)


Inovet   (2012-05-08 17:40:00) [2]

> [82] KilkennyCat ©   (08.05.12 16:39)
> Глеб, у тебя с русским языком проблемы

Автору повторить "не" и "ни":
http://www.orfo.ru/Tutorial/Html/Test_NeNi1.htm


KilkennyCat   (2012-05-08 16:41:00) [3]

И логика классная: если мне кто-то чем-то обязан, значит, он может обманывать... Добро пожаловать в этот удивительный мир, полный любви и милосердия!


KilkennyCat   (2012-05-08 16:39:00) [4]


> причину выкладки кода читай выше

у меня нет такой травы, чтоб понять твое описание причины.

Глеб, у тебя с русским языком проблемы: после обращения к кому-либо ставится запятая, "я теб ен ичем не обязан ,след. нет н иодного мотива для  обмана"


Глеб   (2012-05-08 16:25:00) [5]

MsGuns я не говорил, что это мой код и я не хвастаюсь, здесь я его выложил для того, чтобы если такая проблема повториться у другого человека он мог его у меня посмотреть и доделать под себя. Очень жаль, что у тебя в голове такие пошлые мысли - это только тебя характеризует
KilkennyCat я тебя не чем не обязан след. нет не одного мотива на обман, причину выкладки кода читай выше


KilkennyCat   (2012-05-08 14:42:00) [6]


> MsGuns ©   (08.05.12 14:34) [78]

да это вряд ли его код, он еще на других форумах тусуется с этой же проблемой, небось, решил вариант "жулик и два шахматиста" разыграть.


KilkennyCat   (2012-05-08 14:40:00) [7]

как минимум, некрасивый код.
> procedure Removing;
>  var
>   i, n: Integer;
> begin
>  n:=Position;
>  List.Delete(n-1);
>  Form3.Edit1.Text:='';
>  with Form3.Edit1 do for i:=0 to List.Count-1 do Text:=Text+List[i];
>
>  Form3.Edit1.SelStart:=(n-1)*3;
> end;


procedure Removing;
var
  i, n: Integer;
begin
 n:=Position;
 List.Delete(n-1);
 with Form3.Edit1 do begin
    Text:='';
    for i:=0 to List.Count-1 do Text:=Text+List[i];
    SelStart:=(n-1)*3;
 end;
end;

кроме того, он просто не полностью рабочий, еще один вариант, требующий доработки.
Так что, бегом на другой форум, напиши это.

а про притчу я не понял.


MsGuns   (2012-05-08 14:34:00) [8]

Приведенный код - яркий пример как надо чесать за левым ухом правой пяткой.
Просто совет - пока не научитесь элементарному, не стОит выкладывать его где-либо в Сети и уж тем более пытаться хвастаться им.
Просто это очень напоминает малыша-годовалка, наделавшего в люлю и торжественно показывающего свое "произведение" всем окружающим. Мамашка (особенно впервые которая), конечно, в восторге, а вот гостей слегка подташнивает :)


Inovet   (2012-05-08 13:49:00) [9]

> [76] Глеб   (08.05.12 13:41)
> Надо не сказки писать и код

Со временем, надеюсь, ты поймёшь о чём там речь.


Глеб   (2012-05-08 13:41:00) [10]

Вот господа, решение проблем с добавлением и удалением записи. По секрету, эту притчу придумал человек, которые иногда сам не знает ответов на вопросы, но признаться в этом ударит по его Супер-Эго поэтому на помощь приходи творческая фантазия. Надо не сказки писать и код

 function Position: Integer;
 begin
  Result:=(Form3.Edit1.SelStart div 3);
 end;

procedure Adding(Key: Char);
 var
  i, n: Integer;
 begin
  n:=Position;
  List.Insert(n, Key+' ,');
  Form3.Edit1.Text:='';
  with Form3.Edit1 do for i:=0 to List.Count-1 do Text:=Text+List[i];
  Form3.Edit1.SelStart:=(n+1)*3;
 end;

procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char);
 const
  Legal=['0'..'9', 'A'..'Z', 'a'..'z'];
 begin
  if Key in Legal then Adding(Key);
  Key:=#0;
 end;

procedure Removing;
 var
  i, n: Integer;
begin
 n:=Position;
 List.Delete(n-1);
 Form3.Edit1.Text:='';
 with Form3.Edit1 do for i:=0 to List.Count-1 do Text:=Text+List[i];
 Form3.Edit1.SelStart:=(n-1)*3;
end;

procedure TForm3.Edit1KeyUp(Sender: TObject; var Key: Word ;
Shift: TShiftState);
 const
  BackSpace=8;
  Del=46;
 begin
  if Key=37 then Edit1.SelStart:=Edit1.SelStart-2;
  if Key=39 then Edit1.SelStart:=Edit1.SelStart+2;
  if ((Key=BackSpace)or(Key=Del)) then Removing;
 end;

если найдете изъян в коде прошу сделать коменты


MsGuns   (2012-05-07 16:15:00) [11]

>MsGuns все шутим?)

А что еще делать если человек копает держа лопату черенком вниз, а когда все ему советуют взять ее как надо, говорит: "Я  сделаю так как мне нужно с помощью этого форума или другого".


Inovet   (2012-05-07 15:47:00) [12]

> [73] Глеб   (07.05.12 15:43)
> сам нашел

Прогресс, однако! "Кто ищет, тот всегда найдёт."


Глеб   (2012-05-07 15:43:00) [13]

функция AnsiUpperCase(const S: String): String
Возвращает строку S, преобразованную к верхнему регистру. - сам нашел


Глеб   (2012-05-07 15:27:00) [14]

Inovet мне надо символы вводимые в эдит переводить в заглавный реестр


Inovet   (2012-05-07 15:26:00) [15]

> [70] Глеб   (07.05.12 15:18)

Команды разные бывают, которые переводят и разводят, но чаще из большого в малое. В Делфи такой команды не знаю, но знаю несколько функций для работы со строками и символами, которые могут помочь в этом вопросе.


Глеб   (2012-05-07 15:18:00) [16]

Inovet ты знаешь команду, которая переводит символы из малого реестра в большой?


Inovet   (2012-05-07 15:13:00) [17]

> [68] Глеб   (07.05.12 14:59)

Цели бывают пустые - обман, иллюзия в собственном сознании, а сил и времени для их достижени можно много потратить, спрашивая на этом и других форумах о Y, когда надо X, которое легко и естественно решается через Z, а не через Ж.


Глеб   (2012-05-07 14:59:00) [18]

Amoeba_ эх если всегда отступать от намеченных целей, то не чего хорошего не будет. Я  сделаю так как мне нужно с помощью этого форума или другого.


Amoeba_   (2012-05-07 13:39:00) [19]

Может автору вопроса все же стоит последовать этим разумным советам

> Медвежонок Пятачок ©   (05.05.12 18:29) [7]
>
> лучше сосредоточится на обработке введенного, а не на введении
> символов за юзера. полезнее будет в сто раз.
>
> MBo ©   (05.05.12 23:01) [37]
>
> Простой способ не подойдет?
> В едит вводишь только нужные символы, а обработанный текст
> отображается отдельно

и прекратить грызть кактус?


Глеб   (2012-05-07 13:05:00) [20]

MsGuns все шутим?) эх до 9 мая мне надо этот эдит сделать


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо