Главная страница
    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.037 c
2-1129023469
romas
2005-10-11 13:37
2005.11.06
новые технологии в БД


14-1129623533
pazitron_brain
2005-10-18 12:18
2005.11.06
Что такое BBS?


6-1122116863
PSV84
2005-07-23 15:07
2005.11.06
сеть RS485/RS232


6-1122044361
vers
2005-07-22 18:59
2005.11.06
TIdTCPClient - InputBuffer


3-1127905586
Бульбаш
2005-09-28 15:06
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский