aleksej208
-
Постов
23 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Сообщения, опубликованные aleksej208
-
-
-
-
Код я действительно разбирал!
И как уже повторюсь, происходить только с полностью собраным проектом ((( Не обессудьте
Просто по жизни сам не программист, путем проб и ошибок пытаюсь изучить что то!
Что лишнее я удалили а что то закомментировал что бы не срабатывало!
Сейчас кое что подправил, «FMX.FontGlyphs.Android.pas» я удалил.
Проект запускается на телефоне, но картинка очень маленькая и отображается точками, далее всего можно ответить на два ребуса, после ответа на второй по нажатию кнопки "проверить" приложение намертво виснет -
Всем привет! Столкнулся с проблемой, приложение компилируется отлично, все хорошо, но зависает после запуска.
Android 4.0.3
База данных SQLite тоже подключена ошибок нет. Из приложения убрал все лишнее.Заметил вот еще что если запустить без отладки то приложение работает, и может показать только одно задание и почему то еле заметную картинку, после ответа на него, приложение виснет.
Делал все как описано здесь http://delphifmandroid.blogspot.ru/2014/03/blog-post.html
Скачанный исходник Работает на ура
Прилагаю скрины и свой исходник.
-
Всем доброго времени суток! Решил сделать такое же приложение как тут http://delphifmandroid.blogspot.ru/2014/03/blog-post.html
Компилится все отлично ошибок нет, но при запуске на телефоне оно просто вылетает, а при запуске на эмуляторе выдает "segmentation fault 11"
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.TabControl, FMX.Layouts, FMX.StdCtrls, System.Actions, FMX.ActnList, FMX.Objects, FMX.Edit, Data.DbxSqlite, Data.FMTBcd, Data.DB, Data.SqlExpr,FMX.Effects; type TForm1 = class(TForm) VertScrollBox1: TVertScrollBox; TabControl1: TTabControl; aMenu: TTabItem; bIgra: TTabItem; cHelp: TTabItem; dStatistic: TTabItem; Layout1: TLayout; Layout2: TLayout; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; SpeedButton5: TSpeedButton; Label2: TLabel; ToolBar1: TToolBar; Layout3: TLayout; Layout4: TLayout; ClearingEdit1: TClearingEdit; SpeedButton6: TSpeedButton; SpeedButton7: TSpeedButton; Help: TLabel; ShadowEffect1: TShadowEffect; ShadowEffect2: TShadowEffect; SpeedButton8: TSpeedButton; Label4: TLabel; Image1: TImage; ScrollBox1: TScrollBox; ToolBar2: TToolBar; SpeedButton9: TSpeedButton; Label3: TLabel; Layout5: TLayout; Image2: TImage; Label5: TLabel; Layout6: TLayout; Image3: TImage; Label6: TLabel; Layout7: TLayout; Image4: TImage; Label7: TLabel; Layout8: TLayout; Image5: TImage; Label8: TLabel; Layout9: TLayout; Image6: TImage; Label9: TLabel; eAuthor: TTabItem; ToolBar3: TToolBar; ToolBar4: TToolBar; SpeedButton10: TSpeedButton; SpeedButton11: TSpeedButton; Label10: TLabel; Label11: TLabel; Label1: TLabel; ActionList1: TActionList; dbrebus: TSQLConnection; sqlqrand: TSQLQuery; SQLQupdate: TSQLQuery; SQLqcount: TSQLQuery; SQLQclear: TSQLQuery; ChangeTabActionbIgra: TChangeTabAction; ChangeTabActiondStatistic: TChangeTabAction; ChangeTabActioncHelp: TChangeTabAction; ChangeTabActioneAuthor: TChangeTabAction; ChangeTabActionaMenu: TChangeTabAction; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Image7: TImage; Label17: TLabel; Layout10: TLayout; Label18: TLabel; Image8: TImage; Label19: TLabel; Layout11: TLayout; Label20: TLabel; Image9: TImage; Image10: TImage; Image11: TImage; Label21: TLabel; Image12: TImage; Image13: TImage; Image14: TImage; Label22: TLabel; Label23: TLabel; Image15: TImage; Image16: TImage; Image17: TImage; Label24: TLabel; statclear: TSpeedButton; vsego: TLabel; ostatok: TLabel; otgad: TLabel; procedure SpeedButton1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Image1Click(Sender: TObject); procedure FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); procedure dbrebusBeforeConnect(Sender: TObject); procedure SpeedButton6Click(Sender: TObject); procedure statclearClick(Sender: TObject); procedure FormVirtualKeyboardHidden(Sender: TObject; KeyboardVisible: Boolean; const Bounds: TRect); procedure FormVirtualKeyboardShown(Sender: TObject; KeyboardVisible: Boolean; const Bounds: TRect); procedure FormFocusChanged(Sender: TObject); procedure SpeedButton5Click(Sender: TObject); private { Private declarations } FKBBounds: TRectF; FNeedOffset: Boolean; IdSql: integer; // идентификатор ребуса CorrectAnswer, Hint: string; ImageWidthDef, ImageHeightDef: single; procedure CalcContentBoundsProc(Sender: TObject; var ContentBounds: TRectF); procedure RestorePosition; procedure UpdateKBBounds; public { Public declarations } procedure SQLSelect; procedure SQLCount; end; var Form1: TForm1; implementation {$R *.fmx} uses System.IOUtils, System.Math, FMX.Platform.Android; procedure TForm1.CalcContentBoundsProc(Sender: TObject; var ContentBounds: TRectF); begin if FNeedOffset and (FKBBounds.Top > 0) then begin ContentBounds.Bottom := Max(ContentBounds.Bottom, 2 * ClientHeight - FKBBounds.Top); end; end; procedure TForm1.FormCreate(Sender: TObject); begin TabControl1.ActiveTab := aMenu; VertScrollBox1.OnCalcContentBounds := CalcContentBoundsProc; // Сохраняем размеры Image1 ImageWidthDef := Image1.Width; ImageHeightDef := Image1.Height; dbRebus.Connected := True; // Get Rebus SQLSelect; // Get Statistics SQLCount; end; procedure TForm1.FormFocusChanged(Sender: TObject); begin UpdateKBBounds; end; procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin if ClearingEdit1.IsFocused then begin if Key = 13 then speedbutton6Click(Self); end else begin if (Key = vkHardwareBack) AND (TabControl1.ActiveTab <> aMenu) then begin TabControl1.ActiveTab := aMenu; Key := 0; end; end; end; procedure TForm1.FormVirtualKeyboardHidden(Sender: TObject; KeyboardVisible: Boolean; const Bounds: TRect); begin FKBBounds.Create(0, 0, 0, 0); FNeedOffset := False; RestorePosition; end; procedure TForm1.FormVirtualKeyboardShown(Sender: TObject; KeyboardVisible: Boolean; const Bounds: TRect); begin FKBBounds := TRectF.Create(Bounds); FKBBounds.TopLeft := ScreenToClient(FKBBounds.TopLeft); FKBBounds.BottomRight := ScreenToClient(FKBBounds.BottomRight); UpdateKBBounds; end; procedure TForm1.Image1Click(Sender: TObject); begin help.Visible := True; end; procedure TForm1.dbRebusBeforeConnect(Sender: TObject); begin dbRebus.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath, 'rebus.db'); end; procedure TForm1.RestorePosition; begin VertScrollBox1.ViewportPosition := PointF(VertScrollBox1.ViewportPosition.X, 0); TabControl1.Align := TAlignLayout.alClient; VertScrollBox1.RealignContent; end; procedure TForm1.speedbutton6Click(Sender: TObject); var UserAnswer: string; begin UserAnswer := AnsiLowerCase(Trim(ClearingEdit1.Text)); if (UserAnswer <> '') AND (UserAnswer = CorrectAnswer) then begin showmessage('Это правильный ответ!'); try help.Visible := False; ClearingEdit1.Text := ''; // Update rebus SQLQUpdate.ParamByName('id').AsInteger := IdSql; SQLQUpdate.ExecSQL(); // Select new rebus SQLSelect; // Update Statistics SQLCount; except on e: Exception do begin ShowMessage(e.Message); end; end; end else ShowMessage('Это НЕ правильный ответ!'); end; procedure TForm1.statclearClick(Sender: TObject); begin try SQLQClear.ExecSQL(); // Select new rebus SQLSelect; // Update Statistics SQLCount; except on e: Exception do begin ShowMessage(e.Message); end; end; end; procedure TForm1.SpeedButton5Click(Sender: TObject); begin dbRebus.Connected := False; MainActivity.finish; end; procedure TForm1.SpeedButton1Click(Sender: TObject); begin TabControl1.ActiveTab := bigra; //ChangeTabPlayGame.Tab := tiPlayGame; //ChangeTabPlayGame.Execute; end; procedure TForm1.SQLCount; var CountResolved, CountAll: integer; begin try // Statistics SQLQCount.Active := True; SQLQCount.Open; SQLQCount.First; CountResolved := SQLQCount.Fields.Fields[0].AsInteger; SQLQCount.Next; if SQLQCount.Fields.Fields[0].AsInteger <> 0 then CountAll := SQLQCount.Fields.Fields[0].AsInteger else CountAll := CountResolved; vsego.Text := 'Всего ребусов: ' + CountAll.ToString; otgad.Text := 'Разгадано: ' + CountResolved.ToString; ostatok.Text := 'Осталось: ' + IntToStr(CountAll-CountResolved); SQLQCount.Close; SQLQCount.Active := False; except on e: Exception do begin ShowMessage(e.Message); end; end; end; procedure TForm1.SQLSelect; var InStream: TResourceStream; ImageRatio, BitmapRatio: single; // Соотношение сторон Image1 и Bitmap Ratio, MaxImageWidth, MaxImageHeight: Single; // Соотношение; Возможная Ширина; Возможная Высота begin try SQLQRand.Active := True; SQLQRand.Open; if not SQLQRand.IsEmpty then begin SpeedButton1.Enabled := True; IdSql := SQLQRand.FieldByName('id').AsInteger; CorrectAnswer := AnsiLowerCase(Trim(SQLQRand.FieldByName('answer').AsString)); Hint := SQLQRand.FieldByName('hint').AsString; label4.Text := 'Ребус № ' + IntToStr(IdSql); help.Text := 'Подсказка: ' + hint; // Load image InStream := TResourceStream.Create(HInstance, 'PngImage_' + IntToStr(IdSql), RT_RCDATA); try Image1.Bitmap.LoadFromStream(InStream); finally InStream.Free; end; Image1.Width := ImageWidthDef; Image1.Height := ImageHeightDef; ImageRatio := Image1.Width/Image1.Height; BitmapRatio := Image1.Bitmap.Width/Image1.Bitmap.Height; if ImageRatio > BitmapRatio then begin Ratio := BitmapRatio; MaxImageWidth := Image1.Height * Ratio; if MaxImageWidth > Image1.Width then Image1.Width := Image1.Height * (ImageRatio - (Ratio - ImageRatio)) else Image1.Width := MaxImageWidth; end else begin if ImageRatio <= BitmapRatio then begin Ratio := Image1.Bitmap.Height/Image1.Bitmap.Width; MaxImageHeight := Image1.Width * Ratio; if MaxImageHeight > Image1.Height then Image1.Height := Image1.Width * (Image1.Height/Image1.Width) - (Ratio - (Image1.Height/Image1.Width)) else Image1.Height := MaxImageHeight; end; end; end else begin Label2.Text := 'Поздравляем!' + #13#10 + 'Вы разгадали все ребусы!'; Label2.Visible := True; TabControl1.ActiveTab := aMenu; SpeedButton1.Enabled := False; end; SQLQRand.Close; SQLQRand.Active := False; except on e: Exception do begin ShowMessage(e.Message); end; end; end; procedure TForm1.UpdateKBBounds; var LFocused : TControl; LFocusRect: TRectF; begin FNeedOffset := False; if Assigned(Focused) then begin LFocused := TControl(Focused.GetObject); LFocusRect := LFocused.AbsoluteRect; LFocusRect.Offset(VertScrollBox1.ViewportPosition); if (LFocusRect.IntersectsWith(TRectF.Create(FKBBounds))) and (LFocusRect.Bottom > FKBBounds.Top) then begin FNeedOffset := True; TabControl1.Align := TAlignLayout.alHorizontal; VertScrollBox1.RealignContent; Application.ProcessMessages; VertScrollBox1.ViewportPosition := PointF(VertScrollBox1.ViewportPosition.X, LFocusRect.Bottom - FKBBounds.Top); end; end; if not FNeedOffset then RestorePosition; end; end.
-
Я уже писал в аналогичной теме, которую вы продублировали. Что нужно использовать Rest Client Library библиотеку, которая входит в состав Embarcadero RAD Studio XE5. Которая позволяет сделать все, что нужно для работы с сервисов ВКонтакте.
Остается дело за малым:
- Прочитать и разобраться, как работает REST Client Library
- Прочитать, какие запросы и в какое последовательности нужно вызывать у ВКонтакте API.
- И выполнить запросы к сервису ВКонтакте, используя TRestRequest и TRestClient.
P.S. Можно, конечно, идти по старинке и использовать обычные http запросы. Но это уже не удобно и громоздко, поскольку есть более высокоуровневые компоненты для работы с REST.
Наткнулся вот на что http://www.webdelphi.ru/2013/09/delphi-xe5-rest-client-library/ но с контактом что то не срабатывает
-
Говорят нужно делать через POST запрос к API VK
Вопрос как состыковать с авторизацией и сделать отправку через Image а скажем не прописывая путь к диску где лежит изображение? -
ОффТоп:
Не совсем по-адресу. С этим вопросом обратитесь, например, на http://hashcode.ru/
Загрузка файлов в ВК
Хотя почему не в тему, ведь загрузка производится с помощью API
-
Доброго времени суток уважаемые форумчане!
Прошу помощи с разработкой приложения, сам в этом деле не мастер, много еще не понимаю!
Имеется приложение project.zip где работает вход на ВК и Одноклассники, помогите реализовать отправку фото хотя бы для вк?Думаю кому то тоже будет это интересно. Заранее огромное спасибо кто откликнулся!
-
До этого зависало, но сейчас вроде все в порядке!
Хотя в данный момент зависает только при авторизации на одноклассниках (((Большое спасибо!!!
-
Возникла небольшая проблемка, после заполнения edit'ов выскакивают ShowMessage по два раза, в чем проблема, может напутал что то с if и else?
Исходный проект: для форума fm.zipprocedure TForm3.SpeedButton1Click(Sender: TObject); var PageData:string; Data: TStringList; begin if RadioButton1.IsChecked then //Авторизация для ВКОНТАКТЕ IdHTTP1.AllowCookies := True; IdHTTP1.HandleRedirects := True; IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; rv:27.0) Gecko/20100101 Firefox/27.0'; try if pos('выйти', IdHTTP1.Get('http://login.vk.com/?act=login&email=' + Edit1.Text + '&pass=' + Edit2.Text))>0 then begin ShowMessage('Авторизация прошла успешно!'); Form2.Show; IdHTTP1.CookieManager.CookieCollection.Clear end else begin ShowMessage('Не удается войти.'); IdHTTP1.CookieManager.CookieCollection.Clear; end; except on E: Exception do begin ShowMessage ('Error: ' + E.Message); Exit; end; end; if Radiobutton2.IsChecked then //Авторизация для Одноклассники IdHTTP1.AllowCookies := True; IdHTTP1.HandleRedirects := True; IdHTTP1.AllowCookies := True; IdHTTP1.HandleRedirects := True; IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; rv:27.0) Gecko/20100101 Firefox/27.0'; Data := TStringList.Create; Data.Add('fr.posted=set'); Data.Add('fr.needCaptcha='); Data.Add('fr.login='+edit1.Text); Data.Add('fr.password='+edit2.Text); Data.Add('button_login=Войти'); PageData := IdHTTP1.post('http://m.odnoklassniki.ru/dk?bk=GuestMain&st.cmd=main&_prevCmd=main&tkn=7080',Data); if Pos('logoff',pagedata) <> 0 then begin ShowMessage('Авторизация прошла успешно'); Form2.Show end else showmessage('Не удается войти.'); end;
-
Огромное вам спасибо! Без вас бы не справился! Очень хороший форум ))))
Знаю точно у меня еще будут вопросы по поводу приложения... -
Спасибо большое!
Просто в этом деле я новичок, но почему-то, когда авторизуешься один раз успешно, после чего в поле вводим все что угодно и всегда выходит сообщение Авторизация прошла успешно!
-
Выходит сообщение Project1.apk raised exception class EIdResolveError with message
-
Использую Indy для выполнения авторизации в Вконтакте, но код зависает после нажатия на кнопку. Что может быть не так?
procedure TForm3.SpeedButton1Click(Sender: TObject); begin IdHTTP1.AllowCookies:=True; IdHTTP1.HandleRedirects:=true; try if Pos('выйти', IdHTTP1.Get('http://login.vk.com/?act=login&email=' + edit1.Text + '&pass=' + edit2.Text)) > 0 then begin ShowMessage('Авторизация прошла успешно!') ; Form2.Show; end else ShowMessage('Не удается войти.'); except end; end;
-
Оп-па... Спасибо вам! А слона то я и не приметил....
-
Столкнулся с проблемой, как ни странно, но после перезагрузки ПК запустив приложение, отказалось загружаться изображение из галереи в TImage
Для своего приложения Android просто переделал пример CameraRollПожалуйста дайте совет в чем может быть проблема?
-
Всем доброго времени суток!
Ребята возник такой вопрос, делаю приложение на андроид в delphi xe5, чтобы пользователь мог отправить фото себе в альбом, как конкретно сделать этот Api запрос!?
-
-
А если изображения не загружать в компонент для отображения, а просто создать приложение, открыв галерею отметить изображения которые нужны и отправить ?
Такое реализовать возможно? -
Спасибо! Такое я уже проделывал, чтобы можно было выбрать только одно изображение!
-
Как реализовать для Андроида действие, чтобы можно было отметить несколько фото из галереи телефона и отобразить их в TImage или в другом компоненте?
Я продолжу теребить участников форума, чтобы они исправили мне ошибки в чужом проекте.
в Нарушения правил форума
Опубликовано
Спасибо, ведь на ошибках учатся не так ли, будем пробывать делать все с чистого листа...