Code: {$R A.res} procedure TForm1.FormCreate(Sender: TObject); var ResW:THandle; rs:TResourceStream; begin ResW:=FindResource(hInstance,'AU',RT_RCDATA); if ResW=0 then RaiseLastOSError; rs:=TResourceStream.Create(hInstance,'AU',RT_RCDATA); Field.Clear; Field.LoadRTFFromStream(rs); end; Field - это компонент TRichView в ресурсе A.res "зашит" файл Auni.rtf следующим образом: AU RCDATA Auni.rtf Программа работает, ошибки не выползают, но поле остается пустым! То есть файл не загрузился... Что у меня не так?? Помогите, чем можете, плиз..
Code: function ExtractRes(ResType, ResName:string): string; var Htemp,HResInfo,HGlobal: THandle; pStr: PCHar; Size: Longint; Str: String; begin HResInfo := FindResource(Htemp, PAnsiChar(ResName), PAnsiChar(ResType)); if HResInfo = 0 then exit; HGlobal := LoadResource(Htemp, HResInfo); if HGlobal = 0 then exit; // size:=SizeOfResource(HTemp, HResInfo); //размер нужен, если строка не нуль-терминированная pStr:=LockResource(HGlobal); //SetLength(Str, size); //Move(pStr^, PChar(Str)^, Size); //для случая не нуль-терминированной строки Str := pStr; //подразумевается, что в ресурсе хранится нуль-терминированная ANSI-строка result:=Str; end; De-visible:Не забываем теги Code: [/COLOR][/SIZE]
подскажите как узнать свой радительский процесс ? тоесть кто нас запустил.. ------------------------------ уже чето намутил )
Code: var Info: TProcessBasicInformation; ... begin ZeroMemory(@Info,SizeOf(TProcessBasicInformation)); d1:=ZwQueryInformationProcess(hProcess,0,@Info,SizeOf(TProcessBasicInformation),nil); If (d1 = 0) then begin d1:=Info.InheritedFromUniqueProcessId; // d1 = parent process pid end;
Парни помогите решить проблемку с программой, вроде все правильно прописал, а не работает! Code: Program Dialog; {расширенный диалог — второй вариант) const Question =' What is your name?'; Rep(y1 = 'Паскаль — прост, но первый компилятор Паскаля был написан на Паскале'; Reply21 = 'Вас ждет удивительное путешествие'; Reply22 = 'сквозь джунгли особенностей и возможностей языка'; Reply3 = 'Паскаль — разумный компромисс между желательным и эффективным'; Reply4 = 'Паскаль академически элегантен'; var Name: string; Age: byte; begin WriteLn(Question); ReadLn(Name); {Ввод имени} WriteLn('Hello,', Name,'!'); {Вывод приветствия} WriteLn('How old are you?'); {Вопрос о возрасте} ReadLn(Age); {Ввод возраста} if 12 < Age then WriteLn(Reply1 ); if (12 <= Age) and (Age < 20) then begin WriteLn (Reply21); WriteLn (Reply22) end; if (20 <= Age) and (Age < 40) then WriteLn(Reply3); if Age >= 40 then WriteLn(Reply4) end. И еще такой вопрос: В интернете есть масса исходных кодов программ разных, скопировать и вставить в Турбо Паскаль нельзя, вопрос(?) как залить код программы в турбо паскаль? Если допустим программа маленькая, то я и переписать могу, а если большая..лень берет.. De-visible: Уже не раз говорил, не надо создавать пост два раза подряд!
Коментарий закрой в первой строчке }, а не ) Далее, Че за y1 Code: Rep(y1 ='Паскаль — прост, но первый компилятор Паскаля был написан на Паскале'; Должно быть Code: Reply1 ='Паскаль — прост, но первый компилятор Паскаля был написан на Паскале'; Странные условия Code: if 12 < Age then WriteLn(Reply1 ); { Вопрос о возрасте} if (12 <= Age) and (Age < 20) then begin Используй отступы для повышения читаемости кода Code: Program Dialog; {расширенный диалог — второй вариант} const Question =' What is your name?'; Reply1 ='Паскаль — прост, но первый компилятор Паскаля был написан на Паскале'; Reply21 = 'Вас ждет удивительное путешествие'; Reply22 = 'сквозь джунгли особенностей и возможностей языка'; Reply3 = 'Паскаль — разумный компромисс между желательным и эффективным'; Reply4 = 'Паскаль академически элегантен'; var Name: string; Age: byte; begin WriteLn(Question); ReadLn(Name); {Ввод имени} WriteLn('Hello,',Name,'!'); WriteLn('How old are you?'); {Вывод приветствия} ReadLn(Age); {Ввод возраста} if 12 < Age then WriteLn(Reply1 ); { Вопрос о возрасте} if (12 <= Age) and (Age < 20) then begin WriteLn (Reply21); WriteLn (Reply22) end; if (20 <= Age) and (Age < 40) then WriteLn(Reply3); if Age >= 40 then WriteLn(Reply4) end. Дополнение... Лучше использовать конструкцию case, так как в ней можно писать вот такие вещи, ниже пример: Code: program seasons; uses CRT; var n: Integer; begin clrscr; writeln('Введите номер месяца'); readln(n); writeln('Время года'); writeln('Время года: '); case n of 1,2,12: writeln('Зима'); 3..5: writeln('Весна'); 6..8: writeln('Лето'); 9..11: writeln('Осень'); else writeln('номер месяца неверен'); end; readln; end. И еще, скачай какой нибудь профессиональный исходник и возьми пример оформления кода из него.
я даже знаю, из какой книги эти примеры, ребята! ладно, это я отвлекся.. мой вопрос к alamat: работает ли это, если мой текст в формате Unicod? Вся суть в том, что мне требуется поддержка кодировки Юникод! Без этого у меня и так все прекрасно.. для этого я использую компонент TRichView.. но загрузить в него файл не выходит..
Напишите пожалуйста коменты к этой программе очень надо.... Code: program uses crt; var i,j,n,m,min,k : integer; P : real; t : array [1..100,1..100] of integer; begin clrscr; write('vvedite kol-vo stolbcov = '); readln(m); write('vvedite kol-vo rjadkov = '); readln(n); for i:=1 to m do for j:=1 to n do begin write('vvedite t[',i,j,'] znachenie = '); readln(t[i,j]); end; k:=0; for i:=1 to m do for j:=1 to n do if (i<j) and ((i+j)>(n+1)) and (t[i,j]=0) then k:=k+1; writeln ('k=',k); min:=t[m-1,1]; for i:=m-1 to m do for j:=1 to n do if t[i,j]<min then min:=t[i,j]; writeln ('min=',min:3); if min<>0 then begin P:=k/min; writeln ('P=',P:3); end else writeln ('Deistvie nevozmojno'); readln; end.
Code: Ее надо назвать через program [name]; program pr; uses crt; // подключение модуля var i,j,n,m,min,k : integer; P : real; t : array [1..100,1..100] of integer; // двумерный массив begin clrscr; // очистка экрана для этого собственно и crt write('vvedite kol-vo stolbcov = '); // вывод строки readln(m); // считываем ввод в m write('vvedite kol-vo rjadkov = '); // вывод строки readln(n); // считываем в n ввод // цикл от 1..M for i:=1 to m do // вложенный цикл // от 1..N for j:=1 to n do begin write('vvedite t[',i,j,'] znachenie = '); // выводим все что внутри скоб readln(t[i,j]); // считываем в двумерный массив end; k:=0; // K=0 for i:=1 to m do for j:=1 to n do // проверка I < J и I+J > N+1 и массив t с элементами [i, j] = 0 тогда к K = K+ 1 if (i<j) and ((i+j)>(n+1)) and (t[i,j]=0) then k:=k+1; writeln ('k=',k); // вывод K min:=t[m-1,1]; // минимальный элемент for i:=m-1 to m do for j:=1 to n do if t[i,j]<min then min:=t[i,j]; // сравниваем двумерный массив с минимум writeln ('min=',min:3); // вывод min с ограничением 3 if min<>0 then // если min не равен 0 begin P:=k/min; writeln ('P=',P:3); // выводим P с маской 3 end else writeln ('Deistvie nevozmojno'); // иначе выводим readln; // ждем нажатия end.
Работаю над новым проектом и вновь понадобились подсказки. (с меня как обычно благодарность, "+", и уважение). 1. Нужен примерно следущий онклик: Нажата кнопка - прогресбар бежит минуту после этого смотрит есть ли файл C:\xxx.txt - если есть то в мемо выводиться его содержание, - если нет то пишиться что файл не найден. Пока это все. Заранее спасибо.
я что то непойму причем здесь кодировки? может кто-то обяснить? или вы имеете ввиду отображение руских шрифто в к консоли виндовс? потому как мне кажется английской раскладке всеравно....
для Twiddle бегающий прогресс бар делается просто.. для этого нужен компонент TTimer.. делаешь так, чтобы по событию OnTimer увеличивалась позиция в прогресс баре.. и поставь интервал поменьше.. какой? сам подбери.. если нужно, чтобы грузилось побыстрее, ставь меньше.. если помедленнее - ставь больше.. по-умолчанию стоит 1000 (1 секунда).. ---------- для desTiny что такое TNT Unicode Controls и с чем их едят?? объясните, пожалуйста, подробнее.. у меня проект стоит!.. пока я не разберусь с этой кодировкой, не могу дальше продолжать --------- для emik а чего тут неясного? у меня есть текст в кодировке Юникод.. мне нужно отобразить его в программе Делфи.. но делфи7 изначально сам по себе не понимает юникод.. вот и приходится париться с компонентами
посмотри здесь http://www.pascal.hop.ru/cgi-bin/index.pl?0,7 Code: массив var mas: array [0..255] of Char; // массив из 256 символов Обращение производится по индексу для одномерного массива mas[i]; // где i допустим параметр цикла Для двумерного обращение mas[i, j]; // i, j параметры цикла Пример: var i, j: Integer; max: Integer; begin for i:=0 to 255 do for j:=0 to 255 do begin max:=mas[i,j]; if mas[i, j] > max then max:=mas[i, j]; end; Используется везде, где необходимо использовать операции со строками, в мат. задачах, играх(шашки, шахматы, судоку...). Допустим в патчах, где необходимо пропатчить огромное кол-во данных, используется массив опкодов
найдется добрый человек который подскажит код наблюдения за реестром, включая в какую ветку, какой ключ, что с ним(и) делают (создаю, изменяют, удаляют), и значение... Зарание спасибо
Пpовеpить pеестp Code: with TRegistry.create do begin Rootkey := HKEY_LOCAL_MACHINE; OpenKey('SOFTWARE\BORLAND\DATABASE ENGINE', false); CFGFile := ReadString('CONFIGFILE01'); Free; end;