Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2012, 06:36   #31
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Я нажал Step over у меня остановилось на этом
Код:
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm9, Form9);
  Application.CreateForm(TForm10, Form10);
  Application.Run;
end.
и это "begin" выделено
а если сделаю Trace into
то открывается это
Код:
initialization
  EmptyCI.Ready := False;
  EmptyCI.X := -99;
  EmptyCI.X := -99;
  EmptyCI.Bmp := nil;
  EmptyCI.FillColor := clFuchsia;
  
  sFuchsia.C := $FF00FF;
  acScrollBtnLength := GetSystemMetrics(SM_CXHSCROLL);

  acs_MsgDlgOK             := LoadStr(s_MsgDlgOK);
  acs_MsgDlgCancel         := LoadStr(s_MsgDlgCancel);
  acs_MsgDlgHelp           := LoadStr(s_MsgDlgHelp);

  acs_RestoreStr           := LoadStr(s_RestoreStr);
  acs_MoveStr              := LoadStr(s_MoveStr);
  acs_SizeStr              := LoadStr(s_SizeStr);
  acs_MinimizeStr          := LoadStr(s_MinimizeStr);
  acs_MaximizeStr          := LoadStr(s_MaximizeStr);
  acs_CloseStr             := LoadStr(s_CloseStr);

  acs_Calculator           := LoadStr(s_Calculator);

  acs_FileOpen             := LoadStr(s_FileOpen);

  acs_AvailSkins           := LoadStr(s_AvailSkins);
  acs_InternalSkin         := LoadStr(s_InternalSkin);

  acs_ErrorSettingCount    := LoadStr(s_ErrorSettingCount);
  acs_ListBoxMustBeVirtual := LoadStr(s_ListBoxMustBeVirtual);

  // Color dialog
  acs_ColorDlgAdd          := LoadStr(s_ColorDlgAdd);
  acs_ColorDlgDefine       := LoadStr(s_ColorDlgDefine);
  acs_ColorDlgMainPal      := LoadStr(s_ColorDlgMainPal);
  acs_ColorDlgAddPal       := LoadStr(s_ColorDlgAddPal);

  acs_ColorDlgTitle        := LoadStr(s_ColorDlgTitle);
  acs_ColorDlgRed          := LoadStr(s_ColorDlgRed);
  acs_ColorDlgGreen        := LoadStr(s_ColorDlgGreen);
  acs_ColorDlgBlue         := LoadStr(s_ColorDlgBlue);
  acs_ColorDlgDecimal      := LoadStr(s_ColorDlgDecimal);
  acs_ColorDlgHex          := LoadStr(s_ColorDlgHex);

  // Frame adapter
  acs_FrameAdapterError1   := LoadStr(s_FrameAdapterError1);

  // Hint designer
  acs_HintDsgnTitle        := LoadStr(s_HintDsgnTitle);
  acs_HintDsgnPreserved    := LoadStr(s_HintDsgnPreserved);
  acs_HintDsgnStyle        := LoadStr(s_HintDsgnStyle);
  acs_HintDsgnBevelWidth   := LoadStr(s_HintDsgnBevelWidth);
  acs_Blur                 := LoadStr(s_Blur);
  acs_HintDsgnArrowLength  := LoadStr(s_HintDsgnArrowLength);
  acs_HintDsgnHorizMargin  := LoadStr(s_HintDsgnHorizMargin);
  acs_HintDsgnVertMargin   := LoadStr(s_HintDsgnVertMargin);
  acs_HintDsgnRadius       := LoadStr(s_HintDsgnRadius);
  acs_HintDsgnMaxWidth     := LoadStr(s_HintDsgnMaxWidth);
  acs_HintDsgnPauseHide    := LoadStr(s_HintDsgnPauseHide);
  acs_Percent              := LoadStr(s_Percent);
  acs_HintDsgnOffset       := LoadStr(s_HintDsgnOffset);
  acs_HintDsgnTransparency := LoadStr(s_HintDsgnTransparency);
  acs_HintDsgnNoPicture    := LoadStr(s_HintDsgnNoPicture);
  acs_Font                 := LoadStr(s_Font);
  acs_Texture              := LoadStr(s_Texture);
  acs_HintDsgnLoad         := LoadStr(s_HintDsgnLoad);
  acs_HintDsgnSave         := LoadStr(s_HintDsgnSave);
  acs_HintDsgnColor        := LoadStr(s_HintDsgnColor);
  acs_HintDsgnBorderTop    := LoadStr(s_HintDsgnBorderTop);
  acs_HintDsgnBorderBottom := LoadStr(s_HintDsgnBorderBottom);
  acs_Shadow               := LoadStr(s_Shadow);
  acs_Background           := LoadStr(s_Background);
  acs_Gradient             := LoadStr(s_Gradient);
  acs_PreviewHint          := LoadStr(s_PreviewHint);

  acs_Root                 := s_Root;
  acs_SelectDir            := LoadStr(s_SelectDir);
  acs_Create               := LoadStr(s_Create);

  acs_InvalidDate          := LoadStr(s_InvalidDate);
  if acs_InvalidDate = '' then acs_InvalidDate := 'Invalid date';

  acs_DirWithSkins         := s_DirWithSkins;
  acs_SelectSkinTitle      := s_SelectSkinTitle;
  acs_SkinPreview          := s_SkinPreview;

finalization
  if Assigned(SmallShellImages) then FreeAndNil(SmallShellImages);
  if Assigned(LargeShellImages) then FreeAndNil(LargeShellImages);

end.
и выделяется "initialization" если так и нажимать F7 или F8 он переключается на параметр ниже в итоге я жму пока до конца не дойдет а как доходит открывается приложение я опять выбираю файл и опять ошибка та же

Вот это выделилось красным " acs_Percent := LoadStr(s_Percent);" в логе пишет Source Breakpoint at $005B80BD

Последний раз редактировалось Stilet; 03.11.2012 в 10:13.
nefakt вне форума Ответить с цитированием
Старый 31.10.2012, 06:43   #32
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
fFile.Read(version,sizeof(version)) ;//FS это поток наш
поставьте здесь бряк.
и отсюда трассируйте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2012, 06:48   #33
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Это выделилось
Код:
fFile.Read(version,sizeof(version));//FS это поток наш
и в логе пишет Source Breakpoint at $005B0A0A

Вот какой сейчас у меня код исходной
Код:
unit Unit10;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, acProgressBar, StdCtrls, sLabel, sEdit, sListBox, sButton,
  sDialogs;

    type
TElList1Element=record
 id:integer;
 name: array [0..31] of WideChar;
 int1:integer;
 int2:integer;
 int3:integer;
 int4:integer;
end;

TElList1=record
 offsetdata:array[0..3] of byte;
 data:array of TElList1Element;
end;

TElList2Element=record
 id:integer;
 name: array [0..31] of WideChar;
end;

TElList2=record
 data:array of TElList2Element;
end;

type
  TForm10 = class(TForm)
    sButton1: TsButton;
    sListBox1: TsListBox;
    sEdit1: TsEdit;
    sEdit2: TsEdit;
    sEdit3: TsEdit;
    sEdit4: TsEdit;
    sEdit5: TsEdit;
    sEdit6: TsEdit;
    sLabel1: TsLabel;
    sLabel2: TsLabel;
    sLabel3: TsLabel;
    sLabel4: TsLabel;
    sLabel5: TsLabel;
    sLabel6: TsLabel;
    sProgressBar1: TsProgressBar;
    sOpenDialog1: TsOpenDialog;
    procedure sButton1Click(Sender: TObject);
    procedure sListBox1Click(Sender: TObject);
  private
  ListPos: array [1..4] of Integer;  // сюда сохраняем смещения листa
  ListLen: array [1..4] of Integer;  // сюда сохраняем количество элементов
  ffile: tStream;
  procedure OpenList1(lb: TListBox); // это у нас собс-но открытие первого листа
   procedure FillListPos; // это будет заполнение листа
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form10: TForm10;

implementation

{$R *.dfm}

var
  ElList1Element: array of TElList2Element;
  version,sign:word;
  List1:TElList1;
  List2:TElList2;
procedure TForm10.OpenList1(lb: TListBox);
 var
  num: integer;
  w: widestring;
begin
  num := lb.ItemIndex;
  sEdit1.Text:=IntToStr(ElList1Element[num].id);
  SetLength(w, 32);
  Move(ElList1Element[num].name[0], w[1], 64);
  sEdit2.Text:=w;
end;

procedure TForm10.sButton1Click(Sender: TObject);
var
  count, i, p: Integer;
  ws: WideString;
begin
  if sOpenDialog1.Execute then  begin
    if not FileExists(sopendialog1.FileName) then exit;

    if Assigned(fFile) then
    begin
      FreeAndNil(fFile);
    end;
    // Создаем поток
    fFile := TFileStream.Create(sOpenDialog1.FileName, (fmOpenReadWrite{or fmShareExclusive}));

    // Читаем лист 1

  end;
     //открыли файл и начинаем читать
 fFile.Read(version,sizeof(version));//FS это поток наш
 if(version<>69) then //версия не та что мы ожидаем
 fFile.Read(sign,sizeof(sign));//просто запомнить надо.
 //начинаем первый лист
 fFile.Read(List1.offsetdata[0],Length(List1.offsetdata));
 fFile.Read(count,sizeof(count));
 SetLength(List1.data,count);
 for i:=0 to count-1 do
  fFile.Read(List1.data[i],sizeof(TElList1Element));
    begin
SetLength(ws,lstrlenW(@ElList1Element[i].name[0]));
 Move(ElList1Element[i].name[0],ws[1],Length(ws)*2);
 sListBox1.Items.Add(IntToStr(ElList1Element[i].id) + ' - ' + ws);
     end;
end;
 procedure TForm10.FillListPos;//(Обработка данных) чтение из массива
var
  fListLen: Integer;
begin
(*
== подсчет смещений каждого последующего листа ==
8 это смещение первого листа.
8 + 4 + размер первого листа = смещение второго листа.
смещение второго листа + 4 + размер второго листа = смещение третьего, и т.д.
*)
  ListPos[1] := 8;
  if Assigned(fFile) then begin
    fFile.Position := ListPos[1]; // устанавливавем маркер в позицию начала Листа1
     fFile.Read(fListLen, SizeOf(fListLen)); // Считываем количество элементов
     ListLen[1] := fListLen;
    ListPos[2] := ListPos[1] + ListLen[1]*SizeOf(TElList1Element) + 4; // получаем смещение второго листа
   end;
end;

procedure TForm10.sListBox1Click(Sender: TObject);
begin
    openlist1(slistbox1);
end;

end.
Может тут что не так в самом коде

Последний раз редактировалось Stilet; 03.11.2012 в 10:15.
nefakt вне форума Ответить с цитированием
Старый 31.10.2012, 06:56   #34
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

так, на глаз не скажу, дома буду проверю в компиляторе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2012, 07:02   #35
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Хорошо спасибо.
nefakt вне форума Ответить с цитированием
Старый 31.10.2012, 23:22   #36
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Ну чего ещё не проверили?
nefakt вне форума Ответить с цитированием
Старый 31.10.2012, 23:39   #37
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вот глянь.
Вложения
Тип файла: zip Новая папка (3).zip (11.0 Кб, 7 просмотров)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.11.2012, 03:23   #38
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Хорошо сейчас попробую. У меня заранее еще один вопрос вы знаете то что модели и картинки пишутся так "Surfaces\图标\通用物品\百战刀.dds" как сделать так что бы при нажатии например ка кнопку рядом открывался список всех картинок. Что бы можно было выбрать нажать и он сам изменит на новый путь? Думаю вы меня поняли о чем я.
nefakt вне форума Ответить с цитированием
Старый 01.11.2012, 03:28   #39
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

сначала определитесь откуда брать список будете.
ибо вообще это архивы pck(вроде не путаю расширение)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.11.2012, 03:43   #40
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Да так и есть в sELider`е пишется так "Surfaces\图标\通用物品\百战刀.dds" а находится эта папка и т.д. в surfaces.pck потом идет "Surfaces\图标\通用物品\百战刀.dds" "Surfaces" и т.д. находятся внутри surfaces.pck
nefakt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка данных chipesca Microsoft Office Excel 0 25.05.2012 01:14
Обработка данных grichanuk Microsoft Office Excel 2 20.06.2011 12:36
Обработка данных Мигель Microsoft Office Excel 11 16.04.2011 16:47
Обработка данных из БД andozag C/C++ Базы данных 1 24.03.2011 23:38
Обработка данных beztrud БД в Delphi 1 11.03.2011 21:49