Форум: "Основная";
Текущий архив: 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
Время: 1.765 c