Главная страница
    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.038 c
6-1122044361
vers
2005-07-22 18:59
2005.11.06
TIdTCPClient - InputBuffer


1-1129484545
x.pro
2005-10-16 21:42
2005.11.06
Сглаживание графиков


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


14-1128692981
oldman
2005-10-07 17:49
2005.11.06
Старая задачка (пятница все-таки)


2-1129453886
quadronik
2005-10-16 13:11
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский