- Alacsony profilú, madzagmentes klaviatúrák jöttek a Razer színeiben
- ASUS ROG csúcslap érkezett, ezúttal a "lopakodó" fajtából
- Átvette a DRAM-piac trónját az SK Hynix a Samsungtól
- Pénztárcabarát, ugyanakkor trendi mikrotorony jött a Jonsbótól
- A Linux támogatását vágja meg leginkább az Intel leépítése
- Milyen belső merevlemezt vegyek?
- Autós kamerák
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Calibre, az elektronikus könyvtár
- VR topik (Oculus Rift, stb.)
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Egérpad topik
- Először égett le egy újságnál a GeForce RTX 5090
- Kezdő fotósok digitális fényképei
Új hozzászólás Aktív témák
-
g4dg3t
senior tag
Sender parameter megadja a hivo objektumot, tehat (Sender as TEdit).xxx formaban el tudod erni a peldany osszes property-jet es metodusat.
(Sender as TEdit).Name-el kapod meg a peldany nevet...ezt hasznalhatod ha el akarod agaztatni.
pl.:
...
if (Sender as TEdit).Name = 'Size' then
... -
g4dg3t
senior tag
celszeru beszerezni egy normalis NumericEdit komponenst, de ha nem akarsz kulso stuffot es tenyleg nincs szukseged mas ficsorre akkor a TEdit.OnKeyPress esemenyet kezeld le az alabbi koddal:
const EDITMAXVALUE = 10000;
var tmpNum: integer;
begin
if Key in ['0'..'9'] then begin
tmpNum:=StrToIntDef((Sender as TEdit).Text + Key,0);
if tmpNum > EDITMAXVALUE then Key:=#0;
end
else
if Key <> Char(VK_BACK) then Key:=#0;
end;
[Szerkesztve] -
bevik
csendes tag
-
P.H.
senior tag
Ha mindenképp a string végén van a 3 lebegőpontos, space-szel elválaszva, akkor haladj hátulról.
var
..I,J,Pos: longint;
..Szam: array [1..3] of double;
..Data,Temp: string;
..begin
....data:='szin bela 0,0 0,0 0,0';
....for pos:=3 downto 1 do begin i:=length(data);
......while (i > 1) and (data <> ' ') do dec(i);
......temp:=copy(data,i+1,MAXLONGINT);
......szam[pos]:=strtofloat(temp);
......delete(data,i,MAXLONGINT); end; end;
(ha a copy() vagy a delete() utolsó paramétere MAXLONGINT, akkor a string végéig fog másolni/törölni).
Ha az sem igaz, hogy biztosan space-ekkel vannak elválasztva, akkor
(data <> ' ') helyett mehet (datain ['0'..'9','.',',' ] ), akkor is törölni fogja az elválasztó karaktert.
Arra viszont figyelj, hogy ha StrToFloat-tal konvertálod számmá, akkor angol Windows alatt . (pont) a tizedes-elválasztó, magyar alatt pedig ',' (vessző), különben leáll exception-nal. Érdemes így írni, amit írtam fentebb:
......try..szam[pos]:=strtofloat(temp);
......except for j:=1 to length(temp) do
........if temp[j] = '.' then temp[j]:=','
........else of temp = ',' then temp[j]:='.';
........try szam[pos]:=strtofloat(temp);
........except { ekkor hiba van, 2 pont vagy 2 vessző } end; end;
Ekkor a pontokat lecseréli vesszőre és a vesszőket pontokra, és lemegy, mindegy, milyen nyelvű a Windows. Illetve nem teljesen, mert ha a Vezérlőpontban a tizedes-elválasztót átírták valami másra, akkor így jártak :)
[mod]: csak normális kinézetű lesz lesz lassan...
[Szerkesztve] -
g4dg3t
senior tag
úgy szerinted nem jó ha poszal megkeresem az első pontot, s index-1től kopizok?
Ha elofeltetelkent kikothetjuk, hogy a keresett resz elott nem fog ''.'' szerepelni a string-ben, akkor jo lehet ugy is. Tehat ''szin.ize bela.bigyo 0.0 0.0 0.0'' sornal gondot okozna.
Jol ertem, hogy a Pos fv-t belepesi feltetelkent hasznalod? Az igy vegtelen ciklust kell, hogy okozzon. Postold azt a while ciklust, este megneznem.
[Szerkesztve] -
g4dg3t
senior tag
legegyszerubben Pos, PosEx es Copy fuggvenyekkel (elofeltetel hogy a stringben mindig a 3. space-tol kezdodjek a kerdeses reszlet):
var
Ind: integer;
OutStr: string;
...
Ind:=Pos(#32,Sor);
if Ind > 0 then Ind:=PosEx(#32,Sor,Ind + 1);
if Ind > 0 then Ind:=PosEx(#32,Sor,Ind + 1);
if Ind > 0 then OutStr:=Copy(Sor,Ind + 1,Length(Sor) - Ind)
else OutStr:='';
...
Pos es PosEx fv helyett ciklust is szervezhetsz...kinek mi elegansabb.
[Szerkesztve] -
P.H.
senior tag
Legegyszerűbben a pos függvénnyel.
Pl.: i:=pos('amit keresel','amiben keresel').
Longint típust ad vissza, ha ez nulla, akkor a keresett szöveg nincs a sztringben, nemnulla esetén annak első előfordulási pozíciója.
[mod]: a kis- és nagybetűk között különbséget tesz.
[Szerkesztve] -
Tele von Zsinór
őstag
Tegyük fel pl hogy neked integerből kell egy tömb, azt így deklaráld:
var a: array of integer;
utána valahol a futás során kiderül, hogy 5 eleme kéne hogy legyen:
setlength(a,5);
ezután ugyanaz, mintha ezt csináltad volna:
var a: array[0..4] of integer;
és persze bárhol lehet állítgatni kisebbre, nagyobbra. Ha kisebbre veszed, akkor a végéről kiesnek az elemek, azokat nem kapod vissza, ha megint nagyobbra állítod.
[Szerkesztve] -
btotyi
tag
Tedd rá egy button onclick-re
procedure TForm1.Button1Click(Sender: TObject);
Var i : integer ;
Button : TButton ;
begin
for i := 0 to 9 do
begin
Button := TButton.Create(Self);
Button.Caption := IntToStr(I) + '. gomb';
Button.Parent := Self;
Button.Top := i * 26 ;
Button.Visible := true ;
end;
end; -
ViragL
tag
Ok, csak javaslat volt.
Egyébként a Delphi helje a Borland büszkesége lehet, az egyik legjobb, ha nem a legjobb. A dinamikus tömbre konkrétan emlékszem, hogy nagyon szépen le van írva. A filelistás dolgot is megtalálod a helpben, ha szerencséd van van hozzá példakód is az alapján el kell, hogy boldogulj.
[Szerkesztve] -
ViragL
tag
A 2. problémához annyit fűznék hozzá, hogy HA megoldható, akkor ne futásidőben hozd létre a gombokat stb, hanem használj statikus eszközöket, és futásidőben csak a Visible propertyjüket állítgasd. Ha ez megoldható, ez gyorsabb szebb és biztosnágosabb megoldás lesz, ráadásul sok macerától mented meg magad.
[Szerkesztve] -
ViragL
tag
A klikkelős dolgot még mindig nem értem pontosan, ha a felhasználót szeretnéd rávenni, hogy klikkeljen akkor ''mond meg neki mit csináljon'' pl. ShowMessage() ablakban.
Ha azt akarod, hogy a program ''magátol'' klikkeljen valamire, akkor hivd meg annak az objektumnak az OnClick() eseményét, pl self paraméterrel. -
ViragL
tag
A cortonaSDk-t nem ismerem, de amikor hasonló problémával találtam magam szembe anno, az volt a probléma, hogy a futtatható álományon kivül kellett még néhány egyéb cucc is a program futtatásához. Az én esetemben néhány DLL-kellett pluszba, szerintem neked is hasonló problémád van.
Csak tipp, mivel nem ismerem a cortonaSDK-t, hogy nem elég feltelepíteni, újra is kell fordítani, hangsúlyozom, ez csak tipp.
A klikkelős kérdést nem értem, ki klikkeljen és hova? A felhasználó a program területén valahova, vagy a program klikkeljen a területén belül valahova, esetleg kivülre?
[Szerkesztve]
Új hozzászólás Aktív témák
Hirdetés
- Új Dell 13 Inspiron 5310 FHD+ IPS i5-11300H 4.4Ghz 8GB 256GB Intel Iris XE Graphics Win11 Garancia
- Dell 16 Inspiron 5625 FHD+ IPS Ryzen5 5625U 4.3Ghz 16GB 512GB SSD Radeon RX Vega7 Win11 Garancia
- Új Dell 14 Inspiron 5415 FHD IPS Ryzen5 5500U 4.0Ghz 8GB 256GB SSD Radeon RX Vega7 Win11 Garancia
- Dell 14 Latitude 5440 FHD IPS i5-1245U vPro 4.4Ghz 10mag 16GB 256GB Intel Iris XE Win11 Pro Garancia
- HP 14 Elitebook 640 G9 FHD IPS i5-1235U 4.4Ghz 10mag 16GB 256GB Intel Iris XE Win11 Pro Garancia
- Prémium gépház most fantasztikus áron!
- Lenovo ThinkPad X1 Yoga G6 (6th Gen) - i7-1185G7, 32GB, 512GB SSD, multitouch + TOLL
- Samsung Galaxy A13 64GB, Kártyafüggetlen, 1 Év Garanciával
- REFURBISHED és ÚJ - HP USB-C Dock G5 docking station (5TW10AA) - 3x4K felbontás, 144Hz képfrissítés
- Konzol felvásárlás!! Xbox Series S, Xbox Serries X
Állásajánlatok
Cég: FOTC
Város: Budapest