Вопрос № 38375: Доброго времени суток, коллеги!
У меня следующая задача:
Есть текстовый файл в dos-кодировке, который, мало того, содержит псевдографику. Дак вот, данный файл нужно вывести на экран и принтер без потери псевдографики.
Может кто-нибуд...Вопрос № 38393: Здравствуйте!
Есть рисунок с расширением *.jpg. Как программно перевести его в рисунок с расшмрением *.bmp и изменить его размер, чтобы он умещался на форме нужного мне размера?...Вопрос № 38403: Хочу использовать TEdit с прозрачным фоном или одним цветом с родителем(в данном случае TTabSheet).
Кладу на страницу PageControl\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'а TEdit(ну вообщето TLabeledEdit, но в данном сл...Вопрос № 38411: Здравствуйте, уважаемые эксперты! Кто подскажет новичку, как работать с такими окнами как MDIForm и MDIChild. Такие основные проблемки возникли: 1. Когда я ставлю у 2-й формы свойство MDIChild, то она при запуске программы автоматически запускается, ...Вопрос № 38433: Здравствуйте Специ!
В Дельфи есть основная форма при вызове из нее другой фомы сделать основную форму и все что на ней, не цветной, а оттенками серого??...Вопрос № 38436: Доброго времени суток, Уважаемые эксперты!!!
Как проверить есть ли в дисководе А: диск или нет.
А то при использовании функции FindFirst и FindNext
вылезает сообщение что мол в устройстве нет диска,
а это с точки зрения интерфейс...Вопрос № 38444: Здравствуйте, уважаемые эксперты!
Как можно открыть JPEG, показать его на форме, и сохранить в формате BMP?
Спасибо.
...Вопрос № 38458: Здравствуйте уважаемые эксперты!
У меня вопрос:мне надо ,чтобы прога (сделанная в делфи) открывала файл,как НЕХ-редактор,а то я чайник (тока начал изучать) и не могу догнать как это сотворить.
И еще вопрос:делаю список файлов в List...
Вопрос № 38.375
Доброго времени суток, коллеги!
У меня следующая задача:
Есть текстовый файл в dos-кодировке, который, мало того, содержит псевдографику. Дак вот, данный файл нужно вывести на экран и принтер без потери псевдографики.
Может кто-нибудь уже сталкивался с такой задачей?
Пример такого файла можно скачать здесь (~2 Kb).
Отвечает: sir henry
Здравствуйте, Лучников Ю.В.!
Если Вы хотите использовать Windows окно, то вывести на просмотр можно будет только текст, псевдографика потеряется, т.к. НИ В ОДНОМ windows-шрифте нет символов псевдографики. Надеюсь знаете почему. :)
Остается консоль. Ну а в консоли все прсто до безобразия. Объявляете файл как текстовый, открываете, считываете построчно (ReadLn), выводите на экран (WriteLn) и на принтер тоже построчно, для этого есть специальный модуль Printers.
Если никогда раньше не работали с консолью или не программировали в Турьо Паскале, напишите, я Вам помогу с реализацией.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 24.03.2006, 08:29
Отвечает: akaDemik
Здравствуйте, Лучников Ю.В.!
В принципе можно отобразить и в окне. Только придется установить шрифт "Terminal" для TMemo например. И потом уже в процессе работы программы выполнить Memo.Lines.LoadFromFile('Файл С Псевдографикой');
Если вставлять текст прямо в делфи при редактировании формы, то он почему-то искажается. В RichEdit к сожалению установка шрифта не помогает.
Удачи.
Ответ отправил: akaDemik (статус: 2-ой класс)
Ответ отправлен: 24.03.2006, 09:08
Отвечает: Zubex
Здравствуйте, Лучников Ю.В.!
Сталкивался и решил следующим образом:
берешь Memo, устанавливаешь
Font.Charset:=OEM_CHARSET;
Font.Name:='Courier New';
далее загружаешь из файла и наслаждаешься...
Одно но, если стоит манифест, то рисует кракозябры...
Почему? Так и не разобрался...
Удачи!
--------- Если не знаешь что сказать - лучше промолчи...
Ответ отправил: Zubex (статус: 6-ой класс)
Ответ отправлен: 24.03.2006, 10:26
Вопрос № 38.393
Здравствуйте!
Есть рисунок с расширением *.jpg. Как программно перевести его в рисунок с расшмрением *.bmp и изменить его размер, чтобы он умещался на форме нужного мне размера?
Отправлен: 24.03.2006, 09:20
Вопрос задал: KuchumHan (статус: 10-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Злоумышленник
Здравствуйте, KuchumHan!
Этот вопрос из разряда так называемых "часто задаваемых вопросов". В Интернете существует много сборников ответов на подобные вопросы, которые можно скачать для использования off-line. Лично у меня есть 7 таких сборников. Ссылки на некоторыеиз них есть на сайте нашего уважаемого эксперта Ерёмина Андрея:
http://www.delphi.int.ru/?name=documentation
Скачай все, пригодится.
//..умещался на форме нужного мне размера?
в инспекторе объектов stretch в true поставь, например, и proportional тоже
Приложение:
Ответ отправил: Злоумышленник (статус: 5-ый класс)
Ответ отправлен: 24.03.2006, 20:09
Отвечает: Николай Б.
Здравствуйте, KuchumHan!
Процедура перевода JPG --> BMP в приложении.
С размером - не знаю. Попробуй изменять размер Image'a (если в него грузишь)
Приложение:
Ответ отправил: Николай Б. (статус: 3-ий класс)
Ответ отправлен: 26.03.2006, 07:44
Вопрос № 38.403
Хочу использовать TEdit с прозрачным фоном или одним цветом с родителем(в данном случае TTabSheet).
Кладу на страницу PageControl\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'а TEdit(ну вообщето TLabeledEdit, но в данном случае никакой разницы) делаю ParentColor = true, Color = clBtnFace. В windows 9x все ок, а в XP (на форме лежит TXPManifest) фон TTabSheet\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'а более светлый а TEdit так и остался clBtnFace(т.е. серый). Не знаю как с этим боротся, прога должна нормально работать во всех ОС.
Думаю здесь есть два возможных пути решения:
1. Узнать при создании окна цвет родительского компонента и выставить в TEdit\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'е соответствующий. Но как узнать цвет TTabSheet\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'а? У PageControl\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'а есть канва, но там цвет более светлый!
2. Сделать фон TEdit\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'а прозрачным, но как?
Подскажите пожалуйста. Буду крайне признателен.
Отправлен: 24.03.2006, 11:21
Вопрос задал: AlexanderR (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Лучников Ю.В.
Здравствуйте, AlexanderR!
Тут вижу один выход: создать свой нестандартный компонент ввода, наподобие TEdit.
Обычными средствами тут никак не сделать. Ибо когда к проекту линкуется XPManifest, за прорисовку всех стандартных Windows-элементов начинает отвечать сама Windows. В зависимости от типа элемента Windows выбирает нужный "кусок" скина ...
Кратко: внешний вид всех стандартных элементов предопределен.
Успехов!
Ответ отправил: Лучников Ю.В. (статус: Профессионал) Россия, Киров WWW:Чат Кировской молодежи ICQ: 176308580 ---- Ответ отправлен: 24.03.2006, 11:45
Отвечает: Cheater76
Здравствуйте, AlexanderR!
Может типа этого
LabeledEdit3.Color:=LabeledEdit3.Parent.Brush.Color;
Ответ отправил: Cheater76 (статус: 3-ий класс)
Ответ отправлен: 24.03.2006, 13:56
Вопрос № 38.411
Здравствуйте, уважаемые эксперты! Кто подскажет новичку, как работать с такими окнами как MDIForm и MDIChild. Такие основные проблемки возникли: 1. Когда я ставлю у 2-й формы свойство MDIChild, то она при запуске программы автоматически запускается, как это предотвратить; 2. Если MDIChild запущена, то когда я нажимаю закрыть, она просто сворачивается; 3. Как сделать в меню список открытых MDIChild окон, и чтобы их можно было выбирать из меню; 4. А может быть кто-нибудь в курсе, как их сворачивать не вниз, а
допустим аккуратно складывать на какую-нибудь панельку???
Заранее спасибо за Ваши ответы.
Отправлен: 24.03.2006, 12:52
Вопрос задал: xXx (статус: 5-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Zubex
Здравствуйте, xXx!
1. В файле проекта удалите строку Application.CreateForm(TMyChild, MyChild) и
всавьте ее при вызове дочерней формы.
2. В OnClose дочерней формы пишите Action:=caFree;
3. В свойстве WindowMenu главной формы поставьте пункт меню, в котором хотите видеть список открываемых окон (пункт должен быть создан уже).
4. Стандартных средств нет, но где-то я что-то подобное видел (вродь компонента ToolBar2000), но не помню точно :((
Удачи!
--------- Если не знаешь что сказать - лучше промолчи...
Ответ отправил: Zubex (статус: 6-ой класс)
Ответ отправлен: 24.03.2006, 13:16
Отвечает: Leshiy2006
Здравствуйте, xXx!
1)Уберите Form2 из списка автоматически создаваемых окон и обрабатывайте его создание
2)В событии OnClose - Action:=caFree;
4)Попробуйте создавать для каждой формы свою кнопку где-нибудь на панели и управляйте с ее помощью видимостью формы.
Удачи!
Ответ отправил: Leshiy2006 (статус: 6-ой класс)
Ответ отправлен: 24.03.2006, 23:02
Вопрос № 38.433
Здравствуйте Специ!
В Дельфи есть основная форма при вызове из нее другой фомы сделать основную форму и все что на ней, не цветной, а оттенками серого??
Отправлен: 24.03.2006, 19:47
Вопрос задал: Cheater76 (статус: 3-ий класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: LanK
Здравствуйте, Cheater76!
Конечно можно... сложно только стоит ли заморачиваться?
procedure TMain.Skin(Sender: TWinControl);
var
MyImage : TImage;
cntH: Integer;
<skip>
cntH := Sender.ComponentCount;
for I := 0 to cntH - 1 do
begin
if Sender.Components[I] is TImage then
Sender.Components[I].Enabled := False;
if Sender.Components[I] is TPanel then
(Sender as TPanel).Color := clBtnFace;
end;
Т.е. алгоритм такой - Sender - передаем название формы, далее исследуем ВСЕ ее компоненты и им назначаем цвет/свет/и т.п.
но это громоздко и медленно. Хотя если у тебя 2000 объектов, то самое то :)
--------- Пусть все будет хорошо! Давайте жить дружно! :) И будет жить еще лучше!
Ответ отправил: LanK (статус: 10-ый класс)
Ответ отправлен: 27.03.2006, 15:39
Вопрос № 38.436
Доброго времени суток, Уважаемые эксперты!!!
Как проверить есть ли в дисководе А: диск или нет.
А то при использовании функции FindFirst и FindNext
вылезает сообщение что мол в устройстве нет диска,
а это с точки зрения интерфейса не желательно (думаю
всех бы раздражало, когда при запуске Проводника
он бы вам говорил что в дисководе нет диска).
Отвечает: Cheater76
Здравствуйте, Korolyov Alexandr!
Для любых дисков
function DiskInDrive(ADriveLetter : Char) : Boolean;
var SectorsPerCluster,
BytesPerSector,
NumberOfFreeClusters,
TotalNumberOfClusters : Cardinal;
begin
Result := GetDiskFreeSpace(PChar(ADriveLetter+':'),
SectorsPerCluster,
BytesPerSector,
NumberOfFreeClusters,
TotalNumberOfClusters);
end;
Ответ отправил: Cheater76 (статус: 3-ий класс)
Ответ отправлен: 24.03.2006, 20:58
Отвечает: Злоумышленник
Здравствуйте, Korolyov Alexandr!
Вот то, что надо, сам пользуюсь
type
TDriveState(DS_NO_DISK, DS_UNFORMATTED_DISK,
DS_EMPTY_DISK, DS_DISK_WITH_FILES);
function DriveState(DrvLetter: Char): TDriveState;
var
Mask: String[6];
SearchRec: TSearchRec;
oldMode: Cardinal;
ReturnCode: Integer;
{$I+}
case ReturnCode of
{ как минимум один файл был найден }
0: Result := DS_DISK_WITH_FILES;
{ файлов не найдено и дискета в порядке }
-18: Result := DS_EMPTY_DISK;
{ DS_NO_DISK для DOS, ERROR_NOT_READY для WinNT, ERROR_PATH_NOT_FOUND для Win 3.1 }
-21, -3: Result := DS_NO_DISK;
else
{ дискета лежит в дисководе но она не форматировнная }
Result := DS_UNFORMATTED_DISK;
end;
SetErrorMode(oldMode);
end; { DriveState }
Ответ отправил: Злоумышленник (статус: 5-ый класс)
Ответ отправлен: 25.03.2006, 08:07
function DiskInDrive(Drive: Char): Boolean;
// Disk can be a floppy, CD-ROM,...
var
ErrorMode: Word;
begin
{ make it upper case }
if Drive in ['a'..'z'] then Dec(Drive, $20);
{ make sure it's a letter }
if not (Drive in ['A'..'Z']) then
raise EConvertError.Create('Not a valid drive ID');
{ turn off critical errors }
ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
try
{ drive 1 = a, 2 = b, 3 = c, etc. }
if DiskSize(Ord(Drive) - $40) = -1 then
Result := False
else
Result := True;
finally
{ Restore old error mode }
SetErrorMode(ErrorMode);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if DiskInDrive('a') = False then
ShowMessage('Drive not ready');
end;
--------- Если ты хочешь понять я тебе помогу, но я не буду выполнять за тебя твою работу.
Ответ отправил: AlexanderR (статус: 1-ый класс)
Ответ отправлен: 25.03.2006, 18:36
Вопрос № 38.444
Здравствуйте, уважаемые эксперты!
Как можно открыть JPEG, показать его на форме, и сохранить в формате BMP?
Спасибо.
Отвечает: Полховский Александр Владимирович
Здравствуйте, Граур Василий Олегович!
Не знаю, насколько этот способ рационален, но он работает, по крайней мере.
Для начала загружаем картинку в image1.
Отвечает: Злоумышленник
Здравствуйте, Граур Василий Олегович!
//Как можно открыть JPEG
uses
jpeg;
...
Image1.Picture.LoadFromFile('Здесь имя JPGE-файла');
//показать его на форме
{Способов много, например, при разработке формы размещаешь рисунок на форме и делаешь невидимым, затем а врограмме:}
Image1.Visible := true;
//и сохранить в формате BMP
//сначала перегоняешь JPEG в BMP
var
bm: TBitmap;
...
bm := TBitmap.Create;
try
bm.Assign(Image1.Picture.Graphic);
//потом сохраняешь
bm.SaveToFile('Здесь имя BMP-файла пишешь');
finally
bm.free;
end;
Ответ отправил: Злоумышленник (статус: 5-ый класс)
Ответ отправлен: 25.03.2006, 08:26
Отвечает: AlexanderR
Это делается с помощью модуля JPEG:
uses
...
Jpeg;
...
var
JpegImage:TJPEGImage;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
JpegImage := TJPEGImage.Create;
JpegImage.LoadFromFile('E:PicturesANIMALSend;
procedure TForm1.FormPaint(Sender: TObject);
begin
Form1.Canvas.Draw(0,0,JpegImage);
end;
procedure TForm1.FormDestroy(Sender: TObject);
var BMP:TBitmap;
begin
BMP := TBitmap.Create;
BMP.Assign(JpegImage);
BMP.SaveToFile('c:BMP.BMP');
BMP.Free;
JpegImage.Free;
end;
...
--------- Если ты хочешь понять я тебе помогу, но я не буду выполнять за тебя твою работу.
Ответ отправил: AlexanderR (статус: 1-ый класс)
Ответ отправлен: 25.03.2006, 18:33
Отвечает: Николай Б.
Здравствуйте, Граур Василий Олегович!
Процедура преобразования JPG ==> BMP в приложении
Приложение:
Ответ отправил: Николай Б. (статус: 3-ий класс)
Ответ отправлен: 26.03.2006, 07:54
Вопрос № 38.458
Здравствуйте уважаемые эксперты!
У меня вопрос:мне надо ,чтобы прога (сделанная в делфи) открывала файл,как НЕХ-редактор,а то я чайник (тока начал изучать) и не могу догнать как это сотворить.
И еще вопрос:делаю список файлов в ListBox,но там показывается весь путь к файлу,как можно сделать ,чтобы показывалось только имя файла (но путь сохранялся)
1. Воспользуйтесь бесплатными компонентами с сайта Torry.NET.
2. Воспользуйтесь невизуальным компонентом TStringList. В нем вы будете хранить полный путь, а в ListBox вы будете отображать только имена файлов, полученных из TStringList.
Успехов!
Ответ отправил: Лучников Ю.В. (статус: Профессионал) Россия, Киров WWW:Чат Кировской молодежи ICQ: 176308580 ---- Ответ отправлен: 25.03.2006, 01:50
Отвечает: Jadd
Здравствуйте, Lamer_Brother!
1) Читайте файл средствами стандартных функций ввода-вывода. А потом FormatString() шестнадцатиричному виду.
2) Берете путь к файлу и вызываете ExtractFileName. Она вернет имя файла из пути, а далее вставляете в ListBox то, что получили.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Ответ отправлен: 25.03.2006, 13:07
Отвечает: Diman_A
Здравствуйте, Lamer_Brother!
Скачайте и установите компонент Hexedit. Там в комплекте идет много пример, с которыми не сложно разобраться.
Приложение:
Ответ отправил: Diman_A (статус: 8-ой класс)
Ответ отправлен: 25.03.2006, 14:07
Отвечает: AlexanderR
Здравствуйте, Lamer_Brother!
для извлечения имени файла используй функцию ExtractFileName
--------- Если ты хочешь понять я тебе помогу, но я не буду выполнять за тебя твою работу.
Ответ отправил: AlexanderR (статус: 1-ый класс)
Ответ отправлен: 25.03.2006, 18:40