- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Magga: PLEX: multimédia az egész lakásban
- Luck Dragon: Asszociációs játék. :)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- Argos: Szeretem az ecetfát
- Elektromos rásegítésű kerékpárok
- sziku69: Szólánc.
Új hozzászólás Aktív témák
-
sanzi89
addikt
válasz
sanzi89 #1899 üzenetére
Újabb kérdésem lenne. van egy Form-om, amin semmi sincs, csak 1 darab kép megjelenítése. Az lenne a cél, hogy a Form mindig akkora legyen, mint a monitor, tehát töltse ki a teljes képernyőt. Ezt meg is tudtam csinálni a WindowsState wsMaximized-re állításával. Ezen a Form-on kellene egy kép, ami megjelenjen, de teljes felbontásban, görgetősávokkal a szélén. Na, ez nem akar sehogy se összejönni. Ötletek?
u.i.: Sőt, a legkirályabb az lenne, ha először teljes képernyőben jelenne meg a képet teljes képernyő méretre kicsinyítve, majd kattintás után a valódi méretben jelenne meg a kép.
-
sanzi89
addikt
válasz
sanzi89 #1898 üzenetére
Kérdésem tárgytalan, a köcsög IrfanView szopatott meg. Ha elforgattam vele egy képet és elmentettem, akkor nem mentette el valójában a képet, csak gondolom valamilyen bejegyzést állított, így elforgatva nyitottam meg. Ha például megnyitottam Paint-ban, akkor elforgatás nélkül látszódott.
-
sanzi89
addikt
Köszi az ötleteket, végül karaktertömbként kezeltem a Stringet, és végignéztem minden karakterét. Elég gány, de működik.
Újabb gondom akadt, hogy egy Image komponensbe, ami álló tájolású beszúrok egy fekvő tájolású képet, akkor önhatalmúlag elforgatja a képet. Ez mitől lehet?
-
drkbl
őstag
válasz
sanzi89 #1895 üzenetére
WrapText MaxCol=1-el?
Description
WrapText scans a string for occurrences of any of the characters specified by nBreakChars and inserts a line-break, specified by BreakStr, at the last occurrence of a character in nBreakChars before MaxCol. Line is the text WrapText scans. MaxCol is the maximum line length.
-
drkbl
őstag
válasz
sanzi89 #1892 üzenetére
A D7 helpjéből:
DisableControls method (TDataSet)
Usually DisableControls is called within the context of a try...finally block that reenables the controls even if an exception occurs. For example:
with CustTable do
begin
DisableControls;
try
First;
while not Eof do
begin
{ Process each record here }
Next;
end;
finally
EnableControls;
end;
end; -
sanzi89
addikt
Delphiben mivel lehetne egy string-et megfelelő elválasztó karakter segítségével szétdarabolni? Ezer meg egy Split-es szirszart próbáltam, de egyik se ment. A franc se gondolta volna, hogy 7.0-ás Delphiben ez ilyen nagy feladat...
-
Peter Kiss
őstag
Delphi-hez nem értek, de annyit tudok javasolni, hogy nézzétek meg, a Windows mely részeit érinti a program akármilyen szempontból (fájlrendszer [hová ír], regisztrációs adatbázis, ilyesmi). Általában, ha valami XP-ről nem megy rendesen Windows 7-en, akkor valami alap működési elver sért.
-
D@ni88
addikt
Sziasztok.
A munkahelyemen sajnos Delphi 6-ban fejlesztünk. Arra lettünk figyelmesek, hogy maga a fejlesztett program sokkal gyorsabb XP-n mint Win7-en.
Esetleg nem tudjátok mitől lehet?
Köszi.Dani
-
sanzi89
addikt
Valaki tud valami trükköt arra, hogy SQL parancs futása közben ne szaladjon a hozzá kötött BDGrid? A lényeg az volna, hogy ha mondjuk keresek egy sort, akkor a keresés folyamata közben ne szaladjanak a sorok és amikor megtaláltam a rekordot, akkor alljon oda. Illetve még valami olyasmi is jó volna, hogy az aktualis rekord mindig a Grid közepén legyen, ne menjen le a Grid utolsó sorára. Vagy bilibe lóg a kezem?
-
nihill
őstag
Jó régi topic, de most felhoznám.
Hogy tudnék olyat csinálni, hogy egy Excel táblázat adott cellájában szereplő képet beolvassak, átvegyek valahogy a programomba? -
oliwaw
csendes tag
Üdv. Hogy lehet TTimer nélkül órát irni :
-
Brown ügynök
senior tag
Szeretnék létrehozni egy az Access-hez hasonló lekérdezés tervezőnézetet.
Kérdéseim:
Hogyan tudom megoldani grid-nél, hogy a fejlécek, egymás alatt a bal oldalon legyenek?Hogyan lehet cb-t berakni egy rácsba, aminek értékeit az adatbázisból kinyert adatokkal töltjük meg?
-
válasz
RootRulez #1886 üzenetére
Nem mostanában FTP-ztem, de ha jól rémlik, akkor ez az Indy FTP Component lesz ugye?
Ha igen, akkor a PUT-al lehet feltolni fájlt, ezt ellenőrizd, mert ott meg fog jelenni a hiba.
Kivédeni ilyen eseteket úgy lehet, hogy más néven tolod fel a fájlt, majd ha az sikeresen lezajlott, akkor törlöd a régit, ezt az utóbbi feltöltöttet meg átnevezed a szerveren. -
RootRulez
félisten
Szaisztok!
Lenne egy program, ami egy fájlt töltene fel FTP-n. Teszi is a dolgát rendesen, azonban amikor tűzfalon le van tiltva, akkor a fájlt létrehozza a szerveren, ám az üres marad.
Ezzel az a baj, hogy ami addig benne volt, azt is letörli belőle.
Szóval hogy lehet megállapítani, hogy csatlakozva vagyok-e és fájlt módosítani is tudok?
Ez nem jó:
procedure TForm1.Button1Click(Sender: TObject) ;
begin
try
IdFTP1.Connect ;
except
ShowMessage('Hiba') ;
end;
end;Vagy hogy lehet az, hogy csatlakozva vagyok (a fentebb írt ellenőrzéssel), de a fájlt nem tudom feltölteni a korábbi helyett?
Ha a tűzfalat letiltom (átengedem a progit), meg megy gond nélkül.
-
TAZ155
csendes tag
Sziasztok.
Megoldottam a soros port komponens feltelepitését, másik delphi alatt.
ComPortLibary 4.11C ( Dejan Crnila)-Komponens.
És most már hogy ezt fel tudtam rakni,
a kérdésem az lenne leső lépésben hogy hogyan lehet meghivni a soros port -ot manuálisan.
Be épitett Comport componens nélkül.A fix portbeállitásokat majd egy fájlban fogom tárolni.
A második lépés, hogy a Pin-ek közötti cimzés, meghivás hogyan is müködik.
Ezt a táblázatot találtam eddig.
[link]
Ez a táblázat használható??Hali
-
TAZ155
csendes tag
Igen tudom.
Nekem max 5V 2mA kell róla.
Most olyan megoldást keresek, a soros port kezelésre amit igy csomagként nem kell telepiteni.
Elég csak bemásolni egy *.pas-fájlt a delphibe, és elég egy Dll-t bemásolni az exe mellé.
LPT-hez van, gondolom soros port-hoz is van már ilyen megoldás.
Hali
-
TAZ155
csendes tag
Üdv zka67.
Köszönöm a leirást, de a hiba üzenet megmaradt sajnos.
!!Error message ablak.
This version is not licensed to load third-party component or IDE addins.Nem értem.
Megnézem egy másik delphi alatt a csopmagot, hátha felmegy.
A soros port.
[link]Végül is nekem, először az is elég lenne hogy ha a COM1-en
a 3F8H-cimen az RTS lábra valahogyan kikerülne a Tápfesz.
Ezen a csatlakozót a hardver táp-ellátáshoz kell csak.D egyenlőre keresek egy másik delphit, ami alá fel tudom telepiteni a csomagot.
Azért köszi a segitséget.
Hali.
-
zka67
őstag
Először megnyitod a CPortLibD2006.dpk fájlt, lefordítod (Alt-P B).
Utána megnyitod a DsgnCPortD2006.dpk fájlt, azt is lefordítod.
Utána Install Packages, megkeresed a CPortLibD2006.bpl fájlt és telepíted.
Ennyi.Hozzátennék még annyit, hogy a soros port nem egészen úgy működik, ahogy te azt elképzelted. Neked nem kell biteket röcögtetned benne, bízd azt a hardverre, azért van.
Javaslom, hogy előbb olvasgass utána a soros port működésének.
-
TAZ155
csendes tag
Sziasztok.
Annyit sikerült kideritenem hogy fel kell telepiteni egy csomagod delphi alá.
A fájl neve: comport411c.zip
Ebben a zipben található a soros port kezeléséhez a telepitő csomag.
Megpróbáltam feltelepiteni Turbo delphi 2006-alá, de hibaüzenet-et kaptam.
A telepitési sorrend.
1. Turbo Delphi elinditása.
2. Open Project. (itt kiválasztjuk a neküknk szükslges fájlt.)
3. Source\CPortLibD2005.lib ..... gondolom én...
4. megnyitás
5.jobboldalt a Project Managerbe CPortLib2005.bpl-re egér jobb klik.
6.InstallNa ezután én hibaüzenet-et kapok a Turbo Delphi 2006-tól.
Hiba üzenet.
Error message ablak.
This version is not licensed to load third-party component or IDE addins.Nagyjából a magyar forditás.
Ennek a verziónak nem engedélyezik, hogy betöltse a harmadik félhez tartozó összetevőt vagy IDE addins.Tehát nem lehet alátelepiteni??
csak kicsit értek angolul.Hali
-
TAZ155
csendes tag
Sziasztok.
Soros port programozásban kérnék egy kis segitséget tölletek.
A port (rs232) rövid leirása:
Nos ami a legfontosabb ezzel kapcsolatban, hogy a serial port nem TTL, CMOS feszültségszintekkel dolgozik, hanem felszültséglogikával.
Ez azt jelenti, hogy a kimeneten megjelenő logikai '1' szint +5 - +12V közötti feszültségértékeket vehet fel, a loikai '0' szint pedig -5 - -12V közötti értékeket vehet fel.Leirás vége.
Haladjunk lépésről, lépésre.
Gondolom meg kell határozni hogy melyik port legyen aktiv. ( COM1 )
Gondolom én hogy szükségünk lesz a port cimekre. ( De pin szerint mik is ezek?)
Nekem az is elég,egyenlőre hogy át tudjam billenteni az alapban 0-ás Logikai
értékü pint, 1-es értékre.! A példa kedvé ért legyen a COM1-en, az 1-es pin( Data Carrier Detect ) !
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
progi vége.
Ezután a port 1-es logikai értéken marad.
Ezt le kellene zárni.Biztosan valami ilyesmi lesz a megoldás: (Com1close
Hai
-
RootRulez
félisten
Sziasztok!
Talán páran láttátok, hogy android programokat honosítok. A frissülésekkel könnyebb lenne mennem, ha nem kéne átnyálaznom a nyelvi fájlokat, hol vannak eltérések az újabb verzióban, hanem ami benne volt a régiben, azt már át is emeli a többit meg lefordítom.
Tehát
Egy olyan programra lenne szükségem, ami két XML fájlt hasonlít össze és az azonos kulcsokat átmásolja egyikből a másikba. Illetve ha talál olyan kulcsot a másodikban, ami benne van ez elsőben is, annak az értékét átírja.Például az új (még angol) nyelvi fájlban benne van, hogy:
<string name="create">Create</string>
De a program korábbi verziójában ez már magyarítva lett, hogy:
<string name="create">Létrehoz</string>
Szóval meg kéne keresni ezt a "create" kulcsot a korábbii fájlban és a "Create" helyett át kéne emelni a "Létrehoz"-t
És szépen végig kéne mennie ez új XML-en kulcsonként, megkeresve a párját a régiben.
Szóval ezt hogy lehetne megvalósítani?
...
Delphi-vel szoktam "bohóckodni". Nincs nagy programozói tudásom.
Amit tudok fórumokból szedtem össze, könyveket olvasgattam. Szóval nem tanultam, egy kis Turbo Pascal ismeretem volt gimiből. Épp ezért hajlamos vagyok egyszerű dolgokat túlkomplikálni, mert ugye nem vagyok tisztában az egyszerűbb parancsokkal, megoldási lehetőségekkel.
Az első gondolatom például az volt hogy TXT-ként megnyitom és seltext, sellenght, selstart-okkal mahinálva kikeresem a kulcsokat, majd megkeresem a másik fájlban, benne van-e ugyanaz, majd a csibecsőrök közötti részt átemelem...
Utána nézelődtem és kiderült, egyszerűbb lenne, ha kulcsos XML fájlként kezelném őket, nézegettem is XML komponeneseket hozzá, de nem tudom telepíteni, lehet a 64-bites windows7 szívat.
Bár úgy láttam a Delphi 7-ben van gyári XML komponens, csak nem tudom használni
Aki jobban benne van, hogy oldaná meg?
Üdv!
-
Fetyoka0
tag
Sziasztok!
Segítség kellene egy olyan problémában hogy:
Delphi 5ös verzióval akarok ORACLE adatbázisból lekérdezést csinálni. De Delphi 5ben nincsenek meg az ADO komponensek. Hogyan lehet ez belevarázsolni az 5ös verzióba?
7est nem tudok fölrakni mert 5ösben lett írva és fordítva az eredeti program és különböző hardware elemeket használ(mérőberendezések). Ha 7essel fordítanám újra nem működe megfelelően. -
válasz
Fire/SOUL/CD #1872 üzenetére
A jó megoldás így néz ki, közben megtaláltam az MSDN-ben...
function IsBtnPressed(ABtn: integer): boolean;
//ABtn can be either VK_LBUTTON, VK_MBUTTON, or VK_RBUTTON
begin
result := (GetAsyncKeyState(ABtn) and $8000) = $8000;
end; -
válasz
Flashback #1871 üzenetére
Ja, Én úgy vettem ki, hogy az a gondod, hogy form-on kívül vagy belül kattintottak, bocsesz.
procedure TForm1.FormMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState;
X, Y: Integer) ;
begin
case Button of
mbLeft:
begin
end;
mbRight:
begin
end;
end;
end; -
válasz
Fire/SOUL/CD #1870 üzenetére
Az oké, de attól még nem tudom hogy lenyomták-e a bal gombot!
-
-
Hogy tudom figyelni hogy a mouse bal gombja lenyomódik, mármint globálisan a program területén kívül?
-
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.
-
TAZ155
csendes tag
Sziasztok.
Gondolom a megoldás igen egyszerű lessz.
A következő kérdésem az lenne hogy.....Adott egy Then, Else ággal megirt feltétel.
A Forrás:
unit szamol;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Label1: TLabel;
Button2: TButton;
Label2: TLabel;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
varZ1,Z2 : Integer ;
begin
begin // Feltétel irás
// integráljuk az z1, z2-es értéket
Z1:=StrtoInt(Edit1.text); // hivatkozás a cellá-ra
Z2:=StrtoInt(Edit2.text);if ( z1 = z2 )
// ha z1 egyenlő z2-értékével akkor
// akkor then-ág lép érvényben.then
begin
ShowMessage ( 'Az értékek MEG eggyeznek ' )
end// ha z1 NEM egyenlő z2-értékével akkor
// akkor az else-ág lép érvényben.else
begin
ShowMessage ( 'Az értékek NEM eggyeznek meg ' )
end ;end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;end.
A program vége.
Alap állapotban a Delphi csak a számokat ismeri fel. (1,2,3 stb)
Melyik a helyes módja, hogy rá tudjuk beszélni hogy a betü karaktereke is gond nélkűl kezelje.
Meglátásom szerint , de ez csak az én véleményem.1. megoldás.
A Betű karakterekből ASCII értéket csinálunk.( Tehát szám érték lessz a végeredmény)
Hogyan????2. megoldás
A programozzunk Delphi 7 rendszerben cimű könyv szerint lehet integrálni a karakter készletet, és onnantól kezdve már nem okoz gondot hogy Betűt,vagy számot irunk be a programnak. Ezt a megoldást meg nem sikerült felélesztenem.
Hogyan????Ebben kérnék segitséget, infót.
Hali
-
TAZ155
csendes tag
válasz
Gyuri16 #1863 üzenetére
Üdv Gyuri16.
Köszönöm a segitséget, ez a megoldás jó vólt nekem arra a célra amire kelett.
Idézet:
DeleteFile(Edit1.Text);
Sikerült a saját, megirt szoftverembe alkalmazni.
Jól műnkődik.
Egyébként a DOSBOXPortable változathoz irtam, igény szerint egy Grafikus felületet, szoftvert.
Ha téged érdelel, elküldöm neked privátban az egészet forrással együtt.
Hozzáteszem nagyon kezdő vagyok a Delphi programozásban.
Hali.
-
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
-
TAZ155
csendes tag
válasz
Gyuri16 #1861 üzenetére
Üdv.
Nos nekem ez a törlés éppen megfelelne.
procedure TForm1.Button1Click(Sender: TObject);
begin
DeleteFile('FILE.MDX');
end;end.
Csak hogy a fájlnevet, amit törölni szeretnék azt egy edit7.text-ben adom meg.
Bármi lehet bejegyzéstől függően.A program leirása.
Van egy listbox-om amiben vezetek egy listát.
A listába amikor hozzáadok egy bejegyzést, akkor abban a pillanatban létrehoz egy fájlt
a vinyón a programom.A bejegyzés neve = a létrehozott fájl nevével.
Pl:
A listához hozzáadtam a Mario... bejegyzést akkor a vinyón létrehozok egy Mario.tr1-fájl.De ha én a listából tőrlöm a Mario bejegyzést akkór törölni kellene a Mario.tr1 fájlt is.
A listában sok másnéven szereplő bejegyzések is vannak.A törlendő fájlnevet már ki iratom a kijelőlés pillanatában egy edit7.text-be.
Na ilyen jellegű fájltörlésről lenne szó.
Tehát ez nekem jó lenne, csak nem ilyen fórmában.DeleteFile('FILE.MDX');
Amúgy nemrégen kezdtem programozni Delphi 7 Lite változat alatt.
Jó könyvet meg sajnos nem találtam Delphi-hez.Tehát ez az én olvasatom szerint igy nézne ki.
procedure TForm1.Button1Click(Sender: TObject);
Var
x: integer;begin
x:=StrtoInt(Edit1.Text);
DeleteFile('x');
end;end.
Tudom ez egy nagy hülyeség amit irtam, de a könyvekben semmi nincsen szinte ami használható lenne.
Sok esetben ez a megoldás münködni szokott.Deklarált változók kellenének????? x$...stb
Ösrégen Basic-ben programoztam egy kicsit, nameg ASM-ben.
De csak nagyon kezdő szinten.Hali
-
TAZ155
csendes tag
Üdv mindenkinek.
Delphi 2005 vagy Delphi 7.--------kategória.
Fájlt szeretnék töröltetni delphi alatt.
Kritérium, van egy Edit7.text-em amiben megjelenik a törölendő fájl neve.
A megjelenités megvan oldva, az Edit7.text-ben.
Csak fájltőrlésre nem találtam leirást.
Hogyan tudok fájlt töröltetni hogyha a fájlnevet egy Edit7.text-be adom meg??
Hali
-
dany27
őstag
hali
Egy programot kell készítenem amiben egy StringGrid segítségével különböző adatokat lehet felvinni. Egy olyan gondom lenne hogy nem tudom hogy mi lenne a legjobb megoldás a stringgridben szereplő értékek letárolására. Mivel dinamikusan tudja növelni a user az oszlopok számát illetőleg szabadon tudja módosítani azok sorrendjét ezért valami olyan módszer kellene amivel egyszerűen feltudom cserélni a két oszlopot a fileban, illetve tudom törölni a törölt oszlophoz tartozó értékeket, vagy lehet hogy nem is kellene csak a megfelelő oszlophoz a megfelelő sort kellene kiolvasni a fileból és akkor a fileban nem is kell sorrendbe lennei a oszlopok tartalmának. Ha nincs sorrendbe akkor tipusos fileal könnyen tudnék dolgozni csak annak nem tudom dinamikusan változtatni a szerkezetét. Vagy mégis?
Ezek az 5letek jutottak eszembe csak nem tudom hogy melyik lenne az egyszerűbb..
Ui: egy iskolai naplóról lenne szó, egy lenyiló menüből kiválasztja az osztályt, select eventre betölti a legelső tanuló adatait majd egy stringgridbe a jegyeit, tantárgy és hónapra leosztva.
Egy külön beállítások részbe lehet felvinni az egyes osztályokat, és a hozzájuk tartozó órákat, tanulókat!Előre is köszi!
-
dany27
őstag
Hali!
Framekkel büvészkedek de akadt egy kis gondom ebben szeretnék egy kis segítséget kérni.
Szóval van egy formom amin az éppen aktuális framet teszem láthatóvá és a régit meg elrejtem. De ez valahogy nekem nem akar összejönni. Illetve menni megy de mikor egy framet kétszer megjelenítettem nem akarja elrejteni hanem dob egy szép kis hibát:
"" is not valid integer value!
Így nézz ki egy új frame megjelnítése, régi elrejtése(megnézi melyik az épp látható azt elrejti majd a végén ami kell az meg megjeleníti):
procedure TForm1.menu_gykivonClick(Sender: TObject);
begin
if frame_osszgyak.Visible=TRUE then
begin
frame_osszgyak.btn_feladClick(Sender);
frame_osszgyak.Visible:=FALSE;
end
else if frame_osztgyak.Visible=TRUE then
begin
frame_osztgyak.btn_feladClick(Sender);
frame_osztgyak.Visible:=FALSE;
end
else if frame_szorgyak.Visible=TRUE then
begin
frame_szorgyak.btn_feladClick(Sender);
frame_szorgyak.Visible:=FALSE;
end
else if frame_config.Visible=TRUE then
frame_config.Visible:=FALSE;
frame_kivongyak.Visible:=TRUE;
frame_kivongyak.load_config(Sender);
end;Mi lehet a gond? Amikor először rejti el akkor nem dobja csak másodszorra
-
zka67
őstag
Használj ini fájlokat:
uses IniFiles;
...
var Ini : TIniFile;
IniPath : string;
...
IniPath := AppDataPath; // célszerűen az APPDATA könyvtár
Ini := TIniFile.Create(IniPath+'\programnév\settings.ini');
param_int := Ini.ReadInteger(Section,Item,default_value);
param_str := Ini.ReadString(Section,Item,'default_value');
Ini.WriteInteger(Section,Item,param_int);
Ini.Free;Szerintem magáért beszél a dolog. Pl. egy settings.ini az ablakpozíció megjegyzéséhez:
[Main]
Left=200
Top=50És a hozzá tartozó kód:
// FormCreate
Left := Ini.ReadInteger('Main','Left',Left);
Top := Ini.ReadInteger('Main','Top',Top);
// FormClose
Ini.WriteInteger('Main','Left',Left);
Ini.WriteInteger('Main','Top',Top); -
dany27
őstag
Sziasztok!
Egy olyan kérdésem lenne hogy néhány beállítást szeretnék eltárolni de nem tudom pontosan, vagyis nem tudom melyik lenne legmegfelelőbb nekem. Nos csak néhány egyszerű bellítást kellene elmentenem(pl.: nehézségi szint, feladatok száma stb..). A programfutása során szükségem van arra hogy rögötön hozzáférjek az éppen szükséges beállításhoz. Így gondoltam hogy típusos fileba letárolnám az egyes beállításokat és akkor egyszerűen hozzáférnék az egyes beálított értékekhez! (a sima txt file nem játszik mert macera belőle kiszedni a cuccokat!)
Szerintetek melyik lenne a legjobb??
Előre is köszi!
-
zka67
őstag
Gondolom (remélem) már nem XP-re fejlesztesz. Vista és 7 alatt a Registry-t már nem engedi "csak úgy" írkálni, meg olvasgatni sem, csak a következőképpen:
with TRegistry.Create(MAXIMUM_ALLOWED) do
try
...
finally
Free;
end;Van még egy hiba a programodban, az EnableProxy-ban az OpenKey előtt van egy WriteBool, az szerinted hová ír?
-
dany27
őstag
hali
Egy olyan kérdésem lenne hogy a komponensek közt lévő böngészőnek a kapcsolat beállításait hogy lehet változtatni?
Ha az Internet Explorer kapcsolat beállításait változtatom akkor változik az övé is. Ezzel nem is lenne gond de valamiért amikor a 3ik proxyt betölti akkor utánna hiába jelzi azt nekem a progi h sikeresen cserélte az explorerben maradt a régi....
Előre is köszi!
Itt a kód:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry, WinInet, OleCtrls, SHDocVw, ExtCtrls;
type
TForm1 = class(TForm)
btn_start: TButton;
btn_stop: TButton;
btn_exit: TButton;
Label1: TLabel;
WebBrowser1: TWebBrowser;
Timer1: TTimer;
lbl_now: TLabel;
procedure btn_exitClick(Sender: TObject);
procedure btn_startClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure btn_stopClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
proxys:Tstrings;
temp:string;
i:byte;
implementation
{$R *.dfm}
procedure TForm1.btn_exitClick(Sender: TObject);
begin
application.Terminate
end;
Procedure EnableProxy(const Server: String);
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.WriteBool('ProxyEnable',False);
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings',False);
Reg.WriteString('ProxyServer',Server);
Reg.WriteBool('ProxyEnable',True);
Reg.CloseKey;
Reg.Free;
end;
Procedure DisableProxy;
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings',False);
Reg.WriteBool('ProxyEnable',False);
Reg.CloseKey;
Reg.Free;
end;
procedure TForm1.btn_startClick(Sender: TObject);
begin
i:=0;
timer1.Enabled:=TRUE;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
i:=i+1;
proxys:=TStringList.Create;
proxys.LoadFromFile('D:\proxys.txt');
temp:=proxys.Strings[i];
EnableProxy('http='+temp);
lbl_now.Caption:='Jelenlegi proxy: '+temp;
end;
procedure TForm1.btn_stopClick(Sender: TObject);
begin
DisableProxy;
timer1.enabled:=FALSE;
end;
end. -
zka67
őstag
Külön opció nincs, de nem nehéz megírni. Csinálsz egy új osztályt, pl. TGrayEdit-et:
type TGrayEdit = class(TCustomEdit)
private
procedure SetEnabled(Value : boolean);
function GetEnabled : boolean;
public
property Enabled : boolean read GetEnabled write SetEnabled;
end;Megírod hozzá az Enabled funkciókat:
procedure TGrayEdit.SetEnabled(Value : boolean);
begin
TControl(Self).Enabled := Value;
if Value then Color := clWhite else Color := clSilver;
end;
function TGrayEdit.GetEnabled : boolean;
begin
Result := TControl(Self).Enabled;
end;A form-odban vagy ahol használod:
type
TMainForm = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
GrayEdit : TGrayEdit;
end;Létrehozod a GrayEdit-e(ket):
procedure TMainForm.FormCreate(Sender: TObject);
begin
GrayEdit := TGrayEdit.Create(Self);
with GrayEdit do begin
Parent := MainForm;
Left := 8;
Top := 8;
Text := 'Proba';
end;
end;és használhatod
:
procedure TMainForm.Button1Click(Sender: TObject);
begin
GrayEdit.Enabled := not GrayEdit.Enabled;
end; -
dany27
őstag
mert a felhasználónak kellene belevinni adatokat némely esetekben de mikor nem kell neki akkor úgy gondoltam h nem retjem el mert akkor ott lesz egy "luk" vagy pedig arébb kellene pakolnom olyankor mindent. Ezért gondoltam a szürkítésre.....
VB.NET-ben hozzászoktam hogy alapba szürkíti az alapszínt ha tiltott...
Itt nincs rá valami külön opció? -
zka67
őstag
Az első kérdésedre:
with Memo1 do buff := Copy(Text,SelStart+1,SelLength);
A második kérdésedet nem értem. Ha az Enabled értékét false-ra állítod, akkor szürke lesz a szöveg.
Az utolsó kérdésedre:
BiDiMode : TBiDiMode;
TBiDiMode = (bdLeftToRight, bdRightToLeft, bdRightToLeftNoAlign,
bdRightToLeftReadingOnly);Ha jobbra akarod igazítani akkor
BiDiMode := bdRightToLeft;
-
dany27
őstag
sziasztok!
Egy két kérdésem lenne megint delphivel kapcsolatban.
Az első az lenne hogy ha mondjuk adott egy TextBox és abban a júzer kijelöli a benne lévő tartalmat azt hogy tudnám vissz a kapni valahogy?
A második az hogy globálisan hozzá tudok rendelni a textboxhoz disabled tulajdonságához egy színt?? mert én azt szeretném ha akkor szürke lenne ha inaktív de nem szeretném mind a "kétszáz millió" helyen átírni!
Illetve Delphiben nem találtam meg azt az opciót ahol tudom állítani azt hogy a textbox tartalma hova legyen igazítva... Vagy azt csak kódból lehet??Előre is köszi!
-
atom87
aktív tag
Nos fentebb felmerült hibát sikerült megoldanom, egy változó kezdő értéke volt a hibás...
De most felmerült egy újabb probléma: megkaptam a másik tömb tartalmát, de a táblába ismét rendeződik az indexelése miatt.
Mit lehet ez ellen tenni?Itt egy kép, hogy mire is gondolok. A pirossal bekarikázott oszlop a kapott véletlen sorszámok és ezek szerint rendeződik.
Én pedig azt szeretném, hogy a random sorrend maradjon meg.
Más szerint kellene indexelnem? Esetleg módosítanom kellene a táblát? -
atom87
aktív tag
Üdv!
Kellene egy kis segítség:
Adott egy tömb, ami véletlen szerűen generált számokat tartalmaz. Ezek a számok egy tábla rekordjainak sorszámai lennének. A feladat az lenne, hogy a fő táblából(ami minden rekordot tartalmaz) át kéne mozgatni(batchmove) egy másodlagos('munka') táblába a tömbben található sorszámoknak megfelelő rekordokat fő táblából a másodlagosba...
Korábban a program működött set of 1..255 változóval(ebbe kerültek bele a véletlen generált sorszámok, csak ugye a set az sorba rendeződik, így a véletlenszerűség elúszik):
procedure TKerdesForm.keresminden;
var i,j,k,l,m:integer;
szam:set of 1..255;
begin
torles;
randomize;
i:=StrToInt(edtkerdesszam.text);
edtkerdesszam.clear;
j:=foform.tblalap.recordcount;
szam:=[];
for k:= 1 to i do
begin
repeat
l:=random(j)+1;
until not(l in szam);
szam:=szam+[l];
foform.tblalap.setkey;
foform.tblalap.fields[0].asinteger:=l;
foform.tblalap.gotokey;
foform.tblmunka.insert;
for m:= 0 to foform.tblmunka.fieldcount-1 do
foform.tblmunka.fields:=foform.tblalap.fields(m);
foform.tblmunka.post;
end;
foform.tblmunka.first;
kerdesform.close;
end;Megcsináltam tömbösre, a sorszámok le is generálódnak, de valahol a setkey környékén meghal a progi:
procedure TKerdesForm.keresminden;
var i,j,k,l,m,n:integer;
szamok:TSzamok;
begin
n:=0;
torles;
randomize;
i:=StrToInt(edtkerdesszam.text);
edtkerdesszam.clear;
j:=foform.tblalap.recordcount;
// szam:=[];
TombNullaz(szamok);
for k:= 1 to i do
begin
repeat
l:=random(j)+1;
// until not(l in szam);
until not (TombBenneVan(szamok,l));
szamok[n]:=l;
foform.tblalap.SetKey;
foform.tblalap.fields[0].asinteger:=l;
foform.tblalap.gotokey;
foform.tblmunka.insert;
for m:= 0 to foform.tblmunka.fieldcount-1 do
foform.tblmunka.fields(m):=foform.tblalap.fields(m);
foform.tblmunka.post;
n:=n+1;
end;
foform.tblmunka.first;
kerdesform.close;
end;Ötlet esetleg??
-
hpmaster
csendes tag
Tisztelet fórumtársak!
Kérdésem annyi lenne, hogy mi a manó lehet az oka, hogy adatbáziskezelgetés közben (dBase IV) amikor befejeződik egy akt folyamat és az adatbázisba irkálás történik, beírja az adott dolgokat a mekfelelő sorszámú rekordba, majd ezután a legelső elemre ugrik, ennek következtében át kell menni az adatbázislistás oldalra a programban, kiválasztani azt a rekordot, amelyikkel eredetileg dolgozom, mert ha nem, akkor minden, amit ezután változtatok, értelemszerűen az első rekordban fog megtörténni.
Elég zavaró, ha az ember elfelejti, hogy az esemény befejeztével kullogjon át, és válassza ki az aktuális rekordot...
Mi okozhatja a hibát, vagy hogyan tudnám megmondani neki, hogy az a rekord legyen kijelölve, amit én szeretnék?
van egy rész a programban, ahol látszik, hogy átugrik a kijelölés, csak éppen azt nem tudom, hogy mi okozza... a POST?
Vagy hogyan tudok kijelölni másik rekordot? Úgytűnik, hogy a dbGrid összes index-el kapcsolatos tulajdonsága, csak olvasható... vagy mégsem? -
zka67
őstag
Nem kell ennyire túlbonyolítani!
procedure TMainForm.EditKeyPress(Sender: TObject; var Key: Char);
begin
if Length( TEdit(Sender).Text ) > 10 then
TEdit(Sender).Text := '';
end;Mindhárom Edit-ednek ugyanazt az OnKeyPress eventet állítod be (ezért neveztem át Edit1KeyPress-ről) és a TEdit(Sender)-rel megkapod a hívó elem adatait.
-
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
-
dany27
őstag
válasz
Gyuri16 #1836 üzenetére
nem formon kívülről babrálom!
Hanem van 3 olyan textbom amit egyformán kell elenőríznem a keypress eventnél így gondoltam hogy írok rá egy eljárást amit meghívok mind3 keypressnél és akkor így nem kell feleslegesen 3* ugyan azt leírnom.Csak valamiért azt mondja pl a tb_x.text-re hogy ez nem deklarált változó.... Pedig ugyan azon a formon belül van!
Am vissza térve az MSG-re. Az a gond hogy a beillesztésnek nem tudom milyen MSG-je van!
-
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.
-
dany27
őstag
Köszi! Jó alapodat kicsit kibővítve sikerült azt is megoldanom hogy tizedes vesszőt csak egyszer lehessen bevinni és csakis akkor hamár van előtte valamilyen szám. Valamint ha csak 1db nulla van a box-ban akkor csak tizedes vesző jöhet, utánna meg akármennyi 0-9 lévő szám kivétel tizedes vessző!
Am, de még egyféle képpen átlehet "verni" jobb klikk beillesztés, így akármit bevisz. Nah most vagy a jobb klikket kéne letiltanom vagy nincs valami msg(mint pl.: a CM_MOUSEENTER) amit küld a beillesztéskor? És azt elkapva esetleg lehetne nullázni amit küldene. Vagy csak simán jobb klikkre is bal klikként viselkedne....
Meg még1 olyan hogy ha írok egy saját függvényt, akkor hogyan tudom azt elérni hogy "lássa" a formom elemeit? mert ha csak simán csinálok egy procedurát akkor azt fogja kidobni h nem is meri mondjuk a tb_x.text nevű dolgot. Gondolom azt a típust kéne valahogy átadni neki amiben deklarálva van a textbox.. Csak nem tudom hogy hogyan kell. 4GL nyelvel eddig nem igen foglalkoztam!
Köszi!
-
zka67
őstag
-
dany27
őstag
Bocsi megint lenne egy kérdésem. Googleztam rá de semmi eredménye nem lett neki.
Nah szóval az lenne a kérdésem hogy ugye Pascalban ha azt szerettem volna elérni hogy csak oda illő karakter vigyen be a user akkor readkeyel beolvastam a leütött bill-t majd ha nekem megfelelt akkor kiírtam a képernyőre meg hozzá adtam a stringhez.
Ezt hogy tudom megoldani Delphiben. Mert itt readkeyel ugye nem megy....
Konkrétan egy TexBox-hoz szeretném azt megcsinálni hogy csak 0-9 közötti számokat illetve , lehessen bevinni.
Illetve felső indexbe lehet valahogy írni?Köszi megint!
-
dany27
őstag
Hi!
Úgy sikerült megoldanom hogy elkapom a CM_MOUSEENTER illetve LEAVE üzenetet de valamiért dob egy hatalmas hibát mikor ráhúzom az egerem a gombra.. Csak a képbuherálással van baja, msgboxot simán feldobatom vele.
Hoztam létre egy külön típust a gombnak.. Nah de itt a kód beszéljen inkább az!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type TButton = class(stdctrls.TButton)
img_pre: TImage;
procedure WhenMouseEnter(var Message:TMessage);message CM_MOUSEENTER;
procedure WhenMouseLeave(var Message:TMessage);message CM_MOUSELEAVE;
end;
type
Tfrm_main = class(TForm)
Button1: TButton;
img_pre: TImage;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_main: Tfrm_main;
implementation
{$R *.dfm}
procedure Tfrm_main.Button1Click(Sender: TObject);
begin
if messagebox(frm_main.Handle,'Valóban kiszeretnél lépni a programból?','Kilépés megerősítése',MB_YESNO)= IDYES then
application.terminate
end;
procedure Tbutton.WhenMouseEnter(var Message:TMessage);
begin
img_pre.Picture.LoadFromFile('img/egyik.jpg');
end;
procedure Tbutton.WhenMouseLeave(var Message:TMessage);
begin
img_pre.Picture.LoadFromFile('img/masik.jpg');
end;
end. -
dany27
őstag
válasz
Gyuri16 #1827 üzenetére
Delphi 7 Enterprise. Am nem onenter-re gondolsz? Mert onmouseenter nincs az eventek közt! Onenter meg másként funkcionál.. Az nem azt figyeli hogy felette van-e az egér hanem az elem tab-ját. Lehet én vagyok szerencsétlen de nekem ez jött le abból az eventből hogy azt csinálja...
-
dany27
őstag
Köszi! Am most nézem hogy Delphiben nincs onmouseover event??!!
Mousemove jó valamilyen szempontból csak ugye az minden egérmozdításra lefut, illetve megtudom oldani hogy ne fusson le csak egyszer de az igen orosz teknika...(rakok egy elágazást ami vizsgál egy logikai voltozót amit az első lefutás után hamissá teszek...)Kössz a segítséget!
-
dany27
őstag
válasz
Gyuri16 #1819 üzenetére
Idén kezdtük suliban Delphit és van egy project amit le kell adni e hónap végéig és minnél tökéletesebben szeretném kivitelezni, mert 100%os munkát nem tudott mutatni a tanár mert ő szerinte eddig nem adott be senki olyant. (Bár nem értem attól mit vár aki 2 hónapja tanulja...). Am én már tanultam más 4GL nyelvet illetve Pascalt is így szeretnék minnél közelebb lenni a 100%-hoz!
Am még1 olyan kérdés hogy szövegbuborékot(azt hiszem hogy így hívják) tudok benn valahogy kreálni?
Előre is kössz!
-
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
-
Gyuri16
senior tag
válasz
mézespálinka #1820 üzenetére
eloszor allits angol billentyuzetet (ha nem azod van)
p mellett jobbra van a [ -
mézespálinka
senior tag
Üdv!
Nagyon lámi kérdés: delphi 7-ben hogyan tudok [-t írni? nem veszi be sehogy, végigpróbáltam alt+gr+minden billentyűvel, de sehogy sem lehet. (rá kéne jönni mert nem szeretném végig bemásolgatni ctrl+c-vel-bár ahhoz is ugyanannyi bill kell, de akkor is
. Előre is köszi!
-
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) -
dany27
őstag
Hali!
Nem régen kezdtem Delphi-vel ismerkedni. Egy olyan kérdésem lenne hogy egy több form-ból álló programocskát szeretnék készíteni. De egy úgy hogy ha a felhasználó rányom egy gombra akkor ne új ablakot dobjon fel hanem töltse be abba az ablakba az adott formot. Mindegyiket elkészíteném előre, megírnám hozzá az összes eseményt csak cserélgetésre kéne valami tipp.
Előre is köszi! -
zka67
őstag
Atmel AT89C2051-et használok, ennek 6 ki és 6 bemenetet csináltam +1 led. Ha több kimenet kellene, akkor az AT89S8253-at használnám, de eddig még mindenhová elég volt a 6-6. A C2051-hez csináltam programozót, az S8253 meg ISP-s, ahhoz is csináltam egy soros programozót (C2051-el
). Ezt a két típust szoktam használni, a PIC-eket nem szeretem, én intel procikon nőttem fel és képtelen vagyok megtanulni a PIC-et. Igaz nem is nagyon erőltettem a dolgot. Mondom, a C2051-et ~160 Ft+áfáért veszem.
Most van egy melóm, amihez lehet, hogy kevés lesz a 6 kimenet, de nem csinálok új nyákot, hanem inkább két soros portot fogok használni.
-
zka67
őstag
Én meg teljesen leálltam az LPT portról, kizárólag soros portot használok. Az még azért egy mindig van az alaplapon, ha több kell, akkor van 4 portos kártya, vagy van USB-Soros átalakító. Egy 160 Ft-os mikrokontroller kell hozzá, és kész a soros-párhuzamos átalakító, be és kimenetekkel. Pár sor a program, ami a mikrokontrollerbe kell. Írtam hozzá egy DLL-t is, ami eventet generál, ha változás van valamelyik bemeneten, bitenként (is) lehet vezérelni a kimeneteket, és nem kell tudnod, hogy az épp egy soros porton megy.
-
Teng
aktív tag
Köszike, a gyors és korrekt választ még egyszer
KB fél éve leálltam a témával mert elakadtam gépfrissítés is volt és gondoltam inkább lpt karira porbálok meg alapozni, mert az alaplapokon már nem nagyon van LPT, de pci még egy darabig csak akad, és ha esetleg úgy alakul a progi még akár pci-e LPT karival is fog működni szerintem
-
zka67
őstag
-
Teng
aktív tag
Köszike. Istenkirály vagy
Anno az io.dll-t használtam, de ott az lpt kari már nem ment.
Azt elmondanád ez mit csinál:"Result := Inp32($0379);"
Ha én csak az outputot akarom használni akkor elég "function Out32(Addr:word;b:byte):byte; stdcall; external 'inpout32.dll';" ez is ugye? nem kell a másik...
-
zka67
őstag
Nagyon egyszerű a dolog: kell egy Inpout32.dll, amit vagy a program könyvtárába teszel vagy a System32-be.
ZIP közvetlen letöltése, a kicsomagolás után a dll-t az inpout32_source_and_bins\binaries\Dll könyvtárban találod. Neked csak ez a ~12kB-os fájl kell.
A delphi forrásba pedig az implementation után beteszed ezt a két sort:
function Out32(Addr:word;b:byte):byte; stdcall; external 'inpout32.dll';
function Inp32(Addr:word):byte; stdcall; external 'inpout32.dll';Aztán már csak értelemszerűen használod, pl:
Out32($0378,0);
Result := Inp32($0379); -
Teng
aktív tag
Egy kis segítség kellene. Delphi-ben csináltam led villgotató progit: "PortOut($378,érték)" parancsal. Minden szép és jó volt, de közben úgy alakult, hogy alaplapcsere volt és nyomtatóportos kártyára váltottam. A kari LPT2őn van és a címe CB00-tól kezdődik, ha ezt berírom a 378 helyére, kiakad a program, esetleg valami tipp hogy használhatnám led villogtatásra az lpt-s karim?
Amúgy sajna az automata beállítás sötétszürke az eszközkezelő lpt2 ucsó fülön tehát a címét nem tudom módosítani.
-
RootRulez
félisten
válasz
RootRulez #1804 üzenetére
És meg is válaszolnám a kérdésemet:
uses COMOBJ;
//Deklarálás
procedure Shell_MinimizeAll;
var
Shell : OleVariant;
begin
Shell := CreateOleObject('Shell.Application') ;
Shell.MinimizeAll;
end;//Használata
procedure TForm1.Button1Click(Sender: TObject);
begin
Shell_MinimizeAll;
end; -
RootRulez
félisten
Sziasztok!
Hogyan tudnám megoldani, hogy a programom azt érje el, mintha az Asztal megjelenítésére kattintottam volna? Tehát, mindent levigyen a tálcára...
Arra gondoltam, hogy a program szimulálná, mintha lenyomtam volna a win+d billentyűkombinációt. De sajna vagy csak a Win billentyűt, vagy csak a D-t tudom szimulálni külön, egyszerre nem megy.
Tudnátok vmi megoldást a problémámra?
Köszi: RR
-
klambi
addikt
szevasztok
xp re kéne nekem delphi, tud ebben valaki segíteni, mert elég laikus vagy ebben a témában -
csewe
csendes tag
sziasztok
az lenne a kérdésem,hogy a for alatti hátteret hogyan tudnám kiolvasni.
van egy kódom, de ez csak a háttérképet olvassa a képernyőn lévő ikonok és egyéb
PL.nyitott ablakok képét nem menti le.procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered:=TRUE;
end;procedure TForm1.WMPaint;
begin
PaintDesktop(Canvas.Handle);
end;köszi
Új hozzászólás Aktív témák
Hirdetés
- PowerColor RX 6700 XT 12GB GDDR6 RED DEVIL Eladó!
- MSI RX 570 8GB GDDR5 ARMOR OC Eladó!
- Legion 5 16IRX9 16" QHD+ IPS i5-13450HX RTX 4060 16GB 512GB NVMe magyar vbill gar
- SK Hynix Platinum P41 2TB M.2 NVME PCI-E 4.0 x4 - Új - 7000-6500 MBs - Eladó!
- Verbatim Vi5000 2TB M.2 NVME PCI-E 4.0 x4 - Új, bontatlan - Eladó!
- BESZÁMÍTÁS! CSAK KIPRÓBÁLT! ASUS ROG Ally X (2024) 1TB kézikonzol garanciával hibátlan működéssel
- BenQ PD-3200-U Monitor - Designer 4K 32"
- Bomba ár! Dell Latitude E6520 - i7-2760QM I 8GB I 256SSD I Nvidia I HDMI I 15,6" HD+ I W10 I Gari!
- Lejárt a gyártói garancia? Mi tovább támogatjuk az IT infrádat!
- BESZÁMÍTÁS! Asus M5A99FX PRO R2.0 990FX chipset alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest