Member
Статус: Не в сети Регистрация: 16.04.2006 Откуда: d3d9.dll Фото: 7
Xupyp1 писал(а):
Работай со свойством Transparent ...
В яблочко! Спасибо! Как раз то, что нужно.
Mike3000 писал(а):
Если ты пишешь заставку, кот. показывается при запуске, тогда так и скажи. И тогда я смогу помочь!. А если, что-то более экзотическое, тогда скорее всего нет.
Да, я решил немного с заставочками поэкспериментировать. Но мне уже подсказали, благодарю. Rev@n, ацкая подпись. Только что заметил.
Последний раз редактировалось Shader 3.0 20.06.2007 22:27, всего редактировалось 1 раз.
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
Member
Статус: Не в сети Регистрация: 08.12.2005 Откуда: Smolensk
Mike3000 А по первой задаче:
Micher писал(а):
-исходную символьную строку записать задом наперед, удалив из неё все пробелы.
Там где:
Код:
for i:=Length(Memo1.Text)-1 downto 0 do
Без (-1) все работает нормально, странно - не правда ли ?
_________________ Вам может показаться, что я повторяюсь, но я буду распоряжаться вашими жизнями, как мне вздумается. Постарайтесь этого не забывать...
|Клан Дедов|
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;
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;
Добавлено спустя еще чуть-чуть Фу, как многабукафф
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;
Обработку присваиваешь на событе OnShow главного окна.
Ставь свойство ComboBox1.Style:=csOwnerDrawFixed;
потом ComboBox1.ItemIndex:=0; //выбор первого значения из списка.
Есть еще ComboBox1.Items.IndexOf(S: string); //Возвращает индекс нужной строки.
Напр:
ComboBox1.ItemIndex:=ComboBox1.Items.IndexOf('5'); //Выберет строку, содер. '5'
Member
Статус: Не в сети Регистрация: 24.12.2004 Откуда: Ставрополье
Всех приветсвую ! Не подскажете есть ли компонент для получения привилегий (ring 0 )?
_________________ Ставрополье Оверклокерс http://forums.overclockers.ru/viewtopic.php?t=125746 -= World Of Tanks =- (для связи Ватс Ап +7-903-418-03-43)
FatumNNM Вариантов несколько, самый простой - зарегистрировать службу с правами SYSTEM, и работать через неё. Ring 0 это тебе не даст, но привелегий будет больше, чем у админа . Как попасть в нулевку рассказывать не буду, иначе могут наградить "значком". Лучше в гугле покопай - материала навалом
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)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения