Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 92 из 116<  1 ... 89  90  91  92  93  94  95 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 16.04.2006
Откуда: d3d9.dll
Фото: 7
Xupyp1 писал(а):
Работай со свойством Transparent :wink: ...

В яблочко! Спасибо! Как раз то, что нужно.
Mike3000 писал(а):
Если ты пишешь заставку, кот. показывается при запуске, тогда так и скажи. И тогда я смогу помочь!. А если, что-то более экзотическое, тогда скорее всего нет.

Да, я решил немного с заставочками поэкспериментировать. Но мне уже подсказали, благодарю.
Rev@n, ацкая подпись. :) Только что заметил.


Последний раз редактировалось Shader 3.0 20.06.2007 22:27, всего редактировалось 1 раз.


Партнер
 

Member
Статус: Не в сети
Регистрация: 08.11.2005
Rev@n
Лааадно, забей свой код в Delphi - и проверь правильность решения задачи ...
...ичадазяинешерьтсоньливарпьреворпи-ihpleDвдокйовсйебаз,ондаааЛ
..ИчА дАзЯИ нЕшЕр ЬтсОн ЬлИвА рпЬрЕ вОрпИ -ihpl eDвдО кйОвс йЕбАз ,ОндА АА

Собственно забил и выяснил 2 вещи:
1.
Код:
 if pos(ansilowercase(Memo2.Text[i]),gl)<>0
надо заменить на
Код:
 if pos(ansilowercase(Memo2.Text[i]),gl)=0

2. Не правильно обрабатываются ansi символы до 32 включительно, но на это можно забить
Это с учетом замечания Just`Ice

_________________
AM4/B550-F/5950X/128Gb/4070S/4x4Tb NVMe


 

Member
Статус: Не в сети
Регистрация: 08.12.2005
Откуда: Smolensk
Mike3000
А по первой задаче:
Micher писал(а):
-исходную символьную строку записать задом наперед, удалив из неё все пробелы.

Там где:
Код:
for i:=Length(Memo1.Text)-1 downto 0 do

Без (-1) все работает нормально, странно - не правда ли ? :)

_________________
Вам может показаться, что я повторяюсь, но я буду распоряжаться вашими жизнями, как мне вздумается. Постарайтесь этого не забывать...
|Клан Дедов|


 

Member
Статус: Не в сети
Регистрация: 08.11.2005
Rev@n :) ты наполовину оказался прав - надо еще 0 на 1 заменить. Заставили таки проверить...
Со всеми изминениями это выглядит так:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  if Memo1.Text='' then exit;
  Memo2.Clear;
  for i:=Length(Memo1.Lines.Text) downto 1 do
    if Memo1.Text[i]<>' ' then Memo2.Text:=Memo2.Text+Memo1.Text[i];
end;


Код:
procedure TForm1.Button2Click(Sender: TObject);
const gl='аеёиоуыьэюя';
var
  i,j: integer;
begin
  if Memo2.Text='' then exit;
  Memo3.Clear;
  j:=0;
  for i:=1 to Length(Memo2.Text) do
  begin
    if pos(ansilowercase(Memo2.Text[i]),gl)=0
      then Memo3.Text:=Memo3.Text+Memo2.Text[i]
      else Memo3.Text:=Memo3.Text+ansiuppercase(Memo2.Text[i]);
    inc(j);
    if j>=5 then
    begin
      Memo3.Text:=Memo3.Text+' ';
      j:=0;
    end;
  end;
end;

_________________
AM4/B550-F/5950X/128Gb/4070S/4x4Tb NVMe


 

Member
Статус: Не в сети
Регистрация: 09.12.2005
Откуда: Москва
Огромное всем спасибо!

:oops:


 

Member
Статус: Не в сети
Регистрация: 09.12.2005
Откуда: Москва
Mike3000 , Вы не могли бы немного поянить алгоритм? Я имею в виду что какая строчка делает?

_________________
CPU: Core i7 4770k (3.5Ghz@4.3Ghz, vCore 1.2)+Archon SB-E X2
Mobo: ASUS Z87 Pro (1205)
Mem: 2x Corsair 1866Mhz
Video: MSI N660Ti PE 2GD5@1070/7000


 

Member
Статус: Не в сети
Регистрация: 08.11.2005
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
//Объявляем переменную типа integer
  i: integer;
begin
//Если многострочный редактор с исходными данным(далее "src_Memo") не содержит данные, то выходим
  if Memo1.Text='' then exit;
//Очищаем многострочный редактор, в который будем записывать полученные данные(далее "dst_Memo")
  Memo2.Clear;
//С последнего символа до первого пробегаемся по src_Memo
  for i:=Length(Memo1.Lines.Text) downto 1 do
  //Если текущ. символ не пробел, то записываем его в dst_Memo
    if Memo1.Text[i]<>' ' then Memo2.Text:=Memo2.Text+Memo1.Text[i];
end;

Добавлено спустя несколько минут
Код:
procedure TForm1.Button2Click(Sender: TObject);
//Объявляем константу, кот. содержит гласные
const gl='аеёиоуыьэюя';
var
////Объявляем 2 переменные типа integer
  i,j: integer;
begin
//Если многострочный редактор с исходными данным(далее "src_Memo") не содержит данные, то выходим
  if Memo2.Text='' then exit;
//Очищаем многострочный редактор, в который будем записывать полученные данные(далее "dst_Memo")
  Memo3.Clear;
//Обнуляем переменную j
  j:=0;
//Пробегаемся с первого символа в src_Memo до последнего
  for i:=1 to Length(Memo2.Text) do
  begin
    //Если текущий символ не найден в константе gl (т.е. не является гласной)
    if pos(ansilowercase(Memo2.Text[i]),gl)=0
      //то записываем его
      then Memo3.Text:=Memo3.Text+Memo2.Text[i]
      //иначе тоже его записываем, предварительно преобразовав в прописную
      else Memo3.Text:=Memo3.Text+ansiuppercase(Memo2.Text[i]);
    //Увеличиваем переменную j на единицу
    inc(j);
    //Если j больше или равна 5
    if j>=5 then
    begin
      //В dst_Memo дописываем пробел
      Memo3.Text:=Memo3.Text+' ';
      //Обнуляем j
      j:=0;
    end;
  end;
end;

Добавлено спустя еще чуть-чуть
Фу, как многабукафф

_________________
AM4/B550-F/5950X/128Gb/4070S/4x4Tb NVMe


 

Member
Статус: Не в сети
Регистрация: 09.12.2005
Откуда: Москва
Спасибо тебе, Mike3000

_________________
CPU: Core i7 4770k (3.5Ghz@4.3Ghz, vCore 1.2)+Archon SB-E X2
Mobo: ASUS Z87 Pro (1205)
Mem: 2x Corsair 1866Mhz
Video: MSI N660Ti PE 2GD5@1070/7000


 

Member
Статус: Не в сети
Регистрация: 16.04.2006
Откуда: d3d9.dll
Фото: 7
Что-то никак не разберусь с этими ComboBox'ами. Может кто-нибудь подскажет, возможно ли в Делфи сделать то, что я хочу? Суть проблемы в следующем: имеется программа, у которой есть свой ини-файл. Один из параметров (а именно параметр Interval) ини-файла может принимать одно из трёх значений: 5, 10 или 20 (какое-либо другое значение недопустимо). Данное значение задаётся в компоненте ComboBox1 главного окна программы. Нужно:
1. Сделать так, чтобы при открытии программы в ComboBox1 сразу было отображено текущее значение параметра (его считываю из ини-файла).
2. Нужно, чтобы выбор значения параметра (в ComboBox1) осуществлялся только между тремя допустимыми значениями (5, 10 или 20) и чтобы никакое другое значение нельзя было вписать самому.
Как это сделать непойму. Ставлю свойство Style компонента ComboBox1 в csDropDown, но при этом значение в ComboBox1 можно редактировать (а этого нельзя допускать). Если свойство Style установить в csDropDownList, то при запуске программы в ComboBox1 не отображается текущее значение параметра, считанное из ини-файла. :( Думаю где-то ещё надо что-то подкрутить, но где - не знаю.
Актуальная часть кода:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  MyIni: TIniFile;
begin
  MyIni:= TIniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini');
  //Показываем текущее значение параметра
  ComboBox1.Text:=IntToStr(MyIni.ReadInteger('Main', 'Interval', 5));
  //Составляем список выбора возможных значений параметра Interval
  ComboBox1.Items.Add('5');
  ComboBox1.Items.Add('10');
  ComboBox1.Items.Add('20');
end;


 

Member
Статус: Не в сети
Регистрация: 08.11.2005
Обработку присваиваешь на событе OnShow главного окна.
Ставь свойство ComboBox1.Style:=csOwnerDrawFixed;
потом ComboBox1.ItemIndex:=0; //выбор первого значения из списка.
Есть еще ComboBox1.Items.IndexOf(S: string); //Возвращает индекс нужной строки.
Напр:
ComboBox1.ItemIndex:=ComboBox1.Items.IndexOf('5'); //Выберет строку, содер. '5'

_________________
AM4/B550-F/5950X/128Gb/4070S/4x4Tb NVMe


 

Member
Статус: Не в сети
Регистрация: 16.04.2006
Откуда: d3d9.dll
Фото: 7
Mike3000
Сделал так:
Код:
procedure TForm1.FormShow(Sender: TObject);
var
  MyIni: TIniFile;
begin
  MyIni:= TIniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini');
  //Составляем список выбора возможных значений параметра Interval
  ComboBox1.Items.Add('5');
  ComboBox1.Items.Add('10');
  ComboBox1.Items.Add('20');
  //Показываем текущее значение параметра
  ComboBox1.ItemIndex:=ComboBox1.Items.IndexOf(IntToStr(MyIni.ReadInteger('Main', 'Interval', 5)));
end;

Свойство Style компонента ComboBox1 поставил в csOwnerDrawFixed.
Всё работает как нужно. Спасибо!


 

Member
Статус: Не в сети
Регистрация: 08.11.2005
Shader 3.0 Рекомендую в конце сделать MyIni.Free;

_________________
AM4/B550-F/5950X/128Gb/4070S/4x4Tb NVMe


 

Member
Статус: Не в сети
Регистрация: 16.04.2006
Откуда: d3d9.dll
Фото: 7
Конечно. Само собой.


 

Member
Статус: Не в сети
Регистрация: 24.12.2004
Откуда: Ставрополье
Всех приветсвую ! Не подскажете есть ли компонент для получения привилегий (ring 0 )?

_________________
Ставрополье Оверклокерс http://forums.overclockers.ru/viewtopic.php?t=125746
-= World Of Tanks =- (для связи Ватс Ап +7-903-418-03-43)


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
FatumNNM а по заднице не хочешь? Зачем тебе такие финты ушами делать?

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 08.11.2005
FatumNNM Вариантов несколько, самый простой - зарегистрировать службу с правами SYSTEM, и работать через неё. Ring 0 это тебе не даст, но привелегий будет больше, чем у админа ;). Как попасть в нулевку рассказывать не буду, иначе могут наградить "значком". Лучше в гугле покопай - материала навалом

_________________
AM4/B550-F/5950X/128Gb/4070S/4x4Tb NVMe


 

Member
Статус: Не в сети
Регистрация: 24.12.2004
Откуда: Ставрополье
Daemon писал(а):
а по заднице не хочешь? Зачем тебе такие финты ушами делать?


Не груби ! Раз не можешь ответить толково, то лучше промолчи...умнее будешь казаться хоть...

_________________
Ставрополье Оверклокерс http://forums.overclockers.ru/viewtopic.php?t=125746
-= World Of Tanks =- (для связи Ватс Ап +7-903-418-03-43)


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
FatumNNM
подобное нужно разве что для дров, если интересно, поищи по ключевым словам "драйвер Delphi". Однако, если это нужно не для написания драйвера, то полностью согласен с Daemon - не надо такого делать.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 24.12.2004
Откуда: Ставрополье
Lord_of_Darkness это нужно для написания драйвера работы с портами COM и LPT

_________________
Ставрополье Оверклокерс http://forums.overclockers.ru/viewtopic.php?t=125746
-= World Of Tanks =- (для связи Ватс Ап +7-903-418-03-43)


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
FatumNNM
возьми компоненты готовые, да и не нужно юзать нулевое кольцо защиты для общения с этими портами, достаточно заюзать API функции винды.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 92 из 116<  1 ... 89  90  91  92  93  94  95 ... 116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan