delphi.1034goxi,
-> #1033, goxi>> Ovo mora da radi...
Ne radi...Sve sam uradio kao sto si rekao, ali on mi pronadje jednu
vrednost (postavi mi label1.caption da je 0) i to je sve. A ja bih
da mi na svake dve sekunde izbacuje novi broj...I jos nesto. Ne
znam kako da postavim Range. Kada mu stavim Random(0<=x<100) on mi
prijavi incompatible types (a postavio sam da mi je X integer).
Pomagajte, ko zna...!
-------------------------------------------------------------------
Uspeo sam uz Dusanovu (Dusandz) pomoc. Bio je problem u sledecem.
Trebalo je umesto Random(x), da stoji x:=Random(100). Naravno ovo
100 predstavlja Range.
Sada me muci drugi problem. :)))
Ne znam da izracunam zbir svih vrednosti jedne kolone u tabeli.
Pokusao sam sa sledecim :
Var zbir : integer;
Begin
zbir:=0;
table1.first;
repeat
table1.edit;
zbir:=zbir+table1.fieldbyname('Kolona1').Value;
table1.post;
until table1.eof;
label1.caption:=inttostr(zbir);
Nece...:((( Zablokira...
Help.
delphi.1035voyager,
-> #1032, voyagerMoja greska...
Ovo cak moze i bez ikakvih promenljivih...
Label1.Caption := IntToStr(Random(100));
Prema tome => 0 <= Label1.Caption < 100
E sad ako ti treba da broj bude veci od nule onda ovako:
Label1.Caption := IntToStr(Random(100) + 1);
ako ovo ne radi onda ne znam sta mu je...
btw koji delphi imas?
VoYaGeR
delphi.1036goxi,
-> #1035, voyager>> btw koji delphi imas?
Delphi 4.0 C/S
Imam dva pitanja:
1. Kako da saberem sve vrednosti jedne kolone u table komponenti ?
Pokusao sam sa sledecim, ali ne radi (zablokira mi program) :
Var zbir : integer;
Begin
zbir:=0;
Table1.first;
repeat
table1.edit;
zbir:=zbir+table1.fieldbyname('Kolona1').Value;
table1.post;
until table1.eof;
label1.caption:=inttostr(zbir);
end;
POMOC!!!
2. Na ovoj nasoj piratskoj verziji Delphi 4.0 C/S, ne mogu nigde da
nadjem Delphi 1.0, zna li neko ima li ga uopste na ovom disku ?
delphi.1037qpele,
-> #1033, goxi
> znam kako da postavim Range. Kada mu stavim Random(0<=x<100) on mi
> prijavi incompatible types (a postavio sam da mi je X integer).
> Pomagajte, ko zna...!
Random(100) daje slucajan broj 0-100.
delphi.1038voyager,
-> #1036, goxiOvako:
Procedure sta_ja_znam;
var zbir : integer;
Begin
zbir := 0;
Table1.First;
While NOT Table1.EOF do Begin
Inc(zbir, Table1.Fields[0].AsInteger);
Table1.Next;
End;
End;
delphi.1039emajsijuen,
-> #1037, qpele>> Random(100) daje slucajan broj 0-100.
Jock. Random(100) daje slucajan broj 0-99.
Pozdrav, Vlada...
delphi.1041goxi,
MOLIM NEKOGA DA MI ODGOVORI !!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Interesuje me, kojeg tipa (type) treba da mi bude neki field u
tabeli da bi podrzavao brojeve tipa 3.4 (znaci sa zapetom) ???
Hvala!
delphi.1042voyager,
-> #1041, goxiAko je pitanje za Paradox tabelu onda moze da bude 'number'.
VoYaGeR
delphi.1043zdravkod,
Da li neko ima source code za program nbtstat.exe koji se dobija uz
Windows? Ako ne source, onda barem ideju gde mogu da source za taj
program ili barem za program koji radi istu stvar...
Zdravko
delphi.1044kiklop,
-> #1043, zdravkod> Da li neko ima source code za program nbtstat.exe koji se dobija uz
> Windows? Ako ne source, onda barem ideju gde mogu da source za taj
> program ili barem za program koji radi istu stvar...
>
> Zdravko
SAMPLE: Netbios.exe: NetBIOS Client and Server Sample
Last reviewed: November 25, 1997
Article ID: Q177314
The information in this article applies to:
Microsoft Win32 Software Development Kit (SDK) on the following platforms: -
Microsoft Windows NT versions 3.51, 4.0 - Microsoft Windows 95 OEM Service
Release, version 2
SUMMARY
Netbios.exe is a NetBIOS programming sample that implements an echo server and
client. The sample illustrates how a client and server should be written in
order to make the application protocol and LAN Adapter (LANA) independent. It
also shows how to avoid common mistakes programmers frequently make when
writing NetBIOS applications under WIN32.
The following file is available for download from the Microsoft Software
Library:
~ Netbios.exe (size: 45215 bytes)
For more information about downloading files from the Microsoft Software
Library, please see the following article in the Microsoft Knowledge Base:
ARTICLE-ID: Q119591
TITLE : How to Obtain Microsoft Support Files from Online Services
For a discussion about LANAs see the following article in the Microsoft
Knowledge Base:
ARTICLE-ID: Q138037
TITLE : How to Use LANA Numbers in a 32-bit Environment
MORE INFORMATION
This file is associated with the NetBIOS echo client/server sample.
There are four source files associated with this application:
client.c - source code for client app
server.c - source code for server app
nbcommon.c - NetBIOS functions common to client and server
nbcommon.h - common NetBIOS defines and prototypes
Compilation & Execution
These files compile into two applications: client.exe and server.exe.
First, compile nbcommon.c into object code. In a DOS prompt, type:
cl /c nbcommon.c
Next, compile the two applications with the following commands:
cl -o client client.c nbcommon.obj netapi32.lib
cl -o server server.c nbcommon.obj netapi32.lib
To run the server:
server SERVER-NAME
SERVER-NAME uniquely identifies the echo service. All clients
who want to connect to the server should connect using this name.
To run the client:
client CLIENT-NAME SERVER-NAME
CLIENT-NAME uniquely identifies the client. SERVER-NAME identifies
which NetBIOS server the client wishes to connect to. Both of
these names are NetBIOS names which are formed as follows:
1. Names are no longer than 16 characters long.
2. Names are unique. Only one instance of a name can
exist in the network at any time.
3. The 16th character must be greater than 0x20. These
values 0x20 and below are reserved and designate
certain this name as a machine name, user name, etc.
Consult a NetBIOS reference for the exact use of these
reserved values.
For example, the server is executed on a machine named "AJONES1" with this
command:
server MYSERVER1
This establishes the server process as MYSERVER1. This name is registered with
the machine and can be verified by running:
nbtstat -a AJONES1
which will display a list of all names registered with the machine including
"MYSERVER1." Please note that nbtstat.exe is a utility that is installed only
when the TCP/IP protocol is installed. It is a very useful utility for
debugging certain aspects of Netbios programs, and I would highly recommend
installing it.
Execute the client from a machine named "AJONES2" with this command:
client MYCLIENT MYSERVER1
The client will connect to the server, send a string, and read the string back
from the server.
Keywords : NtwkNetBios
Version : WINNT:3.51,4.0
Platform : Win95 winnt
Issue type : kbfile
-------------------------------------------------------------------------------
-
===============================================================================
=
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS"
WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER
EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS
SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN
IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY
OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF
LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION
MAY NOT APPLY.
Last reviewed: November 25, 1997
ę 1998 Microsoft Corporation. All rights reserved. Terms of Use.
netbios.exedelphi.1045voyager,
Pokusao sam da otvorim Access bazu iz delphija i uvek mi trazi
username i password iako pri kreiranju baze nisam stavio nikakav
pass. Da li neko zna o cemu se radi?
VoYaGeR
delphi.1046ventura,
-> #1045, voyager> Pokusao sam da otvorim Access bazu iz delphija i uvek mi trazi
> username i password iako pri kreiranju baze nisam stavio nikakav
> pass. Da li neko zna o cemu se radi?
skini sa http://astalavista.box.sk program koji ce da skine taj pass
i resena stvar :)
delphi.1047voyager,
-> #1046, ventura>> skini sa http://astalavista.box.sk program koji ce da skine taj
>> pass i resena stvar :)
Izgleda si citao svaki drugi red moje poruke...
NISAM STAVIO NIKAKAV PASS U BAZU!
VoYaGeR
delphi.1048ventura,
-> #1047, voyager> Izgleda si citao svaki drugi red moje poruke...
> NISAM STAVIO NIKAKAV PASS U BAZU!
pa da nisi stavljao nikakav pass nebi ti se to pojavljivalo :)
lepo crackujes fajl i ides dalje... sta je sad tu problem...
delphi.1049kiklop,
-> #1045, voyagerČak iako se ne navede password i username pri kreiranju Access baze
sam Access odnosno JET engine kreira administratorski nalog koji se
mora koristiti pri ODBC konekciji.
user: ADMIN
pass: ADMIN
Darko.
delphi.1050voyager,
-> #1049, kiklopNece ni to.
VoYaGeR
delphi.1051kiklop,
-> #1050, voyager> Nece ni to.
>
> VoYaGeR
Neće??? Pa to kod mene radi, a i probao sam to na više različitih mašina.
Jesi li stavio user i pass malim slovima jer tako treba ( (c) by SPS).
Koji delphi koristiš?
Kako si konfigurisao ODBC alias?
Da li ti je ispravno instaliran Microsoft ODBC drajver za access?
Darko
delphi.1052voyager,
-> #1051, kiklopProbao sam i velikim i malim...nece..uvek mi kaze "Invalid
parameter".
Koristim Delphi 4 C/S. Sto se tice ODBC-a to nisam dirao. A da ne
treba tu nesto da promenim?
Evo kako sam radio u Delphiju.
Dakle, na prazan form stavim komponentu database. U Object
Inspectoru upisem lokaciju fajla i podesim koji je drajver. Nista
drugo ne diram. Onda postavim Connected na true i trazi mi user i pass.
VoYaGer
delphi.1053kiklop,
-> #1052, voyager> Evo kako sam radio u Delphiju.
>
> Dakle, na prazan form stavim komponentu database. U Object
> Inspectoru upisem lokaciju fajla i podesim koji je drajver. Nista
> drugo ne diram. Onda postavim Connected na true i trazi mi user i pass.
>
> VoYaGer
Ovo nije pravilan način da se povežeš sa Access bazom.
Uz BDE se isporučuju određeni generički drajveri za najpopularnije formate
baza, kao što su PARADOX, Access, SQL server, SYBASE itd, uz sve to
moguće je koristiti bilo koji drugi ODBC drajver.
Ako želiš da se direktno povežeš na Access bazu sa generičkim BDE drajverom
treba da uradiš sledeće:
1. Stavi na formu database komponentu
2. U DatabaseName property upiši neko ime kojim ćeš da označiš naziv
baze (nikako upisivati putanju).
3.Kao drajver izaberi MSACCESS
4. U Params property upiši sledeće:
DATABASE NAME={putanja do baze}
USER NAME=Admin
OPEN MODE=READ/WRITE
SYSTEM DATABASE={putanja do system.mdw datoteke}
PASSWORD=
Obavezno se mora navesti putanja do system.mdw datoteke u kojoj su smešteni
svi nalozi korisnika kojima je dozvoljen pristup bazi, sem u slučaju kada se
ova
datoteka nalazi na podrazumevanom mestu (windows\system direktorijum).
Ovu datoteku praviš sa programom WRKGADM.EXE koji se isporučuje uz
Access. Pri kreiranju novog system.mdw fajla uvek se kreira administratorski
nalog Admin bez passworda. Sa ovim nalogom imaš pristup
kompletnoj bazi, sa svim pravima.
S obzirom da si već postavio Username i pass možeš LoginPrompt property
da postaviš na false. I to je to.
Darko.
delphi.1054voyager,
-> #1053, kiklopHvala za ovako detaljno objasnjenje...
Ipak..kada sam stavio DatabaseName = MSACCESS nije hteo da prihvati,
prijavljivao je neku gresku:
-----------------------------
General SQL error
The Microsoft Jet database engine cannot open the file ''. It is
already opened exclusively by another user or you need per
ALIAS: PROBA
-----------------------------
ali sam uspeo tako sto sam AliasName postavio na MS Access 97.
E sad imam 2 pitanja.
1. Kako da pogledam sadrzaj tabela u bazi?
2. Sta je sve potrebno kopirati zajedno sa programom ako hocu da mi
to radi i na drugim masinama?
VoYaGeR
delphi.1055kiklop,
-> #1054, voyager> Hvala za ovako detaljno objasnjenje...
> Ipak..kada sam stavio DatabaseName = MSACCESS nije hteo da prihvati,
> prijavljivao je neku gresku:
> -----------------------------
> General SQL error
> The Microsoft Jet database engine cannot open the file ''. It is
> already opened exclusively by another user or you need per
> ALIAS: PROBA
> -----------------------------
U property DataBaseName treba da staviš bilo šta a putanju i ostale parametre
upisuješ u Params property, kao što sam i napisao.
Hm, da može i tako ali je nezgodno iz više razloga. Moraš onda na svakoj
odredišnoj mašini da instaliraš Access ODBC drajvere (tj. Office), zatim
da praviš ODBC Alias itd. Korišćenjem generičkog drajvera izbegavaš
sve ove petljancije.
> ali sam uspeo tako sto sam AliasName postavio na MS Access 97.
> E sad imam 2 pitanja.
> 1. Kako da pogledam sadrzaj tabela u bazi?
Jednostavno, ako želiš da pogledaš sadržaj cele tabele, stavi na formu
Table komponentu i DataSource komponentu.
U Table komponenti podesi property DataBaseName tako da bude isto kao i u
Database komponenti i Navedi ime tabele u TableName property-ju.
U DataSource podesi DataSource property na Table komponentu (npr. Table1).
Zatim stavi na formu DbGrid i u njegov properti DataSource postavi već
postojeći
Datasource.
Ako ti je veza sa bazom otvorena (Database1.Connected :=true,
Table1.Active :=true), automatski će ti se popuniti grid sa sadržinom tabele.
Za ostalo pročitaj malo help, a imaš i dovoljno primera koji dolaze uz Delphi.
> 2. Sta je sve potrebno kopirati zajedno sa programom ako hocu da mi
> to radi i na drugim masinama?
>
> VoYaGeR
Kao prvo sam program i bazu, zatim BDE (Borland Database Engine) i potrebne
ODBC drajvere.
Vrlo je bitno ispravno podesiti i instalirati BDE.
Postoje dva načina za ovo. Prvi je da se svi neophodni dll-ovi iskopiraju u
isti
direktorijum gde je i aplikacija.
Problem sa ovim se može javiti ukoliko na dotičnoj mašini već postoji
instalacija BDE-a. Evo i citat iz helpa:
The search algorithm for loading the BDE dll, Idapi32.dll, is:
1 Current directory (might be different from applications startup
directory!).
If not found, then:
2 BDE path registry entry:
HKEY_LOCAL_MACHINE/ SOFTWARE/ Borland/
Database Engine/ DLLPATH/xxxxx
If not found, then:
3 LoadLibrary algorithm. Applicationĺs startup directory.
1 Current directory. If not found, then
2 System directory. If not found, then
3 Windows directory. If not found, then
4 PATH environment
Loading driver dll's follows the same pattern, except the first directory to
be searched is the directory where Idapi32.dll loaded (replaces step1).
Note: Loading from a current directory of an application might be useful in
certain situations, but it effectively prevents other BDE applications from
running simultaneously, because they would likely find another Idapi32.dll and
fail at initialization time (DbiInit) with DBIERR_MULTIPLEIDAPI.
Na primer ukoliko koristiš generički drajver za Access i radi se o Jet 3.0
verziji
pri čemu isključivo koristiš Table komponentu za pristup tabelama
biće ti potrebni sledeći fajlovi:
IDPROV.DLL BDE DataSet provider DLL
IDAPI32.DLL Primary BDE DLL
BLW32.DLL International Language Driver support functions
IDR20009.DLL Resource file for error messages
IDDAO32.DLL Access Driver for Access 95 and Jet Engine 3.0.
usa.bll
Ako pak ideš na ODBC drajver moraćeš da pridodaš još podršku za ODBC
drajvere (IDODBC32.DLL) i naravno da posebno instaliraš Access
ODBC drajver.
Drugi način je da BDE iskopiraš u proizvoljni direktorijum i zatim u
registry bazi napraviš ključ:
HKEY_LOCAL_MACHINE/ SOFTWARE/ Borland/
Database Engine/ DLLPATH/xxxxx
Gde ćeš navesti direktorijum gde ti je smešten BDE.
Za ostalo ti je dovoljno eksperimentisanje (i čitanje helpa).
Darko
delphi.1056voyager,
-> #1055, kiklopHvala puno!
VoYaGeR
delphi.1057voyager,
-> #1054, voyagerJos jedno pitanje :)
U bazi sam napravio tabelu koju sam otvorio u delphiju. E sad u
accessu sam podesio da mi je field "proba" integer koji treba da
ima zarez na svake tri cifre.. znaci npr. 100,000,000.00
Problem je u tome sto ga access prikazuje kao 100,000,000.00
a delphi kao 100000000 , znaci bez zareza i decimala... da li znas
mozda kako da resim ovo?
VoYaGeR
delphi.1058kojai,
-> #1057, voyager>> a delphi kao 100000000 , znaci bez zareza i decimala... da li znas
Steta stvarno sto nisu napravili naredbu tipa SrediMiBroj nego ces morati da
pravis proceduricu za to.
delphi.1059voyager,
-> #1058, kojai>> Steta stvarno sto nisu napravili naredbu tipa SrediMiBroj nego
>> ces morati da pravis proceduricu za to.
Ne shvatas.
Access mi broj iz tabele prikazuje sa zarezima, dok delphi isti
broj iz iste tabele prikazuje bez zareza. Znaci tu ne pomaze
nikakva procedura jer kada sam u delphiju unosio broj, "rucno" sam
stavio zareze. Cim sam stavio Enter on ja obrisao zareze, dok u
accessu ne moram da stavljam zareze, on ih sam doda cim lupim enter.
VoYaGeR
delphi.1060voyager,
Jel zna neko kako da smestim program u tray?
VoYaGeR
delphi.1061qpele,
-> #1060, voyager> Jel zna neko kako da smestim program u tray?
>
> VoYaGeR
Procitaj poruke iz teme cpp od pre par dana.
delphi.1062voyager,
-> #1061, qpele>> Procitaj poruke iz teme cpp od pre par dana.
Procitao sam ali i dalje ne znam kako da funkciju Shell_NotifyIcon
upotrebim u delphiju. Ako bi mogao malo da pojasnis bio bih ti vrlo
zahvalan.
VoYaGeR
delphi.1063kiklop,
-> #1062, voyagerMa pogledaj na nekom od sajtova sa delphi komponentama, imaš ih
najmanje 100 za smeštanje ikone u tray.
na primer:
http://www.torry.ru/
ili delphi super page itd.
delphi.1064zdravkod,
Kako da procitam koje sve klonekcije postoje u Dial-Up Networking i
koji su im trenutno podeseni username-ovi.
Zdravko
delphi.1065zdravkod,
Kako da pratim rad modema pod Windowsom. Konkretno mi treba neki
source koji bi mogao da provali kada je modem uspostavio vezu
(znaci kada javi CARRIER) i kada je ta vezza prekinuta (NO
CARRIER).
Zdravko
delphi.1067voyager,
-> #1065, zdravkodEvo komponenta za delphi 4.
Imas: RI, CTS, DSR, DCD, RTS, DTR, RD, SD
Ako ti nije jasno kako da instaliras ili upotrebis samo reci...
Inace ovo je sa ww.torry.ru ako ti ovo ne odgovara idi tamo nacices
jos mnogo ovakvih stvarcica.
VoYaGeR
commst.zipdelphi.1068zdravkod,
Kako da iz svoje aplikecije na nekoj drugoj aplikaciji popunim
odredjenu Edit kontrolu sa odredjenim tekstom (ako moze ne
koristeci DDE). Inace znam kako da nadjem hadle prozora koji treba
da primi podatke, ali me interesuje sta treba da uradim da bi na
njemu popunio Edit-e.
Zdravko
delphi.1069kiklop,
-> #1068, zdravkod> Kako da iz svoje aplikecije na nekoj drugoj aplikaciji popunim
> odredjenu Edit kontrolu sa odredjenim tekstom (ako moze ne
> koristeci DDE). Inace znam kako da nadjem hadle prozora koji treba
> da primi podatke, ali me interesuje sta treba da uradim da bi na
> njemu popunio Edit-e.
>
> Zdravko
Evo i kako.
procedure TForm1.Button1Click(Sender: TObject);
var tekst:PChar;
begin
{primer podrazumeva da se na test formi nalaze dva edit boxa i dugme
u Edit1 se upisuje tekst a u Edit2 Handle prozora (Željenog edit boxa) kao
integer (win 3.1) ili LongInt (za win95). Trenutni primer je iz delphija
1.0}
tekst := StrAlloc(Length(Edit1.text)+1);
StrPCopy(tekst,Edit1.text);
SendMessage(StrToInt(Edit2.Text),WM_SETTEXT,word(0),LongInt(tekst));
StrDispose(tekst);
end;
Darko
delphi.1070zdravkod,
-> #1069, kiklopOvo radi, ali ne potpuno. Ja pronadjem Handle prozora na kome se
nalaze Edit kontrole koje treba da popunim i tu vrednost stavim u
Edit2.Text i posle pritiska na dugme on mi vrednost iz Edit1.Text
upise u Caption prozora koji je primio podatke. Valjda znaci da
vrednost Edit2.Text treba da bude Handle Edit kontrole koja treba
da primi podatke, a ja ne znam kako da dobijem taj Handle. Znaci,
pitanje je kako da dobije Handle neke Edit kontrole?
Zdravko
delphi.1071kiklop,
-> #1070, zdravkod> Ovo radi, ali ne potpuno. Ja pronadjem Handle prozora na kome se
> nalaze Edit kontrole koje treba da popunim i tu vrednost stavim u
> Edit2.Text i posle pritiska na dugme on mi vrednost iz Edit1.Text
> upise u Caption prozora koji je primio podatke. Valjda znaci da
> vrednost Edit2.Text treba da bude Handle Edit kontrole koja treba
> da primi podatke, a ja ne znam kako da dobijem taj Handle. Znaci,
> pitanje je kako da dobije Handle neke Edit kontrole?
>
> Zdravko
Mislio sam da ti je poznata i ta procedura ali pošto nije da malo pojasnim.
Svaka Windows aplikacija se sastoji od barem jednog glavnog prozora
(forma u DElphiju) i određenog broja kontrola na njemu. Svaka od tih
kontrola su u stvari novi prozori koji su deca prozora na kome se
nalaze.
Svaki prozor bez obzira na njegov tip ima naziv klase i određeni identifikator.
Da bi odredio handle neke kontrole na formi (prozoru) neke druge aplikacije
kao prvo moraš da odrediš handle samog prozora koji te zanima. Ovo se
uglavnom radi sa API funkcijom FindWindow (win 3.1/95), mada postoji i
drugi nešto kompleksniji način. Da bi odredio prozor mora ti biti poznat
bilo naziv njegove klase koja se registruje pri njegovom kreiranju
(npr. TForm1), bilo Caption (najbolje je kada znaš oba). Zatim pozivaš
funkciju FindWindow koja će ti vratiti handle prozora ako ga pronađe.
Sada predstoji problem određivanja handlova za kontrole na formi.
U delphiju je generički naziv klase za editbox TEdit. Pošto je Editbox
kontrola bez captiona moraćeš da se osloniš samo na ovaj podatak.
Određivanje samog handle-a se može uraditi na više načina. Ja sam
kao primer odabrao API EnumChildWindows. Ovaj API prosleđuje vrednosti
handle-ova svih kontrola na datoj formi callback proceduri EnumChildProc.
Pošto procedura nije implementirana u samom delphiju treba je ručno deklarisati
i u njoj vršiti proveru klase trenutnog prozora sa nama poznatom klasom TEdit.
Kada se poklope vrednosti možemo smatrati da smo dobili potreban podatak i
dalji rad se prekida. Ova metoda radi samo ukoliko je naziv klase editboxa
jedinstven na datoj formi. Ukoliko nije onda se sve ovo mora odraditi malo
drugačije.
Ali da ne pričam previše evo kompletne implementacije koja se zasniva na
proširenju prethodnog primera sa dva editboxa i jednim dugmetom. Sada
je dodato još jedno dugme koje aktivira potragu za handle-om i upisuje ga
u edit2. Sve ostalo je isto. Za detalje pogledaj API help. (i ovaj primer je
urađen
u delphiju 1.0, uz minimalne izmene radiće i na novijim verzijama).
unit Unit1;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
buffer:PChar;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{Implementacija callback funkcije}
function EnumChildProc(hwnd :HWnd; lParam :LongInt):Integer; export;
var
forma : TForm1;
begin
forma := TForm1(lParam);
GetClassname(hwnd,forma.buffer,32);
if ( StrComp(forma.buffer,'TEdit') = 0 ) then begin
forma.Edit2.Text := IntToStr(hwnd);
EnumChildProc := 0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var tekst:PChar;
begin
tekst := StrAlloc(Length(Edit1.text)+1);
StrPCopy(tekst,Edit1.text);
SendMessage(StrToInt(Edit2.Text),WM_SETTEXT,word(0),LongInt(tekst));
StrDispose(tekst);
end;
procedure TForm1.Button2Click(Sender: TObject);
var test:HWnd;
ChildProc :TFarProc;
begin
test := FindWindow('TForm1','Form1');
ChildProc := MakeProcInstance(@EnumChildProc,HInstance);
EnumChildWindows(test,Childproc,LongInt(self));
FreeProcInstance(ChildProc);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
buffer := StrAlloc(33);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
StrDispose(buffer);
end;
end.
Darko
delphi.1072milko,
Ima li neko k00l resenje za crtanje u delphiju a da bude brzo?
Probao sam preko paintbox.canvas.*, i isto to preko image kontrole,
ali oba su suvise spora. Tacnije, trebam metodu za prikazivanje
like iz buffera na ekran. Znam da je resenje ddraw, ali za ovo sto
radim netju ddraw. Btw, ima li neko c++ builder na cd-u i voljan je
da ga posudi na kopiranje ili da u zamenu za izvesnu kolicinu
okupatorskih?
delphi.1073kiklop,
-> #1072, milko> Ima li neko k00l resenje za crtanje u delphiju a da bude brzo?
> Probao sam preko paintbox.canvas.*, i isto to preko image kontrole,
> ali oba su suvise spora. Tacnije, trebam metodu za prikazivanje
> like iz buffera na ekran. Znam da je resenje ddraw, ali za ovo sto
> radim netju ddraw. Btw, ima li neko c++ builder na cd-u i voljan je
> da ga posudi na kopiranje ili da u zamenu za izvesnu kolicinu
> okupatorskih?
Ako se radi o bitmapi, ne moraš da koristiš paintbox ili image. Dovoljan ti
je i canvas same forme (form1.Canvas) koji radi istu stvar. Što se tiče brzine
ako ne želiš da koristiš VCL onda se okreni API-ju ( na kraju krajeva sve VCL
klase predstavljaju omotač oko windows API funkcija ). Evo i primera koji
daje sam Borland (jeste da je za c++ Builder ali poslužiće).
Question and Answer Database
FAQ2361C.txt What is the fastest way to draw graphics...
Category :Windows API
Platform :All
Product :C++Builder 3.x
Question:
What is the fastest way to draw graphics to the screen, without
using DirectX?
Answer:
While the VCL does provide very fast graphic operations with a
minimum of work and overhead, there are times when direct access to
the windows GDI is necessary for the ultimate in performance, since
there is some amount of overhead in using object oriented VCL canvas
objects. The following example demonstrates creating a Window memory
dc (Display Context) to draw upon. Ideally, you will want to create
your dc and associated bitmap, pen, brush and font objects during your
application's startup, and destroy the objecs upon your applications
termination. Note that when a Windows dc is created, it automatically
has a 1 pixel by 1 pixel monochrome bitmap, a stock pen, a stock
brush, and a stock font associated with it. It is your responsibility
to create and destory additional objects you wish to associate with
the dc. You must also never destroy an object while it is associated
(selected into) a dc, and you must never delete the Windows stock
objects.
Example:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HDC dc; //handle to a display contect
HDC memdc; //handle to a display contect
HBITMAP membitmap; //handle to a bitmap
HBITMAP oldmembitmap; //handle to a bitmap
HPEN pen; //handle to a pen
HPEN oldpen; //handle to a pen
HBRUSH brush; //handle to a brush
HBRUSH oldbrush; //handle to a brush
//retrieve a handle to the screen dc so we can create one like it
dc = GetDC(0);
//create a dc that is compatable with the screen
memdc = CreateCompatibleDC(dc);
//create a bitmap surface thats compatible with the screen
//note: if you want a monochrome bitmap pass zero instead of "dc"
membitmap = CreateCompatibleBitmap(dc, 100, 100);
//release the screen dc as soon as possible
ReleaseDC(0, dc);
//select our bitmap surface into our dc and remember the old bitmap
oldmembitmap = SelectObject(memdc, membitmap);
//initialize our dc by painting it white,
//otherwise it will contain random pixel values
PatBlt(memdc,
0, 0,
100, 100,
WHITENESS);
//create a solid red pen that is 2 pixels wide
pen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
//select our new pen into the dc, and remember the old default pen
oldpen = SelectObject(memdc, pen);
//create a solid blue brush
brush = CreateSolidBrush(RGB(0, 0, 255));
//select our new brush into the dc, and remember the old brush
oldbrush = SelectObject(memdc, brush);
//lets draw a rectangle
Rectangle(memdc, 0, 0, 100, 100);
//copy form our dc to the forms canvas
BitBlt(Form1->Canvas->Handle, //destination
0, 0, //x,y start point on the form
100, 100, //the width and height of our bitmap
memdc, //the source dc
0, 0, //blt from 0,0 in the source
SRCCOPY); //COPY form source operation
//select the old default brush into our dc
SelectObject(memdc, oldbrush);
//delete the brush we created
DeleteObject(brush);
//select the old default pen into our dc
SelectObject(memdc, oldpen);
//delete the pen we created
DeleteObject(pen);
//select the old default bitmap into our dc
SelectObject(memdc, oldmembitmap);
//delete the bitmap we created
DeleteObject(membitmap);
//delete the dc we created
DeleteDC(memdc);
}
delphi.1074zdravkod,
-> #1071, kiklopHvala za ovo opsirno objasnjenje.
Zdravko
delphi.1075milko,
-> #1073, kiklop10x a lot. Ovo savrseno radi. Btw, da li imas koji primerak c++
buildera viska? kupio bih
delphi.1076saxon,
-> #1075, milko> 10x a lot. Ovo savrseno radi. Btw, da li imas koji primerak c++
> buildera viska? kupio bih
Da, stvarno... Koja je aktuelna verzija Buildera i u kom CD-klubu može
da se kupi "origanalna" CD-verzija?
Kupac.
delphi.1077milosh.zorica,
-> #1076, saxonAktuelna verzija je 4, ali je jos nema u Yu.
delphi.1078voyager,
Jel se pojavio kod nas delphi 5?
VoYaGeR
delphi.1079milko,
-> #1078, voyagernije... sigurn. i preko je pitanje da li se pojavio u final
verziji.
delphi.1080qpele,
-> #1076, saxon> Da, stvarno... Koja je aktuelna verzija Buildera i u kom CD-klubu moze
> da se kupi "origanalna" CD-verzija?
>
> Kupac.
Aktuelna je cetvorka, a i ja se pitam gde se moze kupiti. Pre jedno mesec
dana je nije bilo u Platou.
delphi.1081kiklop,
Utillity za repair paradox tabela se sastoji od jednog dll-a.
TUTILITY.DLL - Delphi 1.0
TUTIL32.DLL - Delphi 2.0,3.0,4.0 ; C++ Builder 1.0/3.0/4.0
Sa jednom malom napomenom. Za svaku verziju BDE-a ide i posebna
verzija ovog dll-a.
On se može skinuti sa:
http://www.borland.com/devsupport/bde/utilities.html
Ne mogu sada da ih šaljem, s obzirom da sam jako kasno (rano?)
stigao kući, pa sam umoran.
Dobra komponenta za ovaj dll se može naći na:
http://www.o2a.com/
Toliko za sada. Za dodatni info obrati mi se na mail.
Darko.
delphi.1082zdravkod,
Da li neko zna kako da procitam serijski broj nekog CD-a i da li
svaki narezani CD ima svoj unikatni broj?
Zdravko
delphi.1083fraudator,
e ljudi, jel ima neko neki tutorial za delphi
il tako neshto
kao, learn delphi na disketi
poshto sam vido istu stvar za c
i mnogo je dobra
ali da pritom ciljna grupa budu oni koji bash nishta ne znaju o
delphiju
kao ja na primer :)
ajde pa ako se nadje takav, da mi baci na mail ili ako je veliko da
da u direktnu vezu
fala unapred
delphi.1084goxi,
Ima li neko neku dobru komponentu za CD (play, stop, current
track...) ???
Goran.
delphi.1085kiklop,
-> #1084, goxi>Ima li neko neku dobru komponentu za CD (play, stop, current
>track...) ???
>Goran.
A šta fali TMediaPlayer klasi? Uz malo truda eto CD playera. No ako
ima baš zainteresovanih poslaću vam link do jednog odličnog primera u
Delphiju za CD player.
Darko.
delphi.1086goxi,
-> #1085, kiklopNisam uspeo da provalim kako se koristi...kada mu da
mediaplayer1.open on prijavljuje gresku (ne moze da otvori fajl) ?
Goran.
P.S. Daje taj link, ako je komponenta free.
delphi.1087kiklop,
-> #1086, goxi> Nisam uspeo da provalim kako se koristi...kada mu da
> mediaplayer1.open on prijavljuje gresku (ne moze da otvori fajl) ?
>
> Goran.
>
> P.S. Daje taj link, ako je komponenta free.
Ta greška govori da nisi dobro podesio Mediaplayer komponentu. Ali da ne bih
razglabao i pravio čaršave uz poruku ide funkcionalan primer CD plejera
koji sam uradio za nekih sat vremena u delphiju 1.0 sa sve izvornim kodom.
Napomena: program pokretati samo ako ima CD-a u plejeru, inače će se
zablokirati.
Nisam imao vremena da se bavim ovom problematikom, tako da je taj problem
ostao, ali biće dosta za početak.
Darko.
d1cda.zipdelphi.1088emajsijuen,
Kako da odstampam pravougaonik (pisem direktno na canvas printera), koji bi
bio srafiran nekim pattarn-om koji sam ja nacrtao? Probao sam sa:
printer.canvas.brush.bitmap..., ali mi uvek odstampa prazan papir, a kada
sve to preuzmerim na canvas Timage-a sve lepo radi (tj. srafura se lepo vidi
na ekranu) ?
10x in advance :)
delphi.1089zdravkod,
Imam jednu Interbase bazu podataka u delphiju i u njoj dve tabele
VEZE i KORISNICI. Tabela VEZE ima polje Sifra_korisnika, kao i
tabela KORISNICI.
U Query-ju postavim SQL ovako:
select sifra_korisnika from veze
intersect
select sifra_korisnika from korisnici
Naravno intersect je presek (probao sam i minus) i ova naredba bi
trebalo da izdvoji sva polja koja su ista u ove dve tabele,
medjutim kada hocu da postavi Query1.Active na True ono mi prijavi
da je greska kod ovog drugog select tj. da ne moze da ga prepozna.
U cemu je ovde problem?
Zdravko
delphi.1090kiklop,
-> #1089, zdravkod>
> U Query-ju postavim SQL ovako:
>
> select sifra_korisnika from veze
>
> intersect
>
> select sifra_korisnika from korisnici
A sta fali sledecem SQl-u:
select * from veze,korisnici
where
(veze.sifra_korisnika = korisnici.sifra_korisnika);
Intersect nisam video ni u JET SQL-u, a ni u SYBASE SQL-u.
Darko.
delphi.1091zdravkod,
-> #1090, kiklopDa, na kraju sam i ja batalio intersect. U svakom slucaju hvala.
Zdravko
delphi.1092zdravkod,
Da li je moguce da index u Interbase tabeli NE bude Case Sensitive?
Zdravko
delphi.1093zdravkod,
U Query1.SQL imam
select * from korisnici
Ovo mi naravno da sva polja iz tabele korisnici. Interesuje me kako
da sortiram ta polja ne koristeci Table i postavljenje IndexName.
Znaci kako da sortiram neki dataset koji mi vrati query objekat po
nekom polju?
Zdravko
delphi.1094vvaske,
-> #1093, zdravkod> select * from korisnici
>
> Ovo mi naravno da sva polja iz tabele korisnici. Interesuje me kako
> da sortiram ta polja ne koristeci Table i postavljenje IndexName.
Ne bih da se pravim pametann jer delphi razgledam tek 5 dana, ali...
Onoliko koliko sam se bavio VB-om, rekao bih da je dobitna kombinacija
Select * from korisnici ORDER BY ime_polja
To fercera tamo, valjda je SQL - SQL...?
delphi.1095zdravkod,
Kako da u Run-Time dodajem i brisem kolone iz DBGrida-a
(DBGrid1.Columns[i])?
Zdravko
delphi.1096zdravkod,
Kako da ubrzam jednu Interbase bazu. Dok sam imao tu istu bazu i
bila je lokalna (Paradox) sve je islo kako treba, ali sada kada sam
program prebacio na Interbase, jedno obicno menjanje indexa ugusi
kompjuter. Bilo kakvi saveti su dobrodosli...
Zdravko
delphi.1097emajsijuen,
Kako onemoguciti promenu direktorijuma dok se izvrsavaju TOpendialog ili
TSaveDialog? Postoji li neka caka, ili mora da se pise OnFolderChange?
Cemu sluzi opcija 'OfNochangedir' (ne sluzi za ono sta mi treba ?!?) ?
delphi.1098kiklop,
-> #1097, emajsijuen> Kako onemoguciti promenu direktorijuma dok se izvrsavaju TOpendialog ili
> TSaveDialog? Postoji li neka caka, ili mora da se pise OnFolderChange?
Pa moraćeš da pišeš OnFolderChange ili da sam praviš svoj Open/Save
dijalog.
> Cemu sluzi opcija 'OfNochangedir' (ne sluzi za ono sta mi treba ?!?) ?
Iz Helpa:
ofNoChangeDir After the user clicks OK, resets the current
directory to whatever it was before the file-selection dialog opened.
Darko
delphi.1099xenon,
-> #1087, kiklop Mozda covek nije pogresno podesio MediaPlayer
ako radi sa Delphi4 onda je bug (oh no!) u pitanju...
Ja sam imao taj problem pa sam prepravio mplayer.pas
u SOURCE\VCL diru i onda preveden stavio u LIB tako da je sad OK!
mplayer.zipdelphi.1100zdravkod,
Koja je najbolja zamena za Interbase?
delphi.1101kiklop,
-> #1100, zdravkodZavisi o kakvom tipu programa se radi, tj. kakvoj bazi se radi. Zatim
tu je bitan i broj korisnika, gabarit...
Kao prilično dobro rešenje mogu da preporučim Sybase SQL Anywhere.
Koji podržava kako lokalne tako i mrežne varijante baza (i još mnoogo
toga). Ali opet je bitno znati za šta će se to sve koristiti. na
kraju krajeva koliko se sećam uz Delphi dolazi interbase za max. 5
korisnika što je dobro za manje posliće, ali ne i za sve. U svakom
slučaju SQL Anywhere rešava sve probleme ovakve i druge vrste vrlo
uspešno.
Darko
delphi.1102zdravkod,
-> #1101, kiklopTreba mi nesto sto bi moglo da izdrzi jako mnogo klijenata, veliki
broj transakcija i veliko opterecenje. Da li je Sybase u Win95
varijanti?
Zdravko
delphi.1103zdravkod,
-> #1102, zdravkodZaboravih da pitam kako se slazu Delphi i Sybase SQL Anywhere?
Zdravko
delphi.1104kiklop,
-> #1102, zdravkodSybase ide i u win95 i u NT varijanti. Moze da izdrzi koliko hoces
korisnika i ogromne kolicine podataka. Dakle preporuka i dalje stoji.
Sto se tice saradnje sa delphijem - nema nikakvih problema. Posto se
koristi cisti ODBC sve radi ko podmazano.
Darko
delphi.1105zdravkod,
-> #1104, kiklopHvala...
Zdravko
delphi.1106kiklop,
Evo najzad mi dođe pod ruku delphi 5.0
Jednostavno nemam dovoljno reči hvale za ovo najnovije Borlandovo
čedo. Delphi je bolji nego ikada. Stabilan je, donosi gooomilu
novih stvari, pa da navedem samo neke:
1.Najzad radi animacija pri minimizaciji prozora.
2.FPU windov prikazuje stanje FPU tokom debagovanja kao i MMX
instrukcije (!!)
3.Dodata je kao sastavni deo VCL komponenta TWebBrowser koja je omotač
oko IE4 ili novijeg tako da to više ne mora da se radi ručno.
4.Potpuna podrška za pisanje Control Panel apleta (cpl).
5.IBX set komponenti koji direktno pristupa InterBase bazama BEZ
BDE-a (!!).
6.Meniji su još više unapređeni u odnosu na četvorku i sada ih
možete praviti da izgledaju kao u Office-u 2000.
7.ITE tools - skup alata za olakšano kreiranje višejezičnih aplikacija.
8.Data module designer-koji olakšava održavanje i kreiranje Data Modula.
9.Još hiljadu stvari koje nisam stigao da napišem ili vidim.
U svakom slučaju na ovo je vredelo čekati.
delphi.1107hercog,
-> #1102, zdravkod> Treba mi nesto sto bi moglo da izdrzi jako mnogo klijenata, veliki
> broj transakcija i veliko opterecenje. Da li je Sybase u Win95
> varijanti?
Sve zavisi koliko je to veliki broj...
Sale
delphi.1108zdravkod,
Kako da forsiram fizicki upis podataka u Paradox bazu na disk odmah
posto u programu uradim POST. Navodno to bi tako trebalo da bude,
medjutim u praksi podatke mi upise u tabelu tek posto izadjem iz
programa. (CachedUpdates je False). Cak ne pomaze ni kad u programu
zatvorim tabelu. Uglavnom velicina Paradox fajlova menja se tek
posto izadjem iz programa.
Zdravko
delphi.1109goxi,
Ima li neko ideju kako bih mogao najlakse da oduzmem dva vremena ?
Npr. 19:43:21 i 20:18:03 ???
Help !!!
Goran.
delphi.1110stameni,
-> #1109, goxi>> Ima li neko ideju kako bih mogao najlakse da oduzmem dva vremena ?
>> Npr. 19:43:21 i 20:18:03 ???
Ako nije rešeno sistemski, možeš da prosto pretvoriš oba
vremena u sekunde, oduzmeš tako dobijene ekvivalente, i rezultat
vratiš u hh:mm:ss formu.
delphi.1111goxi,
-> #1110, stamenivremena u sekunde, oduzmes tako dobijene ekvivalente, i rezultat
vratis u hh:mm:ss formu.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kako vratiti dobijene sekunde u hh:mm:ss formu ?
Goran.
delphi.1112ventura,
-> #1111, goxi> vremena u sekunde, oduzmes tako dobijene ekvivalente, i rezultat
> vratis u hh:mm:ss formu.
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Kako vratiti dobijene sekunde u hh:mm:ss formu ?
>
Delenjem... podelis sekunde sa 60, celi broj su sati a ostatak delis opet
sa 60 pa dobijes minute i ako je sve ok onaj ostatak upises kao sekunde..
delphi.1113goxi,
-> #1112, ventura Delenjem... podelis sekunde sa 60, celi broj su sati a ostatak
delis opet
sa 60 pa dobijes minute i ako je sve ok onaj ostatak upises kao
sekunde..
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ne, ne...prvo treba da podelim sa 3600 pa onda sa 60 pa onda sa jos
60...ali nece...evo u cemu je problem. Neka imam 5620 s :
5620:3600=1,5611
Odatle sledi da imam 1 sat - ok.
I sta dalje ?
Goran.
delphi.1114stameni,
-> #1113, goxi>> Ne, ne...prvo treba da podelim sa 3600 pa onda sa 60 pa onda sa jos
>> 60...ali nece...evo u cemu je problem. Neka imam 5620 s :
>> 5620:3600=1,5611
>> Odatle sledi da imam 1 sat - ok.
>> I sta dalje ?
Odbaciš decimale kod poslednjeg rezultata. Ceo deo pomnožiš sa
3600 i to oduzmeš od polaznog broja:
5620 - 1 * 3600 = 2020.
Dobijeni broj podeliš sa 60:
2020 : 60 = 33.67,
odbaciš decimale, ceo deo je jednak broju minuta -- 33. Pomnožiš taj
ceo deo sa 60, i oduzmeš od 2020:
2020 - 33 * 60 = 40;
40 je broj sekundi.
Dakle, 5620s = 1:33:40.
delphi.1115ventura,
-> #1114, stameni> >> Ne, ne...prvo treba da podelim sa 3600 pa onda sa 60 pa onda sa j
> >> 60...ali nece...evo u cemu je problem. Neka imam 5620 s :
> >> 5620:3600=1,5611
> >> Odatle sledi da imam 1 sat - ok.
> >> I sta dalje ?
>
> Odbacis decimale kod poslednjeg rezultata. Ceo deo pomnozis sa
> 3600 i to oduzmes od polaznog broja:
> 5620 - 1 * 3600 = 2020.
Mislim da ti racunica nije bas dobra...
delphi.1116ventura,
-> #1113, goxi> Delenjem... podelis sekunde sa 60, celi broj su sati a ostatak
> delis opet
> sa 60 pa dobijes minute i ako je sve ok onaj ostatak upises kao
> sekunde..
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Ne, ne...prvo treba da podelim sa 3600 pa onda sa 60 pa onda sa jos
> 60...ali nece...evo u cemu je problem. Neka imam 5620 s :
> 5620:3600=1,5611
> Odatle sledi da imam 1 sat - ok.
> I sta dalje ?
Uz poruku sam poslao prog koji racuna broj sati... princip je isti
i za minute i sekunde samo umesto 3600 ubacujes 60... videces iz sourca kako
to odprilike ide...
------------------------------
#include <stdio.h>
main()
{
int brojsekundi,preostalo;
int sati,tmp,h,i,tmp2;
printf("\n");
printf("Unesite broj sekundi\n");
scanf("%i", &brojsekundi);
h=3600;
i=1;
sati=100000;
tmp=0;
tmp2=0;
preostalo=0;
tmp=h*i;
if(brojsekundi>tmp){
vise:
printf("ima vise od %i", i);
printf(" sati dodaj jos jedan sat\n");
pocni:
i=i+1;
tmp2=3600*i;
if(brojsekundi>tmp2){
goto pocni;
}
else {
sati = i-1;
goto minute;
}
} //if veliko
else {
if(brojsekundi==tmp){
printf("Tacno 1 sat\n");
sati=1;
}
else {
if(brojsekundi<tmp){
printf("Ima manje od 1 sata, odnosno 0 sati\n");
sati=0;
}
else {
goto vise;
}
}
}
minute:
printf("Broj sati je: %i\n",sati);
preostalo=brojsekundi-(3600*sati);
printf("Ostalo je sekundi: %i\n", preostalo);
//sada racunamo koliko minuta ima, postupak je isti kao i kod sati
}
-------
Sada uzmes preostali broj sekundi i propustis ga kroz istu ovu rutinu
samo umesto h=3600 stavis h=60 i dobices broj minuta i preostali broj
sekundi...
sati.exedelphi.1117stameni,
Evo moje verzije.
----<cut>----
program konvertor;
var
s_org, temp: longint;
h, m, s: integer;
begin
write('Unesite broj sekundi: ');
readln(s_org);
s_org := abs(s_org);
h := s_org div 3600;
temp := s_org mod 3600;
m := temp div 60;
s := temp mod 60;
writeln(s_org, 's = ', h, ':', m, ':', s)
end.
----<cut>----
konv.exedelphi.1118goxi,
Da li je nekako moguce citati _znak po znak_ iz jednog fajla (i
upisivati u drugi) ?
Znaci vazno mi je da to bude znak po znak a ne red po red :).
Goran.
delphi.1119kiklop,
-> #1118, goxipogledaj naredbu read.
delphi.1120dusandz,
-> #1118, goxi'nako napamet:
var f:text;
ch:char;
...
begin
assign(f, 'fajl.txt');
reset(f);
while not eof(f) do begin
read (f, ch); // Ovo cita po jedan karakter i ispisuje ga na ekran
write(ch); // sve dok ne stigne do kraja fajla. Teoretski :)
end;
...
close(f);
end.
delphi.1121sane,
-> #1118, goxi
Ne znam kako ide za delfi, al' za paskal ide ovako valjda..
while not eof(f) do
while not eoln(f) do
reAd(f,n);
f je fAjl, n je promenljivA, ti dAlje vidi shtA cjesh sA ovim..
delphi.1122goxi,
-> #1120, dusandz'nako napamet:
~~~~~~~~~~~~~~~~~~~~~
Ne mogu da verujem...hvala !!!
Goran.
delphi.1123emajsijuen,
-> #1112, venturaEM>> Delenjem... podelis sekunde sa 60, celi broj su sati a ostatak delis opet
EM>> sa 60 pa dobijes minute i ako je sve ok onaj ostatak upises kao sekunde..
Evo kako se to radi:
----------------------------
...
Sec :Word;
H, M, S :Word;
...
H:=(Sec DIV 3600);
M:=(Sec MOD 3600) DIV 60;
S:=(Sec DIV 3600) MOD 60;
----------------------------
Ovo sam napisao "u letu", tako da nije provereno - ali trebalo bi da radi.
delphi.1124ventura,
-> #1123, emajsijuen> H:=(Sec DIV 3600);
> M:=(Sec MOD 3600) DIV 60;
> S:=(Sec DIV 3600) MOD 60;
> ----------------------------
>
> Ovo sam napisao "u letu", tako da nije provereno - ali trebalo bi
> da radi.
Ne razumem se u paskal bas najbolje... dali ce ovo dati float broj (sa
zarezom) ili podeliti sa ostatkom?
ako deli sa ostatkom gde se on upise?
delphi.1125emajsijuen,
-> #1124, venturaEM>>> H:=(Sec DIV 3600);
EM>>> M:=(Sec MOD 3600) DIV 60;
EM>>> S:=(Sec DIV 3600) MOD 60;
EM>>> ----------------------------
EM>>>
EM>>> Ovo sam napisao "u letu", tako da nije provereno - ali trebalo bi
EM>>> da radi.
EM>>
EM>> Ne razumem se u paskal bas najbolje... dali ce ovo dati float broj (sa
EM>> zarezom) ili podeliti sa ostatkom?
EM>>
EM>> ako deli sa ostatkom gde se on upise?
Promenljive H, M, S su Word tipa, dakle nisu Float. 3. linija vrsi deljenje
(DIV) - tj. "odstranjuje" onoliko sekundi koliko ima u (H * 3600),
a zatim racuna ostatak pri deljenju sa 60 (MOD) pa promenljiva dobija korektnu
vrednost za broj sekundi.
delphi.1126milosch,
Da li neko zna na koji nacin mogu da detektujem iz programa da je
uspostavljena veza sa ineternetom?
delphi.1127goxi,
Da li je nekako moguce zakljucati fajl, tj. ne dozvoliti korisniku
racunara bilo kakav pristup tom fajlu ? Ako nije to moguce, da li
je moguce zabraniti menjanje fajla, znaci da fajl sluzi samo za
citanje, ali da menjanje nije dozvoljeno ?
Goran.
delphi.1128milosch,
Da li neko zna kako da prozovem nesto iz resursa.
Napravio sam aplikaciju sa avi animacijom i stavio je u resurse
ali sad nemogu da provalim kako da je prozovem a help nije bas
najjasni.
I jos nesto.Pravio sam aplikaciju koja treba nesto da izvrsi kad
se konektujem na net.Znaci ona bi trebala sama da detektuje
konekcijiu ali neznam jos kako to da izvedem.Da li neko moze da mi
pomogne oko ovoga.
Svaki Reply dobrodosao :)
delphi.1129goxi,
-> #1128, miloschS obzirom da ti treba detekcija internet konekcije, predpostavio
sam da imas nalog na nekom od nasih provajdera. Postoje mnogi
sajtovi koji imaju svakojake komponente (ja sam nasao jednu bas za
ovu stvar, ali ne radi lepo, tj. radi ali on smatra da si se
konektovao na net svaki put kada ti se pojavi prozor 'dialing...',a
to je u nasim uslovima nemoguce posto su provajderi u 40% slucajeva
zauzeti). E sad, pogledaj na www.torry.ru www.delphipages.com pa
nadji neku koja ti odgovara.
Goran.
delphi.1130goxi,
Ajd' neka mi neko preporuci neki dobar Install (citaj: Setup) Maker. Potrebno
mi je da ima opciju da moze sam da kreira i uninstall program, tj. uninstall
shortcut. E jos ako je FREEWARE ili imate 'ono' za taj program...bilo bi
super.
Goran.