Avatar billede fixxxer Nybegynder
14. september 2003 - 15:08 Der er 14 kommentarer og
1 løsning

DBGrid memo field

Jeg har fundet denne geniale løsning på EE, til hvordan man i DBGrid viser indholdet af et MemoField i stedet for teksten (MEMO), men jeg kan ikke få den til at virke. Nogen gode bud, til hvordan den kommer til at virke?

Denne kode skal bare smides ind i DBGrid'ens OnDrawDataCell:

procedure TForm3.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
P : array [0..50] of char; {array size is number of characters needed}
BS : tBlobStream;          {from the memo field}
S : String;
begin
If Field is TMemoField then begin                         
  with (Sender as TDBGrid).Canvas do
      begin {Table1Notes is the TMemoField}
        BS := tBlobStream.Create(Table1Notes, bmRead); <-- Table1Notes kan jeg ikke helt finde ud af hva skal være
        FillChar(P,SizeOf(P),#0); {terminate the null string}
        BS.Read(P, 50); {read 50 chars from memo into blobStream}
      BS.Free; S := StrPas(P);
        while Pos(#13, S) > 0 do {remove carriage returns and}
          S[Pos(#13, S)] := ' '; {line feeds}
        While Pos(#10, S) > 0 do
          S[Pos(#10, S)] := ' ';
      FillRect(Rect); {clear the cell}
        TextOut(Rect.Left, Rect.Top, S); {fill cell with memo data}
      end;
  end;
end;
Avatar billede fixxxer Nybegynder
14. september 2003 - 15:10 #1
Avatar billede stoney Nybegynder
14. september 2003 - 15:50 #2
Table1Notes er navnet på dit DB field

Stoney
Avatar billede fixxxer Nybegynder
14. september 2003 - 15:53 #3
jep det har jeg også prøvet at lave om til Field as TMemoField men det hjælper ikke noget

DefaultDrawing i DBGrid skal vel være False for at det her vil komme til at virke?
Avatar billede stoney Nybegynder
14. september 2003 - 16:27 #4
Punkt 1. en dbgrid er ikke designet til at vise memo/blob felter.
Punkt 2. den kode du referer til henter kun 50 karakter ind i
        dit dbgrid. (Altså det kan højest sandsynligt stå i 1
        dbgrid-linie uden linie skift.

kan du ikke bare bruge en dbmemo eller dbctrlgrid ?

Stoney
Avatar billede fixxxer Nybegynder
14. september 2003 - 16:30 #5
nu er det jo netop dbgrid jeg vil bruge, men hvis jeg kan få en tilsvarende løsning med de nævnte komponenter lytter jeg gerne
Avatar billede stoney Nybegynder
14. september 2003 - 16:36 #6
Du finder dbmemo og dbctrlgrid på fanebladet datacontrols.
Jeg er ikke i tvivl om at du kan "drawe" dit dbmemo felt ind i et
dbgrid, men så skal du tage hensyn til antal linier, font, og fontstørrelse inden du "drawer" i din dbgrid og så begynder det at blive rigtigt grimt.
Hvor mange piexel fylder 10 linier med arial font size 10 og Times New Roman size 11 ????

Stoney
Avatar billede fixxxer Nybegynder
14. september 2003 - 16:40 #7
du tænker på pixel i højden ik?

med arial 10 fylder 10 linjer 359px
Avatar billede fixxxer Nybegynder
14. september 2003 - 16:42 #8
times 11 : 352px
Avatar billede stoney Nybegynder
14. september 2003 - 16:46 #9
Det er lige nøjagtig det jeg mener.
Du ved ikke hvilken font/størrelse din windows-bruger bruger(jeg stammer ikke, (normalt i hvert-fald)):-).

Stoney
Avatar billede fixxxer Nybegynder
14. september 2003 - 16:47 #10
ah og det giver problemer når man skal til at drawe en dbmemo ind i den cell, som optager teksten
Avatar billede stoney Nybegynder
14. september 2003 - 16:50 #11
nemlig !!!!!!!!!!
Selvfølgelig kan det lage sig gøre, men det bliver højest sandsynlig
en lang og tunge kode.

Stoney
Avatar billede fixxxer Nybegynder
14. september 2003 - 16:50 #12
det er jo ikke fordi den dybe talerken skal opfindes her, navision finacel er et eksempel på en dbgrid, som viser tekst fra memo felter, men nu er programmørene til det også proffer, så de har jo en fordel, men det viser jo at det godt kan lade sig gøre
Avatar billede stoney Nybegynder
14. september 2003 - 16:56 #13
jeg kender ikke navision Finaciel, men du kan få componter der
kan løse din opgave.
Sjovt nok koster de penge :-)
Hvis du kan vente til senere kan jeg da prøve at bakse en løsning sammen til dig.

Stoney
Avatar billede fixxxer Nybegynder
14. september 2003 - 17:01 #14
alt det der er godt koster penge :) (på nær en ting måske :)

det lyder godt, jeg venter spændt :)
Avatar billede janbb Juniormester
14. september 2003 - 21:06 #15
jeg kobler mig lige på
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging