Вернуться   Foxter.ru > Мой компьютер > Программирование

Ответ
 
Опции темы Опции просмотра
Старый 02.02.2006, 18:34   #9092  
Он иногда здесь!!.
 
Аватар для Foxter
 
Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422
Регистрация: 17.10.2005
Адрес: Moscow
Сообщения: 1,518
По умолчанию Дельфи (Вопросы)

Кто знает можно как-нить сделать так, чтобы прога отрисовывала моим шрифтом текст в самой себе?
То есть шрифта у юзера нет в системе, он есть скажем либо в корне папки с программой, либо запрятан в самой программе (кстати как это можно сделать?). И при работе с программой весь текст (хотя бы меню) выводился бы именно этим шрифтом.
Foxter вне форума   Ответить с цитированием
Старый 15.02.2006, 19:05   #10092  
Терминатор
 
Аватар для AlphaOmega
 
Репутация: 656Репутация: 656Репутация: 656Репутация: 656Репутация: 656Репутация: 656
Регистрация: 20.01.2006
Адрес: Скайнет, 2029 год
Сообщения: 32
По умолчанию

Цитата:
Сообщение от Foxter
все кто пользовался QIP-ом знает что там есть такая штука как RUS2LAT и наоборот.
н-р: Татьяна -> Tatyana
а как это организовать в дельфи? ясное дело что это должно быть в array-ях.. но как?
в основном надо только с RUS2LAT.
Можно пойти обходным путём (если срочно):

запускаешь цикл от 1 до Х (кол-во букв)
проверка - если буква ХХ, то на выходе УУ
и всё...

могу пример дать
__________________
...веду здоровый образ жизни, но не помогает...
AlphaOmega вне форума   Ответить с цитированием
Старый 15.02.2006, 19:08   #10093  
Он иногда здесь!!.
 
Аватар для Foxter
 
Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422
Регистрация: 17.10.2005
Адрес: Moscow
Сообщения: 1,518
По умолчанию

Цитата:
Сообщение от AlphaOmega
могу пример дать
да, было бы неплохо....
Foxter вне форума   Ответить с цитированием
Старый 15.02.2006, 19:38   #10101  
Терминатор
 
Аватар для AlphaOmega
 
Репутация: 656Репутация: 656Репутация: 656Репутация: 656Репутация: 656Репутация: 656
Регистрация: 20.01.2006
Адрес: Скайнет, 2029 год
Сообщения: 32
По умолчанию

Значит вот образец функции
p.s.: могут быть ошибки в синтаксисе иби я пишу вообще на С++, а дельфи знаю постольку-поскольку...

Код:
 
function RUStoLAT(symbol: Char): Char; 
var Result: Char;
begin
 if symbol = 'a' then Result = 'a'; 
 if symbol = 'б' then Result = 'b';
 if symbol = 'в' then Result = 'v';
 ... (сюда остальные буквы)
 if symbol = 'э' then Result = 'e';
 if symbol = 'ю' then Result = 'yu';
 if symbol = 'я' then Result = 'ya';
end;
 
ну а дальше в любом месте (где надо):
var Russian, Translit : string;  (исходная и конечная строки)
 
непосредственно обработка текста:
var i : Integer;
begin
Translit := Russian;
for i := 0 to (Length(Russian) - 1) do 
 Translit[i] := RUStoLAT(Russian[i]);
end;
вроде бы так.
если что - могу написать ПРАВИЛЬНО на С++, а потом другие мемберы форума могут просто перевести это на правильный дельф
__________________
...веду здоровый образ жизни, но не помогает...
AlphaOmega вне форума   Ответить с цитированием
Старый 23.02.2006, 18:42   #10442  
Старожила
 
Аватар для Kostyan
 
Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277
Регистрация: 17.10.2005
Адрес: где то в степях Ярославщины
Сообщения: 399
По умолчанию

Относительно последнего вопроса... Rus2Lat можно сделать и так:
Код:
unit Unit1;
interface
uses
  SysUtils,Forms,Dialogs,StdCtrls,Controls,Classes;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function rus2lat(data:string):string;
var a: array [1..30] of string;
    i,L,j,k:byte;
    Rus,Lat,sout:string;
begin
    sout:='';
    L:=Length(data);
    Rus:='абвгдежзиклмнопрстуфхю';  //собственно эти строки и служат 
    Lat:='abvgdegziklmnoprstyfhu';       //для перевода RUS символов в ENG 
    for i:=1 to L do
    begin
     for j:=1 to 23 do
         if data[i]=Rus[j] then a[i]:=Lat[j]
         else
         if AnsiLowerCase(data[i])=Rus[j] then a[i]:=AnsiUpperCase(Lat[j]);
    end;
    for k:=1 to L do sout:=sout+a[k];
    Rus2Lat:=sout;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     label1.Caption:=rus2lat(Edit1.Text);
end;

end.
На форму бросаем TEdit, TLabel и TButton... проверил, работает...хотя строковые переменные Rus и Lat скорей всего надо будет переписать. Эти только для примера.
__________________
the signature is absent
Kostyan вне форума   Ответить с цитированием
Старый 18.04.2006, 16:11   #13446  
Он иногда здесь!!.
 
Аватар для Foxter
 
Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422Репутация: 711422
Регистрация: 17.10.2005
Адрес: Moscow
Сообщения: 1,518
По умолчанию

короче вопрос такой.
на форме расположены:
DBComboBox1 и DBComboBox2
оба завязаны на одну таблицу с двумя столбцами. Один на один столбец а второй соответственно на второй.
таблица содержит данные типа:
Дом 12345
Дом 23456
Дом 34567
Работа 12345
Работа 23456
Сотовый 123456
Вот как организовать событие OnChange для первого, чтобы при выборе из списка чего-либо - второй фильтровался сам и выбирал только выбранные в соответствии с первым данные.
скажем при выборе
Дом
выбирались бы только те данные что под Дом подходят (и их можно увидеть во втором DBComboBox)
Foxter вне форума   Ответить с цитированием
Старый 19.04.2006, 22:22   #13535  
Терминатор
 
Аватар для AlphaOmega
 
Репутация: 656Репутация: 656Репутация: 656Репутация: 656Репутация: 656Репутация: 656
Регистрация: 20.01.2006
Адрес: Скайнет, 2029 год
Сообщения: 32
По умолчанию

Цитата:
Сообщение от Foxter
короче вопрос такой...
Вообщем попробуй так (я объясню на логическом языке, а ты сам на дельфи переведи).

Пусть на форме три контроля (списка) 1 2 и 3
в 1-ом только названия, вот втором и названия и цифры, в третьем только цифры. Видимы 1 и 3-ий.

//-----------------------------------------------------
OnChange
{
очищаешь DBComboBox3;
for (int i = 0; i < DBComboBox2.Items.Count;i++)
{
если DBComboBox1.Text равняется DBComboBox2.Items.Strings[i].SubString(1,DBComboBox1.Text.Length())
тогда DBComboBox3.Items.Add(DBComboBox2.Items.Strings[i].SubString(DBComboBox1.Text.Length()+1, 255) )
}
}
//-----------------------------------------------------
вот такой вот принцип...
__________________
...веду здоровый образ жизни, но не помогает...

Последний раз редактировалось AlphaOmega, 19.04.2006 в 22:26.
AlphaOmega вне форума   Ответить с цитированием
Старый 25.04.2006, 22:10   #13733  
Старожила
 
Аватар для Kostyan
 
Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277
Регистрация: 17.10.2005
Адрес: где то в степях Ярославщины
Сообщения: 399
По умолчанию

Возникла небольшая проблема, может кто сможет помочь? В общем, дело в следующем. Имеется некоторая API функция, возвращающая в качестве результата указатель на массив размера size. Каким образом можно преобразовать возвращаемый массив в стринговый массив?

var
.....
param:byte;
.....
.....
_API_function (...,...,...,@param,@size,...,...);
.....

добавлено
извиняюсь, проблема решилась элементарно...
__________________
the signature is absent
Kostyan вне форума   Ответить с цитированием
Старый 10.05.2006, 21:02   #14790  
Старожила
 
Аватар для Kostyan
 
Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277
Регистрация: 17.10.2005
Адрес: где то в степях Ярославщины
Сообщения: 399
По умолчанию

Такой вот вопрос, вернее просьба. Есть у кого нить компилятор от третьей дельфи dcc32.exe. Если есть, был бы признателен.
__________________
the signature is absent
Kostyan вне форума   Ответить с цитированием
Старый 28.05.2006, 14:52   #16183  
Старожила
 
Аватар для Kostyan
 
Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277
Регистрация: 17.10.2005
Адрес: где то в степях Ярославщины
Сообщения: 399
По умолчанию

Вопрос... как установить такую хитрую ловушку, которая перехватывает системные сообщения пользователя об удалении файла? Это из серии Win API про HOOK функции...
__________________
the signature is absent
Kostyan вне форума   Ответить с цитированием
Старый 22.10.2006, 14:01   #28868  
Лис 2006
 
Аватар для Antony
 
Репутация: 24661Репутация: 24661Репутация: 24661Репутация: 24661Репутация: 24661Репутация: 24661Репутация: 24661Репутация: 24661Репутация: 24661Репутация: 24661Репутация: 24661
Регистрация: 15.11.2005
Адрес: Омск
Сообщения: 310
По умолчанию

2 Foxter Ну что, разобрался со шрифтами в иенюшке программы? Если да, то подскажи как?
__________________

Если ты не встанешь на сноуборд этой зимой, то следующей ты станешь на год старше!
Зато если ты встанешь на сноуборд этой зимой, то можешь и не стать на год старше!..
PS: Без бордА мне жизнь горькА...
Antony вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Powered by vBulletin
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
[Foxter Skin] developed by: Foxter.ru