Új hozzászólás Aktív témák
-
b14
senior tag
hi
tisztelt vénahűtős
Kerlek vedd eszre, hogy egy sorral arrabb raktam a kezem a gepelesnel es az volt a problema a 'venahhutessel'
Egyebkent nem tudok meg ugy programozni delphiben hogy runtime visible legen egy line, mert akkor ki sem irtam volna a problamam ezert kerek segitseget, de a sorcsapos hulyeseg egyaltalan nem erdekel, sosem voltam alkoholista, es remelem nem is leszek, es ha a 'rajzolasrol' van szo akkor mint a problememmal kapcsolatos hozzaszolasomnal se konkretan rajzolasrol volt szo, hanem vektor graphics-rol, a problema meg mindig fenn all szamomra, remelem, hogy segitseg erkezik ra.
Hello, es ha durvan fogalmaztam, sertegetesnek tunne, akkor kerlek ne vegg annak.
Bye.
--
b14
exit''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax
-
b14
senior tag
HI
amugy nem veszem sertesnek a hozzaszolasod, mert te nem tudsz engem megserteni. -ezt nem ertettem teljesen, de a programot nezve nem is szamit.
Probalkoztam a tobbi forumon ennek keresesevel, de ezzel a tobbiek nme nagyon foglalkoztak (lealabbis en nem talaltam megoldast).
azert segiteni megprobalok, mert a szocsatabol nem lesz amoba -ritka dolog, de ez ertelmes hozzaszolasod volt.
Egyebkent az egeszet megicsinaltam vonalak nelkul, de ugy megis ''szebb'' lenne az egesz. Ha gondolod elkuldom, vagy valami.
Az egesz delphi rendszerhez annyira nem ertek, hogy ebben a temean nem is nagyon tudok ''erofesziteseket'' tenni.
Remelem valaki tud segiteni''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax
-
b14
senior tag
HI
Csak maert mar regen erdekel: Mite jelent a neved? Vagy semmi jelentese nincs?
Es az alairasodnak van valami ertelme, legalabbis en ugy gondolom.
''ritka dolog, de ez ertelmes hozzaszolasod volt.'
koszonom az ertekelesedet, majd dicsekszek vele tarsasagban.' Ezen nevetni kene?
Egyebkent a te nem tudsz megserteni- bol a nem tudsz volt nekem ertekes.
'Az egesz delphi rendszerhez annyira nem ertek, hogy ebben a temean nem is nagyon tudok ''erofesziteseket'' tenni.'
marpedig azt neked kell megtenni, annal nagyobbat mennel jobban nem ertesz hozza. - THX a batoritast, ha annak kell venni.
'Egyebkent az egeszet megicsinaltam vonalak nelkul'
ha megirtal egy komplett amobaprogramot akkor rendkivul erdekes hogy nem birod begepelni azt a peldat amit irtak neked es ami egy vacak vonalat huz a vacak formra.
Az egeszet nem nagy dolog megcsinalni, csak szeretem latni, hogy mit csinalok''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax
-
Bobojsza
aktív tag
na ertelek... de itt mar gigarol van szo.
a helyfogalalast block irassal csinaltam, igy kb 4 perc
byte-onlkent nem birtam kivarni de kb. 1.5 ora lenne, ahogy szamoltam. Az sok, ha hozzaveszem a feldolgozasi idot is, mielott kiirom, az nagyon sok! Valami olyan modszer kene, hogy fel oran belul maradjak!
Olyan cimzesre vagy tudomisen mire gondolok, hogy blokkent tudjam irni!Amúgy szinte minden fizetős programnak van freeware alternatívája
-
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
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]nicht kompot
-
Notes
senior tag
Igazad van! Itt a megoldás! Illetve itt van az, hogy miért nincs megoldás... Ez egy DBLookUPComboBox (Utálom ezeket a hosszú neveket...) És annak már tényleg nincs ItemIndex tulajdonsága. Akkor marad a jó öreg ComboBox, meg egy kis kódolás a feltöltésére.
Romanes eunt domus!
-
Notes
senior tag
Milyen ID-ket?
De ha már itt tartunk ez az egész Form arról szól, hogy egy táblából feltöltök combobox-kat (mezőnként egy box), aztán egy lekérdez megnyomásásval a user csak azokat a rekordokat kapja vissza egy reportban, amiknek a tartalma megegyezik a comboboxok tartalmáva. Persze a dolog nem ilyen egyszerű, mert egy dátumtól-ig szűrés mindenképpen van a többi szűrés viszont csak akkor, ha a combobox előtti checkbox-ot kipipálja a felhasználó. Na képzelheted azt az Acces ágat az OnFilterRecord eseménykezelőben... mire azt összehozom... Azt hiszem erre mondják, hogy tipikus SQL megoldást kívánó dolog, de azt nem vágom. Valami ötlet?Romanes eunt domus!
-
tusi74
őstag
Én nem ezer éve csinálom, csak 2 hónapja.
Úgy kezdtem Delphi+Oracle-s diplomamunkába, hogy egyiket sem tanultam soha.
Ahhoz képest 2 hónap alatt, főleg a segítségeddel sokat fejlődtem. Ezért sok-sok köszönet.
Ezért lehetséges az, hogy még a mondatot sem értem.
Mi az, hogy ''gombnyomások kódjaira''? Láma vagyok én ám nagyon. .
A franc gondolta, hogy mert imádtam az SQL-t, így belesétáltam a programozás rejtelmeibe. -
tusi74
őstag
BDE az elérés. A szakdolis tanár szerint ez a legjobb, és ezt várja el.
Mindenhol azt olvasom, csak ezt ne használja senki.
Én az elején úgy gondoltam, hogy a hangsúly a diplomunkámnak az Oracle rejtelmei legyen, és majd összedobok valamilyen kezelőfelületet Delhiben DBEdit, DBGrid, stb. Ez szépen le is van írva egy könyvben nyáron ki is próbáltam, értettem is.
Közölte a szakdolis tanár, hogy ez nem egyetemi szintű így ezeknek a használatát nem engedi, csak sima edit, striggrid stb.
Igen ám, de mivel gyakorlatlan vagyok programozásban, annyi idő elmegy azzal, hogy a programot írom, hogy pont az Oracle specialitásokra nem fog időm maradni, még az Oracle-s könyvet ki sem nyitottam. Ezt nagyon sajnálom.
Most pl. néhány hozzászólással előrébb írtam, hogy nem töröl rekordot. Azóta sem, és a szakdolis tanárom sem tudja miért.
Igen ám, de holnapután assembly ZH, na az is egy szép műsor lesz, úgyhogy szakdoli félretéve. Abból is volt 2 gyakorlat, aztán hadd szóljon. Ez az ELTE lev. info tanári képzés. Delphi-t is is önszorgalomból nézegettem a nyáron, így mondjuk az eseménykezelés megy. Január 5 a beadási határidő, és mág a dolgozatból egy sor sincs megírva.
Csütörtökön megyek megint a szakdolis tanárhoz, kíváncsi vagyok, hogy mit mond. Múltkor mondom neki, hogy a frissítéshez kell a DbiSaveChanges(table4.Handel), mert olvastam prog.hu-n (mert persze addig az sem ment), aztán láttam rajta, hogy azt sem tudja, hogy eszik-e vagy isszák. Csak az a poén, hogy én sem, mert könyvben nem találtam meg. Csak a védésnél meg ne kérdezzék, mit jelent. -
Tele von Zsinór
őstag
Igaz . Naszóval: azt akarom, ha a progit liekicsinyíti a user, akkor a Shell_NotifyIcon-nal odarakom system tray-be, és ugyanakkor eltüntetem a taskbarból. Az én progim lenne a célpont.
Mégvalami. Olyat már találtam, hogy futásidőben ToolWindow-ra állítja az ablakot, de ez nem vált be . -
tusi74
őstag
Na voltam a szakdolis tanárnál.
A megoldás a törlésre:
Beírod egy sima query-be, nem kell semmiféle UpdateSQL, hogy
delete from stb....
Amikor meghívod, akkor nem kell odaírni, hogy
query.Open, csak egyszerűen Query.ExecSQL. Ezt szerintem Te is így írtad még régebben, csak én folyamatosan Openeztem a query-t, aztán csodálkoztam, hogy nem megy.
Most szerencsére megy. -
<Adamsky>
nagyúr
Igazából nem jutottam sokra. A lényeg valami ilyesmi lenne:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
const szoveg = '11,10,09,08';
begin
i := 0;
repeat
Edit1.text := copy(szoveg, 1+i*3, 2);
inc(i);
until i>3;
end;
Namármost a formon van 4db Editbox, és ez az előbbi kódrész az 1-esbe szép sorba beleírja a 11, 10, 09, 08 számokat. Ez -- mondanom sem kell -- így nem jó. Az ''i'' értékétől függően kellene az egyes számokat az ''i+1''-ik Editbox-ba beírni.
Lehet az Editbox-okat tömbe szervezni? pl:
EDoboz: array [1..4] of TEdit;
[Szerkesztve] -
Alan
aktív tag
lao ce, rég ''láttalak''
Bocsáss meg, hogy belefirkálok a programodba, de szerintem kicsit szebben így nézne ki:
const
szoveg = '11,10,09,08';
var
szamlalo : integer;
szamlalo := 1;
with Form1 do
for i := 0 to ComponentCount-1 do
begin
if Components i is TEdit
then
begin
(Components i as TEdit).Text := Copy(szoveg, szamlalo, 2);
szamlalo := szamlalo + 3;
end
end;
Ebből most már csak az hiányzik, hogy kizárólag a mi kinevezett szerkesztőmezőinkbe töltsön adatot, és így más mezőket is fel lehessen tenni az ablakra.
[Szerkesztve] -
Alan
aktív tag
Hát, több projektben is voltam, az tény, de az ''eltűnés'' igazi oka, hogy eléggé magam alá kerültem, meg a fórum sem vonzott annyira. Most is fejlesztek egyébként, meg a kedvem is kicsit feljavult---bár a helyzet semmit sem változott, de nem szabad attól függeni.
Nemrég teszteltem egyébként a Delphi 2005-öt, nagyon jó kis ware, különösen tetszenek a nyelvi újítások, a refactoring funkciók meg a SyncEdit, de lassúságban sajnos újabb, már-már hihetetlen csúcsot állít fel. Persze csak önmagához képest, mert ebben azért a VS.NET még mindig ''verhetetlen''
Ciao, majd még befigyelek egyszer-kétszer
[Szerkesztve] -
CsendPenge
őstag
-
Hani
aktív tag
Helló!
Köszi a segítséget, meg a fáradozást.
Ami igazán érdekelne, hogy miért megy, és miért nem megy ?
Az ini-hez: Sajnos nem elég a 64K - már most 188K, és valamennyivel lesz ez még több is. 98 alatt egy gépen próbálták, ahol most nem okés, de régebben az volt. Xp, 2K, NT4.0 alatt próbáltam egy rakás gépen, minden szép és jó
Az & jelhez: Ugyanazon a gépen néha megy, néha nem.
Hát, ez az, ami elszomorít. -
tusi74
őstag
Köszi,
'' 'startup plus' kenyelmi szolgaltatas rogton az elso rekordot allitja be a kepernyon', ez az idezetem copyrightos ''
Ne félj, nem idézem, sehol, főleg nem a védésnél, mert arra nagyon adok, hogy
amiről csak 1 mondatot tudok mondani, vagy mástól hallottam, azt nem mondom, mert egy járulékos kérdésre már nem tudok válaszolni, és jól beégek.
Igyekszem a védésnél majd azokról a részekről beszéni, amit én találtam ki.
Viszont egy orosz lapon találtam egy kész algoritmust, hogy lehet a StrinGrid mezőiből ideiglenesen Combobox-ot csinálni. Ezt egy az egyben beillesztettem,
csak nem 1 oszlopra, hanem 4-re csináltam. Na ezt még azért át kell tanulmányozni, mert néhány részről nem pontosan tudom, mit csinál, és ha belekérdeznek, marha cikis lesz. Magamtól viszont nem említem meg.
Próbálkoztam a debug-gal, de képtelen vagyok megtanulni.
PL. Tegyük fel, hogy van egy while ciklusom, hogy
i:=0;
while...... do
begin
...
i+:=i+1;
end;
és az i-t szeretném figyelni. Akkor hova tegyem a breakpointot? Aztán mit csináljak, hogy lássam az i változását?
A Computerbooks-os Programoozzunk Delphi 7 rendszerben c. könyvet használom, meg pár ilyen algoritmusos könyvet, de ez sehol sincs leírva.
Van egy ilyen államvizsga tétel is, de gyakorlatban sosem csináltuk az egyetemen, hiába kértük az oktatót. Folyton azt mondta, nem lényeges, nekünk
sosem lesz rá szükségünk. (egyetemi képzés) -
Tangerine
senior tag
Ezt találtam a neten:
Function cos(X: Extended): Extended;
The value x must be in radians. To convert from degrees to radians use DegToRad. For example, cos(60 degrees) in Delphi would be cos(DegToRad(60)) = 0.5.
A lényeg: cos(60 degrees) in Delphi would be cos(DegToRad(60))
A te példád helyesen:
B: Real;
A: Real;
C: Real;
bla bla bla;
A:=StrToFloat(Edit1.Text);
B:=Cos(degtorad(A));
C:=B;
Azaz a C-t ki ishagyhatod.Vacillálni, vagy nem vacillálni, ez itt a kérdés, vagy mégse?
-
tusi74
őstag
Eddig én is eljutottam, csak nem jövök, rá, melyik kódot hová kell
copy-paste-zni, hogy működjön.
Eddig, ha így szereztem kódot, akkor egyértelmű volt, hogy melyik eseményhez
melyik eljárást kell írni. De most pl. Van külön type stb, és nem tudom beilleszteni
az én programomba.
type
TrecPrintStrGrid = Record
PrCanvas : TCanvas; //Printer or PaintBox Canvas
sGrid: TStringGrid; //StringGrid containing data
sTitle: String; //Title of document
bPrintFlag : Boolean; //Print if True
ptXYOffset : TPoint; //Left and Top margins
ftTitleFont : TFont; //Font for Title
ftHeadingFont : TFont; //Font for Heading row
ftDataFont : TFont; //Font for Data
bBorderFlag : Boolean //Print border if True
end;
var
recPrintStrGrid : TrecPrintStrGrid;
procedure PrintGrid(ArecPrintStrGrid : TrecPrintStrGrid);
var
iX1, iX2, iY1, iY2, iY3, iTmp , iLoop, iWd : Integer;
trTextRect : TRect;
begin
iWd := 0;
with ArecPrintStrGrid, PrCanvas do
begin
//Calculate Total Width of String Grid
Font := ftHeadingFont;
for iLoop := 0 to sGrid.ColCount-1 do
begin
if (TextWidth(sGrid.Cells[iLoop, 0])+5) < sGrid.ColWidths[iLoop] then
iWd := iWd + sGrid.ColWidths[iLoop]
else
iWd := iWd + TextWidth(sGrid.Cells[iLoop, 0])+5;
end; // for sGrid.ColCount
//Initialize Printer
if bPrintFlag then
begin
Printer.Title := sTitle;
Printer.BeginDoc;
end;
//Output Title
Pen.Color := clBlack;
Font := ftTitleFont;
TextOut(((iWd Div 2) - (TextWidth(sTitle) Div 2)), ptXYOffset.Y, sTitle);
//Output Column Data
for iLoop := 0 to sGrid.ColCount-1 do
begin
Font := ftHeadingFont;
iX1 := ptXYOffset.X;
for iTmp := 0 to (iLoop-1) do
if (TextWidth(sGrid.Cells[iTmp, 0])+5) < (sGrid.ColWidths[iTmp]) then
iX1 := iX1 + (sGrid.ColWidths[iTmp])
else
iX1 := iX1 + TextWidth(sGrid.Cells[iTmp, 0])+5;
iY1 := ptXYOffset.Y + ((TextHeight('Ag')+5) * 2);
iX2 := ptXYOffset.X;
for iTmp := 0 to iLoop do
if (TextWidth(sGrid.Cells[iTmp, 0])+5) < (sGrid.ColWidths[iTmp]) then
iX2 := iX2 + (sGrid.ColWidths[iTmp])
else
iX2 := iX2 + TextWidth(sGrid.Cells[iTmp, 0])+5;
iY2 := iY1 + TextHeight('Ag');
trTextRect := Rect(iX1, iY1, iX2, iY2);
TextRect(trTextRect, trTextRect.Left+5, trTextRect.Top+3, sGrid.Cells[iLoop, 0]);
Brush.Color := clWhite;
if bBorderFlag then FrameRect(trTextRect);
Brush.Style := bsClear;
//Output Row Data
Font := ftDataFont;
iY1 := iY2;
iY3 := TextHeight('Ag')+5;
for iTmp := 1 to sGrid.RowCount-1 do
begin
iY2 := iY1 + iY3;
trTextRect := Rect(iX1, iY1, iX2, iY2);
TextRect(trTextRect, trTextRect.Left+5, trTextRect.Top+3, sGrid.Cells[iLoop, iTmp]);
Brush.Color := clBlack;
if bBorderFlag then FrameRect(trTextRect);
Brush.Style := bsClear;
iY1 := iY1 + iY3;
end; // for sGrid.RowCount-1 do
end; // for sGrid.ColCount-1
if bPrintFlag then Printer.EndDoc;
end; // with ArecPrintStrGrid, prCanvas
end; { PrintGrid }
procedure TfrmSamp.buPrintClick(Sender: TObject);
begin
with recPrintStrGrid do
begin
PrCanvas := pbPreview.Canvas;
sGrid := stgData;
sTitle := 'Print of String Grid';
bPrintFlag := False;
ptXYOffset.X := 10;
ptXYOffset.Y := 100;
ftTitleFont := TFont.Create;
with ftTitleFont do
begin
Name := 'Arial';
Style := [fsBold, fsItalic, fsUnderLine];
Size := 14;
end;
ftHeadingFont := TFont.Create;
with ftHeadingFont do
begin
Name := 'Arial';
Style := [fsBold];
Size := 12;
end;
ftDataFont := TFont.Create;
with ftDataFont do
begin
Name := 'Arial';
Style := [];
Size := 10;
end;
bBorderFlag := True;
end; //with recPrintStrGrid do
PrintGrid(recPrintStrGrid);
end; -
tusi74
őstag
Ezt is így csináltam, józan paraszti ésszel, csak épeen nem működik.
Pl. a Private szót hibásnak találja.
Már ugyebár van benne egy type az editek, buttonok miatt.
Most akkor követeli, hogy annak a végére tegyek endet, holott addig nem volt.
Most akkor e-mögé másoljam oda megint type.... end?
Nagyon nem megy ez nekem. -
tusi74
őstag
Hát nagyon szépen köszönöm. Csak nekem a hozzászólásod megértéséhez
is kell pár óra. Nem nagyon értem.
Viszont annyira szorít az idő, hogy
addig fogok próbálkozni a beszúrásával egy kész kódnak, amíg nem megy.
Most találtam a neten egy párat.
Én annyira amatőr vagyok, hogy egy formon belül tudok eseményt kezelni, és
jó napot. Mint írtam nem volt tananyag az objektumorientált programozás, hála a jó istennek az államvizsga tételek között sem lesz. -
tusi74
őstag
Hú köszönöm.
Most éjjel beillesztettem egy elég profit. Néztem a hozzászólásod, az alapján tényleg ment.
Innen töltöttem le:
Bővebben: link
Be is illesztettem, és a memo-ra vonatkozó dolgokat kiszedtem, mert
az én formjaimon nincs memo.
Most akkor ez forrásmegjelöléssel maradhat benne, mert ez a kód bárki részére hozzáférhető, és a program nem kerül kereskedelmi forgalomba?
Vagy rosszul gondolom? Ugyanígy beillesztettem egy olyat, hogy a StringGrid cellái, ha rákattintasz, akkor comboboxok lesznek. Az is szabadon hozzáférhető volt.
Most tartok ott, hogy fut a program, minden funkcionál, csak a help hiányzik. Megvettem neten a HelpScribble-t, csak nem nagyon megy még vele, de próbálkozom.
Addig eljutottam, hogy be tudom venni a témákat, de hova teszem a szöveget. A másik: Hogy csinálok altémát?
Na meg persze a dolgozat, amire maradt 2 hetem. -
Alan
aktív tag
Nyesed, lao ce, mint mindig ;)
Csak annyit hozzá, hogy ha a TEdit-hez hasonló osztályt szeretne az ember, akkor illik nem ebből, hanem a TCustomEdit-ből származtatni és csak a szükséges tulajdonságokat publikálni (így pl. ''el is rejthető'' a TEdit egy-két tulajdonsága).
Félek viszont, hogy a kérdezőnek komponensvágyai vannak, tehát hogy a saját osztályából egy ropogós friss példányt a TEdit helyett az egérrel feldobhasson a formjára, ahhoz viszont kell még egy-két dolog. Majd bekukkant és szól, ha így van
[Szerkesztve] -
tusi74
őstag
Köszi. Hát akkor egyszer majd mikor egyéb munkára alkalmatlan leszek, akkor nekiállok.
Másik.
Hogy lehet azt megcsinálni a Rave Reportsban, hogy Kis Pista megtartott órái,
ahol Kis Pista az adatbázis név oszlopából érkezik, alatta a megtartott órái
pedig egy statikus Text. És ha Kis Pista teszem azt 5 osztályban tanít, akkor ne ilyen legyen a fejléce a beszámolónak:
Kis Pista
Kis Pista
Kis Pista
Kis Pista
Kis Pista
megtartott órái.
Rendkívül ronda. -
tusi74
őstag
Nem kerülte el, a 345-ösben volt, csak azokat a dolgokat a Rave-ben nem találtam meg. Azon a képen, amit beillesztettem pár hozzászólással korábban, azon mi az a Duplex? Az a nyomtatásra vonatkozik, nem a Duplex supress, amit írtál.
Általában ahogy olvasom, hogy valaki valamit javasolt, rögtön csinálom.
Egyébként is napi 14 órát foglalkozom ezzel, már vagy 2 hete fizu nélküli szabin vagyok.
[Szerkesztve]