Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Вниз

Почему FindComponent не находит   Найти похожие ветки 

 
kyn66 ©   (2005-10-19 11:41) [0]

Уважаемые мастера, день добрый. Помогите разобраться , почему не работает часть кода?
На форме есть StringGrid, в который вожу некоторые числа и картинка, на которую затем переношу
эти числа для визуализации, путем создание меток. Затем, чтобы затереть некоторую метку на картинке,
при клике по StringGrid, у меня она не затирается, почему? Привожу код
1 часть, создание меток:

procedure TMainFrm.DrawDigit(k , m : Byte; S : String);
begin
 with TLabel.Create(Self) do
  begin
    Parent := ImgPanel;
    Alignment := taCenter;
    Transparent := True;
    AutoSize := False;
    Font.Style := [fsBold];
    Width := 14;
    Height := 13;
    case k of
      0: begin
           Left := BS1_A[m].X + 35;
           Top  := BS1_A[m].Y + 25;
         end;
      1: begin
           Left := BS2_A[m].X + 35;
           Top  := BS2_A[m].Y + 25;
         end;
      2: begin
           Left := BS3_A[m].X + 35;
           Top  := BS3_A[m].Y + 25;
         end;
      3: begin
           Left := BS4_A[m].X + 35;
           Top  := BS4_A[m].Y + 25;
         end;
      4: begin
           Left := BS5_A[m].X + 35;
           Top  := BS5_A[m].Y + 25;
         end;
      5: begin
           Left := BS6_A[m].X + 35;
           Top  := BS6_A[m].Y + 25;
         end;
    end; {Case}

    Caption := S;
    Name := "DigitLab_" + IntToStr(k) + "_" + IntToStr(m);
  end;
end;
<code/>
2 часть, этот код не отрабатывает правильно 8-(, почему?

procedure TMainFrm.StringGrid1SelectCell(Sender: TObject; ACol,
                                        ARow: Integer; var CanSelect: Boolean);
begin
 with (Sender as TStringGrid) do
   if Cells[ACol, ARow] <> "" then
   begin
     FromDel := True;
     Panel1Click(Self.FindComponent("Panel" + Cells[ACol, ARow]));
     Cells[ACol, ARow] := "";
   
     if ARow = 0 then
      TLabel(FindComponent("DigitLab_" + IntToStr(0) + "_" + IntToStr(ACol))).Free;
     else
        TLabel(FindComponent("DigitLab_" + IntToStr(1) + "_" + IntToStr(ACol))).Free
      end;
   

   end;
end;
<code/>
Почему здесь ACol недоступен, и метка не находится, следовательно не уничтожается?


 
Игорь Шевченко ©   (2005-10-19 11:44) [1]


> метка не находится


Потому что FindComponent относится к гриду, а метка создается, как дочерний компонент формы. Убрать with или указать Self.FindComponent


 
begin...end ©   (2005-10-19 11:45) [2]

> kyn66 ©   (19.10.05 11:41)

> with (Sender as TStringGrid) do
> ...
> TLabel(FindComponent...

Вероятно, вызывается метод FindComponent stringgrid"а, а не формы. Поэтому компонент и ищется среди компонентов, принадлежащих stringgrid"у, а не форме.


 
kyn66 ©   (2005-10-19 11:53) [3]

>> Игорь Шевченко
>> begin...end

8-)))))))))))т Ура! Спасибо Вам, МАСТЕРА. Все заработало как надо !!!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
14-1129021214
ANB
2005-10-11 13:00
2005.11.06
Чем отличается попса от рока ?


2-1129409232
Денис
2005-10-16 00:47
2005.11.06
Как сделать ping всех доступных FTP и сохранить в файл?


14-1129529606
TButton
2005-10-17 10:13
2005.11.06
Жжжжжуть


14-1129622362
WondeRu
2005-10-18 11:59
2005.11.06
Delphi 2006 - что ждете от новой IDE?


1-1129243045
AlexLines
2005-10-14 02:37
2005.11.06
каким образом можно узнать, что в конце находятся ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский