- Linux programok topic - (Milyen program, ami..? Linux verzio)
- Megrendszabályozza a Pornhubot az EU
- Aliexpress tapasztalatok
- Otthoni hálózat és internet megosztás
- Tarr Kft. kábeltv, internet, telefon
- OpenWRT topic
- SkyShowtime
- Van, amit nehéz lett megtalálni a Google keresőjével
- Linux kezdőknek
- Hálózatokról alaposan
Új hozzászólás Aktív témák
-
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) ??
Nem vagyok egoista, csak uborkagyalu!
-
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 leirasNem vagyok egoista, csak uborkagyalu!
-
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
Nem vagyok egoista, csak uborkagyalu!
-
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?)
Nem vagyok egoista, csak uborkagyalu!
-
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) ?
Nem vagyok egoista, csak uborkagyalu!
-
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() )Nem vagyok egoista, csak uborkagyalu!
-
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 elNem vagyok egoista, csak uborkagyalu!
-
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.Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
const max = 10;
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
for i:=1 to max do
with TButton.Create(self) do
begin
Caption:='Button '+IntToStr(i);
Parent:=self;
Name:='Button'+IntToStr(i);
Left:=20;
Top:=i*30;
end;
end;Nem vagyok egoista, csak uborkagyalu!
-
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 arithmeticNem vagyok egoista, csak uborkagyalu!
-
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...[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
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;Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz ^^|CC|^^ #1759 üzenetére
ezt most probald elkezdeni te
nullazol egy uj stringet, amibe, majd megkapod a vegen a tagolt szamsort
kell egy ciklus ami megy vegig az eredeti stringeden, negy darabot atdob az uj stringbe, majd odarak egy ' '-t azutan megint negyet odatesz es igy tovabbNem vagyok egoista, csak uborkagyalu!
-
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.
Nem vagyok egoista, csak uborkagyalu!
-
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
Nem vagyok egoista, csak uborkagyalu!
-
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);
Nem vagyok egoista, csak uborkagyalu!
-
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)Nem vagyok egoista, csak uborkagyalu!
-
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.Nem vagyok egoista, csak uborkagyalu!
-
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.
Nem vagyok egoista, csak uborkagyalu!
-
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.Nem vagyok egoista, csak uborkagyalu!
-
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)
Nem vagyok egoista, csak uborkagyalu!
-
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
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
Delphi egy programozasi nyelv. lehet benne olyan programot irni, amiben aramkort lehet tervezni, de az eleg nagy munka. magatol nem tud ilyet.
ha valamilyen konkret aramkortervezo programrol van kerdesed arra hamarabb kapsz valaszt egy elektros topicban, pl itt: [link]
Nem vagyok egoista, csak uborkagyalu!
-
-
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)Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz mézespálinka #1820 üzenetére
eloszor allits angol billentyuzetet (ha nem azod van)
p mellett jobbra van a [Nem vagyok egoista, csak uborkagyalu!
-
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
Nem vagyok egoista, csak uborkagyalu!
-
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.
Nem vagyok egoista, csak uborkagyalu!
-
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
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
-
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
Nem vagyok egoista, csak uborkagyalu!
-
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.
[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
Új hozzászólás Aktív témák
- Háztartási gépek
- Politika
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- EA Sports WRC '23
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Linux programok topic - (Milyen program, ami..? Linux verzio)
- Veszprém és környéke adok-veszek-beszélgetek
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- További aktív témák...