Вопрос № 20599: Как найти все ListBox - ы, имя которых начинается с "Channel_" и удалить из них строку, значение которой расно строковой переменной S ?...Вопрос № 20620: Аъек цдочъпу.
Амномъ я келз амп ичимх: Кле лемюсмдукм мнуъчпщ имлъмйщлме ноуймтелуе ноуиоинйёллме и мълмалмх рмоке (лчсмдупъз ленмъоедъпаеллм а ъчкмх рмоке). Иомке лежм лч рмоке юядеп лчсмдупъз леъимйщим илмнми у пеиъпмаме милм.
Ичиук ънмъмюм...Вопрос № 20621: Всем здрасти.
Вопервых извените за прошлый вопрос.
А вопрос у меня вот какой: Мне необходимо описать консольное приложение прикркплённое к основной форме (находится непосредственно в самой форме). Кроме него на форме будет находится несколько...
Вопрос № 20599
Как найти все ListBox - ы, имя которых начинается с "Channel_" и удалить из них строку, значение которой расно строковой переменной S ?
Отправлен: 09.05.2005, 11:25
Вопрос задал: source (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: John Freeman
Здравствуйте, source!
1) Найти - Form.FindComponent (по строке имени, не работает с масками, так что перебор)
2) Второе - удалить только перебором for c:=0 to listboxx.items.count-1 do ...
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 10.05.2005, 14:55
Отвечает: wils0n
Здравствуйте, source!
Эта процедура оббегает все компоненты на форме и смотрит кто из низ ЛистБокс и у кого надо удаляет строку (одну!!!).
procedure TForm1.KillStringFromListBoxes(s:string);
var i,idx:integer;
temp:TListBox;
begin
for i:=0 to ComponentCount-1 do begin // пробегаем все компоненты данной формы. Если эта процедура будет реализована где-нибудь в другом месте, а не в модуле формы, то надо ещё будет передать ссылку на форму и потом обращаться как FormXY.Components[i] и т.д.
if (Components[i] is TListBox) and (pos('Channel_',Components[i].Name)=1) then begin //вытаскиваем поодиночке все ListBox'ы да такие, чтоб в начале их имени стояло 'Channel_'
temp:=TListBox(Components[i]); // Для удобства обзовём ЛистБокс переменной temp
idx:=temp.Items.IndexOf(s); // смотрим, если нужная строка s в Боксе
if (idx>-1) then temp.Items.Delete(idx); // если есть, то убиваем***
end;
end;
end;
***как видно из листинга, убивается только одна строка, если надо убить из Бокса все строки, которые равны строке s, то тело выполнения условия будет:
repeat
temp:=TListBox(Components[i]); // Для удобства обзовём ЛистБокс переменной temp
idx:=temp.Items.IndexOf(s); // смотрим, если нужная строка s в Боксе
if (idx>-1) then temp.Items.Delete(idx); // если есть, то убиваем***
until idx<0;
Ответ отправил: wils0n (статус: 1-ый класс)
Отправлен: 13.05.2005, 18:22
Вопрос № 20620
Аъек цдочъпу.
Амномъ я келз амп ичимх: Кле лемюсмдукм мнуъчпщ имлъмйщлме ноуймтелуе ноуиоинйёллме и мълмалмх рмоке (лчсмдупъз ленмъоедъпаеллм а ъчкмх рмоке). Иомке лежм лч рмоке юядеп лчсмдупъз леъимйщим илмнми у пеиъпмаме милм.
Ичиук ънмъмюмк кмтлм аьнмйлупщ дчлляв цчдчбя.
Еъйу амцкмтлм а мпаепе яичцчпщ ноукеольх йуъпулж.
Цчочлее юйчжмдчоел!!!
Отправлен: 10.05.2005, 01:36
Вопрос задал: GREEDY (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Jadd
Здравствуйте, GREEDY!
Сочувствую :). Сам этим болел. Врачи помогли :). Или само прошло? Вообщем не важно. Но, мой совет, смена кодировки или попытка писать хотя бы транслитов здорово облегчила бы всем жизнь ;)
Ответ отправил: Jadd (статус: 3-ий класс)
Отправлен: 10.05.2005, 18:10
Отвечает: Boriss
Здравствуйте, GREEDY!
А действительно консольным оно должно быть? Может сделать просто эмуляцию консольного? То есть черное и шрифт подобрать
Ответ отправил: Boriss (статус: Профессор)
Отправлен: 11.05.2005, 17:08
Вопрос № 20621
Всем здрасти.
Вопервых извените за прошлый вопрос.
А вопрос у меня вот какой: Мне необходимо описать консольное приложение прикркплённое к основной форме (находится непосредственно в самой форме). Кроме него на форме будет находится несколько кнопок и текстовое окно.
Каким способом можно выполнить данную задачу.
Если возможно в ответе указать примерный листинг.
Заранее благодарен!!!
Отправлен: 10.05.2005, 02:11
Вопрос задал: GREEDY (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: X
Здравствуйте, GREEDY!
Настоящее консольное приложение прикрепить к форме нельзя(если я не прав то буду рад услышать как это сделать), можно например сделать подобие консоли с помощю Memo.
В приложении функции ввода(с выводом я думаю и так всё ясно)
Приложение:
Ответ отправил: X (статус: 3-ий класс)
Отправлен: 10.05.2005, 14:23
Отвечает: Jadd
Здравствуйте, GREEDY!
В свою очередь, разясните, пожалуйста, следующий тезис: " консольное приложение прикркплённое к основной форме". Что сие значит? Не совсем понятно. Если речь идет о вызове консольной программы, тогда тут есть несколько вариантов. 1) (правильный) функция WinAPI - CreateProcess. 2) (менее правильный, но все же) функция WinAPI - winexec. 3) (тоже сойдет) ShellExecute. Описание параметров смотрите в MSDN. Если нужно написать консольное приложение, которое открывает форму, то тут нужно иначе делать. Расшифруйте,
пожауйста.
Ответ отправил: Jadd (статус: 3-ий класс)
Отправлен: 10.05.2005, 18:07