Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.61 MB
Время: 0.021 c
2-1205531607
DJ_UZer
2008-03-15 00:53
2008.04.13
скроллбар и курсор в мемо


15-1204265877
kiberg
2008-02-29 09:17
2008.04.13
Заполнение массива


15-1204171796
MBo
2008-02-28 07:09
2008.04.13
Delphi Survey на русском


2-1205943484
oletta
2008-03-19 19:18
2008.04.13
корень третьей степени


15-1204184827
Riply
2008-02-28 10:47
2008.04.13
RAD Studio "неправильные ошибки".