- Milyen videókártyát?
- Mégis mehetnek Kínába az áprilisban korlátozás alá helyezett AI gyorsítók
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Házi erősítő építése
- Milyen billentyűzetet vegyek?
- Milyen monitort vegyek?
- OLED monitor topik
- MILC felhasználók szakmai topikja
- Bambu Lab 3D nyomtatók
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
Új hozzászólás Aktív témák
-
lao ce
aktív tag
ha az eredmeny megjelenik az elso formon is vizualis formaban (mondjuk label-en) akkor valaszthatod azt is, hogy kozvetlenul elered.
miutan csendpenge tanacsa szerint a masodik form forrasanak a uses reszebe beirod az elso unitodat,
{
implementation
uses
untElso;
}
a masodik unitbol el tudod erni az elso unit formjan levo objektumok erteket.
tehat untElso.frmElso.lblEredmeny.Caption
es azt hogy untElso el lehet hagyni ha akarod.
csak azert irom, mert sokszor csak ki kell irni valamit a kepernyore az ilyen helyzetekben es szerintem ilyenkor felesleges valtozot hasznalni a 'masodik formokon', aztan hatha ez a helyzet nalad is veletlenul. -
CsendPenge
őstag
Valamelyik formnál, vagy a form unit-ban csinálj egy globális változót, plussz uses unit
Ez utóbbi nélkül nem fog menni.
P.S.: véletlenül se a gombnál deklaráld a változód, mert akkor a gomb eseményére nézve lokális lesz, vagyis addig létezik a változó, amíg az esemény ''létezik''.
P.S.2: ha nem voltam eléggé értehtő, szólj és kifejtem magamat -
tusi74
őstag
Az előbbi problémát megoldottam.
Most egy újabb láma kérdés:
Hogyan lehet az megcsinálni, hogy egy formon egy gombnyomásra kiszámolok valamit és az eredményt egy másik formon fel szeretném használni.
Biztos nagyon egyszerű, de nekem mégsem megy.
[Szerkesztve] -
lao ce
aktív tag
-
tusi74
őstag
Tegyük fel, hogy van egy query-m, aminek updateObjectje egy UpdateSQL.
Hogyan lehet átváltani Update módba? vagy delete módba.
Mert az megy, hogy hogy beírom, hogy query5.insert,
és akkor meghívódik az, amit az UpdateSQL insert propertyjébe írtam.
Ugyanígy megírtam a modify-t, és a Delete-t, de hogy lehet őket akítvvá tenni?
Mert olyan nincs, hogy Query5.Update, Query5.Modify?
Elég sürgős lenne. -
Divi
aktív tag
Kérdés van:
Egy nagyon egyszerű kis adatbázist szeretnék létrehozni, de 2 géépel!
A kezelő szoftver az egyszerűség kedvéért a BDE lenne.
Az egyik sz.gép aliassal lenne ráirányítva a másik gép vinyóján lévő adatbázis fájlra
a másik gépen meg értelemszerűen lenne a adatbázis fájlja.
A kérdések:
1.Lehet alias-olni hálózati meghajtóra?
2. bírni fogja a BDE ezt a adatbázis elcseszése nélkül? -
ToM2oo4
tag
Még 1 kérdés: hogyan lehet delphi programból leállítani a windows-t? illetve nem csak leállítani, hanem érdekelne még a készenléti állapot és a hibernálás is. meg lehet oldani?
-
Divi
aktív tag
Üdvözletem!
A kérdésem a következő:
Szeretném egy Listboxba betenni a feltelepített és használható betűtipusok neveit!
Emlékeim szerint ezt elég gyorsan és röviden el lehet intézni, csak sajnos nem emlékszek, hogy miként!
betutipusok.Items:= ???
Van ilyen egyszerű megoldás? -
KovacsUr
addikt
Ehhez keyboard hookot kell csinálnod (MSDN::SetWindowsHookEx() -> Bővebben: link. Vannak buktatói, de másoknak is sikerült már megoldani.
Mihez kellene? Más megoldás nem jöhet szóba? -
ToM2oo4
tag
hi!
Az lenne a kérdésem, hogy hogyan lehet figyelni a billentyűleütéseket akkor is, ha az alkalmazásom nem aktív? -
steveetm
őstag
Hali!
assign=assignfile //mod
Szóval az lenne a gond, hogy egy stringet kéne kiküldenem lpt1-re, ahogy van.
Assign(f,'lpt1');
rewrite(f);
write(s,f);
close(f);
Ezzel csak annyi a gond jelen pillanatban hogy nem történik semmi. Viszont ha azt csinálom hogy
Assign(f,'c:\lp1.txt');
rewrite(f);
write(s,f);
close(f);
Majd parancssorban copy c:\lp1.txt lpt1 akkor megcsinálja faxán.
Ezen felbuzdulva csináltam egy iet:
Assign(f,'c:\lp1.txt');
rewrite(f);
write(s,f);
copyfile('c:\lp1.txt','lpt1',b);
close(f);
És szintén nem történik semmi.
Ha vki vágja hogy mér szarozik a delphi akkor árulja már el lécci.
hogy mér baszkurálom közvetlenül az lpt-t, mérnem win driver? mer nyomtatót kell programozni, driver nincs.
Üdv.: steveetm
[Szerkesztve]
[Szerkesztve] -
btotyi
tag
Persze, hogy van de nem muszály ugyanakkorának lenni mert be tudsz állítani GDI leképezéseket amik automatikusan transzformálják a koordinátákat. Átmásolni sem kell hanem ugyanazt a rajzoló rutint lefuttatot a printer canvas-ra is.
De egyszerűbb ha használsz egy kész printpreview komponenst mert azook általában mindent elintéznek. -
Divi
aktív tag
Hmm nagyon baráti
Más kérdés:
Arra van lehetőség, hogy először lerajzolom egy ''külső'' canvasra azt amit rajolni akarok, és pont akkor aPIXELBEN mint amekkora a nyomtató canvasa 0.1mmben?
ergo fog menni az átadás? Vagy netán a pixelenkénti átmásolás?
Ergo egy ''nyomtatási kép'' funkciót szeretnék megvalósítani... -
Divi
aktív tag
A probléma látszólag megoldódott. De mégse hajlandó Ténylegesen Nyomtatni.
A kód hibátlanul lefut.
Ám a nyomtató azon kívül, hogy átfuttatná magán a papírt egy köpést se nyomtat.
Vajh mitől lehet ez?
A kód:
Var szelesseg,magassag: Integer;
dpix, dpiy:Integer;
Begin
printer.Copies:=1;
printer.Orientation:=poPortrait;
printer.BeginDoc;
dpix:=GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX);
dpiy:= GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY);
szelesseg:=trunc((printer.PageWidth /dpix)*254); << megadja, hányszor 0,1 mm fér ki a lapra
magassag:=trunc((printer.PageHeight /dpiy)*254);
// showmessage('szélesség: '+inttostr(sz)); < ellenőrzés
// showmessage('magasság: '+inttostr(m));
SetMapMode(printer.Canvas.Handle,MM_LOMETRIC);
printer.canvas.pen.width:=15;
printer.Canvas.Pen.Color:=clBlack;
printer.canvas.Moveto(0,0);
printer.canvas.LineTo(sz,m);
//printer.Abort;
printer.EndDoc;
end;
ötletze valakinek?
Egyébént így BÁRMILYEN nyomtatón ugyanazt az eredményt kapom?
[Szerkesztve] -
Divi
aktív tag
Üdvözlök minenkit!
Azt szeretném, megtudni, hogy miként tudom a Delphiből kisajtolni, hogy hányszor 0,1mm re tud a nyomtató fizikilag nyomtatni!
Például szeretnék egy 1 mm vastag vonalat húzni a bal felső sarokból a jobb alsó sarkba.
...
Var szel,mag:Integer;
Begin
szel:= ???;
mag := ???;
printer.BeginDoc;
SetMapMode(printer.Canvas.Handle,MM_LOMETRIC);
printer.canvas.pen.width:=1;
printer.canvas.Moveto[0,0];
printer.canvas.lineto[szel,mag];
printer.EndDoc;
...
A pageWidth PageHeight visszaadja, hogy mekkora a nyomtatható terület pixelben. Ami jó is volna de ahhoz, hogy mm-ben tudjak pozícinálni kell a(z aktuális) nyomtató aktuálisan beállított DPIje. Na azt, hogy tudom kideríteni?
Válaszaitokat előre is köszönöm! -
lao ce
aktív tag
egy szoval folytatva, hogy nem minden komponens tokeletes a kapott bitmap-ben.
ahogy melyebbre asom magam rajottem hogy vannak cegek akik ebbol a problemabol elnek es erre kinalnak megoldasokat.
en is joba kezdek bele.
talaltam egy helyet ami forrast mutat:
http://www.fengyuan.com/article/wmprint.html
de ez mar tul magasnan van irva nekem, megmondom oszinten eltartana ezer evig mire atirnam (merthogy a CPaintHook is kell ugyi)
[Szerkesztve] -
lao ce
aktív tag
ezer koszonet a segitsegedert! kiprobaltam, szuperul alakul, valami bitmap bizony van a create es a show kozott amit visszaad.
lehet hogy kicsit belemaszok, mert a kapott kep eleg hmm... sematikus az onshow elott, se button se combo csak hatterszin, edit box meg mondjuk shape. -
-
lao ce
aktív tag
igaz, nem statikus, de nekem nem kell a frissites resze, csak egy 'capture' egy bitmap-be, de mielott(!) a kepernyore kirajzolodna barmi is.
a wm_paint / onpaint is OK, onpaint szimpatikus, de az onshow utan jon, az onshownal mar megjelenik a form, szoval ez tul keso.
raadasul meg mindig sotet folt elottem hogy lehet-e a formot nem a kepernyore rajzoltatni hanem bitmapbe.
ok, gondolom valamit kavarni kellene a memory bitmap-ekkel, es ez rendben van, elvileg tudom mirol van szo. de ha mondjuk probabol csinalok egy assgn-t egy memory bitmap canvasra... inkabb ideirom:
Bitmap.Canvas.Assign( Form1.Canvas )
akkor jon ez:
cannot assign a TControlCanvas to a TBitmapCanvas
[Szerkesztve] -
zenit
tag
A Form az nem egy statikus kép, hogy egyszer kirajzolódik a Show hatására, és aztán úgy marad.
A tényleges rajzolás általában a Windows WM_PAINT esemény hatására történik, ami mindannyiszor meghívódik, ha pl. megváltozik az ablak tartalma (Invalidate) - vagy egyszerűen csak egy másik ablakot elhúzol felette! stb...
Delphi oldalon ezt a mechanizmust az OnPaint eseményben tudod elcsípni, ami mindannyiszor meghívódik, ha a formot újra kell rajzolni. Itt rajzolhatsz pl. hátteret a Formodnak. Használd a TForm.Canvas-t. -
lao ce
aktív tag
lenne nekem is egy kerdesem.
megfordult a fejemben eleg erosen, hogy szeretnek nehany kulonleges form megjelenulest csinalni - arra gondolok ahogy elobukkan egy uj form a kepernyon.
egy bitmapet mar lehet csurni-csavarni, szoval ugy gondolom, hogy az lenne a modja a dolognak, hogy
- megrajzolni a formot egy bitmapre (vagy megtalalni hogy a memoriaban hova rajzolodik es arra egy 'capture' szeru dolog?)
- aztan ez a kepet kicsavarni a kepernyore csilivili modon,
- megjeleniteni (folerajzolni) az igazi formot az igazi objektumokkal hogy ugyi mukodhessen.
- letorolni a bitmapet a form mogul.
azt hiszem kellene valami a form create es a form show kozott. mondhatna az ember hogy a show elott a form grafikailag nem letezik, de akkor a doublebuffer hogy mukodik? hisz az azzal kerkedik hogy eloszor megrajzolja a formot aztan egy lepesben megjeleniti! -
lao ce
aktív tag
hat, talan magat a komponenst is bele lehet gyomoszolni, en mindenesetre custom draw-t hasznalnek es magam rajzolnam a progress bart a cellaba vagy sorba (attol fugg ugye hogy mit hasznalsz).
peldaul ha listview-nal maradunk, akkor a CustomDrawSubItem eventben lehet sajatokat alkotni.
nagyjabol arrol van szo hogy:
Item.DisplayRect(drBounds) a negyszogedet adja amit ippen rajzolsz;
Sender.Canvas.Brush.Color es Style amivel beallitod a szint es stilust;
FrameRect es FillRect ami tenyleg kirajzolja a rectangle-t;
aztan ezt akkorara rajzolod amit a progress-ed megkovetel. de teljesen ki tudod elni magad, azt teszel bele amit akarsz
csak elkezdeni nehez, aztan eleg elvezetes rajzolgatni. -
_AnTi_
tag
Üdv mindenkinek!
Engedelmetekkel használnám én is ezt a topicot...
A következő lenne a kérdésem:
Hogyan tudok egy ProgressBar komponenst beletenni egy valamilyen listakezelőbe (StringGrid/ListView/ListBox vagy valami hasonló)?
Előre is köszönöm! -
Fko
tag
Akinek kérdése van, jöjjön el az induló Source Land-re és tegye fel ott is:
Bővebben: link -
zenit
tag
válasz
#57764352 #111 üzenetére
LNKO és relatív prím algoritmus:
pl. Bővebben: link
vagy: Bővebben: link
[Szerkesztve] -
b14
senior tag
válasz
#57764352 #111 üzenetére
HIHI
Az osztoit igy lehet meghatarozni egy szamnak (pascal megoldas, c-ben is kuldhetem, ha kell):
{osztoi.pas}
uses crt;
var a, b, szam, r , i, h,g : longint;
aszamai, bszamai: array [1..200] of longint;
begin
writeln('Kerem az ''A'' erteket');
readln(a);
writeln('Kerem a ''B'' erteket');
readln(b);
clrscr;
writeln('A szamai: ');
writeln;
for szam := a downto 1 do
begin
clrscr;
r:=0;
writeln('Most ',szam);
for i:=szam downto 1 do
begin
if szam mod i = 0 then
begin
writeln(szam div i);
inc(r);
aszamai[r]:=szam div i;
end;
end;
writeln;
writeln;
h:=r;
writeln('Ez osszesen ',r,' szam volt');
readkey;
end;
clrscr;
writeln('B szamai: ');
writeln;
for szam := b downto 1 do
begin
clrscr;
r:=0;
writeln('Most ',szam);
for i:=szam downto 1 do
begin
if szam mod i = 0 then
begin
writeln(szam div i);
inc(r);
bszamai[r]:=szam div i;
end;
end;
writeln;
writeln;
g:=r;
writeln('Ez osszesen ',r,' szam volt');
readkey;
writeln('Kozos osztoik: ');
for i:=1 to h do for r:=1 to g do if r = i then writeln(i);
end.
Ez egy eleg hosszu megoldas, igazabol nagyon is rogtonzott, lehet, hogy van benne hiba.
Legnagyobb kozos osztot ugyan ezen az alapon, csak egy kicsit kell rajta szerkeszteni, a relatív prímek csak egy kicsit belenyulni a legnagyobb kozos oszto progi
De juteszembe: if r = 1 then writeln('RELATÍV PRÍMEK!');
Ha kell meg tudom csinalni a tobbit is!
[Szerkesztve] -
#57764352
törölt tag
UP
-
#57764352
törölt tag
Sziasztok!
Lenne egy nagy kérdésem.
Hogy lehet meghatározni a következőket: -legkissebb közös többszörös
- legnagyobb közös osztó
-relatív prímek!
Segítsetek! -
Divi
aktív tag
Az ilyen segítőkész emberek komolyan felbecsülhetetlenek
Köszönöm a válaszaidat.
(balszerencsédre) igérem jelentkezni fogok még
Egyelőre találtam egy korrektnek tűnő dokumenumot ami kitárgyalja a Delphi <-> IB kapcsolatokat. Bővebben: link Remélem érthető lesz, ha nem nem azt észre fogod venni
[Szerkesztve] -
Hani
aktív tag
Tiszteletem.
No, ha mar igy is megvan a topic, hasznalnam...
Nagy problemam: EditBoxokba ListBoxbol drag&droppal tennem a cuccokat, es meg szeretnem akadalyozni, hogy normalisan szoveget irhassak be.
Erre - gondoltam en - jo lesz, ha siman OnKeyDown(/Press/Up)-ra csinalok egy
With Sender As TEdit Do
Text:=´´;
eventkezelest. De nem. Mindenkepp berakja a Key-t is, amit az eventtol kap.
Nincs valami, ami kiveszi a Key-t, pl. vmi fFlush vagy hasonlo?
(Jo, persze megcsinalom OnChange-re Listaban-Van-E-Az-Uj-Szoveg - ellenorzessel, de azert erdekelne.) -
btotyi
tag
Az alkalmazások valóban lehetnek kliensek de kell egy közvetítő réteg ami az alkalmazás (üzleti logika) kéréseit továbbítja az adatbáziskezelő szerver felé, illetve a válaszokat továbbítja az alkalmazás felé. Az FB-nél ez a ''kliens'' egy dll. Ilyen szempontból az ISQL is egy alkalmazás ami a felhasználó által beírt sql parancsokat továbbpasszolja az adatbázis kliensnek (fbclient.dll) és a szerver válaszait pedig kiírja a képernyőre.
Új hozzászólás Aktív témák
Hirdetés
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 16/32/64GB RAM RTX 4060Ti 8GB GAMER PC termékbeszámítással
- Xiaomi Redmi Note 13 Pro 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! Samsung Galaxy A20e/Samsung Galaxy A40/Samsung Galaxy A04s/Samsung Galaxy A03s
- BESZÁMÍTÁS! Gigabyte Z390 i7 9700 16GB DDR4 512GB SSD GTX 1070 8GB Rampage SHIVA ADATA 600W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest