Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.07.2013, 14:12
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию Помогите с многострочным блокнотом аналог

Вот код
Код:
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
  TSpinEdit_Change_And_Click;
end;

procedure TForm1.TabControl1Change(Sender: TObject);
var i:Integer;
  s,s1,s2:String;
begin
  s:=ExtractFileDir(Application.ExeName)+'\~VremFiles\';
  for I := 0 to Form1.ListBox1.Items.Count-1 do
    If Form1.ListBox1.Items.Strings[i] = '~'+Form1.TabControl1.Tabs.Strings[Form1.TabControl1.TabIndex]+' LРР.$$$' then begin
      Form1.RichEdit1.Lines.LoadFromFile(s+Form1.ListBox1.Items.Strings[i]);
      s1:=Form1.ListBox2.Items.Strings[i];
      Delete(S1,Pos(';',s1),Length(S1));
      s1:=s1;
      s2:=Form1.ListBox2.Items.Strings[i];
      Delete(S2,Length(s2),Pos(';',s2)-1);
      s2:=s2;

    end;
end;

procedure TForm1.TabControl1Changing(Sender: TObject; var AllowChange: Boolean);
Var s:String;
  i:Integer;
  B:Boolean;
begin
  if DirectoryExists(s)=false then CreateDir(ExtractFileDir(Application.ExeName)+'\~VremFiles');
  s:=ExtractFileDir(Application.ExeName)+'\~VremFiles\';
  Form1.RichEdit1.Lines.SaveToFile(s+'~'+Form1.TabControl1.Tabs.Strings[Form1.TabControl1.TabIndex]+' LРР.$$$');
  Form1.ListBox1.Items.Add('');
  for I := 0 to Form1.ListBox1.Items.Count-1 do
    if Form1.ListBox1.Items.Strings[i]<>'~'+Form1.TabControl1.Tabs.Strings[Form1.TabControl1.TabIndex]+' LРР.$$$' then
      b:=True else b:=False;
  Form1.ListBox1.Items.Delete(Form1.ListBox1.Items.Count-1);
  if b=true then begin
    Form1.ListBox1.Items.Add('~'+Form1.TabControl1.Tabs.Strings[Form1.TabControl1.TabIndex]+' LРР.$$$');
    Form1.ListBox2.Items.Add('X = '+IntToStr(Form1.RichEdit1.CaretPos.X)+';Y = '+IntToStr(Form1.RichEdit1.CaretPos.Y));
  end;
  Form1.RichEdit1.Clear;
end;

procedure TForm1.TSpinEdit_Change_And_Click;
Var procent1,procent2,procent3:Extended;
begin
  procent1:=Form1.SpinEdit1.Max;
  procent2:=Form1.SpinEdit1.Value;
  procent3:=(procent2*100) / procent1;
  Form1.Gauge1.Progress:=Round(procent3);
  Form1.TabControl1.Tabs.Add(Inttostr(Round(Form1.SpinEdit1.Value))+' '+DynamicLang[8]);
  If Form1.TabControl1.Tabs.Count > Round(form1.SpinEdit1.Value) then
  repeat
    Form1.TabControl1.Tabs.Delete(Form1.TabControl1.Tabs.Count-1);
  until Form1.TabControl1.Tabs.Count = Round(Form1.SpinEdit1.Value);
end;

Проблема в том что в лист бокс нужно добавлять файл не попорядку тоесть если уже такой временный файл существует то имя временного файла в лист бокс не нужно добавлять. Скажите почему при этой проверки все равно добавление в лист бокс идет по порядку. И как это можно исправить.
Ответить с цитированием
  #2  
Старый 24.07.2013, 14:40
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

наверно здесь
Код:
for I := 0 to Form1.ListBox1.Items.Count-1 do
    if Form1.ListBox1.Items.Strings[i]<>'~'+Form1.TabControl1.Tabs.Strings[Form1.TabControl1.TabIndex]+' LРР.$$$' then
      b:=True else b:=False; 

надо
Код:
b:=false;
for I := 0 to ListBox1.Items.Count-1 do
    if ListBox1.Items.Strings[i] = '~'+TabControl1.Tabs.Strings[TabControl1.TabIndex]+' LРР.$$$' then
      b:=False; 

И кроме того, в методах формы TForm1 не используй переменную Form1
Ответить с цитированием
Этот пользователь сказал Спасибо icWasya за это полезное сообщение:
AlexandrV (24.07.2013)
  #3  
Старый 24.07.2013, 14:44
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Код:
procedure TForm1.TabControl1Changing(Sender: TObject; var AllowChange: Boolean);
Var s:String;
  i:Integer;
  B:Boolean;
begin
  if DirectoryExists(s)=false then CreateDir(ExtractFileDir(Application.ExeName)+'\~VremFiles');
  s:=GetTempDir;
  RichEdit1.Lines.SaveToFile(s+'~'+TabControl1.Tabs.Strings[TabControl1.TabIndex]+' LРР.$$$');
  ListBox1.Items.Add('');
  b:=false;
  for I := 0 to ListBox1.Items.Count-1 do
    if ListBox1.Items.Strings[i] = '~'+TabControl1.Tabs.Strings[TabControl1.TabIndex]+' LРР.$$$' then
      b:=False;
  ListBox1.Items.Delete(ListBox1.Items.Count-1);
  if b=true then begin
    ListBox1.Items.Add('~'+TabControl1.Tabs.Strings[TabControl1.TabIndex]+' LРР.$$$');
    ListBox2.Items.Add('X = '+IntToStr(RichEdit1.CaretPos.X)+';Y = '+IntToStr(RichEdit1.CaretPos.Y));
  end;
  RichEdit1.Clear;
end;

При таком раскладе он вообще не добавлет в Лист бокс ничего хотя лист бокс первоначально пустой
Ответить с цитированием
  #4  
Старый 24.07.2013, 14:53
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Ты ошибку допустил вот здесь
Код:
b:=false;
for I := 0 to ListBox1.Items.Count-1 do
    if ListBox1.Items.Strings[i] = '~'+TabControl1.Tabs.Strings[TabControl1.TabIndex]+' LРР.$$$' then
      b:=False;
Вместо False True надо а так все работает. Большое спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:36.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter