Перейти к содержанию
Fire Monkey от А до Я

Slym

Пользователи
  • Постов

    180
  • Зарегистрирован

  • Посещение

  • Победитель дней

    39

Весь контент Slym

  1. без тестового проекта и файла... даже сравнить не с чем.
  2. о... да мы меряемся? на 1000: 250-333fps как тебе такое Sulion 10000... fps3.zip
  3. А зачем постоянно bringtofront? одного раза не достаточно? там реально медленно... я полагаю нужна глубина сцены? многие ее делают слоями: дальний фон (горы), ближний фон (лес), сцена (персы), и воздух (падающий снег) кидаем 4 лейаута и на них распределяем спрайты
  4. Загружать картинки не в Stream а в битмап сразу source.zip 1000
  5. Не красиво! Красиво: procedure TForm1.Button5Click(Sender: TObject); const s='18:C0:4D:7E:E6:B2'; // MAC адрес сетевой платы var Data:string; Bytes:TBytes; IdUDPClient1:TIdUDPClient; begin Data:=''; for var bt in s.Split([':']) do Data:=Data+chr(StrToInt('$'+bt)); for var i:=0 to 3 do Data:=Data+Data; Data:=StringOfChar(#$FF,6)+Data; Bytes:=TEncoding.ANSI.GetBytes(Data); IdUDPClient1:=TIdUDPClient.Create(nil); try IdUDPClient1.SendBuffer('40.240.8.50',9, TIdBytes(Bytes)); finally IdUDPClient1.Free; end; end;
  6. Плохая идея организовывать протокол на задержках (delay) в системах с вытесняющей многозадачностью. Только разделители (csv, json, PChar(#0)) или префиксы длины (http Content-Length) или жесткий фиксированный размер (packed record). Человеsleep(1000)ко читаеsleep(1000)мый теsleep(1000)кст - каково тебе И и ии ии ииилон мм мма мммааа...
  7. еслиб не "из DFM" то class helper подошел бы: TFDParamHelper = class helper for TFDParam public function AsInt64: int64; end; я бы еще и алиасов наделал.... type TUniParam = TFDParam; но "из DFM" это не катит...
  8. Проблема в том что ты убиваешь вкладку на которой кнопка выполняет свой клик... т.е. кнопка убивает себя из под себя... На до убийство сделегировать, например основному потоку через TThread.ForceQueue procedure TfrMain.TabClose(Sender: TObject); var activetab : Integer; begin activetab:=((Sender as TControl).Parent as TControl).Parent.Index; Thread.ForceQueue(nil, procedure begin TabControl1.Delete(activetab); end); end;
  9. открывай файл на запись и держи можешь туда pid записать для контроля
  10. На форумах принято делиться решениями... А вам + в карму
  11. Я вот давно уже делаю все на фреймах... Одно главное окно и кучка фреймов в рамках этого окна, даже ShowMessage - кастомный фрейм, даже некоторые TabItemы с фреймом. есть моменты где глубина вложенности фреймов доходит 4 (Окно, фрейм, вкладки с фреймами, под вкладки , фрейм с диалогом) Анимированную прозрачность фрейма - легко: там есть Opacity, TAnimator.AnimateFloat(Frame,'Opacity',1,1); Окна чуть сложнее... Масштаб - TScaledLayout
  12. procedure TForm1.Button1Click(Sender: TObject); var Form2:TForm2; h,w,l,t:integer; begin Form2:=TForm2.Create(nil); try h:=Form2.Height; w:=Form2.Width; l:=Form2.Left; t:=Form2.Top; Form2.Height:=1; Form2.Width:=1; Form2.Left:=l+ (w div 2); Form2.Top:=t+ (h div 2); TAnimator.AnimateInt(Form2,'Height',h,1); TAnimator.AnimateInt(Form2,'Width',w,1); TAnimator.AnimateInt(Form2,'Left',l,1); TAnimator.AnimateInt(Form2,'Top',t,1); Form2.ShowModal; finally Form2.Free; end; end; "В лоб" как-то так
  13. не проверял... type TSpinBoxAccess=class(TSpinBox); procedure TForm1.FormCreate(Sender: TObject); begin TSpinBoxAccess(SpinBox1).Model.InputSupport:=false; end;
  14. AValues[0] - нулевого элемента может и не быть...
  15. GPT-4 write in topic "Тема парсинья человеков": Распарсить всех кожаных ублюдков!
  16. type TForm2 = class(TForm1) у тебя форма 2 наследуется от формы 1... и все что есть на 1 будет и на 2... type TForm2 = class(TForm) - наследование от базового класса
  17. константы без кавычек ключ в uses FireDAC.Stan.Consts
  18. заметь - ругается на сетевое подключение... либо порт либо ip неправильно указаны... мой uses FireDAC.Comp.Client, FireDAC.Comp.DataSet, FireDAC.Stan.Def, FireDAC.Stan.Param, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.Stan.Consts, FireDAC.Stan.Async, FireDAC.DApt, FireDAC.Phys, FireDAC.Phys.Intf, FireDAC.Phys.FB, FireDAC.Phys.FBDef, FireDAC.Phys.IBBase; Params.Values['S_FD_ConnParam_IB_Protocol']:='TCPIP'; Params.Values['S_FD_ConnParam_Common_Server']:='*********'; Params.Values['S_FD_ConnParam_Common_Port']:='***'; константы без кавычек ключ в uses FireDAC.Stan.Consts
  19. const DriverName='FB'; ... FConnection.DriverName:=DriverName; with FConnection do begin Params.Database:= 'Database'; Params.UserName := 'UserName'; Params.Password := 'Password'; Params.Values[S_FD_ConnParam_IB_Protocol]:='TCPIP'; Params.Values[S_FD_ConnParam_Common_Server]:=Server; Params.Values[S_FD_ConnParam_Common_Port]:=Port; Params.Values[S_FD_ConnParam_IB_SQLDialect]:='3'; Params.Values[S_FD_ConnParam_IB_RoleName]:=Role; Params.Values[S_FD_ConnParam_Common_CharacterSet]:=CharacterSet; end; FConnection.Connected:=true;
  20. const DriverName='FB'; var DriverLink:TFDPhysDriverLink; begin FDPhysManager().Open; DriverLink:=FDPhysManagerObj.FindDriverLink(DriverName); if not assigned(DriverLink) then DriverLink:=TFDPhysFBDriverLink.Create(nil); if DriverLink.DriverState<TFDPhysDriverState.drsLoaded then begin {$IFDEF MSWINDOWS} DriverLink.VendorHome:= ''; DriverLink.VendorLib:= ExtractFilePath(ParamStr(0))+'fbclient.dll'; {$ENDIF} {$IF DEFINED(iOS) or DEFINED(ANDROID)} DriverLink.VendorHome:= ''; DriverLink.VendorLib:= IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + 'libfbclient.so.4.0.0'; {$ENDIF} if FileExists(DriverLink.VendorLib) then DriverLink.DriverIntf.Load; end;
  21. В лоб TList<Rec>, но говоришь большой список? память не резиновая - может надо класть на диск например в БД, и работать с Dataset
×
×
  • Создать...