На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Как заполнить массив данными другого массива?
    Существует два массива один на 300 элементов второй на 14. Мне нужно заполнить один массив до конца данными другого массива при этом оставляя интервал каждые две ячейки. Эту проблему мне удалось решить с помощью mod. Однако мне нужно сделать так чтобы когда закончился второй массив он с последней позиции где прервался (в первом массиве) начался заполнятся заново и так пока не достигнет до конца первого массива (т.е. придел 300 ячейка). Вот скриншот:

    Прикреплённый файлПрикреплённый файлimg1.jpg (34,68 Кбайт, скачиваний: 54)

    Как это сделать? Мой код, где заполнение происходит один раз (только первые 14 элементов).
    ExpandedWrap disabled
      unit Unit1;
       
      interface
       
      uses
        Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
        Dialogs, StdCtrls;
       
      type
        TForm1 = class(TForm)
          Button1: TButton;
          Memo1: TMemo;
          procedure FormShow(Sender: TObject);
          procedure Button1Click(Sender: TObject);
        private
          { Private declarations }
        public
          { Public declarations }
        end;
       
      var
        Form1: TForm1;
        Data : array of Integer;
        Data2 : array of Integer;
       
      implementation
       
      {$R *.dfm}
       
      procedure TForm1.FormShow(Sender: TObject);
      var i,j,k,m:Integer;
      begin
      SetLength(Data,300);
      SetLength(Data2,14);
       
      for k := Low(Data2) to High(Data2) do
      begin
       Data2[k]:=k;
      end;
       
      for i := Low(Data) to High(Data) do
      begin
        Data[i]:=0;
      end;
      m:=0;
      for j := Low(Data) to High(Data) do
      begin
       
       if (j mod 3 = 1) and (m<=High(Data2)) then
       begin
         Data[j]:=Data2[m];
         Inc(m);
       end;
      end;
      end;
      procedure TForm1.Button1Click(Sender: TObject);
      var j:Integer;
      begin
      for j := Low(Data) to High(Data) do
      begin
       Memo1.Lines.Add(IntToStr(Data[j]));
      end;
      end;
       
      end.
    Сообщение отредактировано: Katerina1993 -
      Заменить
      ExpandedWrap disabled
         if (j mod 3 = 1) and (m<=High(Data2)) then
         begin
           Data[j]:=Data2[m];
           Inc(m);
         end;
      на
      ExpandedWrap disabled
         if j mod 3 = 1 then
         begin
           Data[j]:=Data2[m];
           Inc(m);
           if m > High(data2) then m := Low(Data2);
         end;
        Проверила, работает.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0529 ]   [ 17 queries used ]   [ Generated: 11.12.24, 04:17 GMT ]