Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PageControl, вывод данных в компонент 
:(
    Опции темы
MrDmitry
Дата 9.11.2008, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



У меня расположен компонент PageControl. на одной вкалдке висит string grid на другой CheckListBox.
в стрин грид должны выводится данные но он почемуто остается пусто. Хотя нумерация строк идет (
а на CheckListBox чтоб вывелись данные приходится нажимать правой кнопкой. Как сделать чтоб данные грузились сразу?
PM MAIL   Вверх
Sanek123
Дата 9.11.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



Напиши пожалуйста подробнее что? куда? как?
Собственно, какие данные, откуда они, как связаны PageControl и CheckListBox. Если можно выклади исходник, или хотя бы фрагмент.

Это сообщение отредактировал(а) Sanek123 - 9.11.2008, 14:48
--------------------
Вас разыскивают бойцы 139-го порта...
PM MAIL   Вверх
MrDmitry
Дата 9.11.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Цитата(Sanek123 @ 9.11.2008,  14:47)
Напиши пожалуйста подробнее что? куда? как?
Собственно, какие данные, откуда они, как связаны PageControl и CheckListBox. Если можно выклади исходник, или хотя бы фрагмент.

Ну вот смотри. У меня есть на форме Pagecontrol. сделал для pagecontrol 2 вкладки TabSheet1 и TabSheet2
. На 1 расположен StringGrid  на второй cheklistbox. Нужно чтоб туда выводились данные. Но в стрин грид они вообще не выводятся а в лист бокс тока после нажатия правой кнопки мыши.
вот как я пытаюсь загрузить данные. 

Код для 1 вкладки 
procedure Tmain.TabSheet2Show(Sender: TObject);
begin
row_str:=0;
Код

memo1.Visible:=false;
memo1.Clear;
//Открываем файл user.ini для чтения
Assignfile(server,useri);
Reset(server);
 while not eof(server) do
  begin
  inc(row_str);
   readln(server,search_str);
   StringGrid1.rows[row_str].CommaText := res; //Выводим в таблицу список
   stringgrid1.cells[4,row_str]:=IntToStr(row_str); //нумерация столбцов
   end;
  CloseFile(server); //закрываем файл user.ini
end;


Вот для 2 вкладки

Код

//Установка плагинов
procedure Tmain.TabSheet2Show(Sender: TObject);
var
 SearchRec:TSearchRec; //вывод файлов в правельном формате
 spisok:integer; //вывод списка
 possition_str2:integer;//позиция строки 2
begin
memo1.Clear;
spisok:=0;
Plugins.Clear;
//выводим список файлов в правельном формате
If FindFirst(plugin, faAnyFile, SearchRec) = 0 then
  repeat
    if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..')) then
      if (SearchRec.Attr and faDirectory) = 0 then
        Plugins.Items.add(ExtractFileName(SearchRec.name));
         inc(spisok);
  until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
//Открываем файл plugins.ini для чтения
Assignfile(server,files);
Reset(server);
 while not eof(server) do
  begin
   readln(server,search_str);
   position_str:=pos('; ',search_str); //ищим позицию ;
   delete (search_str, position_str, 10000); //Удаляем 10000 симоволов для избовления от комментов
   if dir_base='' //если коментов не осталось выводим содержимое в скрытый компонент
    Then
    Else
   memo1.Lines.add(search_str); //сохроняем
  end;
 CloseFile(server);    //закрываем файл plugins.ini
 //Выводим список включенных/выключенных компонентов
  while spisok>0 do
   Begin
    spisok:=spisok-1;
    chek:=Plugins.Items[spisok];
    possition_str2:=pos(';'+chek, memo1.Text);
    if possition_str2=0  //Если не стоит символ ; то ставим флажок
     Then
     Plugins.Checked[spisok]:=true
     else
    Plugins.Checked[spisok]:=false; // иначе не ставим флажок
    possition_str2:=pos(chek, memo1.Text); //Выводим все плагины в скрытый компонент
    if possition_str2=0
     then
     Plugins.Checked[spisok]:=false;
    Memo1.Lines.SaveToFile(files); //Сохроняем в файл plugin.ini
   end;
end;


PM MAIL   Вверх
Sanek123
Дата 9.11.2008, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



Честно говоря не совсем понял поставленную задачу.
Если по поводу красивого и удобного размещения объектов, то можно примерно так:

Код

procedure TForm1.CheckBox_in_ListViwe();
var
 i: Byte;
 ChBx: TCheckBox;
begin
 Listview1.Columns.Add.Width:=100;
 Listview1.Columns.Items[0].Caption:='Text';
 Listview1.Columns.Add.Width:=400;
 Listview1.Columns.Items[1].Caption:='Status';
 Listview1.ViewStyle:=vsReport;


 for i:=0 to RecordCount do
  begin
   Listview1.Items.Add.Caption:='Some text '+IntToStr(i+1);
   r:=Listview1.Items[i].DisplayRect(drBounds);
   ChBx:=TCheckBox.Create(Self);
   ChBx.Parent:=Listview1;
   Listview1.Items[i].Data:=ChBx;
  end;
end;


а если трудности при работе с *.ini-файлами, то можно примерно так:
читать:
Код

procedure ReadIni;
var
  IniPath: string;
  FileName: string;
begin
  GetDir(0,IniPath);
  FileName:=IniPath+'\user.ini';
  IniFile:=TIniFile.Create(FileName);
  IniPortItem:=IniFile.ReadInteger('Port','Number',DefPortItem);
  IniRTSChecked:=IniFile.ReadBool('Port','RTS/CTS',DefRTSChecked);
  IniFile.Free;
end;


писать:
Код

procedure SaveIni;
var
  IniPath: string;
  FileName: string;
begin
  GetDir(0,IniPath);
  FileName:=IniPath+'\user.ini';
  IniFile:=TIniFile.Create(FileName);
  IniFile.WriteInteger('Port','Number',IniPortItem);
  IniFile.WriteBool('Port','RTS/CTS',IniRTSChecked);
  IniFile.Free;
end;



--------------------
Вас разыскивают бойцы 139-го порта...
PM MAIL   Вверх
MrDmitry
Дата 10.11.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Блин ну я даже не знаю как еще объяснить (((
Вообщем мне нужно засунуть выше приведённые процедуры так чтобы они отображались в stringGrid и cheklistbox сразу после запуска программы (без использования процедуры procedure Tmain.FormCreate(Sender: TObject);)
надеюсь теперь понятно?

Прикрепил проект имитирующий мою проблему.

PS cheklistbox разобрался. Данные в stringgrid выводится не хотят

Это сообщение отредактировал(а) MrDmitry - 10.11.2008, 14:35

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  test.rar 205,43 Kb
PM MAIL   Вверх
MrDmitry
Дата 11.11.2008, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



up
PM MAIL   Вверх
imageman
Дата 12.11.2008, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 30.9.2004

Репутация: 1
Всего: 1



а ты число строк и столбцов меняешь? Я нигде не вижу, чтобы ты менял число строк на экране.


PM MAIL   Вверх
ziga
Дата 13.11.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 25.4.2007

Репутация: 1
Всего: 1



Возможно тут ошибка 
Код

   StringGrid1.rows[row_str].CommaText := res;

у тебя переменная res нигде не заполняется если туда поставить search_str то грид заполняется

а TCheсkListBox всё нормально заполняется smile

Это сообщение отредактировал(а) ziga - 13.11.2008, 11:34
PM MAIL   Вверх
MrDmitry
Дата 15.11.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Цитата(ziga @ 13.11.2008,  11:31)
Возможно тут ошибка 
Код

   StringGrid1.rows[row_str].CommaText := res;

у тебя переменная res нигде не заполняется если туда поставить search_str то грид заполняется

а TCheсkListBox всё нормально заполняется smile

Да спасибо я уже разобрался)
Тему можно закрывать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0761 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.