- Nem fogy a Galaxy S25 Edge?
- Apple iPhone 16 Pro - rutinvizsga
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Telekom mobilszolgáltatások
- Samsung Galaxy S21 FE 5G - utóirat
- Eltűnhet a Dinamikus Sziget
- Yettel topik
- Android alkalmazások - szoftver kibeszélő topik
- Erős specifikáció, kompakt formában
- Fotók, videók mobillal
Új hozzászólás Aktív témák
-
Gyuri16
senior tag
delphiben charbol az ascii kodjat az ord fuggvennyel lehet megtudni, forditva pedig a chr fuggvennyel.
ha csak ossze akarod hasonlitani a ket edit tartalmat, akkor azt csinalhatod egyszeruen stringekkel (az edit.text egy stringet ad vissza). tehat ilyen if mukodik:
if edit1.text = edit2.text then valami
vagy elmentheted ezek tartalmat egy string tipusu valtozoba es csinalhatsz vele valami bonyolultabbat.ezt az integralas dolgot nem teljesen ertem, ebben a kontextusban nem hasznaltam meg ezt a kifejezest..
masik dolog a programodban az application.terminate. szerintem hasznalj helyette close-t. utobbi vegulis meghivja az application.terminate-t viszont elotte vegrehajtodik az onClose event, amit tobbnyire akarsz (mar ha irtal hozza fuggvenyt ami lekezeli). szerintem mindenesetre szebb megoldas, raadasul leirni is rovidebb.
legkozelebb a forraskodot amit ide beillesztesz tedd programkod blokkba (a hsz irasakor lent katt a programkod gombra), ugy jobban olvashato.
-
Gyuri16
senior tag
az edit1.text egy stringet ad vissza. a DeleteFile pedig egy stringet var parameterkent, igy mukodnie kellene:
procedure TForm1.Button1Click(Sender: TObject);
begin
DeleteFile(Edit1.Text);
end;itt nem art meg ellenorizni mivel ter vissza a fuggveny (sikerult e a torles) illetve hogy mi van az edit1.textben
-
Gyuri16
senior tag
ha tenyleg az objektumon belul csinalod, akkor el kell tudnod erni a valtozokat. ennek az eljarasnak az osztalyon belul kell lennie, tehat a deklaracioja igy nez ki:
procedure TForm1.valami;
azon kivul a TEditet (vagy akarmit hasznalsz) siman at tudod adni parameterkent egy ellenorzofuggvenynek (bar ebben az esetben szerintem eleg lenne a frissen begepelt chart atadni):
procedure TForm1.ellenoriz(ed: TEdit);beillesztesnek wm_paste msg-je van
-
Gyuri16
senior tag
elso: adsz neki egy ures popupmenut. jobbat nem tudok (esetleg a msg-kel jatszhatsz meg, ahogy irtad)
a masodikra: a form elemei a formnak (mint objektumnak) a valtozoi. tehat a formon belul elered oket, kivulrol pedig csak a formon keresztul lehet (form.valtozo). a poen az egeszben, hogy egyenesen nem lehet elerni, mert ezek private valtozok, tehat valamilyen public metodussal kell trukkozni. ez viszont nem szep megoldas, a formon kivul nem kellene az elemeit babralni. ha olyan valamit akarsz, ami hozzafer a kontrolokhoz, akkor az legyen a form metodusa.
-
Gyuri16
senior tag
válasz
mézespálinka #1822 üzenetére
bal alt+shift vagy a talcan jobb oldalt lehet a billentyuzetet valtoztatni. delphinek semmi koze ehhez. ha nincs a windowsodon angol nyelv, azt valahol a vezerlopultban lehet hozzaadni
-
Gyuri16
senior tag
válasz
mézespálinka #1820 üzenetére
eloszor allits angol billentyuzetet (ha nem azod van)
p mellett jobbra van a [ -
Gyuri16
senior tag
ha egy form belsejet akarod valtoztatni akkor szerintem jobb lenne tabokat hasznalni, es azzal valtogatni. amit akarsz (ha jol ertem), bar meg lehet csinalni, de nem erre van kitalalva. tobbnyire windowsos alkalmazasoknak van egy fo ablaka, ami sok masikat tud elohivni, de nem latom ertelmet onmagat valtoztatni.
ha mindenkepp ezt akarod, akkor szerintem inkabb paneleket keszits, es azokat valtogasd a formon belul (tpanelt is lehet design timeban kesziteni) -
Gyuri16
senior tag
-
Gyuri16
senior tag
válasz
asimov007 #1790 üzenetére
megyek el itthonrol, egyelore csak ennyi:
delphis tombod 1tol kezdodik, mig c-ben ugye 0tol, erre oda kell figyelni
a StringGrid1SelectCellben a mat1[1,1]:= jatekos; sor a jatekos valtozo csereje utan van, tehat az elso meghivaskor 'O' lesz bennemajd kesobb megnezem jobban
-
Gyuri16
senior tag
válasz
Gyuri16 #1787 üzenetére
itt egy egyszeru klikkelgetos megoldas:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure FormCreate(Sender: TObject);
private
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
jatekos:char;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if StringGrid1.Cells[ACol, ARow] <> '' then
exit; // ha mar van ott valami nem irjuk felul
StringGrid1.Cells[ACol, ARow]:=jatekos;
if jatekos='X' then
jatekos:='O'
else
jatekos:='X';
{
ide johet a kiertekeles, dll meghivasa stb
}
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
jatekos:='X';
end;
end.(a formcreate ertelemszeruen a formnak az oncreate esemenye)
-
Gyuri16
senior tag
válasz
asimov007 #1786 üzenetére
nem nagyon neztem mit csinal a programod.. gondolom otodolo akar lenni, ugye? jelen formajaban a programod eleg kusza, nem igazan ertem mit miert csinal. miert akarod a selectet ciklusba rakni, minek oda egyaltalan ciklus. ird le szavakkal, hogy mit is akarsz konkretan
olyat hogy egy stringgridben kattintasokra mukodjon a X es O jeloles felvaltva megirhatok, aztan viszont meg kell tesztelni, hogy osszejott-e egymas mellett az 5 egyforma. tovabba ha szamitogepes ellenfelet akarsz azt is meg kell irni.
ez meg nem szemtelenseg
azt jol sejted, hogy a programozos topicokban nem nagyon szeretjuk azt, ha valaki kesz programot ker, es aztan par nap mulva jon a kovetkezoert. kerdeseket nyugodtan irhatsz forumba, arra van. -
Gyuri16
senior tag
válasz
asimov007 #1783 üzenetére
ha a stack overflowra gondolsz, akkor az azert van, mert rekurzivan meghivod a selectcell fuggvenyedet, es igy vegtelen ciklusba kerul. azon kivul a while ciklusod is vegtelen, mert a vertek valtozot nem valtoztatod meg a ciklusban.
legkozelebb legyszives hasznald a programkod gombot, nagyobb esellyel kapsz segitseget ha nem kell kinlodni a koddal hogy olvashato legyen. tovabba ha leirod milyen hibat dob, az szinten gyorsitja a valaszt.
-
Gyuri16
senior tag
te jo eg.. remelem a programokat nem ilyen stilusban irod..
enabled azt jelenti, hogy az adott control hasznalata engedelyezve van e. tehat pl gombnal ha nem enabled akkor szurke, es nem lehet menyomni, ha enabled akkor mukodik rendesen
setfocus aktivva tesz egy controlt. pl egy szoveges mezonel (TEdit, TMemo) odaugrik a kurzor, es rogton irhatsz bele. -
Gyuri16
senior tag
válasz
Monika19 #1777 üzenetére
hat en nem az editek onclickjebe tennem, mert az akkor hajtodik vegre ha ranyomsz az editre, szerintem ugy csinald, hogy eloszor kitoltod az adatokat, es ha a gombra nyomsz akkor olvasol be mindent, az osszes editbol. tehat button.onclick
Val-t ugy kell hasznalni ahogy irtad, viszont jobb lenne ha a StrToFloat es FloatToStr-t hasznalnad ahogy irtam (pl azert mert az utobbi tudja, hogy milyen jel a tizedesvesszo - valahol pont, valahol vesszo ez fugg attol, hogy az operacios rendszerben mi van beallitva) -
Gyuri16
senior tag
válasz
Monika19 #1775 üzenetére
ha van egy edited pl Edit, akkor egy valtozoba igy tudod atmasolni (ha szam):
a:=StrToFloat(Edit.text);
ezek utan ha mindent beolvastal, kiszamolod a d-t, aztan jon a rettegett if, kb igy:if d<0 then
eredmenyEdit.Text:='0'
else if d=0 then
eredmenyEdit.Text:='1'
else if d>0 then
eredmenyEdit.Text:='2';ez kiirja az megoldasok szamat az eredmenyEdit editbe
ezutan siman kiirod a d-t:EdDiszkriminans.Text:=FloatToStr(d);
-
Gyuri16
senior tag
válasz
Monika19 #1772 üzenetére
es hol akadtal el?
gondolom masodfoku egyenlet megoldasarol van szo
csinalsz par editet (adatoknak, es eredmenyekre) es egy gombot
gombra teszel olyan akciot, hogy beolvasod az adatokat editekbol, kiszamolod a diszkriminanst, ebbol megallapitod a megoldasok szamat, amit kiirsz, szintugy a diszkriminanst egy masik editbe
stringet szamma tudsz alakitani StrToFloat fuggvennyel (es valos szamokon mukodik), visszafele FloatToStrja es a diszkriminans erteke b^2-4ac
-
Gyuri16
senior tag
válasz
^^|CC|^^ #1762 üzenetére
ok, lehet egyesevel is atdobalni. fogod az eredeti szamokat, es egyesevel elkezded atdobalni a masikba, ha a ciklusvaltozo 4-gyel oszthato (tehat egy negyes csoport vegere ertel) akkor beszursz egy ' '-t
ezt most kiprobalas nelkul irom, csak hogy lasd hogyan gondolom:str - mostani string
str2 - uj string, ebben lesz az eredmeny
for i:=1 to length(str) do
begin
str2:=str2+str[i];
if i mod 4 = 0 then str2:=str2+' ';
end;ezzel van annyi gond meg, hogy a string legvegere is tesz egy ' '-t, de ezt mar ki tudod szurni egyszeruen.
-
Gyuri16
senior tag
-
Gyuri16
senior tag
válasz
^^|CC|^^ #1753 üzenetére
var
str, nullak: String;
mennyi: integer;
begin
str:='10010001000';
nullak:='0000';
mennyi:=(4-(length(str) mod 4)) mod 4;
str:=copy(nullak,1,mennyi)+str;
end;egyanaz egyszerubben:
var
str, nullak: String;
i: integer;
begin
str:='10010001000';
nullak:='';
for i:=1 to 4-length(str) mod 4 do
nullak:=nullak+'0';
if length(nullak)=4 then
nullak:='';
str:=nullak+str;
memo1.Lines.Add(str);
end; -
Gyuri16
senior tag
szerintem legegyszerubb ugy, ha mindent egy TImage-be rajzolsz. Megcsinalod a negyzethalot, es aztan onMouseDown event-et figyeled (koordinatakbol konnyen ki lehet szamolni melyik mezore kattintottal).
ezek jol johetnek: image.canvas.line, image.canvas.draw, image.canvas.ellipse... -
Gyuri16
senior tag
ehhez kell keszitened egy sajat osztalyt, ami kezelni tudja a nagy szamokat. ilyet tobbnyire ugy szokas, hogy egy (nagy) tomb integert hasznalsz a szamod elraktarozasara. ahhoz hogy igy mukodjon termeszetesen meg kell irnod az aritmetikat is az osztalyodhoz. egy kis szerencsevel talalsz a neten, es akkor nem kell sajatot irni
ezt a dolgot az okosok ugy hivjak, hogy arbitrary length arithmetic -
Gyuri16
senior tag
jo lesz ez.
most kellene egy valtozo, amiben a talalgatasok szamat fogod szamolni. nullazod a FormCreateban. Button1Clickben teszel az egesz kore egy nagy ifet, ami megnezi hogy a valtozod kisebb e mint 5, ha igen akkor vegrehajtod amit leirtal, ha nem akkor jon a szomoru arc.
aztan letre kell hozni masik formot, amiben az arc lesz. mondjuk legyen form2. ilyen kellhet: form2.showModal. ugy csinalnam, hogy amikor az arcos formot kell mutatni akkor elotte megmondom neki, hogy most vidam legyen e vagy szomoru, az beallitja a kepet amit mutat, aztan meghivom a showModalt.
latom te MessageDlg-t irtal, nem hiszem hogy ez kell most ide. -
Gyuri16
senior tag
szivesen segitunk, de ird le, hogy hol tartasz, mi nem megy..
az altalad irt verzio a jatek konnyebbik resze (amikor a jatekosnak kell talalgatni).nagyvonalakban a program:
random generalsz egy szamot 1 tol 60 ig.
egy szamlalot beallitasz 0ra
a jatekos elkezd talalgatni
- beolvasol egy szamot, osszehasonlitod a random szammal es kiirod hogy kisebb nagyobb vagy egyenlo > mosolygos arc
- egyel noveled a szamlalodat
- ha a szamlalalo tul nagy lesz, akkor kiteszed a szomoru arcot, mert nem talalta el
vege.
ha valami nem megy irj, hogy hol akadtal el -
Gyuri16
senior tag
válasz
Darkynt #1628 üzenetére
1. nem tudok rola, hogy ezt be lehet valahogy allitani. de szerintem nem gond: mindig mielott uj elemet raknal a listboxba, megnezed hogy mar szerepel e olyan a listaban.
2. nem ertem mit jelent hogy csoportositani. ha kijelolod oket, akkor mindegyik listboxban tudod kezelni az aktualisan kijelolteket. ha akarod akkor mindet belerakhatod egy masik listboxba, vagy egy tombbe, vagy amibe akarod
3. mikor torlod ki a folistadbol az elemet, vegigfutod a tobbi listat is, es ahol megtalalod azt az elemet ott kitorlod (jol johet a Items.IndexOf() ) -
Gyuri16
senior tag
egy programomhoz irtam help-et html-ben. Hogyan tudom megcsinalni hogy egy gombnyomasra a programbol megnyiljon ez a html file a szamitogep bongeszojeben (tehat nem az en programomban) ?
-
Gyuri16
senior tag
válasz
Gyuri16 #1581 üzenetére
latom sajnos nem sokan foglalkoznak ezzel, de azert leirom mire jutottam.
az indy projekt hivatalos oldalarol letoltottem a demo programokat, azok kozul is a IdTCPDemo volt az erdekes, ahol erthetoen meg van irva a program.sajnos a masodik problema meg mindig megoldatlan ( a peldaprogram is hasonlo hibat eredmenyez). Probalta mas is ezt a demot? (neki is ilyen hibat okoz?)
-
Gyuri16
senior tag
válasz
Gyuri16 #1580 üzenetére
vegulis feladtam a tcpclient hasznalatat, most az indy komponenseket hasznalom (idTCPServer, idTCPClient) es a kommunikaciot egesz jol sikerult megvalositanom, vagyis majdnem:
1, az egesz dolog egy otodolo jatekhoz van, hogy lehessen jatszani halozatban (nem nagy dolog, de suliba projektnek lesz..), szoval itt ugye kezd a szerver, majd a kliens jon stb, igy mindig varnak egymasra. ha kliensel kuldok valamit szervernek azt szepen megkapja, majd ott vissza tudok neki kuldeni, kerdesem az, hogy hogy hogyan tudok a commandHandlereken kivul kuldeni valamit a kliensnek.
2, szituacio: szerver elindit, kliens csatlakozik, szerver kikapcsol kliens disconnectel. minden szep, te a szerver nem tud rendesen megszunni, dob egy "terminate thread timeout" hibat.. hiaba csinaltam egy kulond reszt a formdestroyba: idTCPServer1.ThreadMgr.TerminateThreads; aztan meg idTCPServer1.active:=false, igy is kidobja az errort..remelem ezzel a modernebb komponensel tudtok majd segiteni
-
Gyuri16
senior tag
egy kis segitseget szeretnek kerni
halozaton szeretnek adatokat kuldozgetni, tcpclient es tcpserver komponenseket hasznalom. sikerult megoldanom a client->server kuldest, de forditva nem akar menni.. szoval kerdes az, hogy hogyan kell serverrol kuldeni valamit (mondjuk siman sendln vel) es aztan azt a kliens oldalrol fogadni (ha valakinek van veletlenul osszedobva egy egyszeru programja amiben ez mukodik nagyon megkoszonnem, ha megosztana velem).. legnagyobb gondom az, hogy nincs ezekrol a komponensekrol semmi a helpben (turbo delphit hasznalok), es neten is eleg keves a leiras -
Gyuri16
senior tag
tudja valaki, hogy turbo delphiben hol lehet kikapcsolni az automatikus szovegbefejezest (pl ha elkezdem irni hogy "for " akkor o kidobja az egesz for ciklus szerkezetet.. nagyon idegesito) ??
Új hozzászólás Aktív témák
Hirdetés
- ÚJ BONTATLAN iPad Air 6 13 méretben iPad Air 13 512GB Wi-Fi+Cellular Azonnal Átvehető DEÁK Térnél.
- MSI Thin A15 B7VF 15.6" FHD IPS Ryzen 7 7735HS RTX 4060 16GB 512GB NVMe magyar vbill gar
- TUF A17 FA706IU 17.3" FHD IPS Ryzen 7 4800H GTX 1660 Ti 16GB 512GB NVMe gar
- Lenovo Thinkpad X13 Gen4 - AMD R5 7450U/32GB/1TB
- ELADÓ - LENOVO LEGION SLIM 7i 16IAHV - 40GB RAM, 1.5 TB SSD
- Csere-Beszámítás! RTX Gamer Számítógép PC Játékra! I5 12400F / RTX 3070 / 32GB DDR4 / 1TB SSD
- Lenovo ThinkPad L15 Gen 2 - 15.6" FullHD IPS - i5-1135G7 - 8GB - 256GB SSD - Win11 - MAGYAR
- Eredeti, új Lenovo 330W töltők - ADL330SDC3A
- IBM/Lenovo Thinkpad T60
- LG 55C3 - 55" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest