17. januar 2004 - 23:37Der er
4 kommentarer og 1 løsning
Ideer til implementering af mit program
Jeg er ved at bygge en relationel database editor i Delphi. Desværre er Delphi og Object Pascal ikke min stærke side, men sådan ligger landet nu engang. Jeg skal have lavet ed editor hvor an kan tilføje nogle tabeller således de rent grafisk bliver tilføjet en brugergrænseflade således man derefter kan linke forskellige felter sammen mellem disse tabeller. Mit problem er nu at jeg er i tvivl om hvordan jeg skal implementere mine tabeller. Jeg har overvejet at lave dem som TListBox, da jeg vil have muligheden for at kunne trække (Drag 'n' drop) et felt fra den ene liste til den anden liste og så i min GUI tegne en linie derimellem. Jeg har tumlet lidt med det og det vil ikke helt virke, tror umiddelbart ikke at det er det store problem at lve denne drag 'n' drop funktionalitet, men at få lavet drag'n'drop på mine TListBox'es således min bruger frit kan placere dem i et arbejdsområde (lidt a'la SQL Serveren, hvis der er nogle der kender den). Umidddelbart er jeg ikke efter kode, men det ville da være en ekstra bonus, jeg vil lige så gerne høre nogle konkrete bud på, hvordan jeg får løst mine problemer, måske specielt med en flytbar TListBox på et panel.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
{$R *.DFM} const Traekker:Boolean=False; var Sidste_x, Sidste_y:Integer;
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if (SSleft in shift) then begin Traekker:= True; Sidste_x:=x; Sidste_y:=y; end;
end;
procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var mx,my:Integer; begin if (traekker)and( ssleft in shift) then begin mx:=listbox1.Left; listbox1.Left:=listbox1.Left-(sidste_x-x); mx:=listbox1.Left-mx; my:=listbox1.Top; listbox1.top:=listbox1.top-(Sidste_y-y); my:=listbox1.Top-my; sidste_y:=Y-my; sidste_x:=x-mx; end else traekker:= false; end;
Den brokker sig over at ' Left side cannot be assigned to' i denne linie
const Traekker:Boolean=False;
Derefter vil den ikke assigne overhovedet, hvis jeg flytter Traekker fra at være konstant til at være en almidelig variabel, så kan den køre, men når jeg dragger sker der ikke noget !!!
Sorry, jeg lavede en fejl.... jeg fik det til at virke efter lidt hakken og banken, og så selvfølgelig efter jeg rettede min egen fejl. Takker for koden, det virker fint nu :-)
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.