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

Вниз

ListBox с подсказкой   Найти похожие ветки 

 
ТехникПТО ©   (2005-01-30 14:27) [0]

Нужно сделать подсказку в ListBox"е... т.е. при навидении какого либо элемента высвечивалась дополнительная информация...
скажем описание или коментарий.. в Memo


 
Neznaika ©   (2005-01-30 14:41) [1]

Уважаемый ТехникПТО мне кажется что все вопросы возникающие у Вас по ходу написания программы Вы выкладыаете здесь... А как на счет самому подумать...?

По поводу вопроса: Приблизительно представляя высоту строки в Вашем Listbox-се и зная сколько пользователь может водить мышкой над ним в поиске нужной ему строки, думаю что постоянное мерцание подсказок в мемо как только проведешь мышкой на ListBoxom, будет как минимум раздражать, советую сделать активацию подсказки при выделении строки в ListBoxe. Это и проще и практичней...


 
ТехникПТО ©   (2005-01-30 14:55) [2]


> Уважаемый ТехникПТО мне кажется что все вопросы возникающие
> у Вас по ходу написания программы Вы выкладыаете здесь...
> А как на счет самому подумать...?

Сорь если напрягаю... НО я еще навичок в этом деле и сейчас работаю над довольно объемным и сложным проектом...
Базовые знания у меня только Паскаль... компьютерного образования 0, конечно кроме многолетнего стажа работы с компами... еще с 256 начинал :) а мне всего то 20 лет :)
о системе и железе знаю довольно много... многое додумываю сам ментодом научного тыка (я про процесс написания)...
и в конце концов я задаю не такие уж и сложные вопросы :)
был я на многих форумах.. но остановился на этом.. мне понравился здесь народ... как он отвечает на вопросы... самое главное быстро и правильно :) респект вам всем :)
если бы я щас работал с базами данных.. я бы не задавал подобных вопросов, а сделал бы связанные таблици и не парился.. но БД мне здесь не нужно...
P.S. Если напрягаю то сорри!!


> По поводу вопроса: Приблизительно представляя высоту строки
> в Вашем Listbox-се и зная сколько пользователь может водить
> мышкой над ним в поиске нужной ему строки, думаю что постоянное
> мерцание подсказок в мемо как только проведешь мышкой на
> ListBoxom, будет как минимум раздражать, советую сделать
> активацию подсказки при выделении строки в ListBoxe. Это
> и проще и практичней...


вы не поняли... под ListBox"oм есть Memo...
при выделении какой либо строки в ListBox"e должен быть комент в этом самом мемо...
как это реализовать?? как связать какую то конкретную строку в ListBox"e с определенным значением в Memo???


 
Neznaika ©   (2005-01-30 15:04) [3]

procedure listbox1.Click(la la la );
var i : integer;
begin
i:=-1;
If listbox1.ItemIndex > -1 then begin
i:=Listbox1.ItemIndex;
case i of begin
-1: memo1.text:="Выделите интересующий Вас элемент";
0:  memo1.text:="Вы выбрали первую строку сверху";
2: и т.д.
end;

Это первое что пришло в голову... :)


 
ТехникПТО ©   (2005-01-30 15:05) [4]


> procedure listbox1.Click(la la la );
> var i : integer;
> begin
> i:=-1;
> If listbox1.ItemIndex > -1 then begin
> i:=Listbox1.ItemIndex;
> case i of begin
> -1: memo1.text:="Выделите интересующий Вас элемент";
> 0:  memo1.text:="Вы выбрали первую строку сверху";
> 2: и т.д.
> end;
>
> Это первое что пришло в голову... :)

Очень интерестно :) а как это все хранить?? :)


 
Neznaika ©   (2005-01-30 15:15) [5]

Не понял ... что хранить?

Тект мемо? - да хоть в *.тхт
Или я вообще не понял Ваш вопрос...?


 
ТехникПТО ©   (2005-01-30 16:11) [6]

сделал :-P


 
Antonn ©   (2005-01-30 16:57) [7]


> еще с 256 начинал

круто, где такой откопали?


 
ТехникПТО ©   (2005-01-30 17:06) [8]


> круто, где такой откопали?

1990 год :)


 
SergP ©   (2005-01-30 17:29) [9]


>  [8] ТехникПТО ©   (30.01.05 17:06)
>
> > круто, где такой откопали?
>
> 1990 год :)


В  [7] Antonn ©   (30.01.05 16:57) очевидно мелось ввиду "еще с 256 начинал"


 
Baddelay   (2005-01-31 02:15) [10]

Когда-то я делал, что то подобное, весь текст у меня хранился в скрытом Мемо, и просто при выделении итема в Lb у меня считывало инфу с Мемо с таким же индексом, и вставляла его в Label(нужно WordWrap true). Только етот способ работает если в lb итемы неизменяются по ходу выполнения проги..


 
diabolik ©   (2005-01-31 07:33) [11]


> ТехникПТО ©   (30.01.05 14:27)  
> Нужно сделать подсказку в ListBox"е... т.е. при навидении
> какого либо элемента высвечивалась дополнительная информация...
> скажем описание или коментарий.. в Memo


> Baddelay   (31.01.05 02:15) [10]
> Когда-то я делал, что то подобное, весь текст у меня хранился
> в скрытом Мемо, и просто при выделении итема в Lb у меня
> считывало инфу с Мемо с таким же индексом, и вставляла его
> в Label(нужно WordWrap true). Только етот способ работает
> если в lb итемы неизменяются по ходу выполнения проги..


Я то же делал что-то подобное. Только для этого использовал не ListBox а ListView. Все данные хранились в типизированном *.dat файле. Было три колонки и четвертая скрытая (не отображалась). При выборе какого либо пункта по ListView данные в Edit отображались из 4 колонки. Просто и со вкусом. Если нужно поищу исходный текст...


 
ТехникПТО ©   (2005-01-31 08:50) [12]


> Я то же делал что-то подобное. Только для этого использовал
> не ListBox а ListView. Все данные хранились в типизированном
> *.dat файле. Было три колонки и четвертая скрытая (не отображалась).
> При выборе какого либо пункта по ListView данные в Edit
> отображались из 4 колонки. Просто и со вкусом. Если нужно
> поищу исходный текст...

Поищи плиз.. это будет получше чем я сделал :)
Я просто создаю файл txt с именем Itema :) и соответсвенно при наведении загружаю этот файл... но при изменении итема создаеться еще один текстовый фалй уже с новым именем а старый остаеться :( мусор :((


 
Neznaika ©   (2005-01-31 10:29) [13]

>>ТехникПТО ©   (31.01.05 08:50) [12]
>>но при изменении итема создаеться еще один текстовый фалй уже с новым именем а старый остаеться :( мусор :((

А удалять за собой мусор...Не?


 
ТехникПТО ©   (2005-01-31 10:38) [14]


> А удалять за собой мусор...Не?

лениво :) хотя можно и подумать :) хм... элементарно :)


 
Diabolik ©   (2005-02-01 05:09) [15]

2ТехникПТО - как обещал даю код


// определяем тип TBSelected как record (запись)
type
TBSelected = record
  Check : Boolean;      // здесь информация по checkbox из ListView
  Select1: String[50];  // Текст колонки №1
  Select2: String[10];  // Текст колонки №2
  Select3: String[255]; // Текст колонки №3
  Select4: String[150]; // Текст колонки №4
end;
// количество колонок необходимых к записи и длинну можно указать свою

// объявляем переменные
var F: file of TBSelected;
   ListItem: TListItem;
   Records: array[0..20] of TBSelected; // количество записей в файле
   BaseColumn: TListColumn;

// добавление колонок в ListView
procedure TSB.FormCreate(Sender: TObject);
var INI: TIniFile;
begin
INI := TIniFile.Create(ExtractFilePath(ParamStr(0))+"Base.ini");
BaseColumn := BaseList.Columns.Add;
BaseColumn.Caption := INI.ReadString("BaseListColumns","First","Имя файла");
BaseColumn.Width   := INI.ReadInteger("BaseListColumns", "First.width", 92);
BaseColumn := BaseList.Columns.Add;
BaseColumn.Caption := INI.ReadString("BaseListColumns","Second","Открывать при старте");
BaseColumn.Width   := INI.ReadInteger("BaseListColumns", "Second.width", 127);
BaseColumn.Alignment := taCenter;
BaseColumn := BaseList.Columns.Add;
BaseColumn.Caption := INI.ReadString("BaseListColumns","Therd","Описание");
INI.Free;
end;

// процедура чтения из файла
procedure TSB.LoadDBList(Sender: TObject);
var Rec: TBSelected;
begin
 AssignFile(F, ExtractFilePath(ParamStr(0))+"BaseList.dat");
 Reset(F);
 try
   while not Eof(f) do begin
     Read(F, Rec);
       with BaseList do begin
           ListItem := Items.Add;
           ListItem.Checked := Rec.Check;
           ListItem.Caption := Rec.Select1;
           ListItem.SubItems.Add(Rec.Select2);
           ListItem.SubItems.Add(Rec.Select3);
           ListItem.SubItems.Add(Rec.Select4);
       end;
   end;
 finally
   CloseFile(F);
 end;
end;

// процедура записи в файл
procedure TSB.SaveDBList(Sender: TObject);
var I: Integer;
begin
 AssignFile(F, ExtractFilePath(ParamStr(0))+"BaseList.dat");
 Rewrite(F);
 try
   with BaseList do
     for I:= 0 to Items.Count-1 do
       begin
         Records[I].Check   := Items.Item[I].Checked;
         Records[I].Select1 := Items.Item[I].Caption;
         Records[I].Select2 := Items.Item[I].SubItems.Strings[0];
         Records[I].Select3 := Items.Item[I].SubItems.Strings[1];
         Records[I].Select4 := Items.Item[I].SubItems.Strings[2];
         Write(F, Records[I]);
       end;
 finally
   CloseFile(F);
 end;
end;

// добавление записи из файла в listview
procedure TSB.FormActivate(Sender: TObject);
begin
BTAdd.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0))+"images\button\sb - add.bmp");
BTDelete.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0))+"images\button\sb - delete.bmp");
BTUp.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0))+"images\button\sb - up.bmp");
BTDown.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0))+"images\button\sb - down.bmp");
BTOk.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0))+"images\button\sb - ok.bmp");
BTCancel.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0))+"images\button\sb - cancel.bmp");
BTAdd.Margin    := 10;
BTDelete.Margin := 10;
BTUp.Margin     := 10;
BTDown.Margin   := 10;
BTOk.Margin     := 16;
BTCancel.Margin := 3;
LoadDBList(Self);
BaseList.SetFocus;
if BaseList.Items.Count <> 0
then begin
       BaseList.Selected := BaseList.Items.Item[0];
       BaseList.ItemFocused := BaseList.Selected;
       BaseList.Selected.Selected := true;
     end
else exit;              
end;

// вывод данных из невидимой колонки в строку Edit
procedure TSB.BaseListSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
begin
 If Selected
 then EditPath.Text := BaseList.Selected.SubItems.Strings[2]
 else EditPath.Text := "";
end;


Думаю смысл понятен??



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

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

Наверх




Память: 0.51 MB
Время: 0.044 c
3-1105458423
Quiii
2005-01-11 18:47
2005.02.13
Po4emu Delphik rugaetsja?


4-1104071573
mariya_mezenceva
2004-12-26 17:32
2005.02.13
winexec(s,sw_show) - ругается


3-1105162091
va
2005-01-08 08:28
2005.02.13
БД - IntraWeb


14-1106534898
Думкин
2005-01-24 05:48
2005.02.13
С Днем рождения! 24 января


3-1105972387
Belkova
2005-01-17 17:33
2005.02.13
Данные в архив





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский