Тема: Delphi - DB
Показать сообщение отдельно
Старый 06.12.2009, 15:58   #13
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от jpg Посмотреть сообщение
чорт программа теперь бесплатная.. в смысле спасибо, я просто с платной поэкспериментировать хотел.

Я заметил в программе недочет, может так и должно быть, при нажатии на "Транслит" меняет все в транслит, а вот обратно не меняет на русский когда галку убирает.

Тем способом который я знаю, менять на русский обратно я бы тоже поленился делать. )
а зачем нажимать транслит если тебе транслит не нужен?), так что смысла обратной операции я не вижу
вот кстати код который все контролы переводит в транслит:
delphi Код:
function Convert(OldName: string): string; var OldNameLength: integer;    i: integer;    s: string; begin OldNameLength := length(OldName); s:=''; i:=1; while i <= OldNameLength do begin  if (OldName[i] in ['A'..'Z']+['a'..'z']+['0'..'9']+                  ['{']+['}']+['[']+[']']+['`']+['~']+                  ['!']+['@']+['#']+['$']+['%']+['^']+                  ['&']+['*']+['(']+[')']+['-']+['_']+                  ['+']+['=']+['\']+['|']+[';']+[':']+                  ['"']+['{']+['<']+['>']+[',']+['.']+                  [' ']+['?']+['/']+['№']+['^','''',#13,#10])                 then s:=s+OldName[i];  if OldName[i] in ['А','Б','а','б'] then     s:=s+chr(ord(OldName[i])-127);  if OldName[i] in ['В','в'] then     s:=s+chr(ord(OldName[i])-108);  if OldName[i] in ['Г','г','Ж','ж'] then     s:=s+chr(ord(OldName[i])-124);  if OldName[i] in ['Д','д','Е','е'] then     s:=s+chr(ord(OldName[i])-128);  if OldName[i] in ['З','з'] then     s:=s+chr(ord(OldName[i])-109);  if OldName[i] in ['И','и','К','к','Л','л','М','м','Н','н','О','о','П','п'] then     s:=s+chr(ord(OldName[i])-127);  if OldName[i] in ['Й','й'] then     s:=s+chr(ord(OldName[i])-128);  if OldName[i] in ['Р','р','С','с','Т','т','У','у'] then     s:=s+chr(ord(OldName[i])-126);  if OldName[i] in ['Ф','ф'] then     s:=s+chr(ord(OldName[i])-142);  if OldName[i] in ['Х','х'] then     s:=s+chr(ord(OldName[i])-141);  if OldName[i] in ['Ц','ц'] then     s:=s+chr(ord(OldName[i])-147);  if OldName[i] in ['Ы','ы'] then     s:=s+chr(ord(OldName[i])-130);  if OldName[i] in ['Э','э'] then     s:=s+chr(ord(OldName[i])-152);  if OldName[i] = 'Ё' then s:=s+'Yo';  if OldName[i] = 'ё' then s:=s+'yo';  if OldName[i] = 'Ч' then s:=s+'Ch';  if OldName[i] = 'ч' then s:=s+'ch';  if OldName[i] = 'Ш' then s:=s+'Sh';  if OldName[i] = 'ш' then s:=s+'sh';  if OldName[i] = 'Щ' then s:=s+'Sch';  if OldName[i] = 'щ' then s:=s+'sch';  if OldName[i] in ['Ъ','ъ','Ь','ь'] then s:=s+chr(39);  if OldName[i] = 'Ю' then s:=s+'Yu';  if OldName[i] = 'ю' then s:=s+'yu';  if OldName[i] = 'Я' then s:=s+'Ya';  if OldName[i] = 'я' then s:=s+'ya';  i:=i+1; end; Convert:=s; end; procedure TfMain.chkTranslitClick(Sender: TObject); var   i,k: Integer;   p: PPropInfo;   o: TStrings;   lg: string; begin   if chkTranslit.Checked then   for i:=0 to Self.ComponentCount - 1 do begin     p:=GetPropInfo(Components[i].ClassInfo, 'Text');     if Assigned(p) then SetStrProp(Components[i], p, Convert(GetStrProp(Components[i], p)));     p:=GetPropInfo(Components[i].ClassInfo, 'Caption');     if Assigned(p) then SetStrProp(Components[i], p, Convert(GetStrProp(Components[i], p)));     p:=GetPropInfo(Components[i].ClassInfo, 'Items');     if Assigned(p)and(p.PropType^.Name='TStrings')then begin       o:=TStrings(GetObjectProp(Components[i], p));       o.BeginUpdate;       for k:=0 to o.Count-1 do o[k]:=Convert(o[k]);       o.EndUpdate;     end;     p:=GetPropInfo(Components[i].ClassInfo, 'Tabs');     if Assigned(p)and(p.PropType^.Name='TStrings')then begin       o:=TStrings(GetObjectProp(Components[i], p));       o.BeginUpdate;       for k:=0 to o.Count-1 do o[k]:=Convert(o[k]);       o.EndUpdate;     end;   end; end;

Кстати а зачем тебе с l2Walker Corrector эксперементировать?)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием