На главную Наши проекты:
Журнал   ·   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_
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Почему в слоты добавляется повторяющиеся элементы?
    А в чем смысл оставлять вот это.
    ExpandedWrap disabled
      Position2[0,1]:=280;
      Position2[1,1]:=420;
      Position2[2,1]:=11;
      Position2[3,1]:=85;
      Position2[4,1]:=255;
      Position2[5,1]:=180;
      Position2[6,1]:=350;
      Position2[7,1]:=120;
      Position2[8,1]:=240;
      Position2[9,1]:=170;
      Position2[10,1]:=350;
      Position2[11,1]:=120;
      Position2[12,1]:=170;
      Position2[13,1]:=50;
      Position2[14,1]:=20;
      Position2[15,1]:=300;
      Position2[16,1]:=180;
      Position2[17,1]:=80;
      Position2[18,1]:=230;
      Position2[19,1]:=50;
       
      Position2[0,2]:=110;
      Position2[1,2]:=44;
      Position2[2,2]:=274;
      Position2[3,2]:=300;
      Position2[4,2]:=200;
      Position2[5,2]:=200;
      Position2[6,2]:=100;
      Position2[7,2]:=150;
      Position2[8,2]:=270;
      Position2[9,2]:=300;
      Position2[10,2]:=20;
      Position2[11,2]:=210;
      Position2[12,2]:=50;
      Position2[13,2]:=100;
      Position2[14,2]:=30;
      Position2[15,2]:=270;
      Position2[16,2]:=120;
      Position2[17,2]:=40;
      Position2[18,2]:=50;
      Position2[19,2]:=170;
    Почему не заполнить массив сразу. Я уже написал как это сделать.
      Цитата
      2 А где это используется?

      Я код переписала, а не заново написала поэтому нигде, часть процедур сохранилось со старого примера.
      Цитата
      А в чем смысл оставлять вот это.

      Код же прокоментирован и там написано.
      Цитата
      //Стартовые позиции всех предметов

      Если убрать массивы то все предметы переместятся в угол экрана.
      Цитата
      Почему не заполнить массив сразу. Я уже написал как это сделать.

      Я прочитала ваша сообщение в самом начале, но когда стала переписывать код, просто не вспомнила, что можно и так сделать и сделала как было.
      Сообщение отредактировано: Katerina1993 -
        Ответ: находится в Cs.TextOut передаются не те координаты. Хотя для рисования слотов идут "верные координаты".
        Цитата
        //Создаем на холст предметы и пронумеруем их.
        в procedure TRect.Draw(Cs: TCanvas; x, y, id2, MapX, MapY: Integer);

        Рисуется и область и выводится нумерация.
        Если не точность идёт в расположении нумерации ( :scratch: ), то ищем именно там.

        Скрытый текст
        ExpandedWrap disabled
          procedure TRect.Draw(Cs: TCanvas; x, y, id2, MapX, MapY: Integer);
          begin
           
            Map_X := MapX;
            Map_Y := MapY;
            Form1.Canvas.Brush.Color:=color;
            Cs.Rectangle(
        x+Map_X,y+Map_Y,x+width+Map_X,y+height+Map_Y);
        ExpandedWrap disabled
           
           // with Form1.Canvas do
           // begin
             Cs.Font.Name:= 'Numeration';
             Cs.Font.Size:= 18;
             Cs.Font.Style:= [fsBold,fsItalic];
             Cs.Font.Color:= clBlack;
             //clWindowText

        Cs.TextOut(x+Map_X,y+Map_Y, IntToStr(id1));//<- Здесь вместо x0,y0
        ExpandedWrap disabled
             Cs.Font.Color:= clBlack;
           
          end;
        Сообщение отредактировано: RusSun -
          RusSun, все исправила.
          ExpandedWrap disabled
            procedure TRect.Draw(Cs: TCanvas; x, y, id2, MapX, MapY: Integer);
            begin
              //x0 := x;
              //y0 := y;
              Map_X := MapX;
              Map_Y := MapY;
              Form1.Canvas.Brush.Color:=color;
              Cs.Rectangle(x+Map_X,y+Map_Y,x+width+Map_X,y+height+Map_Y);
                
             // with Form1.Canvas do
             // begin
               Cs.Font.Name:= 'Numeration';
               Cs.Font.Size:= 18;
               Cs.Font.Style:= [fsBold,fsItalic];
               Cs.Font.Color:= clBlack;
               //clWindowText
              // Cs.TextOut(x+Map_X,y+Map_Y, IntToStr(id1));
               Cs.Font.Color:= clBlack;
               Cs.TextOut(x+Map_X,y+Map_Y, IntToStr(id1));
            end;


          Теперь цифры добавляются и в слоты. Результат:

          Прикреплённый файлПрикреплённый файлscreenshot1.jpg (43,98 Кбайт, скачиваний: 45)
            Прекрасно. А если еще к TextOut координатам добавить по единичке, тогда фон текста не будет стирать рамку.
            ExpandedWrap disabled
                  procedure TRect.Draw(Cs: TCanvas; x, y, id2, MapX, MapY: Integer);
                  begin
                    //x0 := x;
                    //y0 := y;
                    Map_X := MapX;
                    Map_Y := MapY;
                    Form1.Canvas.Brush.Color:=color;
                    Cs.Rectangle(x+Map_X,y+Map_Y,x+width+Map_X,y+height+Map_Y);
                  
                   // with Form1.Canvas do
                   // begin
                     Cs.Font.Name:= 'Numeration';
                     Cs.Font.Size:= 18;
                     Cs.Font.Style:= [fsBold,fsItalic];
                     Cs.Font.Color:= clBlack;
                     //clWindowText
                    // Cs.TextOut(x+Map_X,y+Map_Y, IntToStr(id1));
                     Cs.Font.Color:= clBlack;
                     Cs.TextOut(x+Map_X + 1,y+Map_Y + 1, IntToStr(id1));
                  end;
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0280 ]   [ 18 queries used ]   [ Generated: 29.03.24, 06:48 GMT ]