![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
у меня есть несколько вопросов обьясните мне кое что а именно:
1)напишите общепринятый циклический оператор (лучше всего это (for do),(case of))как выглядит. 2)как сделать чтобы переменная была выбрана случайно программой. 3)как на языке делфи будет выглядить такое: if i-изменилась then begin ... end; если не понятно :как узнать изменилась переменная или нет. 4)как мне заранее переписать все мои image в одноимённый компонент тоже программно при событии onCreate. Последний раз редактировалось Ivanius, 31.07.2008 в 01:24. |
|
#2
|
|||
|
|||
|
Я не супер автор, но ты... Можешь по русски нормально объяснить? Что первое, что второе?
|
|
#3
|
|||
|
|||
|
Ну если перевести то в принципе понятно че хочет...
Вообще от условных переходов никуда не деться. Если в циклах, то для уменьшения количества юзать операторы break и continue, если просто так и для каких-то одинаковых переменных юзать case... Рандомно выбирать что-то тоже не проблема: оператор random генерирует число от 0 до 1. Потом умножаешь на максимальное число в твоем диапазоне и заодно можно округлить оператором round: i := round(random * 50) // i будет целое в диапазоне от 0 до 50... |
|
#4
|
||||
|
||||
|
Ivanius, учим русский язык. Увижу еще одно такое сообщение - бан на неделю.
|
|
#5
|
|||
|
|||
|
вот подучил, я так ясного ответа и не получил на свои пункты
( а мне надо щас только на этом проблемы все. |
|
#6
|
|||
|
|||
|
Если хочешь чтобы тебе код поправили, то его надо как минимум тут показать... Странный ты.
|
|
#7
|
||||
|
||||
|
1, case of - это не оператор цикла
есть три вида циклов: а) цикл с счетчиком: Код:
for <переменная>:=<нач. значение> to/downto <кон. значение> do <код>; Код:
while <условие> do <код>; Код:
repeat <код>; until <условие>; 3, добавить еще одну переменную 4, тебе надо в несколько Image загрузить одну картинку? |
|
#8
|
|||
|
|||
|
Цитата:
Это понятно. Просто если я его правильно понял у него в коде куча операторов перехода в которых он уже путается. Вот и предложил по возможности перейти от if then к case of. |
|
#9
|
|||
|
|||
|
Цитата:
4)нет мне надо несколько картинок заранее загрузить куда-то мне говорили есть какой-то Imagelist куда вначале загружают а потом от туда достают когда надо отображать её. |
|
#10
|
||||
|
||||
|
3
Код:
var MyVar, OldVal: <тип>; ... if MyVar <> OldValue then begin OldValue:=MyVar; //Переменная изменилась end else //Переменная не изменилась |
|
#11
|
|||
|
|||
|
ещё разх спасибо теперь уже последний вопрос с имеджлистом как в него запихнуть эти изображения так чтобы они были глобальными мне просто надо их использовать во всех формах
![]() так к примеру можно будет: "img1.picture := form1.imagelist.picture " да и как сделать чтобы можно было добавлять не только БМП и иконки а и ДЖЕПЭГ (и,или) ГИФ Последний раз редактировалось Ivanius, 31.07.2008 в 16:20. |
|
#12
|
||||
|
||||
|
Чтоб загрузить картинку в ImageList надо щелкнуть по компоненту два раза.
Чтобы загрузить картинку из него Код:
ImageList1.GetIcon(<индекс иконки>, Image1.Picture.Icon); |
|
#13
|
|||
|
|||
|
НЕужели от спасибо вам всё я разобрался все работает только компилируеться минут 10 из-за моих if then я так с циклами и не разобрался пытлася чо-то получалось а щас нет чото обьясните как мне писать на примерах луше сделайте для меня вот что у меня вот что есть кусок программы как мне его лучше реализовать
Код:
if ydar>=50 then begin
if kritical<=krit then begin
healBPAr:=healBPAr-realatkt*2;
MessageBox(handle,pchar('Вы попали во врага на - '+inttostr(realatkt*2)),pchar('Информация'),8240);
statistic.Lines.Add('попал HA: '+inttostr(realatkt*2));
label1.Caption := 'попал HA: '+inttostr(realatkt*2);
man:=man-4;
if healbpar<1 then
exit.Enabled:=true;
atac.enabled:= false;
pobed:=pobed+1;
end
else begin
if realatkt>0 then begin
healBPAr:=healBPAr-realatkt;
MessageBox(handle,pchar('Вы попали во врага на - '+inttostr(realatkt)),pchar('Информация'),8240);
statistic.Lines.Add('попал HA: '+inttostr(realatkt));
label1.Caption := 'попал HA: '+inttostr(realatkt);
man:=man-4;
end
else begin
statistic.Lines.Add('Вы попали во врага на - 0dmg');
label1.Caption := 'Вы попали во врага на - 0dmg';
MessageBox(handle,pchar('Вы попали во врага на - '+inttostr(realatkt)),pchar('Информация'),8240);
end;
end;
end;Последний раз редактировалось Ivanius, 01.08.2008 в 02:11. |
|
#14
|
|||
|
|||
|
Поиск в папке (без просмотра поддиректорий):
Код:
procedure TForm1.FindFiles(Dir: string);
var
DirInfo: TSearchRec;
r : Integer;
begin
r := FindFirst(Dir+'*.bmp', FaAnyfile, DirInfo);
while r = 0 do begin
if ((DirInfo.Attr and FaDirectory <> FaDirectory) and (DirInfo.Attr and FaVolumeId<>FaVolumeID)) then
{ тут твой код для обработки найденных;
полный путь к файлу: Dir + DirInfo.Name }
r := FindNext(DirInfo);
end;
SysUtils.FindClose(DirInfo);
end;
// например FindFiles('C:\Windows\')Последний раз редактировалось ART, 31.07.2008 в 21:03. |
|
#15
|
|||
|
|||
|
так вы мне и не ответили как можно мой код оптимизировать или некак?
|