|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
|||
|
|||
Подскажи еще на счет этого -
Ini := TIniFile.Create('С:\1.txt'); Если написать Ini := TIniFile.Create('1.txt'); разве файл не буди читаться из корневого каталога??? Или обязательно прописывать путь? Спасибо огромное за помощь. |
#17
|
|||
|
|||
Обязательно прописывать путь! Я уже на этом много раз попадался...
Код:
Ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'1.txt'); |
#18
|
|||
|
|||
Спасибо еще раз!
|
#19
|
|||
|
|||
Да не зачто )))
|
#20
|
|||
|
|||
Я еще не закончил, так что помощь еще пригодится, задумал себе целый проект для учебы, а теперь со своими знаниями расхлёбываю))
|
#21
|
|||
|
|||
Подскажите, что означают в коде %d и %s??
WriteLn(AFile, '[ComboBox2]'); Count := ComboBox2.Items.Count; WriteLn(AFile, Format('Records = %d', [Count])); for i := 1 to Count do WriteLn(AFile, Format('Name%d = %s', [i, ComboBox2.Items.Strings[i-1]])); |
#22
|
|||
|
|||
Помогите решить следующую задачу:
- необходимо при нажатии кнопки на первой форме поймать фокус одного из ComboBox'са и переключиться в модальную вторую форму procedure TForm1.Button1Click(Sender: TObject); begin Form2.ShowModal; end; - а при нажатии кнопки на второй форме нужно, чтобы она закрылась, а там где был фокус - вставился текст из Edit'а procedure TForm2.Button1Click(Sender: TObject); begin Form1.ComboBox(i).Text:= Edit1.Text; Form1.ComboBox(i).Items.Add(Edit1.Text); Form2.Close; end; Как надо поступить тут? |
#23
|
|||
|
|||
Насчет %d и %s почитай файл справки делфи по функции Format или поюзай гугл
А с фокусом я не понял. Ведь после того как ты жмешь на кнопку фокус получает она! А почемы бы около каждого бокса не поставить кнопку "Добавить"? Если надумаешь делать так, то для каждого клика кнопки пишешь нечто подобное Код:
if Form2.ShowModal = mrOk then begin ComboBox1(i).Text:= Form2.Edit1.Text; ComboBox1(i).Items.Add(Form2.Edit1.Text); end; Аналогично для остальных, меняя индексы Боксов Не забудь в Инспекторе объектов для кнопки Оk на второй форме поставить свойство ModalResult в состояние mrOK а для кнопки Отмена в mrCancel Последний раз редактировалось Drozh, 24.08.2008 в 11:22. |
#24
|
|||
|
|||
А если на против каждого ComboBox'а поставить RadioButton (она меньше места занимает). При наведении на ComboBox - выделяется RadioButton, стоящая напротив него, а дальше добавлять текст в этот ComboBox? Или все ComboBox'ы объединить RadioGroup??
Последний раз редактировалось Beast, 24.08.2008 в 11:57. |
#25
|
|||
|
|||
ну можно сделать RadioGroup с тремя RadioButton'ами причем поставить Visible в false и когда какая либо из Боксов получает фокус соответствюущий RadioButton получает Checked := true; И при нажатии кнопки Добавить смотрится какой Батн активен
|
#26
|
|||
|
|||
RadioGroup оказался не удобным, придется расставлять RadioButton'ы и работать уже через них.
|
#27
|
|||
|
|||
а в каком из событий для ComboBox'а лучше писать код программы, чтобы при его фокусе - RadioButton.Checked принимал значение true ?
|
#28
|
|||
|
|||
как привильно написать надо эту процедуру?
Код:
procedure TForm1.ComboBoxChange(Sender: TObject); var i: integer; begin for i := 1 to 3 do begin if TComboBox(i).Focused = true then TRadioButton(i).Checked := true else TRadioButton(i).Checked := false; end; end; Извиняюсь, впредь постараюсь быть поаккурутнее. Последний раз редактировалось Beast, 24.08.2008 в 14:10. |
#29
|
|||
|
|||
Вот таким образом решил добавить в ComboBox'ы информацию из другой формы:
Код:
procedure TForm2.Button1Click(Sender: TObject); var i: integer; ComboBox:TComboBox; begin i := Form1.RadioGroup1.ItemIndex+1; ComboBox := Form1.FindComponent('ComboBox'+IntToStr(i)) as TComboBox; ComboBox.Text := ComboBox1.Text + ' ' + Edit1.Text + ' ' + Edit2.Text + '. ' + Edit3.Text + '.'; ComboBox.Items.Add(ComboBox1.Text + ' ' + Edit1.Text + ' ' + Edit2.Text + '. ' + Edit3.Text + '.'); Form2.Close; end; А вот так удаляю строку из списка необходимого ComboBox'а: Код:
procedure TForm1.Button1Click(Sender: TObject); var i: integer; ComboBox:TComboBox; begin i := RadioGroup1.ItemIndex+1; ComboBox := FindComponent('ComboBox'+IntToStr(i)) as TComboBox; ComboBox.Items.Delete(ComboBox.ItemIndex); ComboBox.Text := ComboBox.Items.Strings[ComboBox.ItemIndex+1]; end; Ошибок вроде не выдает, но не знаю - написан код нормально или стоит чего подправить??? Последний раз редактировалось Beast, 25.08.2008 в 03:14. |
#30
|
|||
|
|||
Ан нет(((
Код:
procedure TForm2.Button1Click(Sender: TObject); var i: integer; ComboBox: TComboBox; begin i := RadioGroup1.ItemIndex+1; ComboBox := FindComponent('ComboBox'+IntToStr(i)) as TComboBox; if ComboBox.Items.Count > 1 then begin ComboBox.Items.Delete(ComboBox.ItemIndex); ComboBox.Text := ComboBox.Items.Strings[ComboBox.ItemIndex+1]; end else ShowMessage('Вы хотите удалить последнюю запись'); end; Мне нужно, чтобы удалялась из списка строка показанная в ComboBox'е и на ее место записывалась следующая за ней строка, но когда остается последняя запись - должно предупредить. Тут получается так - удаляется строка, а при повторном нажатии кнопки УДАЛИТЬ, ничего не удаляется(( Приходится снова выделять ComboBox, тогда удаляет, почему? Как мне поступить? Заранее спасибо! Последний раз редактировалось Beast, 25.08.2008 в 15:12. |