Új hozzászólás Aktív témák
-
olyat hogyan lehet egyszerűen szépen csinálna ha van három gombom ami csak adott esetben kell egyébként nem látható. tudom hogy van láthatósága minden gomban de nem akarom gombonként állítani hanem valami csoportba kéne rendezni őket :$
-
P.H.
senior tag
Csak elferült valamiért dőlt betűsre... Na mindegy.
Még annyi, hogy
- ha tényleg '0.0' formában jönnek az adatok, akkor magyar Windows alatt mindenképp kell a második, try-except-es rész, az StrToFloat-hoz (default a vesszős elválasztás)
- a második kódban term. else if áll, 'else of' helyett.
- a második except-be után akkor is bele fog futni, ha a string végén kevesebb, mint 3 szám van, amellett, hogy ha 1-nél több tizedes-elválasztó van. (a '.1' és a '1.' string-eket nem tudom hirtelen, hogy kezeli-e az StrToFloat helyesen, de talán igen)
[Szerkesztve] -
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] -
nekem egy ilyen sorból kellene
sor:='hello belatipus bela1 0.0 0.0 0.0';
ból a 0.0 0.0 0.0 string.
a gondom az hogy a 0.0 0.0 0.0 lehet akár 1.0 1.0 1.0 is de lehet 1.0 0.0 0.111 is meg akármilyen érték. Tulajdonképpen 3 db double
hogyan tudnám kinyerni a stringből -
bukica
csendes tag
Azt meg lehet oldani, hogy a StatusBar felosztott részeit különböző színűekre állítsam, vagy használjak valamilyen más megoldást?
-
ViragL
tag
Hajrá! Nemtudom mennyire lesz összetett a program amit csinálsz, az általad talált delay függvényt sem ismerem, de így látatlanban azt mondom, hogy problémás lesz a dolog. Gondolom a jó öreg ''pascalos'' delay-t ültette át valaki delphibe, ha igazam van akkor az aktuális szál működését függeszti fel a paraméterben megadott időre, ha ez így van, akkor, mivel egy szálad van összesen az egész program működését felfüggeszti arra az időre, ergo se menü se semmi nem lesz használható addig. Nekem sok bajom volt vele anno, csak azért írom ezt ide, hogy ha hasolót tapasztalsz, tudd miért van.
MOD: nem off
[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] -
ngb
csendes tag
Hi!
Nekem egy olyan kérdésem lenne, hogy megírtam delphibe egy programot és azt szeretném egy weblapba integrálni, akkor azt hogyan tuom megcsinálni? (ha egyeltalán meg lehet) -
honnan tudom meg hogy egy string tartalmaz-e egy másik stringet?
-
tehát ebből hogyan tudom kinyerni a r,g,b értékeit?
mod 3B majd
div 2B
mod 2B div B
mod B?
(div egészrészes osztás mod maradék )
találtm egy ilyet
procedure rgbValues(color:TColor;var red,green,blue:byte);
begin
red :=GetRValue(color);
green:=GetGValue(color);
blue :=GetBValue(color);
end;
azaz ha nekem egy 0.0 és 1.0 közötti szám kell színenként (1.0 a 255 0.0 a 0) akkor a kód így néz ki:
procedure rgbValues(color:TColor;var red,green,blue:double);
begin
red :=(GetRValue(color)/255);
green:=(GetGValue(color)/255);
blue :=(GetBValue(color)/255);
end;
[Szerkesztve] -
színt szeretnék választani programban. van valami colordialog
Arra lennék kíváncsi hogy milyen formában tudom a választott színt visszakapni. -
bukica
csendes tag
Hogyan lehet a progam futását pl. 2 másodpercre várakoztatni (2 mp szünet)?
-
bukica
csendes tag
Egy másik problémám, hogy lehet egy 'státusz' sort kitenni egy form-ra, hogy azon programfutás közben különböző dolgokat ki tudjak írni (rekord számláláló,üzenetek stb.), és ezek azonnal meg is jelenjenek, nem csak akkor mikor az adott feladat lefutott?
Nem tudom elég érthetően fogalmaztam-e? Pl. egy indexelés előtt ki akarom írni, hogy 'Türelem indexelés', majd mikor az indexelés lefutott, eltüntetni az üzenetet? -
-
ViragL
tag
Nem konkrétan delphi, de mivel úgyis elsősorban delphisek használnak IB-t vagy FireBirdet, ezért itt is megkérdezem: Van itt olyan ember aki IBExpertet használ?
-
bukica
csendes tag
Oké köszi ezt Én is kipróbáltam, és jó is, csak a font charsetet ANSI_CHARSET-re kell állítani, akkor jelenik meg az átmérő jel.
Már csak az az a probléma, hogy a billentyű lenyomásakor a beírja a karaktert, és a kurzor a sor elejére ugrik.
Hogyan lehet azt megoldani, hogy maradjon a szöveg végén a kurzor? -
válasz
Tele von Zsinór #1407 üzenetére
hmm ez tök jó köszi a segítséget.
-
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; -
btotyi
tag
Ez működik :
Ctrl + 0 (nem numerikus taszton !)
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If (key = $30) and (ssCtrl in Shift)
then
begin
edit1.Text := edit1.Text + 'Ř';
end;
end;
Az edit mező Font propertyn állíts be pld Arial fontot. -
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] -
válasz
Tele von Zsinór #1398 üzenetére
az 1. kb értem bár nem 100%ig
a 3-at nem vágom sajnos
Új hozzászólás Aktív témák
Hirdetés
- Linux kezdőknek
- Új kétfiókos NAS-sal gyarapodott a Synology palettája
- Bambu Lab 3D nyomtatók
- Formula-1
- Futás, futópályák
- Media Player Classic és Home Cinema (MPC-HC)
- sziku69: Szólánc.
- AliExpress tapasztalatok
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Nintendo Switch 2
- További aktív témák...
- iPhone SE2 64GB fekete, gyönyörű újszerű állapotban, 3db van, 85% 92% és 100% akkuval
- iPhone SE2 64GB 82% piros, saját dobozzal
- Apple iPhone 13 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- iPhone 12 128GB, fekete vagy fehér színben, újszerű állapotban
- iPhone 12 128GB, fekete és fehér színben, több db
- ÁRGARANCIA! Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Bitcoin Miner Eladó Bitmain Antminer S19 JPro 104 Th 3150 watt
- Samsung Galaxy S23 Ultra , 8/256 GB , Kártyafüggetlen
- Telefon Felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- Samsung Galaxy S23 Plus 256 GB Kártyafüggetlen 1Év Garanciával
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest