Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Вниз

как привести вводимый символ к верхнему регистру   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.009 c
15-1204224347
Kolan
2008-02-28 21:45
2008.04.13
Компоненты(виджеты) для touch screen, сужествуют ли такие?


15-1204034204
Семеныч
2008-02-26 16:56
2008.04.13
Вопрос по Java


2-1205676755
Res
2008-03-16 17:12
2008.04.13
Cardinal


2-1205655917
NewSer
2008-03-16 11:25
2008.04.13
Как проверить уникальность вводимого в ключевое поле значения?


2-1205821694
Unknowing
2008-03-18 09:28
2008.04.13
Либо чудо, либо фокус...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский