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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.04.2011, 16:03
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
Вопрос Как сохранить текст из edit в txt!

Помогите-нигде не могу найти внятного обьяснения -мне нужно сохранить текст из edit в txt!


Код:
unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Button1: TButton;
   Button2: TButton;
   procedure Button2Click(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 S: TStringList;
 GetStr: String;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);//чтение текста
begin
S:=TStringList.Create;
S.LoadFromFile('SaveLoad.txt');
Edit1.Text:=S.Text;

GetStr:=Edit1.Text;
Delete(GetStr,Length(GetStr),1);
Delete(GetStr,Length(GetStr),1);
Edit1.Text:=GetStr;
end;

procedure TForm1.Button1Click(Sender: TObject);//сохранение текста
begin
S:=TStringList.Create;
S.Text:=Edit1.Text;
S.SaveToFile('SaveLoad.txt');
Edit1.Clear;
end;

end. 
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Dima170792, 17.04.2011 в 19:14.
Ответить с цитированием
  #2  
Старый 17.04.2011, 16:50
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
var
  f: THandle;
  dummy: Cardinal;
begin
  f:=CreateFile('Project1.txt', GENERIC_WRITE, 0, nil, CREATE_ALWAYS, 0, 0);
  WriteFile(f, Edit1.Text[1], Length(Edit1.Text), dummy, nil);
  CloseHandle(f);
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 17.04.2011, 19:04
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию

Только код нужен для delphi7!Но по первому коду возникла проблема-при считывании из txt в edit появляются 2 лишних символа ||как от них избавиться?,может ето изза того,что я использовал только часть кода:
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
S:=TStringList.Create;
S.LoadFromFile('SaveLoad.txt');
Edit1.Text:=S.Text;
а дальше применил менеджеру скинов тест =в качестве названия скина,который выбирается по умолчанию?
Наверное нет!только что попробовал с полным кодом-тот же эфект!Причём в текстовом файле этих палочек нету-тобиш они добавляются в ходе выполнения программы!обьясните пожалуста -ато я уже всё что мог-перепробовал!

Последний раз редактировалось Dima170792, 17.04.2011 в 19:12.
Ответить с цитированием
  #4  
Старый 17.04.2011, 19:37
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Это перенос строки и возврат каретки.
Замени на
Код:
  Edit1.text := s[0];
P.S. Клевый скин
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 17.04.2011, 20:20
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию

Спасибо!
Есть ещё 1 вопрос -как можно сделать так,чтоб в ComboBox активная строка при запуске программы была не пустой-а с загружеными из txt данными(процесс загрузки я организовал,а когда пускаеш программу-надо каждый раз нажимать на открытие списка) -а нужно чтоб было так :
Ответить с цитированием
  #6  
Старый 17.04.2011, 20:45
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
itemindex := 0;
П.С. Скажи пожалуйста, если не секрет, зачем в такой программе скин? Меня чет любопытство распирает.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #7  
Старый 17.04.2011, 20:59
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию

Это всё капризы преподавателя по информатике! я и сам не вижу смысла в скинах,но что поделаеш-сказали,я сделал!
Теперь самый-самый последний вопрос-как организовать автонажатие на строку Combobox-без нажатия программа нехочет применять скин!
Ответить с цитированием
  #8  
Старый 17.04.2011, 21:10
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
ComboBoxonChange(ComboBox);
P.S. Оооочень странное требование преподавателя. Интерфейс превыше функционала. Во чуваки дают.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #9  
Старый 17.04.2011, 21:17
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию

Почему-то ошибочку выдаёт
Код:
Undeclared indentifier :"ComboBoxOnChange"
я прописал в событии
Код:
FormCreate
может в другом месте надо?

Последний раз редактировалось Dima170792, 17.04.2011 в 21:46.
Ответить с цитированием
  #10  
Старый 17.04.2011, 23:20
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию

Пожалуста обьясните как сделать автоматическое нажатие на combobox
Ответить с цитированием
  #11  
