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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.03.2009, 18:56
denISRU denISRU вне форума
Прохожий
 
Регистрация: 24.03.2009
Сообщения: 25
Репутация: 10
По умолчанию простой вопрос)

Цитата:
сразу приношу свои извинения за неграмотность и некорректность вопроса - но помощь нужна и желательно побыстрее)
...
p.s. с делфи раньше не работал (да и вообще программирование вещь мало знакомая)
уже справился - поглядите последнее сообщение плиз )

Последний раз редактировалось denISRU, 25.03.2009 в 19:57.
Ответить с цитированием
  #2  
Старый 24.03.2009, 21:12
denISRU denISRU вне форума
Прохожий
 
Регистрация: 24.03.2009
Сообщения: 25
Репутация: 10
По умолчанию

сунулся разбираться сам, наваял
Код:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
  aFile : String;
implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin
 TForm3.Image1.Picture.LoadFromFile('d:\temp\ks660.bmp');
end;

end.
при запуске ошибка в строке - TForm3.Image1.Picture.LoadFromFile('d:\temp\ks660. bmp');
гляньте кто разбирается - вроде как все на месте - может я путь к файлу не правильно задал?
Ответить с цитированием
  #3  
Старый 24.03.2009, 22:02
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

А чего не пишешь какая ошибка?
Скорее всего, надо так:
Image1.Picture.LoadFromFile('d:\temp\ks660. bmp');
"TForm3" - это описание класса и к нему не может быть обращения в коде как к экземпляру этого класса.
Тогда уж: Form3.Image1....;, но и этого не требуется.
__________________
Не забывайте делать резервные копии

Последний раз редактировалось san-46, 24.03.2009 в 22:08.
Ответить с цитированием
  #4  
Старый 24.03.2009, 22:15
denISRU denISRU вне форума
Прохожий
 
Регистрация: 24.03.2009
Сообщения: 25
Репутация: 10
По умолчанию

в том то и дело что не пишет какая ошибка - выделяет строку целиком, а в меседже сообщает - процедура остановлена изза ошибки в строке № такойто....щас попробую по твоему - первый вариант взял из учебника по делфи
p.s. работает)) - большое спасибо )

Последний раз редактировалось denISRU, 24.03.2009 в 22:17.
Ответить с цитированием
  #5  
Старый 25.03.2009, 19:55
denISRU denISRU вне форума
Прохожий
 
Регистрация: 24.03.2009
Сообщения: 25
Репутация: 10
По умолчанию

задам вопрос тут же - чтоб не создавать новую тему.
вопрос 1. как в имеющемся коде сделать так чтобы использовался файл не из конкретной папки, а из папки с экзешником программы???
Код:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
  implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin
 Image1.Picture.LoadFromFile('d:\temp\ks660.bmp');
end;

end.
вопрос 2. есть 3х значное число - как посчитать сумму его цифр?
Ответить с цитированием
  #6  
Старый 25.03.2009, 21:37
denISRU denISRU вне форума
Прохожий
 
Регистрация: 24.03.2009
Сообщения: 25
Репутация: 10
По умолчанию

на второй вопрос выродил вот такое - проверьте пожалусто на безграмотность, но все работает
Код:
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  a,b,c,d,e:real ;
 begin
 a:=StrToFloat(form1.Edit1.Text);// из текста делаем число
 b:= Trunc (a/100); //получаем первую цифру
 c:= Trunc ((a-b*100)/10); // вторую...
 d:= (a-b*100)-c*10; // третью:)
 e:=b+c+d; //вычислили сумму
 Edit2.Text := FloatTostr(b) ; //следующие 3 промежуточные результаты
 edit3.text := FloatTostr(c) ; // для самопроверки
 edit4.Text := FloatTostr(d) ;
 edit5.Text := FloatTostr(e) ; // выводим результат
end;

end.
Ответить с цитированием
  #7  
Старый 25.03.2009, 22:26
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Цитата:
Сообщение от denISRU
вопрос 1. как в имеющемся коде сделать так чтобы использовался файл не из конкретной папки, а из папки с экзешником программы???
вот так можно узнать папку с exe:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  s: string;
begin
  s:= ExtractFilePath(ParamStr(0));
  ShowMessage(s);
end;
Цитата:
Сообщение от denISRU
вопрос 2. есть 3х значное число - как посчитать сумму его цифр?
можно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  x, y, i: Integer;
begin
  x:= 248;
  y:= 0;
  for i:= 1 to 3 do
  begin
    y:= y + (x Mod 10);
    x:= x div 10;
  end;
  ShowMessage(IntToStr(y));
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #8  
Старый 25.03.2009, 22:35
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

1.
Код:
  Path := ExtractFilePath(Application.ExeName)+'ks660.bmp';
  if FileExists(Path) then
    Image1.Picture.LoadFromFile(Path);
  //где Path : string;
2.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  I, Sum : Integer;
begin
  Sum := 0;
  for I := 1 to Length(Edit1.Text) do
    Sum := Sum + StrToInt(Edit1.Text[i]);
  edit5.Text := IntToStr(Sum);
end;
__________________
Не забывайте делать резервные копии
Ответить с цитированием
  #9  
Старый 26.03.2009, 12:31
denISRU denISRU вне форума
Прохожий
 
Регистрация: 24.03.2009
Сообщения: 25
Репутация: 10
По умолчанию

Спасибо за помощь! - вопользовался всем кроме -
procedure TForm1.Button1Click(Sender: TObject);
var
x, y, i: Integer;
begin
x:= 248;
y:= 0;
for i:= 1 to 3 do
begin
y:= y + (x Mod 10);
x:= x div 10;
end;
ShowMessage(IntToStr(y));
end;

т.к. абсолютно не понял принципа работы...)) - но знаний наверное не хватает (а можно коментарий - почему 0, почему 248, что выполняется??? )
Ответить с цитированием
  #10  
Старый 26.03.2009, 13:18
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

mod - получение дробной части после деления (т.е. 24 mod 10 = 4)
div - получение целой части после деления (т.е. 36 div 10 = 3)
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  x, y, i: Integer;
begin
  x:= 248; // это случайное число, которое мы будем мучать
  y:= 0; // обнуляем переменную, где будет сумма чисел
  for i:= 1 to 3 do // повторяем цикл 3 раза (т.к. число трехзначное)
  begin
    y:= y + (x Mod 10); // Получаем остаток от деления X на 10 и плюсуем его к сумме
    x:= x div 10; // отсекаем от X то число, которое обработали
  end;
  ShowMessage(IntToStr(y)); //выводим результат
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #11  
Старый 26.03.2009, 21:38
denISRU denISRU вне форума
Прохожий
 
Регистрация: 24.03.2009
Сообщения: 25
Репутация: 10
По умолчанию

спасиб - терь понятно - тоесть х у нас будет то что я в своем коде обозвал
a:=StrToFloat(form1.Edit1.Text);
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter