Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2011, 10:36   #11
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию

дело в том, что в этом же Edit'e у меня на OnChange идет поиск значения из Edit'a в БД))
А в БД в нужном поле все записи с большой буквы (так надо), и, если сразу не ввести в Edit с большой, то все зацикливается))
Короче, может я и намутила, но в Edit мне надо сразу с большой)))
a_n_n_a вне форума Ответить с цитированием
Старый 24.04.2011, 11:51   #12
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Попробуйте так. Реагирует на нажитый Shift и Capslock
Код:
function ShiftDown:Boolean;
var
  State:TKeyboardState;
begin
  GetKeyboardState(State);
  ShiftDown:= ((State[vk_Shift] and 128) <> 0);
end;
function Caapslock:Boolean;
var
  KS: TKeyboardState;
begin
   GetKeyboardState( KS );
   if KS[020] and 1 = 1 then CaapsLock:=True
                        else CaapsLock:=False
End;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
    If (ShiftDown) or (CaapsLock) then
    Key:=Key
    else
    Key:=chr(0)
end;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 24.04.2011, 13:14   #13
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

вам нужно поиск сделать?

я так понимаю.... поднимите в вехний регистр что ищите и что вводите в запросе. И не каких проблем не будет.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 25.04.2011, 11:15   #14
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

В событии OnChange загоняй Edit1.Text в переменую string , делай первый символ верхнего регистра и эту переменую используй для БД

Вот пример набросал как пример - можеш по другому

Код:
procedure TForm1.Edit1Change(Sender: TObject);
var
s, s2 : string;
begin
 if Length(Edit1.Text) > 0 then
  begin
   s := Edit1.Text;
   s2 := Edit1.Text;
   s2 := AnsiUpperCase(s2[1]);
   Delete(s,1,1);
   s := s2 + s; //Переменую s используй для БД , а не Edit1.Text
   //ShowMessage(s);
  end;
end;

Последний раз редактировалось lexaltd; 25.04.2011 в 11:17.
lexaltd вне форума Ответить с цитированием
Старый 08.08.2012, 13:25   #15
vershik
 
Регистрация: 07.05.2012
Сообщений: 6
По умолчанию

Код преобразования первой буквы в заглавную!

Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  with Sender as TEdit do
    if (SelStart = 0) or
       (Text[SelStart] = ' ') then
    begin
       Case Key Of
          'a'..'z' : Key := Chr(Ord('A') + Ord(Key) - Ord('a'));
          'а'..'я' : Key := Chr(Ord('А') + Ord(Key) - Ord('а'));
       end;
    end;
end;

Последний раз редактировалось Stilet; 08.08.2012 в 13:35.
vershik вне форума Ответить с цитированием
Старый 08.08.2012, 13:35   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Код преобразования первой буквы в заглавную!
Для Виндовса предложение не самое удачное. Есть функции, которые это делают.
Да и в Лазарусе пожалуй эти функции сработают лучше чем твой пример
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.08.2012, 14:22   #17
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Самый просенький примерчик сразу проверяет первую букву если она с маленькой то переводит ee в заглавную букву, можно доработать если нужно курсор переводится в конец строки
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
if (Edit1.Text <> '') and (Edit1.Text[1] = ansiLowerCase(Edit1.Text[1])) then
begin
Edit1.Text:=AnsiUpperCase(Edit1.Text[1])+copy(Edit1.Text, 2, maxint);
Edit1.SelStart:=Length(Edit1.Text);
end;
end;
Может поигодиться вам

Последний раз редактировалось Aliens_wolfs; 09.08.2012 в 09:04.
Aliens_wolfs вне форума Ответить с цитированием
Старый 10.08.2012, 11:13   #18
DelhiProgramer
Пользователь
 
Регистрация: 10.08.2012
Сообщений: 84
По умолчанию

procedure TForm1.Edit1Change(Sender: TObject);
var
fb,ob: string;
begin
if length(edit1.Text)>0 then
begin
fb:=copy(edit1.Text,1,1);
ob:=copy(edit1.Text,2,length(edit1. Text)-1);
fb:=UpperCase(fb);
edit1.Text:=fb+ob;
edit1.SelStart:=length(edit1.Text);
end;
end;
Очень криво и указатель всё-время будет перемещаться в конец, однако если этого не делать буквы будут добавляться сначала а не сконца
DelhiProgramer вне форума Ответить с цитированием
Старый 10.08.2012, 15:21   #19
mansuetudo
Пользователь
 
Регистрация: 08.11.2011
Сообщений: 46
По умолчанию

Насколько я поняла, сейчас при вводе любого по порядку символа в Edit идёт проверка, первы это символ в строке или нет. Если не первый - то тогда, независимо от того, что ввели, регистр ставится маленький. Выход вижу в том, чтоб убрать else и всё, что к нему относится.

Добавлю. Чтобы не пыталось проверять каждый символ, можно ввесит в программу глобальную булевскую переменную. При старте программы, скажем, ставим её в False, при вводе в Edit проверяем её состояние, если False - то выполняем проверку символа и замену (а также изменяем значение переменной на True), если True - нет.

Последний раз редактировалось mansuetudo; 10.08.2012 в 15:41.
mansuetudo вне форума Ответить с цитированием
Старый 10.08.2012, 19:57   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не надежнее ли так?
Код:
procedure TForm2.Edit1Change(Sender: TObject);
begin
 with TEdit(Sender) do begin
  Tag:=SelStart+1;
  if (Text<>'') and IsCharLower(text[1])
   then Text:=AnsiUpperCase(Text[1])+Copy(Text,2,Length(Text));
  SelStart:=tag;
 end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить в группе ячеек с текстом регистр букв Wespe Microsoft Office Excel 2 21.06.2010 09:01
Запись в регистр Vitek-pm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 17.02.2010 04:00
Привязка к файлам, Перезагрузка и обновление формы, Регистр букв, Шифровка данных Лукманов Александр Общие вопросы Delphi 2 24.12.2008 15:17
Регистр для русских букв Kulibim Общие вопросы Delphi 2 28.10.2007 17:36
регистр vitalik007 Общие вопросы Delphi 2 15.09.2007 02:41