![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как привести вводимый символ к верхнему регистру [D7, XP]
AntonUSAnoV © (2008-03-19 17:10:00)
fieldname:=dbgrid1.SelectedField.FieldName;
if fieldname='Fam' then
begin
key:=chr(uppercase(str(key));
end;
вот значит, уважаемые мастера, нужно чтобы вводимый пользователем символ (в дбгриде) автоматически приводился к верхнему регистру, пишу я это в обработчике таблицы beforeedit , на указаный вверху код делфи пишет incopatible types,
AntonUSAnoV (2008-03-19 19:35:00) [1]
> Johnmen © (19.03.08 19:29) [61]
а таким людям не место в ветке для начинающих, где наверху написана отдельная просьба мастерам - быть снисходительными, ведь я свою обязанность выполнил - я был вежлив. Такие люди могут только пользоваться цитатами после того как найден ответ.
AntonUSAnoV (2008-03-19 19:30:00) [2]Получилось ! правда говоря это несколько длиннее чем
цитата: Итог: Нам нужно всего лишь Key:=UpCase(Key);
Огромное спасибо.
Johnmen (2008-03-19 19:29:00) [3]
Мы, без сомнения, неприязненно относимся к людям, предположительно не желающим подумать или поучиться прежде, чем задавать вопросы. Такие люди убивают время — они берут, ничего не давая взамен, они отнимают время, которое мы могли бы посвятить другому вопросу, более интересному, и другому человеку, более достойному ответа. Таких людей мы называем "неудачниками" ("losers")
(c) http://www.rsdn.ru/Info/Howtoask.xml
Reindeer Moss Eater (2008-03-19 19:29:00) [4]function AnsiUpcase(Ch : Char) : Char;
begin
Result := AnsiUpperCase(Ch)[1];
end;
Reindeer Moss Eater (2008-03-19 19:25:00) [5]Если по-русски, то UpCase неэффективен для не-accii символов
{RASkov} (2008-03-19 19:25:00) [6]> [49] AntonUSAnoV (19.03.08 19:05)
unit RusChar;
interface
function LoCaseRu (Ch: Char): Char;
function UpCaseRu (Ch: Char): Char;
implementation
function LoCaseRu (Ch: Char): Char;
begin
case Ch of
'A'..'Z': Result:=Chr(Ord('a')+Ord(Ch)-Ord('A'));
'А'..'Я': Result:=Chr(Ord('а')+Ord(Ch)-Ord('А'));
'Ё': Result:='ё';
else Result:=Ch;
end;
end;
function UpCaseRu (Ch: Char): Char;
begin
case Ch of
'a'..'z': Result:=Chr(Ord('A')+Ord(Ch)-Ord('a'));
'а'..'я': Result:=Chr(Ord('А')+Ord(Ch)-Ord('а'));
'ё': Result:='Ё';
else Result:=Ch;
end;
end;
end.
AntonUSAnoV (2008-03-19 19:24:00) [7]ну всё выучили меня, вижу - только english, что делать то ?
Reindeer Moss Eater (2008-03-19 19:22:00) [8]кто-ни будь снизойдёт и подскажет функцию для приведения к верхнему регистру кодов accii типа char (надеюсь не бред)..
UpCase
Reindeer Moss Eater (2008-03-19 19:20:00) [9]Ctrl + Click на UpCase покажет всю правду.
AntonUSAnoV (2008-03-19 19:19:00) [10]а я бы тут до утра искал ответ ? хотя может Вы и правы, сам должен...
но всё же может кто-ни будь снизойдёт и подскажет функцию для приведения к верхнему регистру кодов accii типа char (надеюсь не бред)..
AntonUSAnoV (2008-03-19 19:17:00) [11]Во избежание неясностей я создал новый проект, кинул на форму едит, в обработчике onkeypress написал
procedure TForm1.edit1KeyPress(Sender: TObject; var Key: char);
begin
key:=upcase(key);
end;
откомпилировал, и ни чего - не приводится к верхнему регистру,
Reindeer Moss Eater (2008-03-19 19:17:00) [12]UpCase неэффективен не для accii символов
AntonUSAnoV (2008-03-19 19:17:00) [13]
> Reindeer Moss Eater © (19.03.08 19:17) [51]
> UpCase неэффективен не для accii символов
воооо ! пророк воистину, !
AntonUSAnoV (2008-03-19 19:06:00) [14]поясню - завершается значит перескакивает через нижестоящие инструкции
AntonUSAnoV (2008-03-19 19:05:00) [15]я конечно замучал Вас но всё же, написав этот код (47), прога запускается, но символ не приводится к верхнему регистру, я проследил по трассировке, и значит после строчки key:=upcase(key); завершается выполнение процедуры, это я проверил добавив после key:=upcase(key); ещё несколько строк с инструкциями.
{RASkov} (2008-03-19 19:01:00) [16]> [45] AntonUSAnoV (19.03.08 18:55)
> т.е. в обработчике onkeyup писать ?
Зачем? Почему ты пришел к такому выводу?
Насколько мне понятна твоя "проблема" тебе достаточно КейПресс, но ты же не можешь четко сформулировать вопрос, поэтому мой ответ может превести к непредсказуемым результатам, в результате чего твоя программа загнется вовсе.... :)
Поэтому важно как задан вопрос. Удачи.
> [47] AntonUSAnoV (19.03.08 18:57)
Возможно :)
AntonUSAnoV (2008-03-19 18:57:00) [17]
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: char);
begin
key:=upcase(key);
end;
AntonUSAnoV (2008-03-19 18:55:00) [18]не ну я счаз вообще себя дубом в пустыне чувствую, т.е. в обработчике onkeyup писать ? , но там уже тип word у key ...
AntonUSAnoV (2008-03-19 18:55:00) [19]не ну я счаз вообще себя дубом в пустыне чувствую, т.е. в обработчике onkeyup писать ? , но там уже тип word у key ...
{RASkov} (2008-03-19 18:51:00) [20]> [43] AntonUSAnoV (19.03.08 18:48)
> пишу в обработчике onkeypress в дбгриде правильно или раньше надо ?
Вот опять ты начинаешь наводить на себя прикалывающихся :)
Ну сам почитай свой вопрос и попробуй ответить.
Вот смотри мои ответы:
1 - Да (позже)
2 - Нет (раньше)
Ты доволен? :(