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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.10.2007, 13:35
Аватар для Dima2007
Dima2007 Dima2007 вне форума
Прохожий
 
Регистрация: 22.09.2007
Сообщения: 12
Репутация: 10
По умолчанию Txt в Memo

Скажите вот есть форма Form1 на ней button1 и Memo1.
Как сделать так чтобы при нажатии Button1 в Memo1.
Появилось содержимое txt файла.(С:\text.txt)
Ответить с цитированием
  #2  
Старый 13.10.2007, 15:18
Аватар для Winny
Winny Winny вне форума
Продвинутый
 
Регистрация: 26.05.2007
Адрес: Планета земля, Россия, Москва
Сообщения: 620
Репутация: 30
По умолчанию

Код:
Memo1.Lines.LoadFromFile('C:\text.txt')
__________________

Ответить с цитированием
  #3  
Старый 14.10.2007, 03:00
Аватар для Dima2007
Dima2007 Dima2007 вне форума
Прохожий
 
Регистрация: 22.09.2007
Сообщения: 12
Репутация: 10
По умолчанию Вопросов 4

Спасибо за помощь получилось.Есть еще вопросы:
1.Можно разместить на форме Label1 написать слово
к примеру (Внимание) и сделать так чтобы оно постоянно
"Мигало" т.е меняло цвет к примеру с красного на черный
с интервалом в 1-3 секунды примерно.
2.Что можно кинуть на форму Memo или Edit чтоб можно было
ввести текст и при клике кнопки записать этот текст в формат
txt (блокнот).(Пример Введите ник,кнопка запомнить)
3.Как можно гдето на форме вывести число сколько раз эта форма
запускалась.
4.Как сделать чтоб при открытии формы стир ался txt фаил (c:\text.txt)
а если его нет по заданному пути (c:\text.txt) то форма не как на это
не реагировала (не выдала ни какой ошибки)
Ответить с цитированием
  #4  
Старый 14.10.2007, 07:03
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
Смех

1) Это можно сделать через цикл и менять свойство Font. Цикл можно прописать в таймере и выставить Timer1.Interval:=3000.
2) Можно просто добавить кнопку BitBtn со своим рисунком (например "Дискета", как в Ворде) и текстом (например "Сохранить").
3) Можно кол-во запусков записывать в реестр и затем считывать его оттуда в Label.
4)
Цитата:
Как сделать чтоб при открытии формы стир ался txt фаил (c:\text.txt)
Код:
var
file: TextFile;
fn: String[80];
begin
if Form1.SaveDialog1.Execute then
fn := 'c:\text.txt';
AssignFile(file, fn);
{$I-}
Reset(file);
writeln(file, '');
CloseFile(file);
Или можно использовать DeleteFile().
Цитата:
а если его нет по заданному пути (c:\text.txt) то форма не как на это
не реагировала (не выдала ни какой ошибки)
используй try..except или try..finally.
__________________
Программирование - это искусство и наш смысл жизни.

Последний раз редактировалось moo2k, 14.10.2007 в 09:37.
Ответить с цитированием
  #5  
Старый 14.10.2007, 12:02
Аватар для Winny
Winny Winny вне форума
Продвинутый
 
Регистрация: 26.05.2007
Адрес: Планета земля, Россия, Москва
Сообщения: 620
Репутация: 30
По умолчанию

1)Кидаешь на форму два таймера, один называешь Timer1, а другой Timer2, и кидаешь один Label. У Timer1 ставишь Interval на 500, а у Timer2 ставишь Interval на 1000. И вот код для Timer1:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Font.Style:=Label1.Font.Style+[fsBold];
Timer1.Enabled:=false;
Timer2.Enabled:=true;
end;
Вот код для Timer2:
Код:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Label1.Font.Style:=Label1.Font.Style-[fsBold];
Timer1.Enabled:=true;
Timer2.Enabled:=false;
end;

end.

2)Ты имеешь ввиду сохранение текста? Если да то кидай на форму SaveDialog и Memo. Вот код для сохранения текста Memo:
Код:
if not SaveDialog1.Execute then
Exit
else
Memo1.Lines.SaveToFile(SaveDialog.FileName);

А вот код для сохранения текста Edit'а, кинь на форму SaveDialog и Edit:
Код:
var
S:TStringList;
begin
S:=TStringList.Create;
S.Text:=Edit1.Text;
if not SaveDialog1.Execute then
Exit
else
S.SaveToFile(SaveDialog1.FileName);
S.Free

3)Создай в корневой папке программы файл RunCount.txt. В нём напиши цифру "0" в первой строке. И кинь на форму один Label. На событие формы OnCreate пиши:
Код:
var
RunCount:Integer;
RunCountFile:TStringList;
begin
RunCountFile:=TStringList.Create;
try
if not FileExists('RunCount.txt') then begin
ShowMessage('В корневой папке программы не найден файл RunCount.txt, пожалуйста создайте его!')
RunCountFile.Free;
else
RunCountFile.LoadFromFile('RunCount.txt');
RunCount:=StrToInt(RunCountFile.Strings[0]);
RunCount:=RunCount+1;
Label1.Caption:=IntToStr(RunCount);
RunCountFile.Strings[0]:=IntToStr(RunCount);
RunCountFile.SaveToFile('RunCount.txt');
RunCountFile.Free;
except
end;

4)На событие OnCreate формы пиши:
Код:
var
F:TStringList;
begin
F:=TStringList.Create;
try
F.LoadFromFile('C:\text.txt');
F.Clear;
F.SaveToFile('C:\text.txt')
F.Free;
except
end;


Надеюсь ответ полный? Надеюсь на твой отзыв.
__________________


Последний раз редактировалось Winny, 14.10.2007 в 12:39.
Ответить с цитированием
  #6  
Старый 14.10.2007, 12:10
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

2. Memo1.Lines.SaveToFile('Путь к файлу');
3. Или использовать ini файлы.
4. Вместо try ... except можно сделать и так:
if FileExists('Путь к файлу') then DeleteFile('Путь к файлу');
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #7  
Старый 24.01.2011, 00:57
chelek chelek вне форума
Прохожий
 
Регистрация: 24.01.2011
Сообщения: 6
Репутация: 10
По умолчанию

люди,подскажите пожалуйста.
а как записывать текст из мемо в едит?
притом перед этим программа разбивает предложение то есть
"привет
как
дела"
вот она склеить должна еще так сказать...

заранее спасибо
Ответить с цитированием
  #8  
Старый 24.01.2011, 01:01
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,094
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
var
  I : Integer;
  S : String;
begin
  S := '';
  For I := 0 To Memo1.Lines.Count-1 Do
    S := S + Memo1.Lines[i] + ' ';
  Edit1.Text := S;
Ответить с цитированием
  #9  
Старый 24.01.2011, 01:07
chelek chelek вне форума
Прохожий
 
Регистрация: 24.01.2011
Сообщения: 6
Репутация: 10
По умолчанию

спаасибо!!!!!!!!!
Ответить с цитированием
  #10  
Старый 24.01.2011, 05:58
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Цитата:
Сообщение от Winny
1)Кидаешь на форму два таймера, один называешь Timer1, а другой Timer2, и кидаешь один Label. У Timer1 ставишь Interval на 500, а у Timer2 ставишь Interval на 1000. И вот код для Timer1:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Font.Style:=Label1.Font.Style+[fsBold];
Timer1.Enabled:=false;
Timer2.Enabled:=true;
end;
Вот код для Timer2:
Код:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Label1.Font.Style:=Label1.Font.Style-[fsBold];
Timer1.Enabled:=true;
Timer2.Enabled:=false;
end;

end.
Тут ты меня просто убил! Нафига 2 таймера? А завести глобальную переменную IsBlind: Boolean; никак?.

Код:
var
  IsBlind: Boolean = false;
...
implementation
...
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  with Label1.Font do
  case IsBlind of
  true: 
    begin
      Style := Style+[fsBold];
      Color := clRed;
    end;
  false:
    begin
      Style := Style-[fsBold];
      Color := clBlack;
    end;
  end;
  IsBlind := not IsBlind;
end;
...
end.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
  #11  
Старый 28.01.2011, 21:21
chelek chelek вне форума
Прохожий
 
Регистрация: 24.01.2011
Сообщения: 6
Репутация: 10
По умолчанию

информатик задал программу
по русски это в квадрате по диагонали крестики и нолики и при нажатии х и о должны меняться по диагоналям
вот часть кода .. как бы так изменить чтоб на работала

P.S. больно не понятны обработчики
Код:
    procedure btShowMasClick(Sender: TObject);
    procedure btClearMemoClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btChangeClick(Sender: TObject); 




программа
Код:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;

    procedure btShowMasClick(Sender: TObject);
    procedure btClearMemoClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btChangeClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  size = 10;

var
  Form2: TForm2;
  matrix: array[1..size,1..size] of char;

     implementation
  {$R *.dfm}

procedure TForm2.btShowMasClick(Sender: TObject);
//процедура "распечатки" массива в TMemo
var
  col,row:byte;
  s:string;
begin
  for row:=1 to size do
    begin
      s:='';
      for col:=1 to size do s:=s+matrix[row,col]+' ';
      Memo1.Lines.Add(s);
    end;
end;


procedure TForm2.FormCreate(Sender: TObject);
// заполнение массива
var
  col,row,i: byte;
begin
  //заполнение массива дефисами
  for row:=1 to size do
    for col:=1 to size do
      matrix[row,col]:='-';
  //заполнение главной диагонали
  for i:=1 to size do
    matrix[i,i]:='O';
  //заполнение побочной диагонали
  for i:=1 to size do
    matrix[i,size-(i-1)]:='X';

end;

procedure TForm2.btChangeClick(Sender: TObject);
// обмен значениями
var
  i:integer;
  buffer:char;
begin
  for i:=1 to size do
    begin
      buffer:= matrix[i,i];
      matrix[i,i]:= matrix[i,size-(i-1)];
      matrix[i,size-(i-1)]:=buffer;
    end;
end;

procedure TForm2.btClearMemoClick(Sender: TObject);
// очистка редактора TMemo
begin
  Memo1.Lines.Clear;
end;


end.
Ответить с цитированием
  #12  
Старый 29.01.2011, 02:49
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,094
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну после смены поставь вывод. Будет меняться прямо по клику.
А вообще, довольно примитивная задача. Поменять местами значения в главной и побочной диагонали. При этом значения у тебя одни и те-же. Фактически, тебе можно даже не менять, а просто заполнить по новому - там, где был Х, вывести О и наоборот.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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