Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2012, 13:55   #1
lu_una
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 84
Печаль ComboBox как сделать строку первой

Добрый день )
И такой вопрос, в ComboBox список, который заполняется из базы, там 50 фамилий, с каждого компьютера заходит практически всегда один и тот же человек, как бы сделать, чтобы моя фамилия на моем компьютере выводилась первой, и так у всех пользователей?
Фамилия последнего посетителя с данного компьютера -была первой в следующий раз- вот так. Как это возможно?
Заранее спасибо
lu_una вне форума Ответить с цитированием
Старый 09.11.2012, 14:11   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Я через ини-файл делал, но там комбо был подключен к таблице пользователей в БД, а ини сохранялся ID user'а. После старта программы этот ID считывался и курсор позиционировался на соответствующей записи ID. В принципе, можете так же сделать.

А можно просто менять местами соответствующие строки:

Код:
Temp:=ComboBox1.Items[0];
ComboBox1.Items[0]:=ComboBox1.Items[n];
ComboBox1.Items[n]:=Temp;
ComboBox1.Refresh;
n - Ваша фамилия, Temp - временная строковая переменная

Или можно так - Переместить Вашу фамилию в начало списка:

Код:
ComboBox1.Items.Insert(0,ComboBox1.Items[n]);
ComboBox1.Items.Delete(n);
ComboBox1.Refresh;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 09.11.2012, 14:22   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

как бы сделать, чтобы моя фамилия на моем компьютере выводилась первой, и так у всех пользователей?
Код:
s:='Иванов';
можно найти в списке нужную строчку
Код:
j:=Combobox.Items.Indexof(s);
и сделать ее текущей
Код:
combobox.itemIndex:=j;
1. можно узнать имя пользователя вошедшего в Windows
Код:
GetUserName
+поиск примеров по применению

2. Запомнить имя последнего пользователя программы в Ini файле
Код:
ini.writeString('INFO','LastUser', combobox.Text);
И потом воспользоваться этой информацией
Код:
s:=ini.ReadString('INFO','LastUser', '');
j:=Combobox.Items.Indexof(r);
combobox.itemIndex:=j;
и конечно же перед использованием не забыть проинициализирвать переменные (создать объект)
Код:
ini:=Tinifile.Create(<здесь указать путь и имя ini файла >);
Код:
f:=ExtractFilePath(application.Exename) +'myapp.ini';
rini:=TiniFile.Create(f);
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 09.11.2012, 14:33   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Видимо, все-таки придется через ini делать, чтобы программа при следующем запуске знала, кто должен работать. А тогда проще фамилию сохранить да потом первой ее и вставить.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 09.11.2012, 14:41   #5
lu_una
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 84
По умолчанию

Спасибо за ответы!
Мучаюсь, разбираюсь в чужой программе..
Sciv, хотела написать Вам еще в ЛС, но видимо мне эта функция не доступна пока!
lu_una вне форума Ответить с цитированием
Старый 09.11.2012, 14:44   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
lu_una
На форум пиши. Одна голова хорошо а две - Змей Горыныч.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2012, 14:48   #7
lu_una
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 84
По умолчанию

Рабочий день все, продолжу в понедельник. Надеюсь советы помогут!

Все отлично, спасибо!

Последний раз редактировалось artemavd; 13.11.2012 в 09:43.
lu_una вне форума Ответить с цитированием
Старый 14.11.2012, 07:14   #8
lu_una
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 84
По умолчанию

А подскажите, куда сохранять файл ini лучше? Программа будет запускаться всеми сразу с разных компов, путь для всех для каждого свой, куда бы?

Последний раз редактировалось lu_una; 14.11.2012 в 08:17.
lu_una вне форума Ответить с цитированием
Старый 14.11.2012, 08:40   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Лучше в папку с программой
Для получения папки, где лежит программа, можно сделать так:

Код:
ProgPath:=ExtractFilePath(Application.ExeName);
IniFile:=TIniFile.Create(ProgPath+'config.ini');
config.ini - Ваш инишник, IniFile - объект типа TIniFile (для работы подключить модуль IniFiles) - думаю, это Вы и так знаете
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 14.11.2012, 08:46   #10
lu_una
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 84
По умолчанию

Так программа лежит на общем диске, и все ею пользуются, файлик каждому свой нужен. Программно делаю создание папки на С, создает, а если делаю создание файла ини в эту папку - программа падает. Какие проблемы у него?
На рабочий стол файл создавал мне, еще куда то. Туда не хочет.
lu_una вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно сделать чтобы одиннадцатая форма открывалась в первой Leila_4ever Общие вопросы Delphi 9 27.05.2011 08:53
Как программно выбрать строку в Combobox lutdan Общие вопросы Delphi 2 05.05.2011 19:30
Как записать в memo строку за строкой используя изменения combobox? Человек_Борща Общие вопросы Delphi 3 11.04.2010 17:18
Как сделать чтоб ячейка принимала значение первой не пустой из столбца? Shtefan Microsoft Office Excel 4 22.05.2009 12:00
Не могу внести строку из combobox в combobox!? tacer Помощь студентам 1 30.11.2007 19:45