Здрасьте! У меня есть Delphi Enterprise v 5! Достал оч. профессиональную книжку для программирования, но вот проблема в книжке написано, что Delphi v5 должна поддерживать такую строку var MyTextFile: TextFile; Но у меня не идет, подозреваю что нет библиотеки RTL! Вопрос - возможно такое?? или я чего то не понял и не подключил??
Доброе время суток, monster! По моему, этот тип описан в модуле SysUtils...
*** E-Man 1.5 (edition 04) - life is just a game...if you a student:) ***
Ответ отправлен: 18.09.2003, 02:33 Отправитель: _vt Отвечает Cybernetic Creature
Доброе время суток, monster! Если нету РТЛ то у тебя Делфи отрытся не должен. раз он открывается тода проблема в другом. а ты пробовал var MYFILE:TEXT;
Ответ отправлен: 18.09.2003, 19:36 Отправитель: Cybernetic Creature Отвечает sir henry
Здравствуйте, monster! TextFile - это специальный тип для работы с текстовыми файлами. Если ты подозреваешь, что у тебя нет библиотек RTL (т.е. нет windows.dcu, system.dcu и т.п. билиберды, типа отсутствует полностью подкаталог LIB) тогда совершенно непонятно, как ты ставил Делфи :). При стандартной установке есть все, даже то, что не нужно :). Попробуй взять дистрибутив Дельфи и поставить его заново. Так-же неплохо было бы написать, какая ошибка выдается при компиляции программы. Ответ отправлен: 18.09.2003, 11:12 Отправитель: sir henry Отвечает Артём Шегеда
Добрый день, monster!
Скорее всего, ты чего-то не понял. Этот код должен компилироваться с вероятностью 99.(9)% Созданный exe-файл занимает около 17К
program TextIO; var MyTextFile: TextFile; begin AssignFile(MyTextFile, 'text'); Rewrite(MyTextFile); WriteLn(MyTextFile, 'Первая строка'); Write(MyTextFile, 'Вторая строка'); WriteLn(MyTextFile, sqrt(2):10:6); CloseFile(MyTextFile); end.
Ответ отправлен: 17.09.2003, 15:33 Отправитель: Артём Шегеда Отвечает ART_43
Приветствую Вас, monster! По моему это поддерживалось еще в D3, а скорее всего и еще раньше. Может ты эту строчку не туда вставил. Ответ отправлен: 17.09.2003, 16:50 Отправитель: ART_43 Отвечает URiS
Ответ отправлен: 19.09.2003, 06:34 Отправитель: URiS Отвечает Marouder
Доброе время суток, monster! Вроде во всех версиях есть. Объявлено в модуле System, подкл. автоматически. Ответ отправлен: 19.09.2003, 14:14 Отправитель: Marouder
Вопрос № 930
Прив! Я вообщето спрашивал не как добавить модуль windows, а конкретную функцию! Например по нажатии на кнопку производится какая нибудь функция. К примеру function Ellipse(DC: HDC, X1, Y1, X2, Y2: Integer): Bool;! А вот как например работать с буфером обмена? Типа доставать из БО информацию в определенную переменную, или записывать в БО? И еще вопрос! При программировании в XP, форма принимает вид ОС, а как сделать что бы кнопки, и др. элементы принимали вид XP!
Здравствуйте, Кирилл! создайте в блокноте файл XPMan.RC с таким содержанием 1 24 { '3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31' '2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54' '46 2D 38 22 20 73 74 61 6E 64 61 6C 6F 6E 65 3D' '22 79 65 73 22 3F 3E 0D 0A 0D 0A 3C 61 73 73 65' '6D 62 6C 79 20 78 6D 6C 6E 73 3D 22 75 72 6E 3A' '73 63 68 65 6D 61 73 2D 6D 69 63 72 6F 73 6F 66' '74 2D 63 6F 6D 3A 61 73 6D 2E 76 31 22 20 6D 61' '6E 69 66 65 73 74 56 65 72 73 69 6F 6E 3D 22 31' '2E 30 22 3E 0D 0A 20 20 3C 61 73 73 65 6D 62 6C' '79 49 64 65 6E 74 69 74 79 0D 0A 20 20 09 74 79' '70 65 3D 22 77 69 6E 33 32 22 0D 0A 20 20 20 20' '6E 61 6D 65 3D 22 44 65 6C 70 68 69 41 70 70 6C' '69 63 61 74 69 6F 6E 22 0D 0A 20 20 20 20 76 65' '72 73 69 6F 6E 3D 22 31 2E 30 2E 30 2E 30 22 20' '0D 0A 20 20 09 70 72 6F
63 65 73 73 6F 72 41 72' '63 68 69 74 65 63 74 75 72 65 3D 22 2A 22 2F 3E' '0D 0A 20 20 3C 64 65 70 65 6E 64 65 6E 63 79 3E' '0D 0A 20 20 20 20 3C 64 65 70 65 6E 64 65 6E 74' '41 73 73 65 6D 62 6C 79 3E 0D 0A 20 20 20 20 20' '20 3C 61 73 73 65 6D 62 6C 79 49 64 65 6E 74 69' '74 79 0D 0A 20 20 20 20 20 20 20 20 74 79 70 65' '3D 22 77 69 6E 33 32 22 0D 0A 20 20 20 20 20 20' '20 20 6E 61 6D 65 3D 22 4D 69 63 72 6F 73 6F 66' '74 2E 57 69 6E 64 6F 77 73 2E 43 6F 6D 6D 6F 6E' '2D 43 6F 6E 74 72 6F 6C 73 22 0D 0A 20 20 20 20' '20 20 20 20 76 65 72 73 69 6F 6E 3D 22 36 2E 30' '2E 30 2E 30 22 0D 0A 20 20 20 20 20 20 20 20 70' '75 62 6C 69 63 4B 65 79 54 6F 6B 65 6E 3D 22 36' '35 39 35 62 36 34 31 34 34 63 63 66 31 64 66 22' '0D 0A 20 20 20 20 20 20 20 20 6C 61 6E 67 75 61' '67 65 3D 22 2A 22 0D 0A 20 20 20 20 20 20 20 20' '70 72 6F
63 65 73 73 6F 72 41 72 63 68 69 74 65' '63 74 75 72 65 3D 22 2A 22 2F 3E 0D 0A 20 20 20' '20 3C 2F 64 65 70 65 6E 64 65 6E 74 41 73 73 65' '6D 62 6C 79 3E 0D 0A 20 20 3C 2F 64 65 70 65 6E' '64 65 6E 63 79 3E 0D 0A 3C 2F 61 73 73 65 6D 62' '6C 79 3E 0D 0A' } В модуле проекта .dpr после {$R *.res} напишите следуюшее {$R XPMan.rc} Ответ отправлен: 18.09.2003, 19:36 Отправитель: Cybernetic Creature Отвечает sir henry
Добрый день, Кирилл! Для работы с буфером обмена есть замечательный тип: TClipboard. Для его использования нужно в строке USES добавить модуль Clipbrd. Ответ отправлен: 18.09.2003, 11:26 Отправитель: sir henry Отвечает Bob Johnson
Здравствуйте, Кирилл! 1. В дельфи есть класс TClipboard и функция Clipboard. 2. На моей странице это есть (в разделе faq) http://bobjohnson.nm.ru
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 18.09.2003, 00:55 Отправитель: Bob Johnson Отвечает vitya
Добрый день, Кирилл!
прелагаю функции из семейства OpenClipboard()...если посмотреть их описание то там есть пример (по крайней мере в МСДН, будет ли он в хелпе для дельфи, я не знаю...) :) Ответ отправлен: 18.09.2003, 09:04 Отправитель: vitya Отвечает ART_43
Доброе время суток, Кирилл! для БО есть специальный модуль Clipbrd Ответ отправлен: 18.09.2003, 09:13 Отправитель: ART_43 Отвечает THE_PRO
Здравствуйте, Кирилл! Dlya XP prosto dobav "XPMan" v spisok "uses". A dlya Bufera Sleduyusheye: www.delphiworld.narod.ru Luchshe prochitay sam!
Ответ отправлен: 18.09.2003, 09:27 Отправитель: THE_PRO
Вопрос № 931
Специально для эксперта Cybernetic Creature, который заинтересовался моим вопросом №924 тип матрица - в ней чтобы можно было обращаться к элементам по индексам записи i,j и a - сам элемент файл задается только как я там писала и при этом каждый раз могут быть другое расположение нулей и единиц(тут у меня просто матрица двудольного графа а потом уже по алгоритму - извращения с нахождением наибольшего паросочетания, но для этого мне ее надо правильно считать и обратиться к элементам а TIntMAtrix - как пишут наши корявые студенты (с этим массивом немного не моя идея) это исть тот самый Array of array of integer - мы просто до этого в дельфях особо не программили все еще торможу со считыванием через строку и нормальной организацией массива
Добрый день, Эланор! Можно считывать каждый компонент записи (не массива) по отдельности. См. приложение. При этом нужно, чтобы каждый элемент записи был в отдельной строке.
Приложение: Ответ отправлен: 19.09.2003, 05:35 Отправитель: sir henry Отвечает Cybernetic Creature
Доброе время суток, Эланор! В обшем пишите так const N=20;{строки матрицы} M=17;{столбцы матрицы} type TIntMatrix = array[1..n,1..m]of Integer; ........... var NR:array [1..n] of String[m]; begin ........ propusk; repeat Readln(zfile,NR[i]); .......... procedure Ponimanie(var x:TIntMatrix); begin for i:=1 to n do for j:=1 to m do x[i,j]:=NR[i,j] end; Ответ отправлен: 20.09.2003, 08:47 Отправитель: Cybernetic Creature
Вопрос № 932
Прив! Как чтобы при нажатии на кнопку производится какая нибудь функция. К примеру function Ellipse(DC: HDC, X1, Y1, X2, Y2: Integer): Bool;! А вот как например работать с буфером обмена? При программировании в XP, форма принимает вид ОС, а как сделать что бы кнопки, и др. элементы принимали вид XP! Мне оди эксперт сказал типа надо добавить модуль xpman! А делфик мне гудит типа няма такого! А что такое DC, Идентификатоp контекста устpойства? Как его узнать?
Здравствуйте, Кирилл! Не, я не понял - вопроса 930 показалось мало? > А что такое DC, Идентификатоp контекста устpойства? Как его узнать? GetDC.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 18.09.2003, 21:34 Отправитель: Bob Johnson Отвечает sir henry
Добрый день, Кирилл! 1. В свойство OnClick кнопки добавь свою функцию. 3. Если ты работаешь в ХР, то у тебя и так все будет как в ХР :). Видимо у тебя темы выключены. 4. Поищи на www.torry.net или www.delphimaster.ru. 5. DC не узнают, его получают специально для рисования функцией GetDC(Хэндл_устройства) или GetWindowDC(Хэндл_окна), а после рисования сразу-же уничтожают функцией ReleaseDC. Ответ отправлен: 19.09.2003, 05:44 Отправитель: sir henry Отвечает Marouder
Приветствую Вас, Кирилл! Слушай, с такими вопросами надо книгу нормальную покупать и читать. 1. Двойной щелчок по кнопке на заготовке формы - появится заготовка процедуры для обработчика нажатия OnClick. 2. Создать манифест в ресурсах проги или в папке, где она находится. Надо подробнее - пиши на marouder@list.ru. XPMAN - это в Delphi7 только. 3. GetDc(Handle); Ответ отправлен: 19.09.2003, 14:15 Отправитель: Marouder Отвечает Cybernetic Creature
Добрый день, Кирилл! скопируйте ниже следующий код: 1 24 { '3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31' '2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54' '46 2D 38 22 20 73 74 61 6E 64 61 6C 6F 6E 65 3D' '22 79 65 73 22 3F 3E 0D 0A 0D 0A 3C 61 73 73 65' '6D 62 6C 79 20 78 6D 6C 6E 73 3D 22 75 72 6E 3A' '73 63 68 65 6D 61 73 2D 6D 69 63 72 6F 73 6F 66' '74 2D 63 6F 6D 3A 61 73 6D 2E 76 31 22 20 6D 61' '6E 69 66 65 73 74 56 65 72 73 69 6F 6E 3D 22 31' '2E 30 22 3E 0D 0A 20 20 3C 61 73 73 65 6D 62 6C' '79 49 64 65 6E 74 69 74 79 0D 0A 20 20 09 74 79' '70 65 3D 22 77 69 6E 33 32 22 0D 0A 20 20 20 20' '6E 61 6D 65 3D 22 44 65 6C 70 68 69 41 70 70 6C' '69 63 61 74 69 6F 6E 22 0D 0A 20 20 20 20 76 65' '72 73 69 6F 6E 3D 22 31 2E 30 2E 30 2E 30 22 20' '0D 0A 20 20 09 70 72 6F 63 65 73 73 6F 72 41 72'
'63 68 69 74 65 63 74 75 72 65 3D 22 2A 22 2F 3E' '0D 0A 20 20 3C 64 65 70 65 6E 64 65 6E 63 79 3E' '0D 0A 20 20 20 20 3C 64 65 70 65 6E 64 65 6E 74' '41 73 73 65 6D 62 6C 79 3E 0D 0A 20 20 20 20 20' '20 3C 61 73 73 65 6D 62 6C 79 49 64 65 6E 74 69' '74 79 0D 0A 20 20 20 20 20 20 20 20 74 79 70 65' '3D 22 77 69 6E 33 32 22 0D 0A 20 20 20 20 20 20' '20 20 6E 61 6D 65 3D 22 4D 69 63 72 6F 73 6F 66' '74 2E 57 69 6E 64 6F 77 73 2E 43 6F 6D 6D 6F 6E' '2D 43 6F 6E 74 72 6F 6C 73 22 0D 0A 20 20 20 20' '20 20 20 20 76 65 72 73 69 6F 6E 3D 22 36 2E 30' '2E 30 2E 30 22 0D 0A 20 20 20 20 20 20 20 20 70' '75 62 6C 69 63 4B 65 79 54 6F 6B 65 6E 3D 22 36' '35 39 35 62 36 34 31 34 34 63 63 66 31 64 66 22' '0D 0A 20 20 20 20 20 20 20 20 6C 61 6E 67 75 61' '67 65 3D 22 2A 22 0D 0A 20 20 20 20 20 20 20 20' '70 72 6F 63 65 73 73 6F 72 41 72 63
68 69 74 65' '63 74 75 72 65 3D 22 2A 22 2F 3E 0D 0A 20 20 20' '20 3C 2F 64 65 70 65 6E 64 65 6E 74 41 73 73 65' '6D 62 6C 79 3E 0D 0A 20 20 3C 2F 64 65 70 65 6E' '64 65 6E 63 79 3E 0D 0A 3C 2F 61 73 73 65 6D 62' '6C 79 3E 0D 0A' } вставте в любом текстовом редакторе, сохраните получившийся файл под названием "XPMAN.RC" скомпилируйте этот скрипт в коммандной строке напишите (путь к папке ДелфиБИН)rcc32 xpman.rc у вас получится файл XPMAN.res скопируйте этот файл в папку lib Делфи в любой программе в файле проекта после строки {$R *.res} впишите {$R XPMAN.res}. и все у вас программа будет работать с ресурсами ХР. если что-то не поймешь напиши ё-мейл я тебе вышлю примеры и ты сразу поймешь Ответ отправлен: 20.09.2003, 08:47 Отправитель: Cybernetic Creature
Вопрос № 933
Здравствуйте эксперты! Имеется база *.mdb(для Access'97) хочеться организовать доступ к ней из программы на C++Builder, как это лучше сделать, подскажите пожалуйста! Это у меня первый опыт будет, по созданию приложений использующих БД. Т.к. что если можно, поподробней! С уважением, ILYA D.
Ответ отправлен: 18.09.2003, 23:26 Отправитель: CJ Отвечает Bob Johnson
Здравствуйте, ILYA D.! Через ADO.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 19.09.2003, 19:31 Отправитель: Bob Johnson Отвечает THE_PRO
Добрый день, ILYA D.! (predstavim chto mi sozdali *.mdb v M$ ACCESS) Mojesh ispolzovat BDE. Sozday noviy ALIAS (psevdonim) Ili je Mojesh sozdat ADOConnection Sovetuyu ne ispolzovat BDE Ответ отправлен: 22.09.2003, 09:48 Отправитель: THE_PRO
Вопрос № 935
Уважаемые эксперты! Вопрос о стандартном диалоге, вызываемом функцией MessageDlg. Не получается у меня задать окну диалога свой Caption! Вроде бы просто - в справке целая куча перегруженных версий функции, из них половина позволяет задать этот самый заголовок диалога, но компилятор ругается... Вот на такую строчку MessageDlg('Ошибка при поиске', 'Ошибка при поиске по карточкам. Процедура вернула код ошибки: ' + IntToStr(RetVal), mtError, [mbOk], 0); ругается таким образом: Incompatible types: 'TMsgDlgType' and 'String' Incompatible types: 'TMsgDlgButtons' and 'TMsgDlgType' То есть выходит, что попытка задать заголовок как бы нарушает порядок следования параметров, не должно быть там этого второго строкового параметра... Но ведь в справке прототип с такими параметрами есть. Так почему же не получается? Из-за этого давно уже использую Application.MessageBox,
но его-то нельзя вызвать из своего объекта, а мне нужно сообщение с заголовком...
Приветствую Вас, L_Dorrit! MessageDlg не позволяет изменять текста заголовка. Хорошо, что он хотя бы позволяет изменять сам текст диалога. Используй API функцию MessageBox. В качестве первого параметра ты можешь указать Handle текущей формы, приложения или в крайнем случае 0.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 19.09.2003, 19:33 Отправитель: Bob Johnson Отвечает Артём Шегеда
Доброе время суток, L_Dorrit!
Извини, Delphi7 не пользуюсь, потому скажу про Delphi5... Кто мешает изпользовать Win32 API MessageBox? В конце концов, можно же написать свою функцию MessageBox с перегруженными параметрами:
function MessageDlg(const ACaption: string; const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer; begin with CreateMessageDialog(Msg, DlgType, Buttons) do begin try HelpContext := HelpCtx; HelpFile := HelpFileName; Caption := ACaption; if X >= 0 then Left := X; if Y >= 0 then Top := Y; if (Y < 0) and (X < 0) then Position := poScreenCenter; Result := ShowModal; finally Free; end; end; end;
Ответ отправлен: 19.09.2003, 11:50 Отправитель: Артём Шегеда Отвечает sir henry
Добрый день, L_Dorrit! Воспользуйся функцией WinAPI MessageBox(), ее описание есть в справке по дельфи. А MessageDlg брось и забудь :), она к русскому языку плохо относится :). Ответ отправлен: 19.09.2003, 12:06 Отправитель: sir henry Отвечает Marouder
Добрый день, L_Dorrit! Все перегруженные версии находятся в модуле Qdialogs. Добавь в раздел uses QDialogs. Но ты можещь использовать свой заголовок в сообщ., только если у тебя тип - mtCustom. А вообще, чем тебе не нравится API-функция MessageBox (Не Application.MessageBox, а просто MessageBox)?
Ответ отправлен: 19.09.2003, 14:16 Отправитель: Marouder Отвечает CJ
Приветствую Вас, L_Dorrit! И спользуется неправильный тип! Не надо sting! Ответ отправлен: 19.09.2003, 21:11 Отправитель: CJ Отвечает Cybernetic Creature
Доброе время суток, L_Dorrit! а вы попробуйте не Application.MessageBox а просто MessageBox.такая функция есть в стандартном пакете виндовса и по моему он подключен к делфи. просто надо в USES написать WINDOWS(если его там нет) Ответ отправлен: 20.09.2003, 08:47 Отправитель: Cybernetic Creature
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.