Вопрос № 172038: Здравствуйте, уважаемые эксперты! Подскажите пожалуйста, почему работает первый код и не работает второй. Выдает ошибку. Ругается, что OpenDialog1 ещё не назван. Оба кода в приложении. P.S. Пишу на Delphi 7....
Вопрос № 172041: Добрый день!Уважаемые эксперты помогите пожалуиста дописать такую программу:Найти суммы строк массива и переставить строки массива так, чтобы значения полученных сумм располагались по убыванию.Писал как мог(каряво),закончил тем что нашел суммы строк ...
Вопрос № 172038:
Здравствуйте, уважаемые эксперты! Подскажите пожалуйста, почему работает первый код и не работает второй. Выдает ошибку. Ругается, что OpenDialog1 ещё не назван. Оба кода в приложении. P.S. Пишу на Delphi 7.
Во втором случае ваша процедура addplay не описана как метод формы, соответственно она не знает объекта OpenDialog1, принадлежащего форме. Тут есть два варианта, либо заменить в ней все обращения к объектам формы, добавив к ним Form1. Т.е. должно быть например не просто OpenDialog1, а Form1.OpenDialog1, Form1.ListBox1 и т.д. Второй вариант: добавить описание этой процедуры к методам формы. Примерно как в приложении - жирным выделено, то что вам нужно добавить или изменить.
Приложение:
Ответ отправил: Тимошенко Дмитрий, Студент
Ответ отправлен: 10.09.2009, 07:23
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 254013
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Судя по всему, Вы хотите упростить свой код. Ошибка в том, что Вы "вынесли" свое упрощение (подпроцедуру) из основной процедуры. Если её вернуть обратно - всё будет работать.
Код:
procedure TForm1.SpeedButton2Click(Sender: TObject); //переместить
ВАШУ подпроцедуру сюда (внутрь основной процедуры) procedure addplay; var songname:string; begin if OpenDialog1.Execute then begin ListBox1.Items.Add(OpenDialog1.FileName); songname:=OpenDialog1.FileName; repeat delete(songname,1,pos('\',songname));until pos('\',songname)=0; ListBox2.Items.Add(songname); pusto:=false; end; end;
begin if pusto=true then addplay; end;
----- Пусть все будет хорошо! Давайте жить дружно! :) И будет жить еще лучше!
Ответ отправил: LanK, Профессионал
Ответ отправлен: 10.09.2009, 13:01
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 254031
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 172041:
Добрый день!Уважаемые эксперты помогите пожалуиста дописать такую программу:Найти суммы строк массива и переставить строки массива так, чтобы значения полученных сумм располагались по убыванию.Писал как мог(каряво),закончил тем что нашел суммы строк массива,заполнил их в стринггрид.Нашел мин. элемент.Дальше не поиму как делать.
Отвечает Patriotix-N, 5-й класс :
Здравствуйте, unberto. Я обычно сортирую следующим способом. Вставите это вместо вашего кода, нахождения минимального элемента массива. Что подразумевалось под Edit1 не знаю, поэтому не стал включать код.
P.S. "переставить строки" = Сортировка массива. Существуем множество способов для этого. Можете ознакомиться с ними, если будет интересно.