|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
кнопка Button и многострочный редактор Memo
Нужно составить программу, в которой будет кнопка Button и многострочный редактор Memo. При нажатии на кнопку вызывается диалог открытия файла(с помощью компонента OpenDialog) и содержимое выбранного файла отображается в Memo. Если файл имеет имя demo(в любом регистре), то текст отображается одним шрифтом, если другое-другим. Как такое реализовать я в целом знаю, но как сделать проверку на имя файла? Я знаю, что имя файла хранится в OpenDialog.FileName, но дело в том, что там находится путь к нему. К примеру, выбрав файл Demo в папке "папка1", в OpenDialog.FileName будет находиться следующий текст: "C:\папка1\demo.txt". Как тогда осуществить проверку имени файла? С конца что ли? Мне кажется, должен быть какой-то другой путь. Нет ли переменной, в которой будет храниться само имя файла, а не путь к нему?
Последний раз редактировалось Diplomate, 10.11.2012 в 21:04. |
#2
|
||||
|
||||
AnsiUpperCase, AnsiLowerCase и вперёд.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
||||
|
||||
Цитата:
Код:
if AnsiSameText('demo.txt', ExtractFileName(OpenDialog1.FileName)) then Код:
if AnsiSameText('demo', ChangeFileExt(ExtractFileName(OpenDialog1.FileName), '')) then |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Diplomate (12.11.2012)
|
#4
|
|||
|
|||
Большое спасибо.
У меня тут еще один вопрос. Нужно создать программу, состоящую из двух таблиц(5x5 и 1x5) и кнопки "Расчет". Суть задания в том, чтобы все числа в строке первой таблицы складывались и их сумма отображалась в соответствующей строке второй таблицы. Я составил код, но после заполнения первой таблицы и нажатия кнопки "Расчет" во второй таблице ничего не пишется! Вот код(Tab1 и Tab2 соответственно первая и вторая таблицы): Код:
procedure TForm1.Button1Click(Sender: TObject); var i,j,n:integer; c:real; b:boolean; begin b:=true; //b-логическая переменная, которой присваивается значение false, если найдена пустая ячейка(проверка, что все ячейки строки //заполнены) c:=0; //c-переменная. в которой хранится сумма for i:=0 to Tab1.RowCount do begin for j:=0 to Tab1.ColCount do if Tab1.Cells[i,j]='' then //если ячейка пустая, то b:=0 b:=false; if b=true then //если b=true, то все ячейки заполнены, в этом случае мы подсчитываем сумму begin for n:=0 to Tab1.ColCount do c:=c+StrToFloat(Tab1.Cells[i,n]); Tab2.Cells[i,0]:=FloatToStr(c); end; end; end; Последний раз редактировалось Diplomate, 11.11.2012 в 18:41. |
#5
|
||||
|
||||
Цитата:
Ещё неправильно заданы диапазоны в циклах. Должно быть так: Код:
for i:=0 to Tab1.RowCount - 1 do ..... for j:=0 to Tab1.ColCount - 1 do ..... for n:=0 to Tab1.ColCount - 1 do |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Diplomate (12.11.2012)
|
#6
|
|||
|
|||
Премного благодарен.
Последний раз редактировалось Diplomate, 12.11.2012 в 21:45. |
#7
|
|||
|
|||
Программа не работает.
Написал другую программу Делфи, сохранил ее. Теперь, когда я открываю программу и пытаюсь ее запустить, на экран выводится пустая форма, хотя код и все остальное есть. Что за хрень???
Снимаю вопрос, программа мистическим образом снова стала работать. |
#8
|
|||
|
|||
Как выделить строку?
Мне нужно написать такую программу: у меня есть таблица, заполненная числами. Нужно сделать так, чтобы при выделении одной из ячеек таблицы, в компонент Label1 пишется сумма всех чисел в строке, где находится эта ячейка, а сама строка должна выделиться. Я сделала так, чтобы вычислялась сумму чисел, а как сделать так, чтобы выделилась строка? Как вообще выделить какую-нибудь ячейку в таблице? Какой нужен метод или какое свойство?
|
#9
|
||||
|
||||
Один вопрос - одна тема.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |