Вопрос № 21248: Здравствуйте уважаемые.
Такой вопрос:
Имеется компонент PageControl, нужно динамически во время выполнения программы создавать вкладки, причем с указанием заголовка. То есть ввел например в InputBox строку, тут же создалась вкладка с таким за...Вопрос № 21253: Уважаемые эксперты.
как сделать
1-что бы окно было по дефолту на весь экран.
2-Как запустить в программе экзешник.
3-Как написть что бы программа приводила файл вида (см. прил 1) к виду (см. прил 2)
4-Как лучше закрывать одну форм...Вопрос № 21259: сБЮФЮЕЛШЕ ЩЙЯОЕПРШ!!!!!! оНЛНЦХРЕ МЮ Delfi 7 ЯДЕКЮРЭ ОНХЯЙ Б RichEdit!!!...Вопрос № 21269: Добрый день всем. База на ASA(SyBase) 9. Программа на Delphi 6. У меня такой вопрос. Как через ADO вытащить все триггера к таблице и сам текст этих триггеров. И текст хранимых процедур и функций. Заранее благодарен.
Александр....Вопрос № 21270: Здравствуйте, уважаемые эксперты.
Вопрос такой: как в delphi защитить программу (исходники) паролем? Я имею в виду, чтобы при открытии проекта в Delphi, она сама выдавала запрос пароля и если он введен неправильно, не открывала бы проект.
Спа...Вопрос № 21271: Добрый день уважаемые эксперты
Не могли бы вы помочь мне в решении одной проблемы, а то я уже немного лазил по Интернете, спрашивал коллег но все без толку. Одна надежда на Вас. Суть вопроса. Мне нужно в Delphi рисовать стрелки (много) и мне инте...
Вопрос № 21248
Здравствуйте уважаемые.
Такой вопрос:
Имеется компонент PageControl, нужно динамически во время выполнения программы создавать вкладки, причем с указанием заголовка. То есть ввел например в InputBox строку, тут же создалась вкладка с таким заголовком.
Заранее спасибо
Отправлен: 23.05.2005, 21:15
Вопрос задал: Pithon (статус: Посетитель)
Всего ответов отправлено: 4
Отвечает: Jadd
Здравствуйте, Pithon!
Все очень просто. Достаточно хелп открыть и почитать. Там про PageControl все расписано. Ладно. Вот Вам пример:
var
sheet: TTabSheet;
begin
sheet := TTabSheet.Create(PageControl1); //создаем страницу и в качестве парэнт даем наш контрол
sheet.PageControl := PageControl1; //Указываем на родителя
sheet.Caption := 'Some caption'; //ставим текст заголовка
end;
Ну и дальше мы можем делать с этой страницей все, что заблагорассудится. Опять же, открываем хелп на классе TTabSheet и читаем про все свойства и методы. Удачи.
Ответ отправил: Jadd (статус: 4-ый класс)
Отправлен: 23.05.2005, 22:52
Отвечает: Ballon
Здравствуйте, Pithon!
Используй лучше компонент TabControl пример с ним смотри ниже:
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_RETURN)and(Edit1.Text <> '') then
begin
TabControl1.Tabs.Add(Edit1.Text);
TabControl1.TabIndex :=TabControl1.Tabs.Count-1;
end;
end;
Ответ отправил: Ballon (статус: 2-ой класс)
Отправлен: 24.05.2005, 09:55
Отвечает: Delphin
Здравствуйте, Pithon!
А что мешает это сделать?
Просто добавляй еще одну.
Качни себе книжку "Сто компонентов общего назначения" и почитай если ничего не понимаешь.
Ответ отправил: Delphin (статус: 3-ий класс)
Отправлен: 24.05.2005, 10:13
Отвечает: streetcat
Здравствуйте, Pithon!
приведенный в приложении код взят из файла справки Delphi стр. "Page controls"
Приложение:
Ответ отправил: streetcat (статус: 3-ий класс)
Отправлен: 24.05.2005, 15:06
Вопрос № 21253
Уважаемые эксперты.
как сделать
1-что бы окно было по дефолту на весь экран.
2-Как запустить в программе экзешник.
3-Как написть что бы программа приводила файл вида (см. прил 1) к виду (см. прил 2)
4-Как лучше закрывать одну форму и открывать другую (какими командами пользоваться).
Заранее огромное спасибо
Приложение:
Отправлен: 24.05.2005, 01:04
Вопрос задал: twmd (статус: 3-ий класс)
Всего ответов отправлено: 8
Отвечает: sir henry
Здравствуйте, twmd!
1. TForm.WindowState:=wsMaximized;
2. ShellExecute(hWnd, 'open', 'имя_файла_программы', 'Строка параметров программы', 'Рабочий_каталог_программы', SW_SHOW);
3. Считывать файл построчно и формировать строку как Вам нужно, потом записывать строку в другой файл.
4. Если форму предполагается использовать в дальнейшем, то Form.Hide (скрыть), Form.Show (показать).
Если форма больше не нужна, то Form.Close (закрыть навсегда).
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 24.05.2005, 05:38
Отвечает: Pushkin
Здравствуйте, twmd!
1. Form1.Windowstyle="wsMaximized" или присваивать свойствам Height, Top, Left, Width соответствующие значения;
2. WinExec, ShellExecute, CreateProcess и т.п.
3. Все аккорды пишутся символами латиницы, следовательно нужно проверять первый символ-не пробел в строке. Если его код находится в диапазоне A..z, тогда добавляем символ '>' в начало строки, при этом один пробел убираем.
4. Открывать ShowModal(); или Show(); закрывать Close;
Ответ отправил: Pushkin (статус: 2-ой класс)
Отправлен: 24.05.2005, 09:30
Отвечает: Jadd
Здравствуйте, twmd!
По-порядку:
1)В свойстве WindowState главной формы нужно выбрать wsMaximized.
2)Тут несколько вариантов: а)(самый правильный) CreateProcess (описание в MSDN, в хелпе или у меня ;) ); б)(тоже неплохой) shell_exequte (описание там же); в)(не самый хороший, т.к. устарел) winexec (описание сам догадаешься где ;) ).
3)Не совсем понятно что надо. Расставить значки > и ! через строчку? Считываешь файл в буфер строк (например, в TList) и построчно обрабатываешь, а затем сохраняешь в файле. Если не разберешься, пиши, дам пример.
4)Зависит от того, акая форма. Если модальная, то Form1.ShowModal, если не модальная - Form1.Show. Закрываешь любую форму через Form1.Close. Разумеется, вместо Form1 ставишь имя класса твоей формы. А, вообще, в вопросе сквозит необходимостью покупки хорошей книги по Дельфи или "рытье" в хелпе и свойствах объектов и компонент.
Надеюсь, что помог. Удачи.
Ответ отправил: Jadd (статус: 4-ый класс)
Отправлен: 24.05.2005, 09:32
Отвечает: Delphin
Здравствуйте, twmd!
1: В редакторе в свойствах формы ставь WindowState в Maxemized и редактируй его развернутым на весь экран.
2: Смотри Пр1.
3: А что то изменилось?!?
4: Вызывай форму Form1.Show; - Вызов просто открытием формы на равне с другими. Form1.ShowModal; - Вызов с перекрытием фокуса всех остальных форм программы. Form1.Hide; - Скрытие формы.
Приложение:
Ответ отправил: Delphin (статус: 3-ий класс)
Отправлен: 24.05.2005, 10:10
Отвечает: Gin
Здравствуйте, twmd!
1) Вариантов много, зайдите на
http://www.delphiworld.narod.ru/ В подразделе "Размеры и Положение" раздела "Программы и Интерфес" найдете ВСЕ что Вам нужно. А здесь просттой пример:
procedure TForm1.FormCreate(Sender: TObject);
begin
FormStyle := fsStayOnTop;
Left := 0;
Top := 0;
Height := Screen.Height;
Width := Screen.Width;
end;
2) Опять таки - есть варианты.
procedure TForm1.Button1Click(Sender: TObject);
var
w1: Word;
p1, p2: array[0..100] of Char;
begin
StrPcopy(p1, 'NOTEPAD');
if GetModuleHandle(p1) = 0 then
begin
StrPcopy(p2, 'C:WINDOWSNOTEPAD.EXE');
w1 := WinExec(p2, SW_Restore);
end;
end;
С Уважением, Gin.
Ответ отправил: Gin (статус: 2-ой класс)
Отправлен: 24.05.2005, 12:30
Отвечает: VBA
Здравствуйте, twmd!
Ответ на вопрос 1:
procedure TForm1.FormCreate(Sender: TObject);
begin
WindowState:=wsMinimized;
FormStyle:=fsStayOnTop;
end;
Ответ на вопрос 2:
WinExec('FileName.exe',SW_NORMAL);
Вместо SW_NORMAL может быть SW_HIDE, SW_RESTORE, SW_MAXIMIZE и др. (см. хелп.).
ShellExecute(HWND, Opearation, FileName, Parameters, Directory, ShowCmd);
HWND - хендл окна (HWND)
Operation - выполняемое действие, например 'Open' или 'Print' (String)
FileName - имя запускаемого файла (String)
Parameters - параметры, передаваемые запускаемому файлу (String)
Directory - рабочая папка (String)
ShowCmd - вид окна после запуска файла (SW_HIDE, SW_RESTORE и тд.)
Ответ на вопрос 4:
Для закрытия формы можно использовать метод Close или Free. В последнем случае форма удаляется из памяти, и если её необходимо будет снова открыть то делаем так:
MainForm:=TMainForm.Create(Self).
В случае использования Close форму можно показать так:
MainForm.Show или MainForm.ShowModal.
Ответ отправил: VBA (статус: 3-ий класс)
Отправлен: 24.05.2005, 13:34
Отвечает: streetcat
Здравствуйте, twmd!
1. Задай в свойстве главной формы TForm.WindowState := wsMaximized;
или в обработчике OnCreate формы напишите: showwindow(Handle, SW_MAXIMIZE);
2. Через CreateProcess или WinExec куда проще:
WinExec('prog.exe', SW_SHOW);
3. Определяй первые символы строки: если это слово "припев" ставь 1-м символом !
если латинская буква или цифра то ставь > (пробелы пропускай)
4. Form1.Close для закрывания Form1 и Form2.Show (или ShowModal) для открывания Form2.
Ответ отправил: streetcat (статус: 3-ий класс)
Отправлен: 24.05.2005, 15:22
Отвечает: Stamm
Здравствуйте, twmd!
Отвечу на 2 вопрос:
WinExec('C:1.exe, SW_SHOW)
И на 4
Form2.show;
Form1.hide;
Ответ отправил: Stamm (статус: 3-ий класс)
Отправлен: 24.05.2005, 18:55
Вопрос № 21259
сБЮФЮЕЛШЕ ЩЙЯОЕПРШ!!!!!! оНЛНЦХРЕ МЮ Delfi 7 ЯДЕКЮРЭ ОНХЯЙ Б RichEdit!!!
Отправлен: 24.05.2005, 07:01
Вопрос задал: killer-klod (статус: Посетитель)
Всего ответов отправлено: 4
Отвечает: sir henry
Здравствуйте, killer-klod!
Примерный код в приложении.
Приложение:
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 24.05.2005, 08:01
Отвечает: Gin
Здравствуйте, killer-klod!
http://blackman.wp-club.net/myfaq/faq10a.php#anc669
С Уважением, Gin.
Ответ отправил: Gin (статус: 2-ой класс)
Отправлен: 24.05.2005, 12:30
Отвечает: streetcat
Здравствуйте, killer-klod!
используй функции Pos или PosEx
например, нужно найти строку "delphi" в RichEdit:
var
n: integer;
source: string;
begin
source := richedit1.text;
n := pos('delphi', source);
{функция возвращает символ, с которого начинается искомая строка в исходной строке,
если она там найдена, и 0 - в противном случае}
if n <> 0 then
// делаем что-то если строка найдена (напр. выделяем)
else
// не судьба... ;)
{P.S. символы в строках нумеруются начиная с 1 а не с 0
P.P.S. PosEx выполняет поиск с N-нного символа в строке. удачи!}
Ответ отправил: streetcat (статус: 3-ий класс)
Отправлен: 24.05.2005, 15:51
Отвечает: X
Здравствуйте, killer-klod!
Поиск можно сделать например при помощи функции pos.
Вот пример:
Приложение:
Ответ отправил: X (статус: 5-ый класс)
Отправлен: 24.05.2005, 15:55
Вопрос № 21269
Добрый день всем. База на ASA(SyBase) 9. Программа на Delphi 6. У меня такой вопрос. Как через ADO вытащить все триггера к таблице и сам текст этих триггеров. И текст хранимых процедур и функций. Заранее благодарен.
Александр.
Отправлен: 24.05.2005, 11:24
Вопрос задал: sb (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: sir henry
Здравствуйте, sb!
Не знаю, как это делается в SYBASE, однако по аналогии с INTERBASE'ом изменение можно сделать коммандой SQL:
ALTER TRIGGER (ALTER PROCEDURE) Название
Это убъет старый триггер (процедуру) и запишет новый.
Комманды SQL можно давать через компонент TADOCommand.
Больше ничего сделать нельзя. Если же Вы, как специалист по SYBASE, знаете, как в самом SYBASE редактировать тригерры (процедуры) то воспользуйтесь этим средством, опять же через TADOCommand.
Получить список хранимых процедур можно с помощью следующей процедуры:
ADOConnection1.GetProcedureNames(ListBox1.Items);
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 24.05.2005, 13:18
Вопрос № 21270
Здравствуйте, уважаемые эксперты.
Вопрос такой: как в delphi защитить программу (исходники) паролем? Я имею в виду, чтобы при открытии проекта в Delphi, она сама выдавала запрос пароля и если он введен неправильно, не открывала бы проект.
Спасибо за ответы.
Отправлен: 24.05.2005, 11:50
Вопрос задал: Lichkaty Alexander (статус: Посетитель)
Всего ответов отправлено: 5
Отвечает: Jadd
Здравствуйте, Lichkaty Alexander!
Давайте разбираться. Файл проекта - файл в формате XML. Исходники - обычный текстовик. Как защищать? Эту защиту можно обойти. Единственный способ - хранение исходников в CVS системах (WinCVS, SourceSafe и проч.). Но там не то, чтобы не откроет, а просто выгрузить не получится без должных прав доступа.
Ответ отправил: Jadd (статус: 4-ый класс)
Отправлен: 24.05.2005, 12:08
Отвечает: streetcat
Здравствуйте, Lichkaty Alexander!
а никак ;))
вставь в исходники свой копирайт и наслаждайся ;))
или защищай их внешними программами
(хорошо было б)
Ответ отправил: streetcat (статус: 3-ий класс)
Отправлен: 24.05.2005, 16:01
Отвечает: Master89
Здравствуйте, Lichkaty Alexander!
Этого нельзя сделать по следующим причинам:
1. В Delphi не существует такой "системы защиты".
2. Файлы *.dfm, *.pas и *.dpr никак не зашифрованы, поэтому могут быть открыты любым текстовым редактором.
Единственный выход: не давать исходники своих программ кому попало.
Ответ отправил: Master89 (статус: 3-ий класс)
Отправлен: 24.05.2005, 18:24 Оценка за ответ: 5
Отвечает: Stamm
Здравствуйте, Lichkaty Alexander!
Такого способа я не знаю, зато могу предложить архивировать исходники с паролем
Ответ отправил: Stamm (статус: 3-ий класс)
Отправлен: 24.05.2005, 18:56
Отвечает: sir henry
Здравствуйте, Lichkaty Alexander!
Можно ли такое делать в Дельфи я не знаю (по крайней мере даже намека на это не встречал нигде), однако исходники проекта это текстовые файлы и защитить их паролем невозможно.
Предлагаю другой способ - заархивировать их, например RAR'ом и на рахив поставить пароль.
Либо, если Вы работаете в W2K и у Вас диск отформатирован в NTFS, создать каталог для проекта и дать к нему достут только тем, кто этого заслуживает (например, себе любимому :) ).
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 25.05.2005, 07:31 Оценка за ответ: 4
Вопрос № 21271
Добрый день уважаемые эксперты
Не могли бы вы помочь мне в решении одной проблемы, а то я уже немного лазил по Интернете, спрашивал коллег но все без толку. Одна надежда на Вас. Суть вопроса. Мне нужно в Delphi рисовать стрелки (много) и мне интересно есть ли компонент для этого или как это сделать «подручными средствами».
Помогите пожалуйста,
С уважением
Тарас
Приложение:
Отправлен: 24.05.2005, 11:59
Вопрос задал: btaras (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Jadd
Здравствуйте, btaras!
Не понятно что за стрелки? Имеется в виду на канве рисовать объектами GDI? Напишите класс, который бы рисовал стрелку и передавайте в метод Draw направление и начальные координаты. Что еще нужно?
Ответ отправил: Jadd (статус: 4-ый класс)
Отправлен: 24.05.2005, 12:19
Отвечает: sir henry
Здравствуйте, btaras!
Именно компонент? Напишите процедуру и применяйте ее с координатами для Вашей рисовальной поверхности.
Если коротко, стрелка - это прямая линия определенной длинны + линия идущая от начала главной линии под каким-либо углом к ней + вторая линия с таким-же, но отрицательным углом.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 24.05.2005, 14:26