![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Редактирование надписей в компоненте едит [D7]
Глеб © (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 мая мне надо этот эдит сделать