Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 653
от 17.11.2006, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 408, Экспертов: 66
В номере:Вопросов: 9, Ответов: 13


Вопрос № 62219: Здравствуйте уважаемые. Подскажите пожалуйста какой внутренний фомат у файлов *.ico C каким смещением, какя информация. как он хранит цвета....
Вопрос № 62224: Доброго времени суток. Подскажите, как программно узнать, куда ведет ярлык, в том числе и ярлык интернета....
Вопрос № 62226: Здравствуйте эксперты! Вот задача Дан массив из строчных латинских. Вывести на экран в алфавитном порядке все буквы, которые входят в этот массив один раз. Помогите сделать Желательно чтоб программа была интеллектуальной ( не моя прихоть) Пожалуй...
Вопрос № 62244: Как создать файл типа: type r = record a: array of string; s: string; n: word; end; ...
Вопрос № 62262: Здравствуйте, уважаемые эксперты! У меня к вам вопрос: На форме существуют 12 объектов TStringGrid. Как с помощью одной функции в цикле заполнить эти 12 сеток данными (для примера "1"), а то получается очень громоздкий и неудобо...
Вопрос № 62279: Здраствуйте. У меня есть класс TWater c параметрами x,y. Я создаю n копий это класса. И работаю с ними: Отрисовываю, изменяю y и x. Потом через некоторое время возникает ошибка "Stack overflow" При этом может быть любым. Все объекты создают...
Вопрос № 62297: Здраствуйте! Подскажите какой-нибудь алгоритм шифрования, который может шифровать налету, и очень быстро. А также быстрый алгоритм сжатия звука и обратный ему....
Вопрос № 62298: Здравствуйте, уважаемые эксперты!!!! Подскажите, плиз, как с помощью одной кнопочки переключать закладки в PageControl, причем их очень много!!! Огромное спасибо заранее!!! ...
Вопрос № 62306: Здравствуйте, уважаемые эксперты. К примеру, на форме имеется «Edit». Как сделать, чтобы во время выполнения программы, кликнув на нём правой кнопкой мыши, выбрать пункт «Редактировать» и при этом «Edit» начинает вести себя также как во время проекти...

Вопрос № 62.219
Здравствуйте уважаемые.
Подскажите пожалуйста какой внутренний фомат у файлов *.ico C каким смещением, какя информация. как он хранит цвета.
Отправлен: 11.11.2006, 20:32
Вопрос задал: Monah (статус: 9-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Monah!
Загляните вот по этой ссылке:
http://kainsk.tomsk.ru/g2003/sys26/oswin.htm
там отличная статейка как раз по формату ICO.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 12.11.2006, 05:35


Вопрос № 62.224
Доброго времени суток. Подскажите, как программно узнать, куда ведет ярлык, в том числе и ярлык интернета.
Отправлен: 11.11.2006, 21:15
Вопрос задал: Elpher2006 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mo-skin
Здравствуйте, Elpher2006!
Ярлык для Инета имеет расщирение .url,
А НА САМОМ ДЕЛЕ ЭТО ПРОСТОЙ ТЕКСТОВЫЙ ФАЙЛ.
И посмотреть его можно например так:
Допустим есть п папке с прогой ярлык для инета "link"

Тогда кидаем на форму Memo1 и Кнопку1

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.LoadFromFile('link.url');
end;

Далее смотрим в мемо что получилось.
---------
Чем больше женщину мы меньше, тем больше меньше мы ее!
Ответ отправил: Mo-skin (статус: 2-ой класс)
Ответ отправлен: 11.11.2006, 21:50

Отвечает: Gh0stik
Здравствуйте, Elpher2006!

Советую Вам обратиться к помощи старого доброго DelphiWorld.

А если точнее к разделу Файловая системаЯрлыки:

Как узнать имя файла из ярлыка
Получение имени файла из его ярлыка

Удачи!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Практикант)
Ответ отправлен: 13.11.2006, 12:08


Вопрос № 62.226
Здравствуйте эксперты! Вот задача
Дан массив из строчных латинских. Вывести на экран в алфавитном порядке все буквы, которые входят в этот массив один раз. Помогите сделать Желательно чтоб программа была интеллектуальной ( не моя прихоть) Пожалуйста...
Отправлен: 11.11.2006, 21:45
Вопрос задал: Whitesnake (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Томша Павел
Здравствуйте, Whitesnake!
Создаете массив размером латинского алфавита. Пробегаете по данному вам массиву (i - счетчик) и прибавлям элементу с номером (Ord(A[i])-Ord('a')) единицу. После этого проходите по своему массиву и выводите Chr(B[i]+Ord('a')), если B[i]=1.
Ответ отправил: Томша Павел (статус: 3-ий класс)
Ответ отправлен: 12.11.2006, 17:08
Оценка за ответ: 5

Отвечает: Gh0stik
Здравствуйте, Whitesnake!

Вот предлагаю такой вариант решения.... См. приложение...

Немного поясню:
1) в переменную sety заносим все элементы массива;
2) в переменную setn заносим все элементы массива, которые встречаются более одного раза;
3) sety:=sety-setn; - находим разность множеств и результат выводим на экран.

Заметьте никаких дополнительных сортировок я не использую да и зачем... :)

Удачи!!!

Приложение:

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.

Ответ отправил: Gh0stik (статус: Практикант)
Ответ отправлен: 13.11.2006, 10:04
Оценка за ответ: 5


Вопрос № 62.244
Как создать файл типа:

type
r = record
a: array of string;
s: string;
n: word;
end;
Отправлен: 12.11.2006, 00:26
Вопрос задал: Писарев, Павел, Юрьевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Маренич Владимир
Здравствуйте, Писарев, Павел, Юрьевич!
Никак. Так как в записи содержаться динамические структуры: строки и динамический массив. Два варианта:
1. Используете фиксированные типы данных, например:
r = record
a: array[1..100] of string[20];
s: string[60];
n: word;
end;

2. Организовать собственные процедуры записи и чтения Вашей структуры в бинарном виде, используя нетипизированный файл и вместо Write и Read вызывать их:
procedure MyWrite(f: file; rr: r);
var
i,k: integer;
begin
k:=Length(rr.a);
BlockWrite(f, k, SizeOf(k));
for i:=0 to k-1 do
begin
k:=Length(rr.a[i]);
BlockWrite(f, k, SizeOf(k));
if k<>0 then BlockWrite(f, rr.a[i][1], k);
end;
k:=Length(rr.s);
BlockWrite(k, SizeOf(k));
if k<>0 then BlockWrite(f, rr.s[1], k);
BlockWrite(f, rr.n, SizeOf(rr.n));
end;

procedure MyRead(f: file; var rr: r);
var
i,k: integer;
begin
BlockRead(f, k, SizeOf(k));
SetLength(rr.a, k);
for i:=0 to k-1 do
begin
BlockRead(f, k, SizeOf(k));
SetLength(rr.a[i], k);
if k>0 then BlockRead(f, rr.a[i][1], k);
end;
BlockRead(f, k, SizeOf(k));
SetLength(rr.s, k);
if k>0 then BlockRead(f, rr.s[1], k);
BlockRead(f, rr.n, SizeOf(rr.n));
end;

Думаю, идея понятна
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 12.11.2006, 01:00

Отвечает: Sattar
Здравствуйте, Писарев, Павел, Юрьевич!
Type=record
a:array[1..100] of string[255];
s:string[255];
n:word;
end;
.........
var
F: file of r;
Ответ отправил: Sattar (статус: 3-ий класс)
Ответ отправлен: 12.11.2006, 15:37


Вопрос № 62.262
Здравствуйте, уважаемые эксперты!
У меня к вам вопрос:
На форме существуют 12 объектов TStringGrid.
Как с помощью одной функции в цикле заполнить эти 12 сеток данными (для примера "1"), а то получается очень громоздкий и неудобочитаемый код!
Отправлен: 12.11.2006, 07:57
Вопрос задал: Герасименко Алексей Анатольевич (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sattar
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,c:integer;
Begin
for c:=0 to ControlCount-1 do
if Controls[c] is TStringGrid then
for i:=1 to (Controls[c] as TStringGrid).ColCount do
for j:=1 to (Controls[c] as TStringGrid).RowCount do
(Controls[c] as TStringGrid).Cells[i,j]:='1';
end;
Ответ отправил: Sattar (статус: 3-ий класс)
Ответ отправлен: 12.11.2006, 15:29
Оценка за ответ: 5


Вопрос № 62.279
Здраствуйте. У меня есть класс TWater c параметрами x,y. Я создаю n копий это класса. И работаю с ними: Отрисовываю, изменяю y и x. Потом через некоторое время возникает ошибка "Stack overflow" При этом может быть любым. Все объекты создаются без проблем. Но ошибка возникает все равно, через некоторое время, большее или меньшее в зависимости от n.
Что это за стек, который переполняется? Как избавиться от проблемы?
Отправлен: 12.11.2006, 12:24
Вопрос задал: Yujin (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, Yujin!
Стек - это область памяти, куда процедуры и функции складывают свои параметры во время своего выполнения. Соответственно чем больше их запущено не дожидаясь завершения работы предыдущих, тем больше заполнен стек. Для стека память выделяется директивой компилятору {$M min, max}, где min - это начальная величина стека и max - это до какого объема будет выделяться память, если стеку места не хватает. По умолчанию эти величины составляют 16384 Байт и 1048576 Байт. Если Ваша программа заняв под стек всю разрешенную память попытается засунуть в стек что-то еще, то выскочит ошибка "Stack overflow" - "Переполнение стэка".
Трудно сказать, отчего у Вас переполняется стек не видя кода. Чтобы отловить, кто у Вас так интенсивно жрет стэк, надо отлавливать исключение EStackOverflow с помощью Try ... Except.
Попробуйте, для начала, увеличить максимальную величину стека до 2 МБ и посмотреть, что будет. Если ошибка перестанет появляться. то оставьте эту цифру.

Приложение:

Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 12.11.2006, 16:48


Вопрос № 62.297
Здраствуйте!
Подскажите какой-нибудь алгоритм шифрования, который может шифровать налету, и очень быстро.
А также быстрый алгоритм сжатия звука и обратный ему.
Отправлен: 12.11.2006, 14:13
Вопрос задал: chikanok (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Monah
Здравствуйте, chikanok!
Предлагаю такой вариант для шифрования

Приложение:

---------
festina lente

Ответ отправил: Monah (статус: 9-ый класс)
Ответ отправлен: 12.11.2006, 18:29


Вопрос № 62.298
Здравствуйте, уважаемые эксперты!!!! Подскажите, плиз, как с помощью одной кнопочки переключать закладки в PageControl, причем их очень много!!! Огромное спасибо заранее!!!
Отправлен: 12.11.2006, 14:21
Вопрос задал: Oopbl (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Sattar
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
For i:=0 to PageControl1.PageCount-1 do
begin
PageControl1.ActivePage:=PageControl1.Pages[i];
ShowMessage('TabSheet'+IntToStr(i+1));
end;
end;
Ответ отправил: Sattar (статус: 3-ий класс)
Ответ отправлен: 12.11.2006, 15:11

Отвечает: Monah
Здравствуйте, Oopbl!
Я думаю вам надо не перебирать страницы одним кликом все, а по очереди. Смотрите приложение.

Приложение:

---------
festina lente

Ответ отправил: Monah (статус: 9-ый класс)
Ответ отправлен: 12.11.2006, 18:20
Оценка за ответ: 5
Комментарий оценки:
псябки огромные)))))


Вопрос № 62.306
Здравствуйте, уважаемые эксперты. К примеру, на форме имеется «Edit». Как сделать, чтобы во время выполнения программы, кликнув на нём правой кнопкой мыши, выбрать пункт «Редактировать» и при этом «Edit» начинает вести себя также как во время проектирования, т.е. вокруг него появляется обрамляющая рамка и можно изменять его размеры. Заранее всем большое спасибо.
Отправлен: 12.11.2006, 15:09
Вопрос задал: NVL (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PaVeL_Ekt
Здравствуйте, NVL!

нда задача не из легких !!!
Что-бы сделать меню нужно просто прибить к edit-у в свойстве popupmenu ваше popupmenu.

Чтобы выделить едит пунктирной рамкой, можно вокруг него нарисовать пунктирный Rectangle и затем отслеживать нажатие мыши.

Если мыша нажата на нарисованном ректангле то надо определять куда смещение идет, и соответственно увеличивать или уменьшать едит.

вот рабочий пример !!!

Приложение:

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL

Ответ отправил: PaVeL_Ekt (статус: 3-ий класс)
Ответ отправлен: 13.11.2006, 08:45
Оценка за ответ: 5
Комментарий оценки:
Жаль, что Edit не изменяет своих размеров во время передвижения мыши, но это уже дело техники. А так Ваше приложение полностью работоспособное. Большое спасибо.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное