- 3D nyomtatás
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Szünetmentes tápegységek (UPS)
- Fali konzol lapos tévékhez
- Ismét minimalista miditorony érkezett a Fractal Design műhelyéből
- HDD probléma (nem adatmentés)
- Majdnem mindenki a TSMC 2 nm-es node-jára vágyik, de van egy nagy probléma vele
- ASUS notebook topic
Ú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
- 3D nyomtatás
- Telekom mobilszolgáltatások
- Vigneau interaktív lokálblogja
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- BestBuy topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- TCL LCD és LED TV-k
- Huawei Watch Fit 3 - zöldalma
- Miskolc és környéke adok-veszek-beszélgetek
- Kínai és egyéb olcsó órák topikja
- További aktív témák...
- OnePlus 7T Pro 8/256GB, Normál, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- Samsung Galaxy S24 Ultra 12/512GB, Megkímélt, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garancia!
- Prémium Gamer/Creator Laptop: ASUS ROG Zephyrus M Pantone Kijelzővel, 32GB RAM!
- Apple IPhone 14 Pro Max GOLD 128GB KÁRTYAFÜGGETLEN 86% AKKU
- iPhone 11 pro max Gold , független 64GB
- Lenovo 13 Core i3-7100 Cpu laptop eladó
- Bomba Ár! Dell Latitude 3190 - Intel N4120 I 4GB I 64GB SSD I 11,6" HD I Cam I W11 I Garancia!
- BESZÁMÍTÁS! Asus TUF B450M R5 5600X 32GB DDR4 512GB SSD RTX 3060 XC 12GB Rampage SHIVA Chieftec 600W
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- SanDisk Extreme Portable 8TB (SDSSDE61-8T00-G25)
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest