|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.06.2010, 20:30 | #1 |
Регистрация: 12.05.2010
Сообщений: 6
|
столкнулся с проблемой наименования скриншота
Пишу программу: автоматический скриншотер...тоесть прог-ма которая делает снимки экрана и я столкнулся с проблемой: при запуске програмы, когда я делаю наименования скриншота (цивровое 1,2 и т.д.) всё работает и т.д..но когда заместо цифр я пишу (буквенное наименование) то у меня выдаёт ошибку "is not a valid integer value." в чём проблемма?
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, Menus, jpeg; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; MainMenu1: TMainMenu; BitBtn1: TBitBtn; Image1: TImage; Timer1: TTimer; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N5: TMenuItem; Image2: TImage; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure BitBtn1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); var Canvas:TCanvas; ScreenV:HDC; i: String; begin i:='1'; ScreenV := GetDC(0); Canvas:=TCanvas.Create(); Canvas.Handle:=ScreenV; Image1.Canvas.Copyrect(Rect(0,0,Ima ge1.Width,Image1.Height), Canvas, Rect(0,0,Screen.Width,Screen.Height )); ReleaseDC(0,ScreenV); Canvas.Free; Label3.Caption:=IntToStr(StrToInt(L abel3.Caption)+StrToINt(i)); Image1.Picture.SaveToFile(IntTOStr( StrToInt(Edit1.Text)+StrToInt(Label 3.Caption))+Edit2.Text); end; procedure TForm1.N2Click(Sender: TObject); begin Timer1.Enabled:=true; end; procedure TForm1.N3Click(Sender: TObject); begin Timer1.Enabled:=false; end; procedure TForm1.N5Click(Sender: TObject); begin Form2.show; end; procedure TForm1.N4Click(Sender: TObject); begin Form1.close; end; end.[/SIZE][/SIZE] Последний раз редактировалось DatonHhod; 10.06.2010 в 20:36. |
10.06.2010, 20:36 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Код:
а зачем код два раза? вообще если честно, в коде много глупостей. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
11.06.2010, 06:46 | #3 |
Регистрация: 12.05.2010
Сообщений: 6
|
а как зделать чтоб и числа и буквы были? ну зачем 2 раза код и эти глупости сам незнаю... но учитель так мне накривил и какой будет правельный вариант кода?
|
12.06.2010, 12:32 | #4 |
Регистрация: 12.05.2010
Сообщений: 6
|
так не кто и не подсказал
|
12.06.2010, 12:41 | #5 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
каждый раз при вызове сохранения файла скрина, задавайте ему имя, к примеру...
Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
14.06.2010, 14:14 | #6 |
Пользователь
Регистрация: 14.06.2010
Сообщений: 84
|
Image1.Picture.SaveToFile(Edit1.Tex t+Label3.Caption+Edit2.text);
Но вообще лучше перепиши процедуру BitBtn1Click Сначала объяви глобально bm: TBitMap; Jp: TJpegImage; fname:string; Потом кинь SavePictureDialog и правь процедуру на эту: begin i:='1'; ShowCursor(false); bm := TBitMap.Create; bm.Width := Screen.Width; bm.Height := Screen.Height; BitBlt(bm.Canvas.Handle, 0, 0, bm.Width, bm.Height, GetDC(0), 0, 0, SRCCOPY); Jp := TJpegImage.Create; Jp.Assign(bm); Jp.CompressionQuality :=100 ; Jp.Compress; ShowCursor(true); Label3.Caption:=IntToStr(StrToInt(L abel3.Caption)+StrToINt(i)); fname:=((Edit1.Text+Label3.Caption) ); SavePictureDialog1.FileName := FName; if SavePictureDialog1.Execute then begin FName := SavePictureDialog1.FileName; Jp.SaveToFile(FName); end; bm.Destroy; Jp.Destroy; end; Потом в параметрах SavePictureDialog фильтры укажи JPEG Image File (*.jpeg)|*.jpeg JPEG Image File (*.jpg)|*.jpg Portable Network Graphics (*.png)|*.png GIF Image (*.gif)|*.gif и DefaultExt - jpg Последний раз редактировалось stck; 14.06.2010 в 14:28. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Меняются наименования | xxxxx0111 | Microsoft Office Excel | 3 | 17.02.2010 22:36 |
столкнулся впервые с простым вопросом | sava28 | HTML и CSS | 0 | 25.11.2008 22:50 |
Столкнулся с проблемой. Нужна помощь | Whisper | Помощь студентам | 2 | 24.08.2007 13:16 |
Как просуммировать одинаковые наименования? | Алька | Microsoft Office Excel | 1 | 23.05.2007 22:02 |