- Poco X6 Pro - ötös alá
- Alkalmazásbemutató: Keep
- Futott egy Geekbench kört egy új HTC készülék
- Azonnali mobilos kérdések órája
- Apple AirPods Pro (2. generáció) - csiszolt almaságok
- Huawei Mate 10 Pro - mestersége az intelligencia
- Vodafone-ra áttért Digi Mobilosok
- Xiaomi Mi 11 Ultra - Circus Maximus
- iOS alkalmazások
- Yettel topik
Hirdetés
-
Már tudjuk, hogy mikor jön az idei Xbox Games Showcase
gp A showt egy külön Direct előadás követi, ami szinte biztosan az idei Call of Duty lelepelzése lesz.
-
Az Apple iPadOS-t is megrendszabályozza az EU
it Az EB közölte: az Apple iPad táblagépekre írt iPadOS rendszere is kapuőrnek számít, az üzleti felhasználókra gyakorolt fontossága miatt.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
Új hozzászólás Aktív témák
-
Diskcopy
tag
Hello!
A következő lenne a kérdés.. Adott egy form, rajta mondjuk 10 darab TImage, legyen a nevük Image1, Image2, image3.. stb Hogyan tudok kódon belül hivatkozni arra, hogy melyiknek a tulajdonságát szeretném állítani, annélkül, hogy
leírnám a konkrét nevét.. Tehát gondolok itt valami ilyesmire, hogy image(száma).tulajdonság.? vagy mindenképpen végig kell menni ciklussal és vizsgálni, Components[cikluszámláló] Image -e és a neve tartalmazza-e az Image stringet??(ahogy fentebb egy példában látszott)
Köszönöm előre is a lámer kérdésre a választ.
[Szerkesztve] -
Diskcopy
tag
válasz Diskcopy #630 üzenetére
Azon gondolkodom, hogy a Components-en belül a képeknek fix értéke van, mármint hogy hanyadikok. Ha újabb komponenst rakok le, akkor növekszik a Components értéke, de a képeké marad ugyanaz (nem?) akkor elméletileg csak meg kéne néznem, hogy a képek hanyadik Components elemtől kezdődnek és akkor megúszom a végigmenős ciklust (legalábbis azt, hogy az összes komponensen végigmenjen). Javíts ki ha tévednék légyszíves.
-
Diskcopy
tag
válasz killerjohn #633 üzenetére
köszi!
mondottam volt, lehet lámer a kérdés.
[Szerkesztve] -
Diskcopy
tag
válasz killerjohn #636 üzenetére
Emlékeztem hogy van valami megoldás, csak nem tudtam már mi volt, viszont drótozni sem akartam. hogy image1.stb image2.stb mert ez tényleg lámer
-
Diskcopy
tag
válasz killerjohn #636 üzenetére
hm, átírtam ilyenné: Timage(Form1.FindComponent('Image'+IntToStr(i))).akármi:=akármi. a te verzióddal nyavajgott.
-
Diskcopy
tag
válasz killerjohn #640 üzenetére
Nézd, lehet ő sem, tudta, nem tehet róla. Ez csak téged minősít, hogy vágod a dolgokat Ne bántsd ezért, csak jót akart. Az sem rossz végtére is, csak lassabb az tény.
-
Diskcopy
tag
válasz killerjohn #641 üzenetére
Statement expected, but expression of type 'TImage' found
Form1.FindComponent('image'+IntToStr(i)) as TImage).Picture.Bitmap := TBitmap.Create;
így van a kód, és a as Timage). a pontnál nyavajog, míg a másik verzióval amit írtam megy. Te biztos tudod, hogy miért. -
Diskcopy
tag
válasz killerjohn #645 üzenetére
7es delphi.
-
Diskcopy
tag
válasz killerjohn #659 üzenetére
Újabb lámer kérdés coming. Menetközben átvésem a Timage Bitmapját. viszont csak akkor frissít, ha ráklikkelek és akkor is úgymond ''Maszkosan'' tehát az előző is látszik alatta. Hogyan frissítsem rögtön, vagy mit állítsak be a TImage tulajdonságainál. Egyszerűbb nektek megmondani, minthogy megint órákat töltsek el vele, mint a FindComponenttel
Amúgy a FindComponenttel nagyon lerövidült az egész, és jól áttekinthető. Még1x köszi -
Diskcopy
tag
válasz killerjohn #661 üzenetére
Imagelistből rádobok a sima imagere egy másik képet.
Imagelist2.GetBitmap(c, Timage(Form1.FindComponent('Image'+IntToStr(c))).Picture.Bitmap);
Ha nagyon béna megoldás, akkor azért ne harapd le a fejem -
Diskcopy
tag
válasz killerjohn #665 üzenetére
Nyomtam neki de még mindíg, frissít mostmár, eddig a képek sem jelentek meg, de most megjelenik egyből, csak még mindíg alatta van a régi.. Imagelistben sincs Transparent, meg magában az imageben sincs a tulajdonságok között. Nem értem
-
Diskcopy
tag
Jó, akkor komplexen a probléma. van ugye a Timagelistem. ebben van 5 kép.(dobókocka képei), és dobok vele 5 darabot( 5 sima image). Ezt akarom kitenni. Kérlek írd meg nekem akkor pontosan, hogy hogy csináljam, mert amint látszik hülye vagyok.
eddig így volt:
for c:=1 to 5 do begin
dobott[c]:=random(5)+1;
Imagelist2.GetBitmap( dobott[c]-1, Timage(Form1.FindComponent('Image'+IntToStr(c))).Picture.Bitmap);
Timage(Form1.FindComponent('Image'+IntToStr(c))).Invalidate;
end;
Előre is kösz. -
Diskcopy
tag
válasz killerjohn #670 üzenetére
igen. annál mind a kettő clNone...
-
Diskcopy
tag
válasz killerjohn #672 üzenetére
nem akarok külön mellékelni hozzá képeket. Ha runtime töltöm be LoadFromFile, akkor mellékelnem kéne, nem? Transparentre akkor megoldás mi? mert már a falat kaparom
Adj nekem is, most szívtam el az utcsót
[Szerkesztve] -
Diskcopy
tag
válasz killerjohn #676 üzenetére
Kemence bejött MESTER
felvehetlek-e MSNre, vagy ICQ, nem akarom szétfloodolni a topicot hülyeségekkel, lehet még lesz kérdésem. Ha nem, persze megértem. Eddig is nagy THX neked. -
Diskcopy
tag
válasz killerjohn #678 üzenetére
Jó, hát akkor marad a remény, hogy ha újabb problem lesz, ittleszel a közelben, vagy más Mester . Mindenkinek köszönöm, aki eddig segített. Minden gond megoldódott. Ph! Rulez. Sorry a sok Offért.
[Szerkesztve] -
Diskcopy
tag
Hello, Problémám lenne a TlabeledEdit-el. Tegyük fel, hogy van 10 darabom belőle, és mindegyiknek nézem az OnClick metódusát, meg a editbox előtti szövegnek(EditLabel) is az OnClickjét. Namármost. Ehhez a 10 darabhoz, csak egy ilyet akarok megírni (legfeljebb 2-t, egyet a edit clicknek és egyet a szöveg clicknek)), és a többinek metódusként az object inspektorban az onclick eseményhez beállítani ezt az 1 darabot. Hogy mit csináljon: Amelyikre rákattintottak, legyen Disabled. Így leegyszerűsítve. Tehát ami kéne nekem, hogy milyen (Sender as micsoda).parent as akármi vagy hasonló módon lehetne ezt megoldani. Próbálkoztam, de mindíg invalid class typecastal kiszáll Előre is köszönöm!
[Szerkesztve] -
Diskcopy
tag
válasz Calogero #785 üzenetére
procedure TForm1.Button1Click(Sender: TObject);
var open :TOpenPictureDialog;
begin
try
open := TOpenPictureDialog.Create(self);
open.InitialDir := ExtractFilePath(Application.ExeName);
IF open.Execute THEN
image1.picture.loadfromfile(open.filename);
finally
open.Free;
end;
end;
Usesnál ugye hozzáadod az ExtDlgs -t és jó lesz. Üdv. -
Diskcopy
tag
válasz _Gudella #902 üzenetére
Hello!
a Form OnCreate részéhez ird be.
SetWindowLong( application.handle, GWL_EXSTYLE,
GetWindowLong( application.handle, GWL_EXSTYLE )
or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW );
ha azt is akarod, hogy a form se jelenjen meg, akkor még:
Application.ShowMainForm := FALSE;
ezt meg a project kódjába kell betenni az Application.Run sor elé. -
Diskcopy
tag
válasz _Gudella #905 üzenetére
az kicsit összetettebb dolog. Google: delphi systray icon.. sok példa..
kiragadva egy: Bővebben: link -
Diskcopy
tag
egy String : mailheader; meg egy integer (i) kell, aztán mondjuk..
for i:=0 to ListBox1.Items.Count-1 do
if Listbox1.Selected [ i ] then
mailheader:=mailheader+Listbox1.Items.Strings[ i ]+',';
ShellExecute(Handle,'open', PAnsiChar(
'mailto:'+mailheader),'','',SW_SHOWNORMAL);
ja meg a végére nem kell vessző (mivel mindegyik végére kap, tehát közben még figyeld a SelCount-ját a listboxnak, vagy csak vágd le a végéről a stringnek. Persze ez csak egy próba, rég delphiztem már. Prób ki, hátha jó
[Szerkesztve] -
Diskcopy
tag
válasz Attila1981 #911 üzenetére
Az a gond, hogy nem érteni pontosan mit akarsz, vagy csak túl reggel van.. de
‘xxx.workingdirectory+\mappa\fajl.kierjesztés’ itt a plusz jel nem jó helyen van.. amúgy meg aktuális könyvtárat lekérdezed így, var
dir : string;
begin
dir := GetCurrentDir;
end;
az már támpont. amúgy miért nem open/savedialoggal nyitod meg a filet.. kicsit részletesebben írd már le, mert én nem igazán értem mi a gond. -
Diskcopy
tag
válasz Attila1981 #913 üzenetére
Üdv!
Ha képeket kell betöltened, akkor miért nem használsz, mondjuk egy ImageListet, és akkor nem kéne kutatnod utánnuk, mert belefordulna az exe fájlba... Bővebben: link itt egy komplett példa rá, hogy kell gombbal használni, vagy csak simán. amúgy meg szerintem valahogy így kéne a shellexecute-t:
ShellExecute(Handle, 'open', PChar('notepad'), PChar('c:\test\readme.txt'), nil, SW_SHOW); Ha mondjuk notepaddel szeretnéd. Ha ez még mindíg nem az ami kell.
Amúgy meg openDialog-nál, savedialognál az Options részen ha lenyitod a + jellel, van egy ofNoChangeDir amit true-ra kell állítani.. Ha jól emlékszem ez akadályozza meg a könyvtár tényleges váltását.. Próbáld ki ezeket. -
Diskcopy
tag
válasz Attila1981 #915 üzenetére
Gondolom memoval csinálod magát a szerkesztést... Bővebben: link nézzd meg.
-
Diskcopy
tag
válasz Attila1981 #917 üzenetére
A dolog ott is ugyanaz...
begin
if RichEdit1.Modified then
if (Sender <> nil) and (Sender.HandleAllocated = True) and (SendMessage(Sender.Handle, EM_CANUNDO, 0, 0) = 1) then begin
SendMessage(ActiveControl.Handle, WM_UNDO, 0, 0);
statusbar1.text := 'undone';
end;
else statusbar1.text:='undo';
end; -
Diskcopy
tag
Hello! Ahogy a kódból kitűnik a start.phpnak kell elpostolni két dolgot. első: ilogin második: ipassword példa a postra:
var
data: TIdMultiPartFormDataStream;
begin
data := TIdMultiPartFormDataStream.Create;
try
{ Paraméterek megadása}
data.AddFormField('param1', 'érték1');
data.AddFormField('param2', 'érték2');
Memo1.Lines.Text := IdHTTP1.Post(
'http://webcím/script.php', data);
finally
data.Free;
A param1,param2 helyére te a ilogin-t meg az ipasswordot írod, az érték részére meg amit akarsz átadni értékként.
jah és persze uses IdMultipartFormData; is kell a unit uses részébe.
[Szerkesztve] -
Diskcopy
tag
Hello!
Alapból, ha az IdHttp-nek az allowcookies-e truera van téve, akkor egy cookiemanagerrel tárolni tudod a cookikat..(Indy miscben található a cookiemanager). És ha jól emlékszem, ez nem törlődik. tehát, ha az idhttpnél a cookiemanagernél beállitod, akkor az fogja kezelni a dolgot.. amúgy menet közben megnézheted pl a Memo1.Text:=IdCookieManager1.CookieCollection.Items[0].CookieText; dologgal a cookiet. Amúgy meg amit küld ha jól látom egy php session cookie. -
Diskcopy
tag
Én a helyedben fognék egy etherealt, vagy bármilyen http monitort, meg egy cookie editort és megnézném, hogy weben beloginolva pontosan mi történik.. minek küldi el, milyen cookiek jönnek, mi a célja...stb Meg az is segítene a 302-es hiba abszolut nem jó jel, nem jól adtad meg a webcímet, vagy a php nevét, vagy ilyesmi. megpróbálhatod azt is, hogy sima mem1.text:=idHTTP1.Get('www.akarmi.com/akarmi.php?param1=ertek (és jel) param2=ertek')-et csinalsz..
[Szerkesztve] -
Diskcopy
tag
válasz Tele von Zsinór #934 üzenetére
Hello!
Gondolom normál ciklussal mész végig...
for r := 1 to StringGrid1.RowCount - 1 do StringGrid1.Cells[1, r] := IntToStr(r);
A listboxban vannak adatok? nem törlöd valahol? Gondolom egyel kevesebbet adsz ott meg mint a gridnél. Kicsit írd le bővebben, vagy nagyobb részét a kódnak. Valahol valamit beleírsz,amit nem talál a másikban. Listboxnak mennyi az items.countja? nincs benne a végén egy üres elem? akár egy szóköz. ilyesmire gondolok.. -
Diskcopy
tag
válasz Tele von Zsinór #936 üzenetére
Lehet hülye kérdés, de a StringGrid Enableden van? akkor szokott ilyen lenni
ja amúgy meg miért ciklusban törölgeted az első elemet?
StringGrid1.RowCount:=ListBox1.items.Count+1;
for i:=0 to ListBox1.Items.Count-1 do begin
StringGrid1.Cells[0,i+1]:=IntToStr(i+1);
StringGrid1.Cells[1,i+1]:=ListBox1.Items;
end;
ListBox1.Items.Clear;ha nem gépeltem el...
[Szerkesztve] -
Diskcopy
tag
válasz Tele von Zsinór #938 üzenetére
persze, nem úgy értettem, mert a kódrészlet teljesen jó. Ezért gondoltam, hogy valahol a komponensek körül kéne, hogy legyen valami változtatás. Véletlenül elállítottál valamit, ilyesmi.. vagy még az adatfeltöltési résznél. A baj az, hogy a kép amit linkeltél, nekem nem megjeleníthető, ezért nem is tudtam szemügyre venni az errort, így nem is tudok pontosat mondani... Hátha valakinek megjelenik..
Izé.. amúgy próbáltad Debug-Stepping-elni, egy watch kíséretében, amivel figyelhetnéd meddig jut el a ciklus? Az elején vagy a végén akad ki?
[Szerkesztve] -
Diskcopy
tag
válasz Attila1978 #957 üzenetére
MediaPlayerre: Nem igazán értem, mi az, hogy nem tudod a fájlnevet megadni..
with MediaPlayer1 do
filename:='akarmi.avi';
open;
wait:=true;
play;
close;
end;
Ha külön formon van, akkor meg fókuszba teszed azt a formot és kész.
Ja és természetesen, akkor Form2.MediaPlayer1 vagy akármi a neve a másik formnak, unitként beusesolod az elsőba, előtte Form2.Show vagy ShowModal;
[Szerkesztve] -
Diskcopy
tag
válasz Metalwarrior #965 üzenetére
Hello!
Kérdés.. miért szenvedsz a dll-el?
{$R *.DFM}
{$R test.res} //A resource file
procedure TForm1.Button1Click(Sender: TObject);
var
buffer: array[0..255] of Char;
begin
Loadstring(hinstance, 1, @buffer, 255); //1 = elso string
label1.Caption := StrPas(buffer);
end; -
Diskcopy
tag
válasz Diskcopy #966 üzenetére
amúgy meg találtam googleon. nézd át.
Function LoadResStr(ident : word) : string;
var H : THandle;
PS : PChar;
begin
H := LoadLibrary('YYYY.DLL');
New(PS, 255);
LoadString(H, ident, PS, 255); // az ident hatarozza meg a stringet
LoadResStr := StrPas(PS);
FreeMem(PS);
end;
[Szerkesztve] -
Diskcopy
tag
válasz Metalwarrior #969 üzenetére
figy. így nézzen ki az RC fájlod:
STRINGTABLE
{
1000, ''Elso''
1001, ''Masodik''
1002, ''Harmadik''
}
Ezt ugye BRCC32 -vel lefordítod.. BRCC32 akarmi.RC lesz belőle egy RES fájlod. Delphinél megcsinálod a DLL-t, file new, semmi egyéb nem kell bele, mint a {$R Akarmi.RES} ha ez megvan, lefordítod.. És most jön a lényeg.. fontos, hogy lássa a dll-t a programod, ha nem jó helyen van, akkor nem fogja...
beolvastatod:
procedure TForm1.Button1Click(Sender: TObject);
var H : THandle;
buffer: array[0..255] of Char;
begin
H := LoadLibrary('adatlib.dll');
if h <> 0 then
begin
LoadString(H, 1001, Buffer, 255); // Elsot
label1.Caption := StrPas(Buffer);
end
else
begin
ShowMessage('DLL betöltés sikertelen!');
end;
end;
Ha a dll betöltés sikertelent irja ki, akkor nem látja a DLL-t. Hivatkozz rá próbából útvonallal. pl másold be a C:\ alá és akkor a LoadLibrarynál c:\adatlib.dll
Ennyi. Most csináltam végig, kipróbáltam működik. Sok sikert.
[Szerkesztve] -
Diskcopy
tag
válasz Metalwarrior #971 üzenetére
Sima szövegszerkesztőbe vésd bele amit a legelején irtam mentsd el valamilyen .RC néven aztán a BIN könyvtárban lévő BRCC32-vel csinálsz belőle RES-t. BRCC32 akarmi.rc bemásolod a project könyvtáradba, aztán a dll-t meg megcsinálod File- new- other- Dll wizarddal. annyit kell belerakni, hogy {$R akarmi.res}, de már leírtam. úgy működik, ha végigcsinálod lépésről lépésre.
-
Diskcopy
tag
Szia!
A megoldás igen egyszerű.
Start menü- futtatás- Regedit
Megkeresed a HKEY_CURRENT_USER\Software\Borland\
Delphi\4.0\Editor\Options\ részt. Felveszel egy új DWORD értéket ami a következő legyen. NoCtrlAltKeys és az értéke 1 legyen. Előtte persze Delphi becsuk. Regedit bezár, és már mennek is az ALTGr-es gombok. -
Diskcopy
tag
válasz Drótszamár #977 üzenetére
Ez igaz persze, csak minek bajlódjon vele, amikor egy kis reg túrás és már nyomhatja simán is. Ez ilyen Delphi/Kylix betegség sajnos... de ez az egyik ellenszer. Ascii tábla.
-
Diskcopy
tag
Új hozzászólás Aktív témák
- Call of Duty: Modern Warfare III (2023)
- VR topik (Oculus Rift, stb.)
- KERÉKPÁR / BRINGA / ALKATRÉSZ beárazás
- Poco X6 Pro - ötös alá
- Kerékpárosok, bringások ide!
- Szevam: Érzelmi magabiztosság/biztonság - miért megyünk sokan külföldre valójában?
- Alkalmazásbemutató: Keep
- Gaming notebook topik
- Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
- Debrecen és környéke adok-veszek-beszélgetek
- További aktív témák...