Hirdetés
Ú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
- iPhone topik
- Hiányzik a Marathon? Jelentkezz a következő tesztre!
- Gumi és felni topik
- The Division 2 (PC, XO, PS4)
- Építő/felújító topik
- Kormányok / autós szimulátorok topikja
- Víz- gáz- és fűtésszerelés
- Milyen processzort vegyek?
- Bemutatkozott a Poco X7 és X7 Pro
- 5.1, 7.1 és gamer fejhallgatók
- További aktív témák...
- Bomba ár! Dell Latitude 3410 - i3-10110U I 8GB I 256SSD I HDMI I 13,3" FHD Touch I Cam I W11 I Gari
- Bomba ár! Dell Latitude E5550 - i5-5GEN I 8GB I 128SSD I 15,6" FHD Touch I HDMI I W10 I Cam I Gari!
- Bomba ár! Dell Latitude E5540 - i5-4GEN I 4GB I 240SSD I Nvidia I 15,6" FHD I Cam I W10 I Garancia!
- Olcsón Google Nest Mini 2nd Gen
- Bomba ár! Dell Latitude E5530 - i5-3GEN I 4GB I 320GB I HDMI I 15,6" HD I W10 I Gari!
- Xiaomi Redmi 14C 128GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone 12 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS2113, 100% Akkumulátor
- Magyarország piacvezető szoftver webáruháza
- OUKITEL G1 Mobiltelefon 24/256Gb dupla sim
- HIBÁTLAN iPhone 13 Pro 256GB Sierra Blue 1ÉV GARANCIA -Kártyafüggetlen, MS3743, 100% Akkumulátor
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest

)





