/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Til / fra en Grid
Fra : Ukendt


Dato : 20-04-06 20:09

Hej.

Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til en
DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en alm.
stringgrid.)

Hvordan ser processen ud den modsatte vej?



 
 
Harald (20-04-2006)
Kommentar
Fra : Harald


Dato : 20-04-06 20:41

"Vinther" <.-.> skrev i en meddelelse
news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
> Hej.
>
> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til en
> DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en alm.
> stringgrid.)

Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også
oprettes at runtime eller gør du det at design time?

/HK



Ukendt (20-04-2006)
Kommentar
Fra : Ukendt


Dato : 20-04-06 21:40

"Harald" <nomail@noname.dk> skrev i en meddelelse
news:4447e3e0$0$84027$edfadb0f@dtext01.news.tele.dk...
> "Vinther" <.-.> skrev i en meddelelse
> news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
>> Hej.
>>
>> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til
>> en DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en
>> alm. stringgrid.)
>
> Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også
> oprettes at runtime eller gør du det at design time?

Det skal de som udgangspunkt i designtime, men man kan senere hen komme ud
for, at det skal udvides.

TListView... Hvis man ønsker at arbejde med celler (dvs. tabeller på to led)
kan det så også lade sig gøre i TListView eller skal man over i en Grid



Harald (20-04-2006)
Kommentar
Fra : Harald


Dato : 20-04-06 21:50

"Vinther" <.-.> skrev i en meddelelse
news:4447f1a9$0$8068$ba624c82@nntp02.dk.telia.net...
> "Harald" <nomail@noname.dk> skrev i en meddelelse
> news:4447e3e0$0$84027$edfadb0f@dtext01.news.tele.dk...
>> "Vinther" <.-.> skrev i en meddelelse
>> news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
>>> Hej.
>>>
>>> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til
>>> en DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en
>>> alm. stringgrid.)
>>
>> Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også
>> oprettes at runtime eller gør du det at design time?
>
> Det skal de som udgangspunkt i designtime, men man kan senere hen komme ud
> for, at det skal udvides.
>
> TListView... Hvis man ønsker at arbejde med celler (dvs. tabeller på to
> led) kan det så også lade sig gøre i TListView eller skal man over i en
> Grid

Du sætte ViewStyle til vsReport så har du det du ønsker, højre klik så på
ListViewen og vælg Columns Editor for at oprette columns. F.eks. er dette
program er lavet med en ListView.
http://home.worldonline.dk/kroning/nrj.jpg

/HK



Harald (20-04-2006)
Kommentar
Fra : Harald


Dato : 20-04-06 22:01

"Vinther" <.-.> skrev i en meddelelse
news:4447f1a9$0$8068$ba624c82@nntp02.dk.telia.net...
> "Harald" <nomail@noname.dk> skrev i en meddelelse
> news:4447e3e0$0$84027$edfadb0f@dtext01.news.tele.dk...
>> "Vinther" <.-.> skrev i en meddelelse
>> news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
>>> Hej.
>>>
>>> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til
>>> en DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en
>>> alm. stringgrid.)
>>
>> Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også
>> oprettes at runtime eller gør du det at design time?
>
> Det skal de som udgangspunkt i designtime, men man kan senere hen komme ud
> for, at det skal udvides.
>
> TListView... Hvis man ønsker at arbejde med celler (dvs. tabeller på to
> led) kan det så også lade sig gøre i TListView eller skal man over i en
> Grid

Jeg har lavet denne procedure som jeg bruger når data bare skal fra
ClientDataSet til ListView uden nogen form for formatering.

procedure FillListView(View : TListView;DataSet : TClientDataSet;Fields :
array of string);
var
i : integer;
begin
View.Clear;
View.Update;
View.Items.BeginUpdate;
DataSet.First;
while not DataSet.Eof do
begin
with View.Items.Add do
begin
Caption:=DataSet.FieldByName(Fields[0]).AsString;
for i:=1 to Length(Fields)-1 do
SubItems.Add(DataSet.FieldByName(Fields[i]).AsString);
end;
DataSet.Next;
end;
View.Items.EndUpdate;
end;
-------------

Du kan så kalde den sådan hvis du har et ListView der hedder ListView og en
TClientDataSet der hedder ClientDataSet som indeholder f.eks. felterne
Navn,Adrese,By:

FillListView(ListView , ClientDataSet , ['Navn','Adresse','By']);

/HK



Ukendt (23-04-2006)
Kommentar
Fra : Ukendt


Dato : 23-04-06 15:21

Hej Harald.

"Harald" <nomail@noname.dk> skrev i en meddelelse
news:4447f689$0$84033$edfadb0f@dtext01.news.tele.dk...
> "Vinther" <.-.> skrev i en meddelelse
> news:4447f1a9$0$8068$ba624c82@nntp02.dk.telia.net...
>> "Harald" <nomail@noname.dk> skrev i en meddelelse
>> news:4447e3e0$0$84027$edfadb0f@dtext01.news.tele.dk...
>>> "Vinther" <.-.> skrev i en meddelelse
>>> news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
>>>> Hej.
>>>>
>>>> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til
>>>> en DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en
>>>> alm. stringgrid.)
>>>
>>> Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også
>>> oprettes at runtime eller gør du det at design time?
>>
>> Det skal de som udgangspunkt i designtime, men man kan senere hen komme
>> ud for, at det skal udvides.
>>
>> TListView... Hvis man ønsker at arbejde med celler (dvs. tabeller på to
>> led) kan det så også lade sig gøre i TListView eller skal man over i en
>> Grid
>
> Jeg har lavet denne procedure som jeg bruger når data bare skal fra
> ClientDataSet til ListView uden nogen form for formatering.
>
> procedure FillListView(View : TListView;DataSet : TClientDataSet;Fields :
> array of string);
> var
> i : integer;
> begin
> View.Clear;
> View.Update;
> View.Items.BeginUpdate;
> DataSet.First;
> while not DataSet.Eof do
> begin
> with View.Items.Add do
> begin
> Caption:=DataSet.FieldByName(Fields[0]).AsString;
> for i:=1 to Length(Fields)-1 do
> SubItems.Add(DataSet.FieldByName(Fields[i]).AsString);
> end;
> DataSet.Next;
> end;
> View.Items.EndUpdate;
> end;
> -------------
>
> Du kan så kalde den sådan hvis du har et ListView der hedder ListView og
> en TClientDataSet der hedder ClientDataSet som indeholder f.eks. felterne
> Navn,Adrese,By:
>
> FillListView(ListView , ClientDataSet , ['Navn','Adresse','By']);

Det virker OK.

Hvad med den modsatte vej.

Jeg har prøvet at ændre noget, men det trykkes ikke igennem over i DB'en



Harald (23-04-2006)
Kommentar
Fra : Harald


Dato : 23-04-06 16:58

"Vinther" <.-.> skrev i en meddelelse
news:444b8d62$0$11172$ba624c82@nntp02.dk.telia.net...
> Hej Harald.
>
> "Harald" <nomail@noname.dk> skrev i en meddelelse
> news:4447f689$0$84033$edfadb0f@dtext01.news.tele.dk...
>> "Vinther" <.-.> skrev i en meddelelse
>> news:4447f1a9$0$8068$ba624c82@nntp02.dk.telia.net...
>>> "Harald" <nomail@noname.dk> skrev i en meddelelse
>>> news:4447e3e0$0$84027$edfadb0f@dtext01.news.tele.dk...
>>>> "Vinther" <.-.> skrev i en meddelelse
>>>> news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
>>>>> Hej.
>>>>>
>>>>> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet
>>>>> til en DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men
>>>>> en alm. stringgrid.)
>>>>
>>>> Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også
>>>> oprettes at runtime eller gør du det at design time?
>>>
>>> Det skal de som udgangspunkt i designtime, men man kan senere hen komme
>>> ud for, at det skal udvides.
>>>
>>> TListView... Hvis man ønsker at arbejde med celler (dvs. tabeller på to
>>> led) kan det så også lade sig gøre i TListView eller skal man over i en
>>> Grid
>>
>> Jeg har lavet denne procedure som jeg bruger når data bare skal fra
>> ClientDataSet til ListView uden nogen form for formatering.
>>
>> procedure FillListView(View : TListView;DataSet : TClientDataSet;Fields :
>> array of string);
>> var
>> i : integer;
>> begin
>> View.Clear;
>> View.Update;
>> View.Items.BeginUpdate;
>> DataSet.First;
>> while not DataSet.Eof do
>> begin
>> with View.Items.Add do
>> begin
>> Caption:=DataSet.FieldByName(Fields[0]).AsString;
>> for i:=1 to Length(Fields)-1 do
>> SubItems.Add(DataSet.FieldByName(Fields[i]).AsString);
>> end;
>> DataSet.Next;
>> end;
>> View.Items.EndUpdate;
>> end;
>> -------------
>>
>> Du kan så kalde den sådan hvis du har et ListView der hedder ListView og
>> en TClientDataSet der hedder ClientDataSet som indeholder f.eks. felterne
>> Navn,Adrese,By:
>>
>> FillListView(ListView , ClientDataSet , ['Navn','Adresse','By']);
>
> Det virker OK.
>
> Hvad med den modsatte vej.
>
> Jeg har prøvet at ændre noget, men det trykkes ikke igennem over i DB'en

Hvis du skal gemme noget i ClientDataSet så skal det foregå med:
Edit; Insert; eller Append;
sæt værdierne..
Post;

/HK



Vinther (21-04-2006)
Kommentar
Fra : Vinther


Dato : 21-04-06 07:54

Hej Harald.

Super.

Men kan man også rette / editere / udfylde i en TListView? (Jeg er
nemlig ikke hjemme til at kunne afprøve det nu)

Med mit spørgsmål mener jeg, om det er muligt ligesom i en Grid at

- markere en linie og rette i indholdet af et felt eller flere
- dobbeltklikke på en linie og åbne en form for detail database
(ClientDataSet)
- osv


Harald (21-04-2006)
Kommentar
Fra : Harald


Dato : 21-04-06 08:13

"Vinther" <2584431m004@stofanet.dk> skrev i en meddelelse
news:1145602455.392965.85730@g10g2000cwb.googlegroups.com...
Hej Harald.

Super.

Men kan man også rette / editere / udfylde i en TListView? (Jeg er
nemlig ikke hjemme til at kunne afprøve det nu)

Med mit spørgsmål mener jeg, om det er muligt ligesom i en Grid at

- markere en linie og rette i indholdet af et felt eller flere
- dobbeltklikke på en linie og åbne en form for detail database
(ClientDataSet)
- osv

----------------

Nej det kan man ikke.

/HK



Vinther (21-04-2006)
Kommentar
Fra : Vinther


Dato : 21-04-06 08:19

Æv.

Det tager - i mine øjne - en del af værdien og muligheden fra
TListView'en og gør den kun mulig til brug for præsentation af data,
men ikke til at bearbejde data, hvilket i mine øjne må være
grunddelen i et program.


Harald (21-04-2006)
Kommentar
Fra : Harald


Dato : 21-04-06 09:39

"Vinther" <2584431m004@stofanet.dk> skrev i en meddelelse
news:1145603932.651688.215600@g10g2000cwb.googlegroups.com...
Æv.

Det tager - i mine øjne - en del af værdien og muligheden fra
TListView'en og gør den kun mulig til brug for præsentation af data,
men ikke til at bearbejde data, hvilket i mine øjne må være
grunddelen i et program.

----------------

Ja det kommer så an på hvordan man laver sit program mht. at kunne bearbejde
data, jeg bruger kun ListView til at vise data og lader så brugerne kunne
bearbejde data på andre måder end at gøre det direkte i listview´en. Jeg har
aldrig syntes at det kunne blive særlig pænt og brugervenligt at skulle
redigere direkte i en ListView eller ligende lister.

/HK



Vinther (21-04-2006)
Kommentar
Fra : Vinther


Dato : 21-04-06 09:45

Jeg må erklære mig uenig.

En Grid (eller Listview) giver overblik, hvis man skal kunne se og
redigere i flere poster og felter.

Fx et bogføringsprogram eller ordrelinie osv. Her vil det være et
must at kunne bearbejde i dataene på en listeform. Igen er det min
mening.


Harald (21-04-2006)
Kommentar
Fra : Harald


Dato : 21-04-06 15:35

"Vinther" <2584431m004@stofanet.dk> skrev i en meddelelse
news:1145609122.355233.203250@i39g2000cwa.googlegroups.com...
Jeg må erklære mig uenig.

En Grid (eller Listview) giver overblik, hvis man skal kunne se og
redigere i flere poster og felter.

Fx et bogføringsprogram eller ordrelinie osv. Her vil det være et
must at kunne bearbejde i dataene på en listeform. Igen er det min
mening.

--------------------------

Ja sådan har vi jo så forskellige meninger :). Jeg har faktisk lavet et
bogføringsprogram, du kan se et billede af kassekladden her i baggrunden:
http://www.kroning.dk/grafik/finans.jpg
det er et gammelt program så gridden i baggrunden er ikke en ListView med
faktisk en DBGrid, men alligevel valgte jeg dengang jeg lavede programmet at
man ikke skulle kunne redigere direkte i grid´et men i stedet markere en
linie og derefter rette i linien for neden.

/HK



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste