Текущий архив: 2008.04.13;
Скачать: CL | DM;
Вниз
как привести вводимый символ к верхнему регистру Найти похожие ветки
← →
AntonUSAnoV (2008-03-19 17:10) [0]
fieldname:=dbgrid1.SelectedField.FieldName;
if fieldname="Fam" then
begin
key:=chr(uppercase(str(key));
end;
вот значит, уважаемые мастера, нужно чтобы вводимый пользователем символ (в дбгриде) автоматически приводился к верхнему регистру, пишу я это в обработчике таблицы beforeedit , на указаный вверху код делфи пишет incopatible types,
← →
Johnmen © (2008-03-19 17:16) [1]Что такое key и str?
← →
AntonUSAnoV (2008-03-19 17:17) [2]
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: char);
begin
fieldname:=dbgrid1.SelectedField.FieldName;
if fieldname="Fam" then
begin
key:=chr(uppercase(str(key));
end;
end;
← →
Kolan © (2008-03-19 17:19) [3]> uppercase
Почитай в справке что возвращает эта ф-ция. И что такое Key.
← →
AntonUSAnoV (2008-03-19 17:22) [4]key - символ который введён с клавы в чаре, uppercase приводит стринговую строку к верхнему регистру, есть ещё ansiuppercase...
← →
Johnmen © (2008-03-19 17:23) [5]Осталось наконец-то прочитать вопрос [1] и ответить на него.
← →
AntonUSAnoV (2008-03-19 17:25) [6]ну из процедуры видно что key - чаровая переменная в процедуре keypress, а str приведение x к типу str , хотя кажется str и не нужна..
← →
AntonUSAnoV (2008-03-19 17:28) [7]так тоже не работает - key:=chr(uppercase(key));
← →
Kolan © (2008-03-19 17:28) [8]> так тоже не работает
Так а что говорит :)
← →
AntonUSAnoV (2008-03-19 17:29) [9]тоже самое incopatible types,
← →
AntonUSAnoV (2008-03-19 17:29) [10]тоже самое incopatible types,
← →
Kolan © (2008-03-19 17:29) [11]> chr(uppercase(key));
Просто интересно, как ты думаешь, как это должно работать?
← →
Kolan © (2008-03-19 17:29) [12]> тоже самое incopatible types,
А далее ? :)
← →
AntonUSAnoV (2008-03-19 17:30) [13]что далее
← →
AntonUSAnoV (2008-03-19 17:30) [14]далле ничего
← →
Плохиш © (2008-03-19 17:32) [15]Если порыться в справке, то можно найти соответствующую функцию и для типа символа, хотя кому это надо...
← →
AntonUSAnoV (2008-03-19 17:36) [16]charcase ?
← →
Kolan © (2008-03-19 17:38) [17]Ответь на [11].
← →
AntonUSAnoV (2008-03-19 17:42) [18]допустим я с клавы ввёл "а"
ну uppercase приводит это к "А",и возвращает тип стринг, а chr преобразует это к типу char, uppercase с чаром работает, пробовал, я наверно с типами ни как не разберусь..
← →
AntonUSAnoV (2008-03-19 17:44) [19]не ну поймите если я пишу key:=uppercase(key); и делфи указывает на несовпадение типов стринг и чар, то я думал что получиться с помощью chr перевести из стринг в чар...
← →
AntonUSAnoV (2008-03-19 17:46) [20]может я вообще не правильно решил всё это сделать, может по другому как то регистр можно повышать сразу после ввода символа ?
← →
Johnmen © (2008-03-19 17:48) [21]Да-да, а F1 для дураков...:(
← →
AntonUSAnoV (2008-03-19 17:49) [22]не ну я не очень хорошо просто английский знаю,тяжело ориентироваться...
← →
AntonUSAnoV (2008-03-19 17:51) [23]ну вот значит chr возвращает чар из типа byte, поэтому значит наверно, а как тогда string перевести в chr
← →
{RASkov} © (2008-03-19 17:57) [24]UpCase :(
← →
Плохиш © (2008-03-19 18:02) [25]
> {RASkov} © (19.03.08 17:57) [24]
Фи!
А как всё начиналось...
← →
AntonUSAnoV (2008-03-19 18:03) [26]а чё то ни работает ...
← →
{RASkov} © (2008-03-19 18:04) [27]> [25] Плохиш © (19.03.08 18:02)
Нормально все.... См [26] :)))
← →
Плохиш © (2008-03-19 18:06) [28]
> AntonUSAnoV (19.03.08 18:03) [26]
> а чё то ни работает ...
Радал...
← →
Плохиш © (2008-03-19 18:07) [29]рыдал...
опять мимо кнопки попал :-))
← →
AntonUSAnoV (2008-03-19 18:08) [30]господа программисты, Вы так и будете обмениваться замечаниями по поводу своей чувствительной организации сознания, или как ?
← →
{RASkov} © (2008-03-19 18:12) [31]> [30] AntonUSAnoV (19.03.08 18:08)
Что еще нужно? Подумать за тебя? Может сам уже сообразишь, а? Или совсем дурак? :)
← →
Плохиш © (2008-03-19 18:15) [32]
> AntonUSAnoV (19.03.08 18:08) [30]
Неужели [24] ну ни сколечки, ни на на мизинчик не помогает?
← →
AntonUSAnoV (2008-03-19 18:15) [33]ну хотть намекните что ли ,
← →
{RASkov} © (2008-03-19 18:16) [34]> [30] AntonUSAnoV (19.03.08 18:08)
Тебе ответ еще в [3] дали. Только ты решил заколачивать гвозди в бетон.... а что? ...можно же :)
← →
{RASkov} © (2008-03-19 18:18) [35]> [33] AntonUSAnoV (19.03.08 18:15)
Намекаю: читай ветку сначала... выпиши на листочек ключевые моменты.... всего лишь малость подумай ...и все получится)
← →
AntonUSAnoV (2008-03-19 18:18) [36]блин ну не понял я значит, я там отвечал вроде, так kolan ни чего мне не возразил на мои выводы..
← →
{RASkov} © (2008-03-19 18:22) [37]> [7] AntonUSAnoV (19.03.08 17:28)
> key:=chr(uppercase(key));
Вот я не понимаю, КАК можно такое придумать??? Да и еще и возмущатся, что не работает.... :(
У меня подозрение, что при написании ты не думаешь СОВСЕМ. Твое написание программы заключается в простом переборе знакомых слов и их групировка, что само собой не нравится компилятору :(
← →
{RASkov} © (2008-03-19 18:24) [38]> [36] AntonUSAnoV (19.03.08 18:18)
Ты знаешь что нибудь о типах Делфи? ...о их совместимости?
Как можно разрабатывать программу не зная основ???
← →
{RASkov} © (2008-03-19 18:28) [39]> [36] AntonUSAnoV (19.03.08 18:18)
> так kolan ни чего мне не возразил на мои выводы
Колян тебя вытаскивал-вытаскивал из ямы, но ты не только руки не подавал, но еще и специально глубже в нее(яму) залазил... :(
← →
{RASkov} © (2008-03-19 18:29) [40]....В итоге когда я подогнал кран и спустил к тебе(в яму) крюк, ты умудрился ударится о него головой и потерять сознание.... :(
← →
AntonUSAnoV (2008-03-19 18:30) [41]Вы вообще допускаете вариант что я только учусь, не могу разобраться, вследствие чего и обращаюсь к мастерам за советом, и я понимаю что Вы помогаете по принципу "Догадайся сам" что правильно, и я понял что не понял про совместимость типов, что скорее всего потому что с charом пока тесно не знакомился...
← →
{RASkov} © (2008-03-19 18:41) [42]> [41] AntonUSAnoV (19.03.08 18:30)
Как тебе помочь? Или всеж решил уже свою проблему?
Не волнуйся здесь, не против помощи, и не прикалывается никто.... только и от тебя вопросы должны быть без приколов - тоесть более-менее грамотно заданы. Вот смотри:Key: Char;
UpperCase() - String;
UpCase() - Char;
Итог: Нам нужно всего лишь Key:=UpCase(Key); Т.е. использовать функции родные для данных с которыми работаем, а не подгонять данные для работы с первой попавшейся функцией...
← →
AntonUSAnoV (2008-03-19 18:48) [43]Честное пионерское , у меня так было написано сразу после вот этого
> UpCase :(
[24]
, но прогон видно в другом месте, а Вы сразу прикалываться начали, и лишних полчаса потратили товарищи. я пишу в обработчике onkeypress в дбгриде правильно или раньше надо ?
← →
{RASkov} © (2008-03-19 18:51) [44]> [43] AntonUSAnoV (19.03.08 18:48)
> пишу в обработчике onkeypress в дбгриде правильно или раньше надо ?
Вот опять ты начинаешь наводить на себя прикалывающихся :)
Ну сам почитай свой вопрос и попробуй ответить.
Вот смотри мои ответы:
1 - Да (позже)
2 - Нет (раньше)
Ты доволен? :(
← →
AntonUSAnoV (2008-03-19 18:55) [45]не ну я счаз вообще себя дубом в пустыне чувствую, т.е. в обработчике onkeyup писать ? , но там уже тип word у key ...
← →
AntonUSAnoV (2008-03-19 18:55) [46]не ну я счаз вообще себя дубом в пустыне чувствую, т.е. в обработчике onkeyup писать ? , но там уже тип word у key ...
← →
AntonUSAnoV (2008-03-19 18:57) [47]
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: char);
begin
key:=upcase(key);
end;
← →
{RASkov} © (2008-03-19 19:01) [48]> [45] AntonUSAnoV (19.03.08 18:55)
> т.е. в обработчике onkeyup писать ?
Зачем? Почему ты пришел к такому выводу?
Насколько мне понятна твоя "проблема" тебе достаточно КейПресс, но ты же не можешь четко сформулировать вопрос, поэтому мой ответ может превести к непредсказуемым результатам, в результате чего твоя программа загнется вовсе.... :)
Поэтому важно как задан вопрос. Удачи.
> [47] AntonUSAnoV (19.03.08 18:57)
Возможно :)
← →
AntonUSAnoV (2008-03-19 19:05) [49]я конечно замучал Вас но всё же, написав этот код (47), прога запускается, но символ не приводится к верхнему регистру, я проследил по трассировке, и значит после строчки key:=upcase(key); завершается выполнение процедуры, это я проверил добавив после key:=upcase(key); ещё несколько строк с инструкциями.
← →
AntonUSAnoV (2008-03-19 19:06) [50]поясню - завершается значит перескакивает через нижестоящие инструкции
← →
Reindeer Moss Eater © (2008-03-19 19:17) [51]UpCase неэффективен не для accii символов
← →
AntonUSAnoV (2008-03-19 19:17) [52]Во избежание неясностей я создал новый проект, кинул на форму едит, в обработчике onkeypress написал
procedure TForm1.edit1KeyPress(Sender: TObject; var Key: char);
begin
key:=upcase(key);
end;
откомпилировал, и ни чего - не приводится к верхнему регистру,
← →
AntonUSAnoV (2008-03-19 19:17) [53]
> Reindeer Moss Eater © (19.03.08 19:17) [51]
> UpCase неэффективен не для accii символов
воооо ! пророк воистину, !
← →
AntonUSAnoV (2008-03-19 19:19) [54]а я бы тут до утра искал ответ ? хотя может Вы и правы, сам должен...
но всё же может кто-ни будь снизойдёт и подскажет функцию для приведения к верхнему регистру кодов accii типа char (надеюсь не бред)..
← →
Reindeer Moss Eater © (2008-03-19 19:20) [55]Ctrl + Click на UpCase покажет всю правду.
← →
Reindeer Moss Eater © (2008-03-19 19:22) [56]кто-ни будь снизойдёт и подскажет функцию для приведения к верхнему регистру кодов accii типа char (надеюсь не бред)..
UpCase
← →
AntonUSAnoV (2008-03-19 19:24) [57]ну всё выучили меня, вижу - только english, что делать то ?
← →
{RASkov} © (2008-03-19 19:25) [58]> [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.
← →
Reindeer Moss Eater © (2008-03-19 19:25) [59]Если по-русски, то UpCase неэффективен для не-accii символов
← →
Reindeer Moss Eater © (2008-03-19 19:29) [60]function AnsiUpcase(Ch : Char) : Char;
begin
Result := AnsiUpperCase(Ch)[1];
end;
← →
Johnmen © (2008-03-19 19:29) [61]
Мы, без сомнения, неприязненно относимся к людям, предположительно не желающим подумать или поучиться прежде, чем задавать вопросы. Такие люди убивают время — они берут, ничего не давая взамен, они отнимают время, которое мы могли бы посвятить другому вопросу, более интересному, и другому человеку, более достойному ответа. Таких людей мы называем "неудачниками" ("losers")
(c) http://www.rsdn.ru/Info/Howtoask.xml
← →
AntonUSAnoV (2008-03-19 19:30) [62]Получилось ! правда говоря это несколько длиннее чем
цитата: Итог: Нам нужно всего лишь Key:=UpCase(Key);
Огромное спасибо.
← →
AntonUSAnoV (2008-03-19 19:35) [63]
> Johnmen © (19.03.08 19:29) [61]
а таким людям не место в ветке для начинающих, где наверху написана отдельная просьба мастерам - быть снисходительными, ведь я свою обязанность выполнил - я был вежлив. Такие люди могут только пользоваться цитатами после того как найден ответ.
Страницы: 1 2 вся ветка
Текущий архив: 2008.04.13;
Скачать: CL | DM;
Память: 0.59 MB
Время: 0.008 c