Вопрос № 35915: Здравствуте эксперты!
У меня есть кнопка Button, как сделать чтобы когда на нее нажимаеш открывался файл
который ты ей указал?
Заранее благодарен!...Вопрос № 35932: Привет всем !!!
Вот вопрос
Memo1.Lines.Add(buf);
тут мы добовляем в memo1 1-ю строку из файла !!!
А как вывести содержимое всего файла ???
А вот ешё посоветуйте что нибуть по работе с COM портами !!!
Только на Русском !!...Вопрос № 35947: Добрый день!
Подскажите пожайлуста, как можно реализовать:
1. Создаю массив кнопок. Отображаю их на форме. Как удалить кнопку не только из масива но из формы. Не надо скрывать, надо удалить.
2. Подскажите какую-нибудь структуру, динамичес...
Вопрос № 35.915
Здравствуте эксперты!
У меня есть кнопка Button, как сделать чтобы когда на нее нажимаеш открывался файл
который ты ей указал?
Заранее благодарен!
Отправлен: 21.02.2006, 19:20
Вопрос задал: BatanRus (статус: Посетитель)
Всего ответов: 8 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Ерёмин Андрей
Здравствуйте, BatanRus!
Кладёте на форму TOpenDialog (вкладка Dialogs). А дальше щёлкаете дважды по кнопке и пишете код:
uses ShellAPI; ... if OpenDialog1.Execute then ShellExecute(0,'open',PChar(OpenDialog1.FileName),'','',SW_SHOWNORMAL);
Строку с "uses" естественно в самое начало модуля - т.е. просто добавить в список название "ShellAPI".
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 21.02.2006, 20:53
Отвечает: Злоумышленник
Здравствуйте, BatanRus!
...
uses
ShellApi;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(form1.Handle,nil,'D:SomeFile.txt',nil,nil,SW_SHOWNORMAL);
end;
--------- Почему нет встроенного языка 1С на мордовском? Было бы клёво!
Ответ отправил: Злоумышленник (статус: 3-ий класс)
Отправлен: 21.02.2006, 21:35
Отвечает: Leshiy2006
Здравствуйте, BatanRus! Выражайтесь конкретней какой файл и как его открывать-через Вашу прогу или через другую
1)
var
F:File;
AssignFile(F,FileName);
Reset(F);
если хотите чтобы пользователь сам выбирал файл используйте OpenDialog
Ответ отправил: Leshiy2006 (статус: 3-ий класс)
Отправлен: 21.02.2006, 22:35
Отвечает: sir henry
Здравствуйте, BatanRus!
Для того, чтобы иметь возможность выбрать файл для открытия, нужно кинуть на форму компонент TOpenDialog.
В событии кнопки OnClick запишите:
If OpenDialog1.Execute The
ShellExecute(0, 'open', PChar(OpenDialog1.FileName), NIL, NIL, SW_SHOW);
Для того, чтобы выбирать файлы нужного Вам формата, запишите в свойство компонента TOpenDialog расширение нужных Вам файлов:
OpenDialogI.Filter := 'Текстовые файлы|*.txt';
Если нужно задать каталог где файл отличный от текущего, то можно сделать так:
OpenDialogI.InitiaiDir := 'c:Мои_тексты';
Не забудте в строке USES подключить модуль ShellAPI.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 22.02.2006, 06:00
Отвечает: Diman_A
Здравствуйте, BatanRus!
If OpenDialog1.Execute Then
Memo1.Lines.LoadFromFile(FileName);
Ответ отправил: Diman_A (статус: 5-ый класс)
Отправлен: 22.02.2006, 13:28
Отвечает: Полховский Александр Владимирович
Здравствуйте, BatanRus!
И всё же добавлю.
Есть в модуле ShellAPI процедура ShellExecute.
Если "открыть" подразумевает запустить программу, то в Parameters записываем параметры к программе (или '' усли их нет), если же открыть документ стандартной для неё программой (.doc - msword, .txt - блокнот и т.п.), то пишем nil.
Пример:
shellexecute(handle, 'open', 'c:
elax
estart.cmd', '', 'c:
elax', sw_shownormal);
shellexecute(handle, 'open', 'c:FRUNLOG.TXT', nil, 'c:', sw_shownormal);
Вместо sw_shownormal можно и другие использовать (это целое число), тогда можно запустить в развёрнутом или свёрнутом виде.
--------- Спасём нашу хрупкую планету !
Отвечает: Ataman N. N.
Здравствуйте, BatanRus!
Задавайте, пожалуйтса, вопрос конкретнее. Не ясно, какой файл Вы хотите открывать, то ли текстовай, то ли другой какой-то.
Ответ отправил: Ataman N. N. (статус: 8-ой класс)
Отправлен: 22.02.2006, 17:37
Отвечает: Николай Б.
Здравствуйте, BatanRus!
Если нужно открыть вайл (запустить программу) программой, назначенной по умолчанию в windows,
то используй две (точнее, одну из них) ниже приведённые ф-ции.
var filename : string; // строка с названием файла
var F:TextFile;
s:string;
--------
AssignFile(F,FileName);
While not eof(F) do
begin
s = ReadLn(F);
Memo1.Lines.Add(s);
end;
либо
Memo1.Lines.LoadFromFile(FileName)
2. Могу дать книгу по COM на русском (мое мыло arbuznikov@matrix.odessa.ua)
--------- "Будущее принадлежит тем, кто верен своей мечте" - Элеонора Рузвельт
Ответ отправил: Ujin Antikvar (статус: 5-ый класс)
Отправлен: 22.02.2006, 00:07 Оценка за ответ: 5 Комментарий оценки: Спасибо а книга электронная ???
Отвечает: komatoz
Здравствуйте, Tamashev Denis M!
memo1.Lines.LoadFromFile('File.txt');
а вот здесь вордовские файлы уже не получится просмотреть..
Ответ отправил: komatoz (статус: 2-ой класс)
Отправлен: 22.02.2006, 02:20 Оценка за ответ: 5
Отвечает: sir henry
Здравствуйте, Tamashev Denis M!
Нет ничего прще:
If OpenDialog1.Execute The
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
Загружает в Мемо файл, который Вы выбрали с помощью диалога открытия файла.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 22.02.2006, 06:04 Оценка за ответ: 5
Отвечает: Diman_A
Здравствуйте, Tamashev Denis M!
Чтобы загрузить содержимое файла в memo, воспользуйся процедурой Memo1.Lines.LoadFromFile(FileName);
Ответ отправил: Diman_A (статус: 5-ый класс)
Отправлен: 22.02.2006, 13:27 Оценка за ответ: 4
Отвечает: Ataman N. N.
Здравствуйте, Tamashev Denis M!
Memo1.Lines.LoadFromFile('<имя файла>');
По поводу СОМ порта - зайдите на сайт http://worldcpp.vingrad.ru/ там есть статья в разделе Ввод/Вывод. Но примеры написаны на С++.
Ответ отправил: Ataman N. N. (статус: 8-ой класс)
Отправлен: 22.02.2006, 17:27 Оценка за ответ: 5
Отвечает: Злоумышленник
Здравствуйте, Tamashev Denis M!
Ком порты:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1126&mode=print
http://www.delphikingdom.com/asp/viewitem.asp?catalogID=388
Это лучшие руководства.
--------- Почему нет встроенного языка 1С на мордовском? Было бы клёво!
Ответ отправил: Злоумышленник (статус: 3-ий класс)
Отправлен: 22.02.2006, 18:08 Оценка за ответ: 5 Комментарий оценки: ПАСИБО !!!
Вопрос № 35.947
Добрый день!
Подскажите пожайлуста, как можно реализовать:
1. Создаю массив кнопок. Отображаю их на форме. Как удалить кнопку не только из масива но из формы. Не надо скрывать, надо удалить.
2. Подскажите какую-нибудь структуру, динамический массив. Элементы в него можно добовлять, и автоматически увеличиваеться массив.
Спасибо всем за ответы.
Отправлен: 22.02.2006, 07:19
Вопрос задал: AllexZ (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 13)
Отвечает: sir henry
Здравствуйте, AllexZ!
1. Любой объект удаляется с помощью метода Release.
2. Если автоматически, то Вам подойдет какой-либо из потомков класса TList.
Для динамисчекого массива, который уже есть в Дельфи, размер нужно определять вручную. У TList'а же при добавлении элемента размер увеличивается автоматом.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 22.02.2006, 07:44 Оценка за ответ: 4 Комментарий оценки: Еще бы пример по TList.
Отвечает: Jadd
Здравствуйте, AllexZ!
1. MyButton.Free; для удаления.
2. Можно, как написано выше, а можно написать свой класс, который будет заниматься диспетчиризацией работы с динамическим массивом. Лично я бы сделал примерно так (о С++ где ты? :) ).
К примеру.
arr: array of MyStruct; //объявил
SetLength(arr, 1); //под первый эемент, а потом его же вызываешь для установки новой длины
Успехов.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 22.02.2006, 08:51 Оценка за ответ: 5 Комментарий оценки: С++ где ты? Что ты имел ввиду?
Отвечает: komatoz
Здравствуйте, AllexZ!
у кнопки есть функция или процедура Destroy..
Ответ отправил: komatoz (статус: 2-ой класс)
Отправлен: 22.02.2006, 10:48
Отвечает: Ataman N. N.
Здравствуйте, AllexZ!
2. Стандартная динамическая структура - TList, но с ней работать сложнее.
Динамический массив:
var DynAr: array of <Type> - описываем массив
Где-то в программе
SetLength(DynAr, CountEl) - устанавливаем длину массива (индексация елементов в дин.массиве начинается с нуля)//CountEl - число елементов, при CountEl=0 массив уничтожается.
DynAr:=nil - удаление массива, то же что и
SetLength(DynAr, 0).
Ответ отправил: Ataman N. N. (статус: 8-ой класс)
Отправлен: 22.02.2006, 17:23
Отвечает: Leshiy2006
Здравствуйте, AllexZ!
Вот небольшой пример(см приложение) если заранее неизвестно сколько кнопок надо то используйте следующее:
SetLength(<имя вашего массива>, i);
Удачи!
Приложение:
Ответ отправил: Leshiy2006 (статус: 3-ий класс)
Отправлен: 22.02.2006, 23:00