Старый 18.04.2011, 10:42
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Цитата:
Сообщение от Dima170792
Почему-то ошибочку выдаёт
Код:
Undeclared indentifier :"ComboBoxOnChange"
Это означает, что нет такого идентификатора, в данном случае процедуры. Надо обращаться к тому, что уже описано (присутствует в программе). Если элемент называется Combobox1 и у него есть обработчик, то
а) вызываем эту функцию. Скорее всего, это ComboBox1OnChange
или б) вызываем стандартный обработчик элемента: ComboBox1.OnChange
Ответить с цитированием
  #12  
Старый 18.04.2011, 19:41
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию

Цитата:
Сообщение от AlexSku
Это означает, что нет такого идентификатора, в данном случае процедуры. Надо обращаться к тому, что уже описано (присутствует в программе). Если элемент называется Combobox1 и у него есть обработчик, то
а) вызываем эту функцию. Скорее всего, это ComboBox1OnChange
или б) вызываем стандартный обработчик элемента: ComboBox1.OnChange
теперь выкидует
Код:
Not enough actual parametrs
Ответить с цитированием
  #13  
Старый 19.04.2011, 10:14
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Цитата:
Сообщение от Dima170792
теперь выкидует
Код:
Not enough actual parametrs
Дима, привыкай к тому, что код, бывает, идёт не один к одному, а немного в упрощенном виде. У любой функции (ну, или как правило) есть параметры (в скобках). В данном случае это Sender типа TObject. Если обработчик вызывается нормально, т.е. щёлканьем по ComboBox, то Sender'ом будет этот ComboBox. Но, поскольку ты вызываешь этот обработчик вручную, то тебе даётся почётное право указать процедуре, кто её вызвал. Я же не знаю, как ты используешь Sender внутри процедуры, поэтому и ничего не написал. Одно из стандартных решений написать ComboBox1, можно также написать nil. Если ты хочешь признаться, что сам вызываешь функцию, опиши класс Dima и вызывай ComboBox1.OnChange(Dima).
Ответить с цитированием
  #14  
Старый 19.04.2011, 20:16
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию

прописал следующее
Код:
type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    DBNavigator1: TDBNavigator;
    sSkinManager1: TsSkinManager;
    CoolTrayIcon1: TCoolTrayIcon;
    sPanel1: TsPanel;
    sPanel2: TsPanel;
    sButton1: TsButton;
    Edit1: TsEdit;
    sButton2: TsButton;
    sPanel4: TsPanel;
    sButton3: TsButton;
    sButton4: TsButton;
    sButton5: TsButton;
    sButton6: TsButton;
    sButton7: TsButton;
    Edit2: TsEdit;
    sPanel3: TsPanel;
    DBGrid1: TDBGrid;
    sSkinProvider1: TsSkinProvider;
    sPanel5: TsPanel;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    sWebLabel1: TsWebLabel;
    sPanel6: TsPanel;
    SpeedButton2: TSpeedButton;
    SpeedButton1: TSpeedButton;
    SpeedButton3: TSpeedButton;
    sComboBox1: TsComboBox;
    Edit3: TEdit;
    Image1: TImage;
    sLabel1: TsLabel;
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sButton1Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure sButton4Click(Sender: TObject);
    procedure sButton5Click(Sender: TObject);
    procedure sButton6Click(Sender: TObject);
    procedure sButton7Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sSkinProvider1TitleButtons0MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure CoolTrayIcon1MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure sComboBox1Change(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    
procedure dima(Sender: TObject);

{$R *.dfm}



procedure TForm1.sComboBox1Change(Sender: TObject);//вот что записано в стандартном обработчике событий
begin

sSkinManager1.SkinName:=sComboBox1.Items[sComboBox1.itemIndex];
end;

procedure TForm1.dima(Sender: TObject);//ето я написал
 begin
sComboBox1.OnChange(dima);
end;
end.
всёравно выкидует
Код:
Not enough actual parametrs
Что я сделал неправильно?
Ответить с цитированием
  #15  
Старый 19.04.2011, 20:24
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

так попробуй
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.OnChange(Sender);
end;
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter