Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 85 из 116<  1 ... 82  83  84  85  86  87  88 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 05.01.2003
Откуда: Москва
Фото: 2
_SGK
Большая часть там занимает справка :)

_________________
Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!



Партнер
 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Максим
Максим писал(а):
Большая часть там занимает справка

Ааа... большая справка - эт хорошо. :)
Если не сильно в напряг, то брось и мне, хочу глянуть, адрес в ЛС.


 

Member
Статус: Не в сети
Регистрация: 18.11.2006
Откуда: 31 регион
А как вывести в Memo или в другой компонент символ Юникода!

_________________
Участник клана.......<<Radeon Overclan>>...


 

Member
Статус: Не в сети
Регистрация: 23.12.2004
Откуда: Беларусь, Минск
Значицца учу ОпенГЛ по книге Краснова. Правда без исходников примеров, поэтому "взять и посмотреть" не могу. Есть пара примеров Jan Horn - с водичкой и капельками...
Так вот. Сделал кубик...
1. Он почему-то не освещается светом...
2. Почему-то не идентивицируется переменная типа glUnit - чтоб текстурки использовать. Сравнивал с прогой Яна Хорна - у него ничего необычного в юзесах не прописано, но при этом glUnit не вызывает проблем. В чём дело?
Вот текст (правда не совсем кубик - всего 3 видимые грани
Код:
  H:=GetDC(Panel1.Handle);
  //if H<>0 then showMessage('success');
  SetDCPixelFormat(H);
  HRC:=wglCreateContext(H);
  wglMakeCurrent(H,HRC);

  glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
  glClearColor(1,1,1,1);
  glClearColor(0.5, 0.5, 0.5, 0.5); // цвет фона
  glClear(GL_COLOR_BUFFER_BIT); // очистка буфера цвета
  glViewPort(0,0,Panel1.Width,Panel1.Height);

  glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT);
  glEnable(GL_DEPTH_TEST);
  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
  glEnable(GL_TEXTURE_2D);
  LoadTexture('wood1.bmp',BoxTexture);
  glShadeModel(GL_SMOOTH);
  glEnable(GL_COLOR_MATERIAL);
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);

  glLoadIdentity;
  glFrustum (-1, 1, -1, 1, 3, 10); // задаем перспективу
  glTranslatef (0.0, 0.0, -8.0); // перенос объекта - ось Z
  glRotatef (30.0, 1.0, 0.0, 0.0); // поворот объекта - ось X
  glRotatef (70.0, 0.0, 1.0, 0.0); // поворот объекта - ось Y
  InvalidateRect(Handle, nil, False);


  glBegin (GL_QUADS);
  glNormal3f(0.0, 0.0, 1.0);
  glVertex3f(1.0, 1.0, 1.0);
  glVertex3f(-1.0, 1.0, 1.0);
  glVertex3f(-1.0, -1.0, 1.0);
  glVertex3f(1.0, -1.0, 1.0);
  glEnd;

  glBegin(GL_QUADS);
  glNormal3f(-1.0, 0.0, 0.0);
  glVertex3f(-1.0, 1.0, 1.0);
  glVertex3f(-1.0, 1.0, -1.0);
  glVertex3f(-1.0, -1.0, -1.0);
  glVertex3f(-1.0,-1.0,1.0);
  glEnd;

  glBegin(GL_QUADS);
  glNormal3f(0.0, 1.0, 0.0);
  glVertex3f(-1.0, 1.0, -1.0);
  glVertex3f(-1.0, 1.0, 1.0);
  glVertex3f(1.0, 1.0, 1.0);
  glVertex3f(1.0, 1.0, -1.0);
  glEnd;

Добавлено спустя 1 минуту, 54 секунды
Собственно, из-за невозможности использовать пдГтше - не работает LoadTExture - выдранный из примера Яна... Он закомментирован должен быть.

_________________
ASUS A4M88T-M, Athlon II X3 425, 2GB NCP, video - internal ATI 4250, 200GB Samsung HDD, Win7 x64


 

Member
Статус: Не в сети
Регистрация: 16.04.2006
Откуда: d3d9.dll
Фото: 7
Атцы, не подскажите какой такой хитрой переменной можно заменить путь к директории, в которой находится скомпилированный экзешник программы. В инсталляторе NSIS, например, похожую функцию выполняет переменная $INSTDIR. А как эта переменная правильно пишется в Делфи?


 

Member
Статус: Не в сети
Регистрация: 18.01.2004
Фото: 0
Shader 3.0
HELP читай:

ParamStr(0) returns the path and file name of the executing program

_________________
Да гоните вы все!


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
IronFire писал(а):
А как вывести в Memo или в другой компонент символ Юникода!


Тебе надо юзать Tnt Control - http://www.tntware.com/delphicontrols/unicode/, полностью с исходниками, под все дельфы есть.

Сам щас работаю с UTF8+MySQL, эти котролы - самое то для работы с unicode


 

Member
Статус: Не в сети
Регистрация: 02.12.2004
Shader 3.0
Код:
ExtractFilePath(Application.Exename)


 

Member
Статус: Не в сети
Регистрация: 05.01.2003
Откуда: Москва
Фото: 2
Кто-нибудь подскажите, как сделать так, чтоб сохранялись в FastReport (3 версии) нормально отчеты в ёксель или ворд (то есть в нормально виде).

_________________
Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!


 

Member
Статус: Не в сети
Регистрация: 16.04.2006
Откуда: d3d9.dll
Фото: 7
Frags, благодарю.
Xupyp1 писал(а):
ExtractFilePath(Application.Exename)

Спасибо огромное, теперь всё отлично работает. :beer:
В общем мне это было нужно для того, чтобы указать путь к ini-файлу (решил написать прогу, которая через ini-файл изменяет параметры приложения). Но тут я вспомнил, что некоторые приложения (в основном игры) хранят свои ini-файлы с в папке "Мои документы". А в этой директории не хотелось бы размещать свою программу (т. е. ExtractFilePath(Application.Exename) здесь уже нельзя использовать, т. к. папка из которой будет запускаться программа никак не привязана к директории, где хранится нужный ini-файл). По сему возникает вопрос как указать путь к ini-файлу, если файл располагается например в директории C:\Documents and Settings\Имя пользователя\Мои документы\My Games? Меня интересует чем можно заменить имя пользователя, которое у всех конечно же разное. Наверняка для этого есть какая-то константа или т. п. Подскажите, плиз, кто сталкивался. :)
P. S. Знаю как можно это всё сделать через реестр (параметр RegisteredOwner из ветки HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion), но не хочется что-то огород городить (да и не рационально, ИМХО).


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Shader 3.0
Shader 3.0 писал(а):
Но тут я вспомнил, что некоторые приложения (в основном игры) хранят свои ini-файлы с в папке "Мои документы".

Ага. :) И не зря!
Если предполагается, что ПО будет использоваться не только админами и пользователями с необходимыми правами, но и "бесправными" :), то так и нужно делать!

Shader 3.0 писал(а):
По сему возникает вопрос как указать путь к ini-файлу, если файл располагается например в директории C:\Documents and Settings\Имя пользователя\Мои документы\My Games?

Получить путь к папке "Мои документы" для текущего пользователя, добавить "\My Games" и имя ini-файла. ;)
Собсно вот:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShlObj;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    iName: String;    // Иям ini-файла
    wFolder: String;  // Рабочая папка
    function GetSpecialFolderPath(const Folder: Integer; const CanCreate: Boolean): string;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }
// Собсно юзается SHGetSpecialFolderPath для удобства "обернутая" в данный вариант.
// Указывается константа нужной папки и необходимость создания оной в случае отсутствия.
function TForm1.GetSpecialFolderPath(const Folder: Integer; const CanCreate: Boolean): string;
var
  Path: array [0..MAX_PATH] of Char;
begin
  SHGetSpecialFolderPath(0, Path, Folder, CanCreate);
  Result:= Path;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  wFolder:= '\Shader 3.0\'; // Нафиг '\My Games' ... гулять - так гулять... ;)
  if not DirectoryExists(GetSpecialFolderPath(CSIDL_PERSONAL, False) + wFolder) then
    ForceDirectories(GetSpecialFolderPath(CSIDL_PERSONAL, False) + wFolder);
  iName:= GetSpecialFolderPath(CSIDL_PERSONAL, False) + wFolder + ChangeFileExt(ExtractFileName(Application.ExeName), '.ini');
  Form1.Caption:= iName; // Типа глянуть
end;

end.


 

Member
Статус: Не в сети
Регистрация: 16.04.2006
Откуда: d3d9.dll
Фото: 7
_SGK
Уфф, спасибо. Ещё раз убедился, что одну и ту же задачу в программировании можно решить множеством способов. Я попробовал указать путь к ини-файлу, используя класс TRegistry (как писал выше), и всё вроде работает. В общем я так сделал.
Код:
procedure TForm1.FormCreate(Sender: TObject);
var Ini: TIniFile;
begin
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
R.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion', False);
s:=R.ReadString('RegisteredOwner');\\отсюда в общем-то и выковыриваю имя пользователя
R.Free;
Ini:= TIniFile.Create('C:\Documents and Settings\'+s+'\Мои документы\My Games\Oblivion\Oblivion.ini');


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Shader 3.0
Shader 3.0 писал(а):
Уфф, спасибо.

Да нима за шо. :)

Shader 3.0 писал(а):
В общем я так сделал.

Ну, в общем-то, все несколько сложнее. :)
Простой пример: На компьютере 3 учетных записи!
Папа(админ) + детишки Саня и Ваня.
Каждый пользователь соответственно имеет свою папку "Мои Документы" и свои варианты сохраненных данных.
Так вот, с помощью предложенного мною кода пользователь Саня точно получит возможность получить путь к своим данным.
А с помощью Вашего нет!
А если, к примеру, предположить, что Папа (админ) :), создал шаловливому сыну Ване гостевую учетную запись :), то бедный Ваня вообще не сможет воспользоваться Вашим софтом, потому как нужных прав у него нет :), для того, чтобы поучить инфу из реестра по пути: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"

Для этого нужно как минимум изменить Ваш код с:
Код:
R:=TRegistry.Create;

На:
Код:
R:=TRegistry.Create(KEY_READ);


Хотя и после этого в "Свои Документы" :) он не попадет!

Также далеко не факт, что путь к папке "Мои Документы" будет обязательно начинаться: 'C:\Documents and Settings\...'.
Многие его меняют из определенных соображений :), также известны случаи, когда Винда устанавливается, к примеру, на раздел D:\

ИМХО лучше сразу делать правильно. ;)


 

Member
Статус: Не в сети
Регистрация: 02.12.2004
А вот и я с очередной траблой :)

Даже не знаю как это описать...
В общем, у меня в проге используется множство rtf-файлов.
Как-бы сделать так, чтоб все файлы засунуть в один?
Точнее проблема не в объединении - это можно и текстовым редактором сделать :)
Геморр в последующем вычленении нужного из "кучи".

Господа программисты :) Помогите решить проблему :beer:


 

Member
Статус: Не в сети
Регистрация: 06.02.2006
Откуда: Одесса
Xupyp1 писал(а):
Геморр в последующем вычленении нужного из "кучи"

добавь разделители - например так :
<тут текст 1го файла>
<**************************************> это разделитель(врядли такое попадется в реальном файле)
<тут текст след файла> ну и тд.

_________________
Mom! Kitty's being a dildo!


 

Member
Статус: Не в сети
Регистрация: 02.12.2004
Sergey_H
Файл читается методом Lines.LoadFromFile()
А как считать rtf-файл построчно?


 

Member
Статус: Не в сети
Регистрация: 28.08.2006
Вопрос может не совсем в тему но все же... Был программа написанная в Делфи3 сделан инстлятор ИнсталШилтодм из тойже делфи, этот инстлятор собственно устанавливал Саму прогу,Базу данных,Справку по проге и BDE .... вообщем эту прогу нужно немного отредоктировать и перекомпилить в 7 Делфи, все что нужно сделал, теперь осталось сделать новый Инстлятор, но я не могу понять как засунуть в него этот BDE ... подскажите как это все сделать ....


 

Member
Статус: Не в сети
Регистрация: 06.02.2006
Откуда: Одесса
Цитата:
А как считать rtf-файл построчно?

тока через обычное открытие фала...
не средствами memo или richedit
Добавлено спустя 1 минуту, 5 секунд
как вариант - грузить весь файл целиком а затем обрабатывать на наличие разделителей

_________________
Mom! Kitty's being a dildo!


 

Member
Статус: Не в сети
Регистрация: 16.04.2006
Откуда: d3d9.dll
Фото: 7
_SGK
Учтём на будущее все Ваши замечания. Благодарствую в очередной раз. :)


 

Member
Статус: Не в сети
Регистрация: 02.12.2004
Sergey_H
Sergey_H писал(а):
как вариант - грузить весь файл целиком

Крупненький файлик получится...
Интересно, а можно-ли как-то узнать состояние загрузки?
И вообще как-то залезть в процесс загрузки, хотябы Application.ProcessMessages добавить :oops:

PS: Почему-то кажется, что какую-то глупость сморозил :fingal:


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 85 из 116<  1 ... 82  83  84  85  86  87  88 ... 116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan