-
Постов
65 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Просто Проги
-
-
Заполнил ImageList изображениями пробую очищать так
for I := 0 to ImageList1.Count do begin Form1.ImageList1.Source.Delete(i); Form1.ImageList1.Destination.Delete(i); end;
но он не очищается и выдает ошибку.
-
Спасибо буду изучать)
-
а если требуется делать это в потоке как тогда поступить ?) список то создается только картинка не появляется(
-
Привет всем,Суть такова вот эта процедура не работает что не правильно ? или LsImage не может так делать напрямую как делал Listbox ?
делаю в цикле
for I := 0 to Length(tovar)-1 do
beginTListItemImage(Item.Objects.FindDrawable('Img')). Bitmap.LoadFromUrl(tovar.img);
end;
В товар находится адрес картинки всё как бы правильно, но не выгружает(
-
-
да тут одна кнопка вот так выглядит событие ) просто знакомлюсь с NetHTTPClient1 та как надоело на idhttp таскать библиотеки ssl (
procedure TForm1.Button3Click(Sender: TObject); var res,data:TStringList; s,ip_h,lg_h:string; begin data:=TStringList.Create; ip_h:= edit3.Text; lg_h:= edit4.Text; data.Add('email='+edit1.text); data.Add('pass='+edit2.text); NetHTTPClient1.HandleRedirects:=true; NetHTTPClient1.Post('https://login.vk.com/?act=login&_origin=https://m.vk.com&ip_h='+ip_h+'&lg_h='+lg_h+'&role=pda&utf8=1',data).ContentAsString; end;
-
Мистика походу )Решил я как то сдалать по быстрому авторизацию для вк и решил пробовать новый NetHTTPClient1 и вроде бы всё норм, но как только я делаю так
NetHTTPClient1.Post('https://login.vk.com/?act=login&_origin=https://m.vk.com&ip_h='+ip_h+'&lg_h='+lg_h+'&role=pda&utf8=1',data).ContentAsString;
то сразу получаю ошибку мол параметры заданы не верно, о каких параметрах идет речь всё же вроде правильно версия делфи 10 Seattle.
-
-
ок буду изучать спасибо за пример)
-
вот тестовое демо может я не правильно потоки использую?
-
ок сейчас накидаю демку проекта )
-
поток использую что бы форма не висела пока лист загружает значения их может быть как 10 так и 1000 как то так
-
перед началом потока т.е как должно быть я загружаю список заполняю лист после если пользователь нажал кнопку повторно лист очищается и заполняется новыми значениями .
-
делал наподобие, но av возникает по прежнему
-
можно ли внедрить этот pas в xe10 ? или нужно обновляться ?
-
Пришла беда от куда не ждали, поигравшись с listbox понял что для больших данных он как то лагает решил перейти на listview и о чудо быстродействие и всё такое, но вот когда я хочу очистить его с помощью
ListView1.Items.Clear;
то получаю данную ошибку,как то можно избежать данной проблемы или нужно переходить на более новую версию сейчас на 10 seatle работаю.
-
17 часов назад, ZverA4 сказал:
А получить указатель на Item возможно?
* item = ListView1.Items[0]
И ... блин, как проверить выбран ли Item в ListView или нет, если выбран то какой (Index)?
тебе нужно знать какой сейчас элемент выбран в listview тогда так можно попробовать.
label.Text:=ListView1.Selected.Index.ToString(); покажет какой элемент сейчас выбран в listView
-
Может в стиле поставить auto reverse в true тогда будет возвращаться на исходную.
-
13 минут назад, Brovin Yaroslav сказал:
Извините, но Вы хоть сами поняли, что написали выше? :-)
Недо поспать чет я совсем уже запутался)
-
Сделал на чистом примере так, но нечего не происходит замкнутый круг походу
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,Winapi.Messages,FMX.Platform.Win,Winapi.Windows; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public procedure WindowProc(var AMsg: TMessage); { Public declarations } end; var Form1: TForm1; FWnd:HWND; implementation {$R *.fmx} { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin //FWnd := WindowHandleToPlatform(Self.Handle).Wnd; FWnd := AllocateHWnd(WindowProc); RegisterHotKey(FWnd, Ord('U'), 0, Ord('U')); end; procedure TForm1.WindowProc(var AMsg: TMessage); begin case AMsg.Msg of WM_HOTKEY: case TWMHotKey(AMsg).hotkey of 1: ShowMessage('Событие первого hotkey'); 2: ShowMessage('Событие первого hotkey'); end; end; end; end.
-
а куда можно подставить проверку пробовал проверять так
if uMsg=Ord('U') then
но резултата это не принесло(
тк umsg =WM_HOTKEY
-
Это тоже пробовал результата 0 компилится но события так и нет(
Всё спасибо всем всё заработало))
Походу рано радовался на одно событие работает, а второе нет как можно проверить что именно данный hot key был нажат
if Assigned(frm) and (uMsg = WM_HOTKEY) then begin ShowMessage('событие след трек'); end;
задаю hot следующим методом
RegisterHotKey(WindowHandleToPlatform(Self.Handle).Wnd, Ord('U'), 0, Ord('U')); //регистрац. гор. клавиши U
-
Спасибо,буду пробовать)
вообщем сделал всё как по примеру компилится ошибок нет но и события не происходит опять что ли handle не находит? код выглядит вот так
походу опять что то накосячил
Спойлерunit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, {$IF Defined(WIN32) OR Defined(WIN64)} System.Generics.Collections, Winapi.Windows, FMX.Platform.Win, Winapi.Messages, {$ENDIF} FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); {$IF Defined(WIN32) OR Defined(WIN64)} private class var Callbacks: TDictionary<HWND, Pointer>; class constructor ClassCreate; class destructor ClassDestroy; procedure OnHotKey(var Msg: TWMHotKey); message WM_HOTKEY; protected procedure CreateHandle; override; procedure DestroyHandle; override; {$ENDIF} end; var Form1: TForm1; implementation {$R *.fmx} {$IF Defined(WIN32) OR Defined(WIN64)} { TfrmPersistent } function WindowProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; var frm: TCommonCustomForm; oldProc: Pointer; begin frm := FindWindow(hwnd); //Здесь я так понимаю происходит событие присвоения и проверка uMsg на параметр WM_GETMINMAXINFO,возможно ли здесь так же передавать кнопку горячую или сочитания ? if Assigned(frm) and (uMsg = WM_GETMINMAXINFO) then begin with PMinMaxInfo(LParam)^.ptMinTrackSize, frm do begin X := 950 + Width - ClientWidth; Y := 500 + Height - ClientHeight; end; Result := 0; end else if TForm1.Callbacks.TryGetValue(hwnd, oldProc) and Assigned(oldProc) then Result := CallWindowProc(oldProc, hwnd, uMsg, wParam, lParam) else Result := DefWindowProc(hwnd, uMsg, wParam, lParam); end; procedure TForm1.CreateHandle; var wnd: HWND; begin inherited CreateHandle; wnd := FormToHWND(Self); if wnd <> 0 then begin Callbacks.Add(wnd, Ptr(GetWindowLongPtr(wnd, GWLP_WNDPROC))); SetWindowLongPtr(wnd, GWLP_WNDPROC, NativeInt(@WindowProc)); end; end; procedure TForm1.DestroyHandle; var wnd: HWND; oldProc: Pointer; begin wnd := FormToHWND(Self); if (wnd <> 0) and Callbacks.TryGetValue(wnd, oldProc) then SetWindowLongPtr(wnd, GWLP_WNDPROC, NativeInt(oldProc)); inherited DestroyHandle; end; class constructor TForm1.ClassCreate; begin Callbacks := TDictionary<HWND, Pointer>.Create; end; class destructor TForm1.ClassDestroy; begin Callbacks.Free; end; {$ENDIF} procedure TForm1.OnHotKey(var Msg: TWMHotKey); begin inherited; ShowMessage('stop'); end; procedure TForm1.Button1Click(Sender: TObject); begin // RegisterHotKey(hwnd, Ord('U'), 0, Ord('U')); //гор. клавишиа U end;
-
кстате забавная ситуация
RegisterHotKey(FWnd, Ord('U'), 0, Ord('U'));
сейчас попробовал написать в браузере букву u но не получается значит клавиши назначилась осталось как то её передать форме возможно метод Form.Dispatch поможет можно поподробнее как этот метод использовать первый раз про такой метод слышу.(
Почему не очищается ImageList ?
в TImageList - с XE8
Опубликовано
не проблема не в этом, даже если не циклом, а по одному удалять ошибка вылетает я пробовал с таким условием(