Hirdetés
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Meggyi001: Kórházi ellátás: kuka vagy finom?
- GoodSpeed: WindowBlinds 11
- eBay-es kütyük kis pénzért
- Brogyi: CTEK akkumulátor töltő és másolatai
- Real Racing 3 - Freemium csoda
- Oldman2: A KOReader ebook olvasó program
- Elektromos rásegítésű kerékpárok
Ú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
- Suzuki topik
- Windows 11
- Fotók, videók mobillal
- Ettől lesz más a tévézés? Teszten a OneTV SoundBox
- Óra topik
- Black Friday november 29. / Cyber Monday december 2.
- Gumi és felni topik
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Melyik tápegységet vegyem?
- Hivatalos a OnePlus 13 startdátuma
- További aktív témák...
- Bontatlan Lenovo ThinkPad T14s Gen 4 touch gari 2028.11
- Lenovo Thinkpad T490, 14" FHD IPS kijelző, I7-8565U CPU, 8GB DDR4, 256GB SSD, W11, Számla, 1 év gara
- LG 55QNED80T3A 4K UHD Smart AI TV MAGIC MOTION TÁVIRÁNYÍTÓVAL!
- Macbook Air 13" M1 A2337 2020 8GB Viseltes eszt. áll.
- Macbook Air 13" M1 A2337 2020 8GB Pixelhiba
- GYÖNYÖRŰ iPhone 14 128GB Red -1 ÉV GARANCIA -Kártyafüggetlen, MS3678, 100% Akkumulátor
- Jura Impressa C5 Automata kávégép 6 hónap Garancia Beszámítás Házhozszállítás
- Azonnali készpénzes AMD Radeon RX 5000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Bomba ár! Lenovo ThinkPad P50 - i7-HQ I 32GB I 512SSD I Nvidia I 15,6" 4K Beégett I Cam I W10 I Gar
- BESZÁMÍTÁS! ASRock B450M R5 2600 16GB DDR4 256GB SSD 1TB HDD GTX 1650 4GB Zalman T4 PLUS 400W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő

)




