- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- GoodSpeed: Samsung Galaxy SmartTag2-esek a tolvajok ellen!
- Magga: PLEX: multimédia az egész lakásban
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- eBay-es kütyük kis pénzért
- Argos: Szeretem az ecetfát
- Elektromos rásegítésű kerékpárok
Új hozzászólás Aktív témák
-
<Adamsky>
nagyúr
Sziasztok!
A problémám a következő:
Van egy hosszú string-em, ami valahogy így néz ki: nn,nn,nn,nn ...
Az ''nn'' egy kétjegyű szám. Pl.: 17, 07, 03
Van mondjuk a formon 5db Editbox-om (Edit1, Edit2...)
Azt szeretném megoldani, hogy egy cikluson belül a megfelelő Editbox-ba bekerüljön az x-edik szám.
Pl: szamok (ez a string) = 23,12,05
Miután lefutott a program az egyes Editbox-okban a következők legyenek.
Edit1 << 23, Edit2 << 12, Edit3 << 05
A válaszokat előre is köszönöm. -
BlackWoOd
aktív tag
Hát, meglehet. 7-es verzióban benne van, de abban a 2.0-ás.
Esetleg ha a Companion CD-n szétnézel, lehet, hogy ott van eldugva.
(Nincs előttem 5-ös telepítő készlet, nem tudom megnézni sajna.)
Viszont sem a borland.com-on sem a bdn.borland.com-on nem találok demo-letöltést. (Tuti, hogy volt trial változata, ide a rozsdás bökőt, ha nem...)
szerk.: a 2.0 nem biztos, de tuti, hogy 1.0 fölötti volt.
[Szerkesztve] -
lao ce
aktív tag
válasz
Tele von Zsinór #195 üzenetére
mostmar ertem mit akarsz elerni csak sajnos azt nem hogy mi az ami nem sikerult ebbol, ugy latszik nem pendulunk egy huron
itt van par oldal ami esetleg erdekelhet:
http://delphi.about.com/od/kbwinshell/l/aa121801a.htm
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_11886178.html -
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.
-
lao ce
aktív tag
azert a bde mar nem valami tamogatott es javasolt dolog, de gondolom a tanarbacsi azt ismeri. legalabb ado-ig illene felfejlodnie es akkor csak ot evvel lenne lemaradva.
a dbgrid stb hasznalatanak van ertelme sok helyen, de en ugy erzem foleg arra jo ha meg kell mutatni egy recordot. editalasra valoban a 'sima' komponensek rugalmasabbak.
nem tudom miert nem torol recordot. en a helyedben nem vacakolnek sokat azzal hogy hogyan lehet azt kijavitani, feldobnek egy altalanos celu query-t a datamodule-ba amit csak modositasra hasznalok (insert update delete), beallitanam az adatbazis elerest, aztan valami ilyesmi:
procedure genQueryRunDML (aSQL : string);
begin
// data mod language futtatas
qryGenDML.Close; // biztos ami biztos
qryGenDML.SQL.Clear;
qryGenDML.SQL.Add ( aSQL );
qryGenDML.ExecSQL;
// esetleg commit ha kell
end;
procedure genDeleteRecord ( aTableName, aWhereClause : string );
var aSQL : string;
begin
// osszeallit egy delete sql stringet
aSQL := ' delete from ' + aTableName + ' where ' + aWhereClause;
// itt a altalanosan megfogalmazott rakerdezes helye: biztos a torlesben?
genQueryRunDML (aSQL);
end;
proc EnGombomClick...
genDeleteRecord ( 'KedvencTablam', ' MezoID = ' + ValtozoID );
kesz, mert ennek mennie kell ha fene fenet eszik akkor is. ennel persze lehet szebben es jobban csinalni ( pl ha minden ID mezo neve kotelezoen a tabla neve + ID akkor csinosabbra lehet irni , hibakezeles -ha nem sikeredett a torles, stb ) , de ebbol is talan kaphatsz otletet. -
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. -
lao ce
aktív tag
ne haragudj a 'gombnyomas kodja' hulye megfogalmazasert. oszinten en kicsit zavarban vagyok neha hogy most magyart vagy angolt hasznaljak. az 'en idomben' meg angol nevei voltak a dolgoknak... no mindegy
KovacsUr persze jol mondta mirol van szo, onClick event program sorok.
D + Ora az nyami, tudok segiteni ugy erzem mindkettoben. csak ird meg hogy milyen adatbazis elerest hasznalsz odbc, ado, esetleg az allround-os doa-t? azt is hogy szabad kezed van oracle-ben, barmit hasznalhatsz (proc, view, trig. stb stb) ? az is erdekes hogy mihez ertesz pl ha sql megy akkor pl/sql is megy, azaz repulnek a package-ek az oracleben a delphi csak megmutogatja a vegeredmenyt?
(es kerlek nekem ne koszonj semmit... nem is ertem... semmit sem csinaltam. (ez a tema lezarva)) -
KovacsUr
addikt
Mi az, hogy ''gombnyomások kódjaira''?
Bocsánat, nem olvastam vissza, de nagyot nem tévedhetek: azokra az eseménykezelőkre (jó eséllyel a formjaid metódusai), amelyek a gombnyomásokat kezelik. Amikor rákattintasz duplán az űrlapszerkesztőben egy gombra, a gomb kattintásakor lefutó eseménykezelő kódjába kerülsz.
Most? -
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. -
lao ce
aktív tag
válasz
Tele von Zsinór #183 üzenetére
szivesen segitenek ha tudnam mi az a 'talca' (tray vagy taskbar) es mi az hogy 'eltuntetni' egy progit ( leallitani vagy az iconjat elrejteni ) es mi az hogy 'egy progit' (a tiedet vagy egy kulsot ami mar fut es a tiedtol fuggetlen)
mindenesetre ha a tray icon-jat akarod elrejteni a programodnak akkor probalkozhatsz a Shell_NotifyIcon korul. -
lao ce
aktív tag
tusi
probalj lerakni break point-okat a gombnyomasok kodjara es f7-tel lepegetni...
hasznald a ctrl + f7 -et hogy megnezhesd az erteket az objektumaid parametereinek (combo itemindex pl)
ne haragudj ha te ezt mar ezer eve csinalod es tudod, nem lekicsinylesbol irtam, hanem hatha nem tudod ezeket es hasznosak hibakeresesnel. -
lao ce
aktív tag
Divi:
az adatbazist en altalaban visio-ban hozom letre eloszor ( 'papiron' megtervezem ), aztan bekerul az adatbazisba, legyen az barmelyik is, egy 'mennel kenyelmesebb annal jobb' adminisztracios interfeszen keresztul. nalam mindig van valtozas az adatbazis strukturaban a programfejlesztes alatt, mert egyszeruen nem birok mindenre gondolni, de ha megis akkor a k. megrendelo talal ki valamit.
az adatbazis strukturat magat letrehozni futasi idoben lehetseges, de legtobbszor talan mondhatom hogy felesleges, az install kell hogy kepes legyen az ures adatbazist odatenni az exe melle. egy upgrade eseteben mar lehetseges hogy db struktura valtoztato sql-eket kell vegrehajtani, merthat ugyi meg kell tartani a regi adatot de valahogy meg kell valtoztatni alatta a tablakat, viewkat stb.
ha serult az adatbazis akkor lehetseges hogy letre kell hozni ujra, de ilyen esetben azert a backupot illik elovenni. lehet hogy specialisabb kornyezetben ultrahordozhato kodot kell eloallitani akkor erdemes felepiteni az adatbazist kodbol.
az adatbazis adminisztracio attol fugg milyen a db motor. vannak oracle es sql servereknek 'karbantartja magat' valtozatai illetve beallitasai, amik tobb-kevesebb sikerrel elvegzik a legkommerszebb dolgokat (ugyancsak van nekik felugyelet nelkuli installjuk). az accessnek van repair lehetosege ami meghivhato programbol - mondjuk minden backup utan. en a reszemrol mikor access-t hasznalok akkor a program elindulasahoz hozzatartozik a backup a hatterben, amibol tartok 10-15-ot. ki se lehet kapcsolni. hasonlokat meg lehet csinalni a 'nagy tesokkal' is, persze azoknak a backupjuk joval kifinomultabbak.
attol fuggoen mekkora az adatok erteke az adatbazisban, egy pont utan erdemes megfontoltatni a megrendelovel egy havi alapu db karbantartast.
[Szerkesztve] -
Tele von Zsinór
őstag
Nekem a következő a kérdésem: hogy lehet a tálcáról eltünteni egy progit? A SetWindowLong-os megoldás nem jött be
-
Notes
senior tag
Tud valaki olyan progit ami Delphi kódbol csinál UML-t? Tudom, hogy fordítva illenen, dehát... ez van na!
(Google-t ismerem, de nincs időm próbálgatni ezeket az UML kriétöröket, ha van valakinek jól bevált... plíz!) -
granpa_matis
aktív tag
1.EMS Interbase Manager tokeletes FB adatbazis letrehozashoz.(magyarositast ne rakd fel hozza, mert nagyon bugos...latszik, h egy haverom csinalta
)
2.Komponensnek az IB Ojects-et ajanlanam, stabil, kicsit puritan...de nagyon gyorsan lehet vele dolgozni. Ezzel tudsz majd SQL kodot kuldeni a szervernek.(1 kerdes)
3.Amig nincs meg az adatbazis, addig ne kezdj hozza a programhoz, adatbazist hozd letre legeloszor. -
Divi
aktív tag
De jó neked, tusi74! Én még ott se tartok ahol te
Egy FireBird szervert szeretnék vezérelni!
1) kérdésem igazán egyszerű.
Hogyan tudok, egy nekem tetsző SQL kódot elküldeni a szervernek?
Másképp: Hogyan tudok adatbázist benne jó kis táblákkal létrehozni?
2) kérdésem szintén:
Hogy kell használni a dbExpress kompononseket?
Egyáltalán lehet használni őket FireBird/InterBase-hez?
Mivel tud többet/kevesebbet az InterBase komonenscsomagnál?
3) elméleti jellegű
Mikor érdemes létrehozni egy alkalmazás adatbázisát?
Érdemes a kódból létrehozni pl egy első indításnál?
Egy külső ''diagnoszikai programnak'' kell a főprogram adatbázisát ápolnia?
Vagy elég ha egy FB/IB adminisztrációs programmal megcsinálom és utána a programfejlesztés során már nem törődök azzal, hogy az elején létrehozzam az adatbázist?
Köszönöm türelmetetket! -
tusi74
őstag
Azóta van még egy nyűgöm, ami viszont rejtély.
Mondjuk módosítani szeretnék egy rekordot, egy táblában egy gombnyomásra,
vagy beszúrni.
Megcsinálok mindent, teljesen ugyanúgy, mint egy másik táblánál, direkt
Copy-Paste-zok, hogy ami eddig ment, az ezután is menjen.
Erre, most meg mindent úgy csinál, ha megynyomom a beszúr gombot,
akkor beszúrja a Combobox-ok 0. elemét, nem azt, ami aktuálisan be van jeölve, majd megnyomom mégegyszer, akkor beszúrja jól.
Hasonlóan: ha megnyomom a módosít gombot, akkor nem csinál semmit,
ha megnyomom mégegyszer, akkor módosítja.
Na kezdtem megörülni, hárha 2x kell megnyomni a törlés gombot, hogy menjen.
De sajna az egyáltalán nem megy.
Hát itt van az, hogy megáll az ész, és körbenéz.
[Szerkesztve] -
tusi74
őstag
Jaj bocs, annyira el vagyok varázsolódva. Egész nap ebből állok ki.
A végül magam vadásztam össze, hogy vagy applyUpdates, vagy Post, a kettő üti egymást.
A legrosszabb, hogy vettem egy csomó könyvet, még olyat is, hogy adatbáziskezelés Delphi-ben, stb, és nincsenek mintapéldák. Én ilyet még nem láttam.
[Szerkesztve] -
btotyi
tag
Következő kérdés : Milyen Delphi és milyen Query ?
Most próbáltam ki D7 + IBX-el és hibátlanul megy.
Itt a form ami csinálja
object Form1: TForm1
Left = 268
Top = 666
Width = 502
Height = 356
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object DBGrid1: TDBGrid
Left = 8
Top = 8
Width = 385
Height = 289
DataSource = DataSource1
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
end
object BitBtn1: TBitBtn
Left = 408
Top = 16
Width = 75
Height = 25
Caption = 'BitBtn1'
TabOrder = 1
OnClick = BitBtn1Click
end
object IBDatabase1: TIBDatabase
Connected = True
DatabaseName = 'C:\DB\adr.gdb'
Params.Strings = (
'user_name=adruser'
'password=adrpasswd'
'lc_ctype=WIN1250')
LoginPrompt = False
Left = 16
Top = 16
end
object IBTransaction1: TIBTransaction
Active = True
DefaultDatabase = IBDatabase1
Left = 16
Top = 48
end
object IBQuery1: TIBQuery
Database = IBDatabase1
Transaction = IBTransaction1
CachedUpdates = True
SQL.Strings = (
'select * from FELHASZNALOK')
UpdateObject = IBUpdateSQL1
Left = 48
Top = 16
object IBQuery1FELH_AZON: TIntegerField
FieldName = 'FELH_AZON'
Origin = '''FELHASZNALOK''.''FELH_AZON'''
ProviderFlags = [pfInUpdate, pfInWhere, pfInKey]
Required = True
end
object IBQuery1NEV: TIBStringField
FieldName = 'NEV'
Origin = '''FELHASZNALOK''.''NEV'''
Required = True
Size = 30
end
object IBQuery1USERNEV: TIBStringField
FieldName = 'USERNEV'
Origin = '''FELHASZNALOK''.''USERNEV'''
Required = True
Size = 12
end
object IBQuery1JOG_KTGH: TIBStringField
FieldName = 'JOG_KTGH'
Origin = '''FELHASZNALOK''.''JOG_KTGH'''
Size = 3500
end
object IBQuery1STATUS: TIBStringField
FieldName = 'STATUS'
Origin = '''FELHASZNALOK''.''STATUS'''
FixedChar = True
Size = 1
end
end
object IBUpdateSQL1: TIBUpdateSQL
RefreshSQL.Strings = (
'Select '
' FELH_AZON,'
' NEV,'
' USERNEV,'
' JOG_KTGH,'
' STATUS'
'from FELHASZNALOK '
'where'
' FELH_AZON = : FELH_AZON')
ModifySQL.Strings = (
'update FELHASZNALOK'
'set'
' FELH_AZON = : FELH_AZON,'
' JOG_KTGH = : JOG_KTGH,'
' NEV = :NEV,'
' STATUS = : STATUS,'
' USERNEV = : USERNEV'
'where'
' FELH_AZON = : OLD_FELH_AZON')
InsertSQL.Strings = (
'insert into FELHASZNALOK'
' (FELH_AZON, JOG_KTGH, NEV, STATUS, USERNEV)'
'values'
' (: FELH_AZON, : JOG_KTGH, :NEV, :STATUS, : USERNEV)')
DeleteSQL.Strings = (
'delete from FELHASZNALOK'
'where'
' FELH_AZON = : OLD_FELH_AZON')
Left = 80
Top = 16
end
object DataSource1: TDataSource
DataSet = IBQuery1
Left = 48
Top = 48
end
end
A kettőspont utáni szóközöket vedd ki mert a PH motor emotikonoknak látja az SQL paraméterek. ( Hiányzik a [CODE] tag a PH-ból ?)
[Szerkesztve] -
tusi74
őstag
Ez a query11:
select dkod, nev, helyseg from tdolg where dkod=:dkod
Ennek a Query11-nek pedig van UpdateObjectje-yUpdateSQL1, aminek a Delete
metódusába ezt írtam: delete from tdolg where dkod=:dkod
Látszólag meg is csináltam, mert írtam az eljárásba egy olyat, hogy
a végén ShowMessage('Kész vagyok!'); Ez mindig pillanatok alatt kijön, minden hibaüzenet nélkül. Namármost én ennek az UpdateSQL-nek kitöltöttem
az Insert és Modifí metódusát, és tökéletesen teszik a dolgukat.
[Szerkesztve] -
btotyi
tag
Nézz szét itt : Bővebben: link.
Ha valami nem világos kérdezz nyugodtan. -
Divi
aktív tag
Kedves latenight kóderek!
Szeretnék FireBird-del adatbázist kezelni! (mí egyedi)
Sorrendben ezeket szeretném megvalósítani!
1. Egy SQL lekérdezés megvalósítás
2. Egy adatbázis létrehozása
Benne egy tábla
Belőle egy lekérdezés
Adatbázis törlés
Szerenélek titeket megkérni, hogy mondjátok el, milyen komponenseket kell használni, ahhoz, hogy egy ilyen lekérdezést le tudjak futtatni!
És ha ez nem nagy gond, légyszives magyarázzátok el, hogy az egyes kopmponensek, mire szolgálnak az adott ''adatfolyamban'' azaz, hogy az adott komponons mit reprezentál!
Válaszaitokat köszönöm! -
tusi74
őstag
Na nekem is akadt egy, immáron sokadszor.
Update SQL-lel meg tudom csinálni, az insert-et, és az update-t,
de nem megy a delete.
Ezt csinálom:
query11.ParamByName('dkod').AsInteger:=dkodja;
query11.Open;
query11.Delete;
{query5.ApplyUpdates;}
query11.Close;
Ha ebben benne van az ApplyUpdates, akkor nem működik, hibaüzenettel leáll, hogy nem tudja végrehajtani ''closed dataset''-en.
Ha nincs benne, akkor nincs hibaüzenet, csak éppen nem töröl ki semmit.
Ilyenkor mit lehet tenni? -
kacsa7
őstag
Na, újabb problémám akadt. Van egy szöveges állomány(txt) amiből adatokat szerenék beolvasni.
deklarálom fext;
assign(f,'xy.txt');
Erre a delphi a következő hibát adja:Incompatible types: 'TPersistent' and 'Text'
Ez miért van. Ugyanezt a progit kellett pascalban is megírnom, ott tökéletesen működik. -
kacsa7
őstag
Hali!
Egy egyszerű kérdésem lenne. Ha egy label caption-ébe szöveget akarok írni akkor hogy tudok új sort kezdeni?
Tehát ha pl ezt akarom beírni:
xyxyyxyxy
vcvc
label1.caption:=xyxyyxyxy(és ide kéne ugye valami karakter amivel sort vált)vcvc
[Szerkesztve] -
lao ce
aktív tag
hat arrol van elkepzelesem hogy en ezt hogyan csinalnam.
kerdes amugy hogyha cmb1 = Kiss es cmb2 = Bela
akkor az osszes kiss vagy bela kell megjelenjen vagy az osszes kis es bela?
amugy a checkboxokat hanyagolnam, az elso item minden comboban lehetne (all) vagy (minden) valasztas. kevesebb objectum = egyszerubb interfesz.
aztan kb... van egy sql valtozo, mondjuk aSQL
a combokat elnevezheted ugy mint a fieldek nevei, de egy cmb-vel az elejen, tehat cmbFirstName, cmbKeresztnev
az eleje az aSQL-nek valami ilyesmi lesz (megtartanam space-eket a ' jelek utan es elott!)
aSQL := ' select f1, f2, f3, f4 from table where ';
itt a datum
aSQL := aSQL + ' ( DateField >= #' + MyDateObj1.Value + '# ';
aSQL := aSQL + ' and DateField <= #' + MyDateObj2.Value + '# ) ';
aztan ugyi... vegig egy for ciklussal a kombokon
for i := 0 to ComponentCount-1 do begin
___currCompName := copy (Components.Name, 1, 3);
___currFieldName := copy(Components.Name,4, Length(Components.Name)-3 );
aztan mikor komborol van szo es raadasul nem a (minden) van kivalasztva:
___if (currCompName = 'cmb') and
______((Components as TCombobox).ItemIndex > 0) then
akkor hozzaadjuk az aSQL valtozohoz azt a feltetelt hogy ' and fieldname = ertek '.
meg az is van hogy itt 'and' vagy 'or' attol fuggoen hogy kiss bela hogy kell megjelenjen az elso kerdesben.
persze, ez nem ENNYIRE egyszeru mert lehet szam is meg text is meg date is a tipusa a dolognak. ez most text akar lenni de csak nem biztos hogy szintaktikailag helyesen irom.
aSQL := aSQL + ' and ' + currFieldName + ' = ''' +
Components as TCombobox)..Items.Strings [ (Components as TCombobox).ItemIndex] + ''' '
aztan egy par end a vegere es lehet futtatni a query-t.
[Szerkesztve] -
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? -
Notes
senior tag
-
lao ce
aktív tag
- en mindig sima combo-t hasznalok
- az auto feltolteshez amugy is a DBLookupComboBox -t kellene hasznalni...
- a dbcombonak igenis VAN itemindex-e, annyira elbizonytalanitottal hogy megneztem a helpben
- szerintem (bar nem hasznalom) elallitodik, hiszen erre valo, hogy az itemindex-szel elallitodjon a db is, nem? -
Notes
senior tag
Na jó azt hiszem, inkább a táblából feltöltök egy sima ComboBox-ot. Az kicsit rugalmasabb jószág.
-
Notes
senior tag
akarmiDBComboBox.ItemIndex:=-1;
Undeclared identifier 'ItemIndex'-et kapok. Csak a sima ComboBox-nál van ItemIndex? -
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
- ÁRGARANCIA!Épített KomPhone i3 10105F 8/16/32GB RAM RX 6500 XT 4GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- Bomba ár! Lenovo ThinkPad T490 - i5-8GEN I 16GB I 256GB SSD I 14" FHD I Cam I W10 I Garancia!
- Samsung Galaxy A54 5G , 8/128 GB , Kártyafüggetlen
- Beszámítás! Sony PlayStation 4 PRO 1TB fekete játékkonzol extra játékokkal garanciával hibátlan
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest