- Épített vízhűtés (nem kompakt) topic
- Házimozi belépő szinten
- Plazma TV topic
- A Windows 11 lett az úr az asztali PC-k piacán
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Kezdő fotósok digitális fényképei
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- OLED monitor topik
Ú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
- BESZÁMÍTÁS! MSI SUPRIM X RTX 4080 16GB videokártya garanciával hibátlan működéssel
- BESZÁMÍTÁS! 4TB Samsung 870 EVO SATA SSD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! Gigabyte GA-A620M R5 7600 32GB DDR5 512GB SSD RX 6700XT 12GB Rampage SHIVA Corsair 750W
- HP ProBook 430 G4 Pentium 4415U (bios jelszavas)
- ÁRGARANCIA!Épített KomPhone i5 10600KF 16/32/64GB RAM RX 6600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest